国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Unity3D的滑板運動游戲的設(shè)計與實現(xiàn)

2018-02-05 01:36武家弘宋海玉王鵬杰
大連民族大學(xué)學(xué)報 2018年1期
關(guān)鍵詞:關(guān)鍵幀滑板動畫

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

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

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

1 功能與效果設(shè)計

3D滑板游戲?qū)儆谶\動競技類游戲,按照該類游戲的特點,滑板游戲主要有以下功能:

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

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

(3)按鍵功能?!跋蛏稀辨I控制角色前進滑行;“向下”鍵控制角色剎車;“向左”和“向右”鍵控制角色左傾和右傾;“空格”鍵控制角色跳躍。

圖1 游戲主界面

2 系統(tǒng)模塊設(shè)計

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

圖2 滑板運動游戲開發(fā)模塊

2.1 模型建模

2.1.1 城市模型建模

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

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

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

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

圖3 球體減面結(jié)果

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

2.1.2 盤山公路模型建模

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

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

(2)先行手工設(shè)計地形起伏狀態(tài),并據(jù)此編輯地形起伏形態(tài);

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

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

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

(6)利用天空盒和光照系統(tǒng),根據(jù)游戲需求,進行天空和光照的設(shè)置。

以上方法步驟是地形生成的主要內(nèi)容,需進一步根據(jù)需求準備相應(yīng)的貼圖。

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

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

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

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

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

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

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

2.1.3 人物模型的建模

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

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

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

圖5 滑板人物姿態(tài)及人體骨架

2.2 角色動作設(shè)計

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

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

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

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

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

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

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

關(guān)鍵幀動畫制作效果如圖6。

圖6 關(guān)鍵幀動畫

2.3 游戲控制設(shè)計

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

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

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

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

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

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

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

3 實現(xiàn)及優(yōu)化

3.1 人物模型的優(yōu)化

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

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

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

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

3.2 角色控制設(shè)計優(yōu)化

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

要將人物和滑板看成一個整體,需要設(shè)置以下內(nèi)容:人物做出一種動作時,滑板也就做出相應(yīng)的動作,無需腳本來控制,需將人物和滑板作為一個整體導(dǎo)入Maya,并將其看作一個對象來制作動畫,這樣人物和滑板就不會發(fā)生相對位移?;诖?,需對角色的控制模塊進一步優(yōu)化。

3.2.1 碰撞檢測控制優(yōu)化

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

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

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

以上碰撞策略通過系統(tǒng)實現(xiàn)表明,人物在游戲中的運動就會很自然。

3.2.2 動作控制優(yōu)化

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

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

圖7 動畫之間的關(guān)系

4 結(jié) 語

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

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

[2] 劉柱,劉瑾. 虛擬校園的設(shè)計和實現(xiàn)[J].華東師范大學(xué)學(xué)報(自然科學(xué)版), 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.

猜你喜歡
關(guān)鍵幀滑板動畫
做個動畫給你看
動畫發(fā)展史
我的動畫夢
快樂滑板
基于改進關(guān)鍵幀選擇的RGB-D SLAM算法
湖上的滑板
滑板改造記
去玩滑板
基于相關(guān)系數(shù)的道路監(jiān)控視頻關(guān)鍵幀提取算法
我是動畫迷