999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Unity3D的滑板運動游戲的設計與實現

2018-02-05 01:36:07武家弘宋海玉王鵬杰
大連民族大學學報 2018年1期
關鍵詞:動畫設置動作

李 威,武家弘,宋海玉,王 巍,王鵬杰

(大連民族大學 計算機科學與工程學院,遼寧 大連116650)

Unity3D是一個全面整合的專業游戲引擎,在近幾年贊譽度極高[1]。在三維視頻游戲、建筑可視化、實時三維動畫等互動綜合型游戲開發上具有很大的優勢[2]。本文主要闡述了利用Unity3D引擎,設計實現3D滑板動作類游戲的主要功能及方法,提出了山地模型的一種快速建模方法,以及適合滑板游戲的碰撞檢測策略及動作控制方法。

1 功能與效果設計

3D滑板游戲屬于運動競技類游戲,按照該類游戲的特點,滑板游戲主要有以下功能:

(1)設置功能。開始游戲后進入主界面如圖1。單擊“設置”按鈕,跳轉到設置界面,可對聲音大小、操作方式以及是否全屏等屬性進行設置。

(2)游戲場景選擇。在主界面中單擊“開始游戲”按鈕,首先進入地形選擇界面。游戲中設置了兩種地形模式,即城市模型和山地模型。用戶選擇其中之一,進入游戲界面。

(3)按鍵功能。“向上”鍵控制角色前進滑行;“向下”鍵控制角色剎車;“向左”和“向右”鍵控制角色左傾和右傾;“空格”鍵控制角色跳躍。

圖1 游戲主界面

2 系統模塊設計

滑板運動游戲要想達到真實感強、可玩性高的要求,在開發過程中需要有嚴格的任務分工和游戲開發過程。本3D滑板游戲開發主要分為三部分:模型建模、動作和控制設計,如圖2。

圖2 滑板運動游戲開發模塊

2.1 模型建模

2.1.1 城市模型建模

城市場景中包含很多建筑模型,在制作建筑模型前,需要先采集相關模型的數據或照片等素材,根據模型的形態和估算的數據,在3dsmax中利用多邊形建模技術對建筑模型進行建模。在建模過程中,要控制面的數量,保障游戲系統能夠流暢運行,具體做法如下:

(1)當模型中的兩部分有穿插,穿插部分渲染時看不到,將穿插部分的面刪除;

(2)對于窗口和墻體,其背面看不到,將窗口和墻體的背面刪除;

(3)對于規則物體,如球體,先將其轉換為可編輯多邊形,通過添加multres命令,改變一定量的球體點數,渲染效果是相同的,但面的數量減少如圖3。

圖3 球體減面結果

將城市建筑物模型按比例整合到一起,并添加地面以及街道部分,就形成了一個整體的城市場景。

2.1.2 盤山公路模型建模

在Unity中,有一套地形建模工具,即“Terrain”,創建地形后,可以對其進行修改設置。而地形建模過程主要是地形編輯過程。地形編輯工具包括高度工具、最大高度工具、平滑工具、紋理工具、植樹工具、種草工具、地形設置等,為了能讓地形生成的效率高,效果好,本文提出一種游戲山地地形快速生成方法,步驟如下:

(1)根據游戲需求,初始化地形,并設定地形的基本信息,如高度、寬度,長度等;

(2)先行手工設計地形起伏狀態,并據此編輯地形起伏形態;

(3)針對地形表面進行紋理貼圖;

(4)利用植樹工具種植樹木;

(5)如有湖泊,增加湖泊的設置;

(6)利用天空盒和光照系統,根據游戲需求,進行天空和光照的設置。

以上方法步驟是地形生成的主要內容,需進一步根據需求準備相應的貼圖。

本游戲即采用此快速生成地形的方法,實現山地模型的基本建模,實驗證明效果較好。但滑板游戲的角色必須在比較平坦的公路地面上滑行,因此需要對山地模型進行進一步開發,才能滿足滑板游戲的要求。具體過程如下:

(1)為了搭建有向下傾斜10°左右的盤山公路路面,在山地模型中選取一條海拔逐漸降低的曲線,以這條曲線為依據,拉出平面作為公路的空間,即形成了沿著公路逐漸下降的平面;

(2)利用easyroad插件平鋪盤山公路,在已有的山地原始模型上,利用easyroad插件沿著事先留出的公路的空間設置一些頂點,將相鄰的兩個頂點相連;

(3)設置完頂點之后,根據頂點位置生成公路,并在公路上貼上紋理圖片;

(4)利用植樹工具在道路兩旁種植樹木。

按照以上過程對山地地形鋪設道路以及種植植被,效果如圖4。

圖4 盤山公路地形的近觀效果

2.1.3 人物模型的建模

初始建模時,首先把人物圖像的正面和側面導入Maya中,將正面圖像和側面圖像十字正交放置在Maya的界面中[3],以此為參照,在與人物相同大小的長方體上,利用加線和調節點面之間的聯系,勾勒出人物的大致體態。然后根據圖像中人物面部、身體和服飾的特征,通過擠出、旋轉、雕刻曲面等方法,逐步細化出人物的面部、身體和服飾。

骨骼搭建是后面人物動作實現是否具有真實性的關鍵。將人體骨骼大至分為若干個關節點,如腳踝,膝關節等。創建關節時,利用Maya關節工具創建骨架的關鍵鏈,根據人體腿部和手部及腰部自然的方向來調整各關節的位置以確保符合人體結構及運動學。進入Hypergaph為各個關節設置父子關系和位置,并利用鏡像復制出另一側的關節,以達到人體對稱骨骼層次,完成整個人體骨架的建立如圖5。

人物模型經過初始建模和骨骼搭建后,需要對其進行蒙皮處理。蒙皮是將骨骼與皮膚和服飾進行綁定的過程[4]。人物皮膚和服飾曲面在動畫期間要隨骨架運動,蒙皮的自然變形效果非常重要,不能出現凸起、縮進、扭曲。

圖5 滑板人物姿態及人體骨架

2.2 角色動作設計

角色的動作動畫設計,主要有關節動畫、單一網格模型動畫(關鍵幀動畫)、骨骼動畫。 關節動畫把角色分成若干獨立部分,每個部分對應一個網格模型,每個部分的動畫被連接成一個整體的動畫,角色比較靈活,《Quake2》中就使用了這種動畫;單一網絡模型動畫由一個完整的網格模型構成,在動畫序列的關鍵幀里記錄各個頂點的原位置及其改變量,然后插值運算實現動畫效果,角色動畫較真實;骨骼動畫是廣泛應用的動畫方式,集成了以上兩種方式的優點,骨骼按角色特點組成一定的層次結構,由關節相連,可做相對運動,皮膚作為單一網格蒙在骨骼之外,決定角色的外觀,皮膚網格每一個頂點都會受到骨骼的影響,從而實現完美的動畫。

滑板游戲中角色采骨骼動畫的方式,現需要對角色進行關鍵幀設定。動畫參數均來源于托尼霍克的的滑板教學視頻,對視頻中滑板動作進行分解,獲取動作的關鍵步驟,并對人物模型進行關鍵幀的設置,通過平移和旋轉關節和骨骼來實現人物動作的姿態,通過調節時間滑塊來設定下一個時間的關鍵幀。具體步驟如下:

(1)首先新建Canvas對象,創建Text子對象用于演示關鍵幀添加,創建Image對象做背景;

(2)創建Animation文件后,添加Text的Scale屬性,準備為該屬性添加動畫;

(3)按下錄制按鈕,在時間條上單擊,移動紅線,并在左邊面板中選中Text,直接在Scene面板中修改Text的尺寸和位置,即添加了一條關鍵幀,依此類推,將關鍵幀動畫設置完整。

游戲系統中的滑行、跳躍、左右傾斜和剎車的動作都是通過關鍵幀動畫制作的,并采用特定的插值方法計算得到。通過實驗證明,貝塞爾曲線插值得到的動畫效果比較自然逼真。

在此需要注意的是,在導入動畫時,要選中嵌入媒體,將包含人物皮膚貼圖的動畫一并導入到fbx文件之中。

關鍵幀動畫制作效果如圖6。

圖6 關鍵幀動畫

2.3 游戲控制設計

游戲的控制模塊分為三部分,分別是碰撞檢測控制、移動控制和動作控制。

(1)碰撞檢測控制。碰撞檢測在3D游戲中至關重要,碰撞檢測要求角色在場景中可以平滑移動,但對于障礙物的高度可以自行判斷是否能通過,在各種前進方向被擋住的情況下都要盡可能的讓人物沿著合理的方向滑動而不是被迫停下。在滿足這些要求的同時還要做到足夠的精確和穩定,防止人物在特殊的情況下掉出場景。

(2)移動控制。人物及場景的移動控制主要用來控制人物與攝像機的移動,以及控制動畫的播放。

在人物運動時,需要符合現實世界運動的物理定律,具體做法如下:當玩家按下前進鍵,腳本將控制播放人物角色的腳部滑動地面的動畫,同時也給人物和滑板一個整體向前的力,這個力的持續時間是游戲角色的腳部與地面產生滑動的時間。因滑板的移動屬于滾動摩擦,人物在前進之后由于摩擦力的作用速度會緩緩降低,這所有的物理計算都是在Unity內部實現的,需要設置恰當的參數。其他動作也用同樣方式實現。具體的參數設定方式如下:

滾動摩擦WheelCollider主要是forward和sideway中的五個參數。forward的前后移動參數是motorTorque和brakeTorque。Sideway的轉向參數即為腳本中的steerAngle。其余兩個是摩擦力(Stiffness)的控制功能,即地面摩擦力的設置,其中Extremum是控制角色剛剛開始起步,Asymptote控制角色勻速滑行。舉個例子,剛開始滑行的時候需要用力地蹬,而兩只腳猜到滑板上后速度一段時間內比較均勻,而Extremum是起步時的參數,Asymptote是勻速參數。slip和Value是控制起步和勻速的位置和摩擦力乘數,slip是控制“什么程度才開始進入勻速”,而Value就是分別控制起步和勻速狀態時的摩擦力程度。

在鍵盤監聽方面,為了保證動作的流暢性,在播放一個動畫時不允許下一個動畫打斷正在播放的動畫,如在跳躍動畫播放時,玩家又按下后退鍵,但此時不可以播放剎車動畫。

(3)動作控制。動作控制是通過對導入的動作動畫文件的控制來實現的。對于導入的fbx動畫文件有特殊的命名要求,對于一個游戲角色的動作動畫文件,必須將文件名設定為“角色名@動作名”,這樣導入到Unity3D中才能集成到一個游戲角色上,因此多個獨立的動作動畫文件將匯集成一個組合,并體現在一個游戲角色上。在Unity3D中調用時,利用對動畫文件的時間分割,將文件劃分成若干相應的動畫片段。

3 實現及優化

3.1 人物模型的優化

因為蒙皮的效果對游戲的呈現效果有直接影響,因此本游戲系統采用Maya工具對人物骨骼進行蒙皮,使用平滑綁定方法綁定骨架,具體過程如下:

(1)選中整個人物模型和人體骨架,通過蒙皮調節影響因子進行骨骼初步綁定。

(2)利用蒙皮透明度和X射線調節人物手部、腿部姿勢檢查關節彎曲位置的蒙皮,若有變形則利用蒙皮權重工具修改蒙皮權重。

(3)通過對人物著色檢查,針對不均勻權重所帶來的斑點灰色處,利用權重錘以及權重筆進行平均化并快速展平區域,同時檢查相鄰頂點權重值并將相同權重值應用于選定頂點以達到人體自然的效果。

3.2 角色控制設計優化

滑板游戲與其他運動類游戲不同,游戲中的主體是人物和滑板,不能像一般的賽車類游戲一樣,將角色看成一個整體,即人物有人物的動作,滑板有滑板的軌跡,如何設置二者的關系成了一個難題。本文的解決辦法是——將滑板和人物看作一個整體。

要將人物和滑板看成一個整體,需要設置以下內容:人物做出一種動作時,滑板也就做出相應的動作,無需腳本來控制,需將人物和滑板作為一個整體導入Maya,并將其看作一個對象來制作動畫,這樣人物和滑板就不會發生相對位移。基于此,需對角色的控制模塊進一步優化。

3.2.1 碰撞檢測控制優化

將在Maya中制作完成的動畫導入Unity3D中,設置碰撞盒子。由于在滑板游戲中,人物和滑板的運動主要考慮兩種類型的碰撞:物體與物體的碰撞和物體與地面的摩擦,因此滑板游戲的碰撞檢測策略主要有兩種:

(1)對碰撞的準確度要求不高時,可以選擇Box Collider,由于人體的橫截面沒有滑板的面積大,因此只在滑板上添加Box Collider,而人物模型上添加Capsule Collider。

(2)在人物與滑板整體運動時,發生的摩擦只是滑板與地面之間的摩擦。而滑板與地面的摩擦是輪子與地面產生的滾動摩擦,在滑板的四個輪子上分別添加Wheel Collider,按照起步和勻速參數,將四個輪子的參數設置一致。

以上碰撞策略通過系統實現表明,人物在游戲中的運動就會很自然。

3.2.2 動作控制優化

Unity3D中的Animator Controller動畫控制器規范角色動畫的行為,游戲中的游戲角色被賦予了多組動畫。利用腳本,通過指令來調用動畫文件,動畫文件的生成對應一個animator。游戲中將stand(站立)動畫設置為所有動畫的落腳點,所有動畫都從站立動畫開始,比如從站立到跳躍,再從跳躍到站立,再進行下一個動作。

在animator中為了組合動作和方便動作的重復利用,需添加默認播放動作,這里將stand做為整個動畫系統的默認播放動作。其他動畫的編輯都是在stand基礎上觸發得到,例如:跳躍、左傾、右傾動作都從站立動作開始如圖7。

圖7 動畫之間的關系

4 結 語

本文介紹了制作滑板游戲的技術及設計方法,針對游戲的開發流程,分別對三維模型構建、動作和控制三個部分的關鍵技術進行了詳細介紹。提出了盤山公路場景的快速生成方法,以及適合于滑板游戲的碰撞檢測策略,并根據游戲需要制作相應的動作控制動畫,保證游戲的真實及連貫性。本文制作3D滑板游戲的方法可供小型3D運動競技類游戲參考。

[1] 韓瑞凱,池建斌.基于Unity3D的凸輪機構虛擬設計與仿真研究[J]. 石家莊鐵道大學學報(自然科學版), 2015, 28(4):81-86.

[2] 劉柱,劉瑾. 虛擬校園的設計和實現[J].華東師范大學學報(自然科學版), 2015(S1):352-359.

[3] KENNY R. How to Cheat in Maya 2014: Tools & Techniques for Character Animation[M]. England and Wales:Focal Press,2013,109-137.

[4] ANDREW G. 3ds Max Modeling for Games: Insider's Guide to Game Character, Vehicle, and Environment Modeling[M]. England and Wales:Focal Press, 2008.10:121-145.

猜你喜歡
動畫設置動作
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
做個動畫給你看
動畫發展史
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
動作描寫要具體
畫動作
動作描寫不可少
我是動畫迷
學生天地(2016年9期)2016-05-17 05:45:06
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 国产精品无码AV中文| 91区国产福利在线观看午夜| 人人妻人人澡人人爽欧美一区| 国产亚卅精品无码| 国产污视频在线观看| 久久综合色播五月男人的天堂| 国产SUV精品一区二区6| 中文字幕在线观看日本| 毛片最新网址| 亚洲自拍另类| 亚洲动漫h| 国产精品林美惠子在线播放| 最新午夜男女福利片视频| 日韩成人在线网站| 国产精品lululu在线观看 | a级毛片免费网站| 无码中文AⅤ在线观看| 九色视频最新网址| a毛片免费看| 免费av一区二区三区在线| 国产精品高清国产三级囯产AV| 人人看人人鲁狠狠高清| 国产一区免费在线观看| 亚洲第一成年网| 亚洲国产欧洲精品路线久久| 久久国产高潮流白浆免费观看| 香蕉视频在线观看www| 99久久这里只精品麻豆| 亚洲人成高清| 人妻精品久久无码区| 亚洲国产精品日韩欧美一区| 毛片久久久| 72种姿势欧美久久久大黄蕉| 欧美97色| 亚洲第一成年免费网站| 国产第三区| 国产成人凹凸视频在线| 亚洲av日韩综合一区尤物| 香蕉99国内自产自拍视频| 免费国产一级 片内射老| 国产精品视频猛进猛出| 看国产一级毛片| 手机精品视频在线观看免费| 伊人激情综合| 国产精品99一区不卡| 国产麻豆另类AV| 亚洲欧洲日韩综合色天使| 亚洲视屏在线观看| 日韩成人免费网站| 免费啪啪网址| 国产精品露脸视频| 欧美福利在线观看| 亚洲男女在线| 三区在线视频| 一级毛片无毒不卡直接观看| 中字无码精油按摩中出视频| 国产麻豆aⅴ精品无码| 成人一级免费视频| 激情综合网址| 亚洲国产精品日韩av专区| 国产成人艳妇AA视频在线| 亚洲一区二区三区麻豆| 97影院午夜在线观看视频| 天天色天天综合| 国产一级做美女做受视频| 香蕉精品在线| 亚洲色婷婷一区二区| 日韩在线欧美在线| 波多野结衣久久精品| 69国产精品视频免费| 丁香婷婷久久| 九色综合伊人久久富二代| 成人在线视频一区| 美女一级免费毛片| 国产精品密蕾丝视频| 午夜视频www| 亚洲国产AV无码综合原创| 激情无码字幕综合| 日韩国产 在线| 亚洲香蕉在线| 久久亚洲国产最新网站| 伊人蕉久影院|