




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第八章模型與動畫
1第八章模型與動畫1
8.13D模型背景知識8.1.1主流3D建模軟件的介紹Autodesk3DStudioMaxAutodeskMayaCinema4D28.13D模型背景知識8.1.1主流3D建模軟件的介紹2
8.13D模型背景知識8.1.1主流3D建模軟件的介紹Autodesk3DStudioMaxAutodeskMayaCinema4D38.13D模型背景知識8.1.1主流3D建模軟件的介紹3
8.13D模型背景知識8.1.2 Unity與建模軟件單位的比例關系為了讓模型在導入Unity后能夠保持其本來的尺寸,就需要調(diào)整建模軟件的系統(tǒng)單位或者尺寸。在3D建模軟件中,應盡量使用“米”制單位。表8-1中展示了建模軟件的系統(tǒng)單位在設置成“米”制單位后,與Unity系統(tǒng)單位的對應比例。建模軟件建模軟件內(nèi)部米制尺寸/m導入Unity中的尺寸/m與Unity單位的比例關系3dsMax10.01100:1Maya11001:100Cinema4D11001:10048.13D模型背景知識8.1.2 Unity與建模軟件單
8.13D模型背景知識8.1.2 Unity與建模軟件單位的比例關系下面將以3dsMax為例,介紹一下參數(shù)設置調(diào)整的過程(1)打開3dsMax軟件后,打開“自定義”菜單下的“單位設置”選項,如圖8-1所示。(2)在彈出的“單位設置”對話框中,將“顯示單位比例”下的“公制”選項修改為“厘米”。如圖8-2所示。(3)點擊對話框頂部的“系統(tǒng)單位設置”按鈕,在彈出的“系統(tǒng)單位設置”對話框中將單位修改為“厘米”,如圖8-3所示。修改完成后單擊確定完成參數(shù)設置調(diào)整。
圖8-1自定義菜單 圖8-2單位設置菜單 圖8-3系統(tǒng)單位設置菜單58.13D模型背景知識8.1.2 Unity與建模軟件單
8.13D模型背景知識8.1.3 將3D模型導入Unity下面以3dsMax為例,為讀者演示一遍從建模到將模型導入Unity的過程。具體步驟如下。(1)首先打開3dsMax,點擊右側(cè)“AECExtended”(AEC擴展)中“Foliage”(樹)按鈕,在下方的列表中的模型中任意選擇一種,創(chuàng)建一個樹模型。如圖8-4所示,這時就完成了一個最基本的建模工作。68.13D模型背景知識8.1.3 將3D模型導入Unit
8.13D模型背景知識8.1.3 將3D模型導入Unity(2)點擊窗口左上角的3dsMax標志,打開下拉菜單。單擊導出選項,如圖8-5所示。然后會彈出對話框,選擇導出的路徑并且為導出的文件命名(注意保存類型選擇.FBX),點擊保存按鈕即可導出。(3)將模型導入Unity中,點擊Unity中菜單欄單擊“Assets”→“ImportNewAssets...”,會彈出導入資源對話框,按照模型的路徑找到并選中模型,點擊導入按鈕,完成導入。導入的模型會保存在Assets文件夾中,開發(fā)者可以在Assets面板中查看以及使用。78.13D模型背景知識8.1.3 將3D模型導入Unit
8.2網(wǎng)格—Mesh8.2.1 網(wǎng)格過濾器(MeshFilter)網(wǎng)格過濾器中有一個重要的屬性——“Mesh”,用于儲存物體的網(wǎng)格數(shù)據(jù),它可以從資源中拿出網(wǎng)格并將網(wǎng)格傳遞給網(wǎng)格渲染器(MeshRenderer)
,并在屏幕上渲染。在導入模型資源時,Unity會自動創(chuàng)建一個網(wǎng)格過濾器,如圖8-6所示。圖8-6網(wǎng)格過濾器組件88.2網(wǎng)格—Mesh8.2.1 網(wǎng)格過濾器(MeshF
8.2網(wǎng)格—Mesh8.2.2 Mesh屬性和方法介紹(1)Mesh中有一些用于儲存物體的網(wǎng)格數(shù)據(jù)的屬性,這些屬性主要用于儲存網(wǎng)格中各種數(shù)據(jù),并且均以數(shù)組的形式出現(xiàn),詳細說明如表8-2所示。屬性說明屬性說明vertices網(wǎng)格的頂點數(shù)組normals網(wǎng)格的法線數(shù)組tangents網(wǎng)格的切線數(shù)組uv網(wǎng)格的基礎紋理坐標uv2如果存在,這是為網(wǎng)格設定的第二個紋理坐標subMeshCount子網(wǎng)格的數(shù)量。每種材質(zhì)都有一個獨立的網(wǎng)格列表bounds網(wǎng)格的包圍體colors網(wǎng)格的頂點顏色數(shù)組triangles包含所有三角形頂點索引的數(shù)組vertexCount網(wǎng)格中頂點的數(shù)量(只讀)boneWeights每個頂點的骨骼權重bindposes綁定的姿勢。每個索引綁定的姿勢使用具有相同索引的骨骼98.2網(wǎng)格—Mesh8.2.2 Mesh屬性和方法介紹屬性
8.2網(wǎng)格—Mesh8.2.2 Mesh屬性和方法介紹(2)Mesh中有生成或修改物體網(wǎng)格的方法,這些方法主要用于設置儲存網(wǎng)格各種數(shù)據(jù),并且均以數(shù)組的形式出現(xiàn),詳細說明如表8-3所示。方法說明方法說明Clear清空所有頂點數(shù)據(jù)和所有三角形索引RecalculateBounds重新計算從網(wǎng)格包圍體的頂點RecalculateNormals重新計算網(wǎng)格的法線Optimize顯示優(yōu)化的網(wǎng)格GetTriangles返回網(wǎng)格的三角形列表SetTriangles為網(wǎng)格設定三角形列表CombineMeshes組合多個網(wǎng)格到同一個網(wǎng)格108.2網(wǎng)格—Mesh8.2.2 Mesh屬性和方法介紹方法
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(1)首先創(chuàng)建一個工程項目,并命名為“BNUMeshes”。然后創(chuàng)建地形。(2)創(chuàng)建水。選中“Assets”文件夾,右鍵選擇ImportPackage→Water(ProOnly)導入標準水資源包,如圖8-7所示。然后拖拽DaylightWater到場景中,并調(diào)整水和地形的位置參數(shù),如圖8-9和圖8-10所示,最終實現(xiàn)如圖8-8的位置效果。
圖8-9水位置參數(shù) 圖8-10地形位置參數(shù)118.2網(wǎng)格—Mesh8.2.3 Mesh的使用 圖8-9
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用
圖8-7導入標準水資源包 圖8-8地形與水面的位置128.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(3)創(chuàng)建兩個空對象,分別命名為“Expansion”和“Triangle”,具體步驟為“GameObject”→“CreateEmpty”,如圖8-11所示。然后兩個空對象添加網(wǎng)格過濾器,先選中對象然后單擊菜單“Component”→“Mesh”→“MeshFilter”為對象添加網(wǎng)格過濾器,如圖8-12所示。
圖8-11創(chuàng)建空對象圖8-12添加網(wǎng)格過濾器138.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-1
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(4)下面向兩個空對象的網(wǎng)格過濾器組件中添加網(wǎng)格屬性。將“Assets\Meshes”文件夾下的“Triangle.FBX”和“Expansion.FBX”模型文件中的網(wǎng)格“Box01”,如圖8-13,分別拖拽到“Expansion”和“Triangle”對象的網(wǎng)格過濾器組件的“Mesh”屬性中,如圖8-14所示。
圖8-13模型文件中的網(wǎng)格“Box01” 圖8-14網(wǎng)格過濾器組件148.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-13
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(5)創(chuàng)建一個空對象,并且命名為“Obj1”,調(diào)整該對象的位置和大小,具體參數(shù)如圖8-15所示。然后為“Obj1”對象添加網(wǎng)格過濾器和網(wǎng)格渲染器,具體步驟為選中對象然后單擊菜單“Component”→“Mesh”→“MeshRenderer”為對象添加網(wǎng)格渲染器,如圖8-16所示。
圖8-15“Obj1”對象的位置和大小 圖8-16添加網(wǎng)格渲染器158.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(6)然后“Obj1”對象添加紋理。將“Assets\Textures”文件夾下的“wenli.tga”紋理文件拖拽到“Obj1”對象上,然后按照相同的方法再創(chuàng)建4個對象,并分別命名為“Obj2”、“Obj3”、“Obj4”、“Obj5”,拖拽后的五個對象的網(wǎng)格渲染器的“material”屬性就均被設置為“wenli”材質(zhì),如圖8-17所示。圖8-17“Obj1”對象的網(wǎng)格渲染器組件168.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-17
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(7)單擊鼠標右鍵,在彈出的菜單中選擇“Create”→“C#Script”創(chuàng)建腳本。命名為“BNUMesh.cs”,然后雙擊打開腳本,開始“BNUMesh.cs”腳本的編寫,本腳本主要用于通過控制網(wǎng)格屬性來實現(xiàn)物體變形的效果
4 publicclassBNUMesh:MonoBehaviour{5 Meshmesh; //物體的網(wǎng)格對象6 inttime; //用于記錄時間7 publicGameObject[]g; //包含網(wǎng)格的對象數(shù)組8 Mesh[]m; //網(wǎng)格對象數(shù)組9 publicList<Vector3>vertice; //網(wǎng)格的頂點數(shù)組10 publicList<int>triangle; //包含所有三角形頂點索引的數(shù)組11 publicList<Vector2>uv; //網(wǎng)格的基礎紋理坐標12 publicList<Vector3>normal; //網(wǎng)格的法線數(shù)組13 publicList<Vector4>tangent; //網(wǎng)格的切線數(shù)組14 boolbian=true; //物體一次變形是否完成15 ints=0; //物體變形形狀標志位178.2網(wǎng)格—Mesh8.2.3 Mesh的使用17
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(8)在“BNUMesh.cs”腳本中Start方法的主要功能是系統(tǒng)通過在場景加載時調(diào)用此方法來實現(xiàn)物體網(wǎng)格的細化,Start方法的具體代碼如下。詳見課本(9)在“BNUMesh.cs”腳本中Update方法的主要功能是系統(tǒng)通過調(diào)用此方法來不斷改變網(wǎng)格數(shù)據(jù)使物體不斷變形。188.2網(wǎng)格—Mesh8.2.3 Mesh的使用18
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(10)將腳本“BNUMesh.cs”分別拖拽到上面創(chuàng)建的六個游戲?qū)ο笊?。然后單擊游戲?qū)ο?,在屬性查看器中可看到腳本組件的內(nèi)容,然后設置參數(shù),如圖8-18所示。圖8-18腳本參數(shù)設置198.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-18
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(11)單擊游戲運行按鈕,觀察效果。在Game窗口中可以看到地形和不斷變形的六個物體。如圖8-19和圖8-20所示。
圖8-19案例運行效果圖1 圖8-20案例運行效果圖2208.2網(wǎng)格—Mesh8.2.3 Mesh的使用 圖8
8.3骨骼結構映射——AvatarAvatar是Mecanim動畫系統(tǒng)中自帶的人形骨骼結構與模型文件中的骨骼結構之間的映射,將帶有動畫的模型文件資源導入Unity3D后,系統(tǒng)會自動為模型文件生成一個Avatar文件作為其子對象,如圖8-21所示。
圖8-21Avatar文件圖 218.3骨骼結構映射——AvatarAvatar是Mecan
8.3骨骼結構映射——Avatar8.3.1 Avatar的創(chuàng)建單擊剛剛的人形角色模型文件,在Inspector視口中選擇Rig選項,如圖8-22所示。單擊AimationType下拉按鈕,選擇Humanoid選項,然后點擊Apply按鈕,視口變成如圖8-23所示。完成后該模型文件已經(jīng)被設置為人形角色模型,并且系統(tǒng)會為其創(chuàng)建Avatar文件。
8-22Rig選項圖 8-23Humanoid模式228.3骨骼結構映射——Avatar8.3.1 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(1)在Assets面板中單擊模型文件下子對象Avatar文件,然后單擊Inspector面板中的“ConfigureAvatar”按鈕,如圖8-24所示。此時系統(tǒng)會關閉原場景窗口,進入Avatar的配置窗口。配置窗口是系統(tǒng)開啟的一個臨時Scene視口,并且配置結束后該臨時窗口會自動關閉。
圖8-24 圖8-25 238.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(2)配置窗口的Scene窗口中會出現(xiàn)導入人物模型的骨骼,如圖8-26所示。右側(cè)為Avatar的Inspector面板,配置窗口與平時開發(fā)用的Scene窗口相同,更改Inspector中的參數(shù)后也會改變顯示在Scene視口中的模型。圖8-26Scene視口248.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(3)在配置窗口右側(cè)的Avatar配置面板中可以按部位對人形角色模型進行配置,此面板中共分為“Body”、“Head”、“LeftHand”和“RightHand”四個方面,分別對應四個按鈕,如圖8-25所示。點擊不同的按鈕會出現(xiàn)不同部位的骨骼配置窗口,并且各個部位的配置互不影響,如圖8-27和圖8-28所示。
圖8-27頭部骨骼配置窗口 圖8-28手部骨骼配置窗口258.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(4)一般情況下開發(fā)者創(chuàng)建了Avatar后Uniy3D都會對其正確的初始化,但有時候如果出于模型文件本身的問題,Unity3D無法識別到每個部位相應的骨骼,此時錯誤部位就會呈現(xiàn)紅色,如圖8-29所示。
圖8-29錯誤部位呈紅色
268.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(5)開發(fā)者此時需要手動更改錯誤部位的骨骼。首先在Hierarchy窗口的骨骼列表中找到正確的骨骼,如圖8-30所示。然后將正確的骨骼拖拽到Inspector視口中該骨骼相對應的位置上,若拖拽到正確位置后,錯誤的部位會變回綠色,Avatar的也就配置完成了。圖8-30Hierarchy窗口中的骨骼列表278.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置(1)點擊Avatar視口中的Muscles按鈕進入Muscle的配置窗口。該窗口和剛剛的骨骼配置窗口類似,由預覽窗口、設置窗口及附加配置窗口三部分組成。(2)下面以左胳膊的骨骼為例對參數(shù)調(diào)節(jié)進行講解,首先選中設置窗口中LeftArm參數(shù),其附帶的子參數(shù)也會隨之展開,包括肩部的上下和前后移動,胳膊的上下、前后移動和轉(zhuǎn)動等等,如圖8-31所示。
圖8-31Muscle配置窗口
288.3骨骼結構映射——Avatar8.3.3 Muscle
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置(3)讀者可以通過拖動參數(shù)對應的拖拉條,調(diào)節(jié)相對應部位骨骼的運動范圍,同時在Scene窗口中對應的骨骼上會出現(xiàn)一個扇形區(qū)域,表示骨骼旋轉(zhuǎn)過的范圍,如圖8-32所示,能夠幫助開發(fā)者調(diào)節(jié)骨骼的動作范圍。
圖8-32Scene視圖298.3骨骼結構映射——Avatar8.3.3 Muscle
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置(4)在下方AdditionalSetting窗口中還可以進行其它的設置,比如UpperArmTwist參數(shù),如圖8-33所示。讀者可通過拖動其拖拉條該骨骼的運動范圍進行調(diào)整。設置完畢之后點擊配置窗口右下角的“Done”按鈕結束Muscle的配置。
圖8-33其它設置窗口
308.3骨骼結構映射——Avatar8.3.3 Muscle
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置(5)返回播放任務模型的動畫,在Assets面板中找到導入的模型資源,點擊其中的動畫文件,如圖8-34所示。在動畫的Inspetor面板下方會播放該動畫,點擊上方的進度條可以按時間查看動畫每幀的動作,如圖8-35所示。
8-34模型文件下的動畫文件318.3骨骼結構映射——Avatar8.3.3 Muscle
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置
8-35播放動畫文件328.3骨骼結構映射——Avatar8.3.3 Muscle8.4動畫控制器8.4.1 創(chuàng)建動畫控制器在Assets面板中單擊鼠標右鍵“Create”→“AnimatorController”,創(chuàng)建一個動畫控制器,如圖8-36所示。動畫控制器的顯示和修改在獨立的動畫編輯界面,雙擊該動畫控制器,進入動畫控制器編輯窗口,如圖8-37所示
圖8-36創(chuàng)建動畫控制器 圖8-37動畫控制器編輯窗口338.4動畫控制器8.4.1 創(chuàng)建動畫控制器 圖8-38.4動畫控制器8.4.2 動畫控制器的配置1、動畫狀態(tài)機和過渡條件動畫狀態(tài)機:一個角色在游戲中的不同狀態(tài)下可以作出不同的動作,狀態(tài)機來更為方便地控制角色動畫。每一個動畫控制器中的狀態(tài)機會有不同的顏色,每一個動畫狀態(tài)機都對應一個動作。動畫狀態(tài)機的參數(shù)含義如表8-4所示
348.4動畫控制器8.4.2 動畫控制器的配置 348.4動畫控制器8.4.2 動畫控制器的配置動畫狀態(tài)機之間的箭頭表示兩個動畫之間的連接,將鼠標箭頭放在動畫狀態(tài)單元上,右鍵點擊“MakeTransition”創(chuàng)建動畫過渡條件,并再次點擊另一個動畫狀態(tài)單元上,完成動畫過渡條件的連接
名稱說明StateMachine動畫狀態(tài)機,可包含若干個動畫狀態(tài)單元State動畫狀態(tài)單元,動畫狀態(tài)機機制中的最小單元Sub-StateMachine子動畫狀態(tài)機,可包含若干個動畫狀態(tài)單元或子動畫狀態(tài)機BlendTree動畫混合樹,一種特殊的動畫狀態(tài)單元AnyState特殊的狀態(tài)單元,表示任意動畫狀態(tài)Entry本動畫狀態(tài)機的入口Exit本動畫狀態(tài)機的出口358.4動畫控制器8.4.2 動畫控制器的配置 名稱說明S8.4動畫控制器8.4.2 動畫控制器的配置2、過渡條件的參數(shù)設置創(chuàng)建過渡條件的參數(shù)的方法,在動畫狀態(tài)機窗口左側(cè)中的Parameters視口,點擊右上角的“+”號可選擇想要添加的參數(shù)類型,如圖8-39所示。然后可以為參數(shù)命名,并為其設置初始值,如圖8-40所示。
圖8-39新建參數(shù) 圖8-40參數(shù)設置368.4動畫控制器8.4.2 動畫控制器的配置 圖8-8.4動畫控制器8.4.2 動畫控制器的配置單擊想要添加參數(shù)的過渡條件,然后在Inspector視口中的Conditions列表中單擊“+”號創(chuàng)建參數(shù),選擇所需的參數(shù),如圖8-41。然后為參數(shù)添加對比條件,不同類型的參數(shù)對比條件也不同,比如Float類型參數(shù)的對比條件有“Greater”和“Less”,如圖8-42所示。
圖8-41為過渡條件創(chuàng)建參數(shù) 圖8-42為參數(shù)添加對比條件378.4動畫控制器8.4.2 動畫控制器的配置圖8-48.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(1)首先創(chuàng)建一個工程項目,并命名為“BNUAnimator”。然后將隨書光盤的資源目錄下第8章的“BNUAnimator”工程文件下的“Animations”、“Models”、“Textures”等文件夾依次拷備進項目中的“Assets”資源文件夾下。然后創(chuàng)建一個名為“AniControllers”的空文件夾,用于存放項目所需的動畫控制器文件。(2)在AniControllers文件夾下單擊鼠標右鍵“Create”→“AnimatorController”創(chuàng)建一個動畫控制器,并命名為“AnimatorController”。雙擊該動畫控制器,進入動畫控制器編輯窗口。(3)向編輯窗口拖拽進“Boy@ForwardKick”、“Boy@KickBack”和“Boy@Idle”三個動畫文件
388.4動畫控制器8.4.2 動畫控制器的配置 388.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(4)將Idle動畫狀態(tài)單元設置為默認動畫單元。右鍵點擊Idle動畫狀態(tài)單元,在菜單中選擇“SetasLayerDefultState”,如圖8-43所示。修改完成后Idle動畫狀態(tài)單元會變?yōu)辄S色,然后為各個動畫狀態(tài)單元添加過渡條件,如圖8-44所示。
圖8-43添加動畫單元 8-44為動畫單元添加過渡398.4動畫控制器8.4.2 動畫控制器的配置 圖8-48.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(5)動畫單元和過渡添加完畢后,下面向游戲控制器中添加實現(xiàn)過渡條件所需的參數(shù)。單擊Parameters視口上的“+”號,添加一個Float類型的參數(shù),并命名為“AniFlag”,設置其初始值為-1.0,如圖8-45所示。
圖8-45創(chuàng)建參數(shù)
408.4動畫控制器8.4.2 動畫控制器的配置 圖8-8.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(6)然后選中任意一個過渡條件,在Inspector視口中的Conditions列表中點擊“+”號創(chuàng)建參數(shù)并進行參數(shù)的設置(7)在Assets面板下新建一個場景,雙擊打開場景。在場景中創(chuàng)建一個地形,給地形添加綠色草地紋理,然后為其添加天空盒,并調(diào)整光照方向至合適角度,如圖8-46所示。
418.4動畫控制器8.4.2 動畫控制器的配置 418.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(8)向場景中添加人物模型,將Models文件夾下的fighter模型文件拖拽到場景中,然后為其添加貼圖,如圖8-47所示。
圖8-47添加人物模型
428.4動畫控制器8.4.2 動畫控制器的配置 圖88.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(9)接下來需要創(chuàng)建UI界面,點擊“GameObject”→“UI”→“Button”創(chuàng)建兩個按鈕,并分別命名為“Button1”和“Button2”按鈕。這兩個按鈕分別用于對兩個動畫的控制,當按下任意一個按鈕時,系統(tǒng)將啟動對應的動畫過渡。(10)下面為人物模型添加動畫組件。選中“fighter”游戲?qū)ο?,將之前?chuàng)建的“AnimatorController”動畫控制器拖拽到Animator組件下的“Controller”框中,如圖8-48所示。
代碼見課本
438.4動畫控制器8.4.2 動畫控制器的配置 438.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(10)代碼編寫完成后將其掛載到fighter游戲?qū)ο笊?,然后點擊Button1和Button2兩個按鈕對象,將fighter對象拖拽到Inspector面板下方的OnClick方法的目標對象上,然后選擇相應的方法,如圖8-49所示。
圖8-49掛載腳本和方法448.4動畫控制器8.4.2 動畫控制器的配置 圖8-498.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(11)點擊運行按鈕之后,案例的運行效果會顯示在Game窗口中,點擊屏幕上的兩個按鈕,可以使場景中的小男孩做出不同的動作,如圖8-50和8-51所示。
圖8-50案例運行效果一 圖8-51案例運行效果二458.4動畫控制器8.4.2 動畫控制器的配置 圖8.5角色動畫的重定向Unity3D提供了一套用于人形角色動畫的重定向機制。游戲美工開發(fā)人員可以獨立地制作好所有角色模型,游戲動畫開發(fā)人員也可獨立地進行動畫的制作,兩者不互干涉,
8.5.1 重定向的原理Mecanim動畫系統(tǒng)提供了一套簡化過的人形角色骨骼架構。簡單來說,Avatar文件就是模型骨骼架構與系統(tǒng)自帶骨骼架構間的橋梁,重定向的模型骨骼架構都要通過Avatar與自帶骨骼架構搭建映射。映射后的模型骨骼可能通過Avatar驅(qū)動系統(tǒng)自帶骨骼運動,這樣就會產(chǎn)生一套通用的骨骼動畫,其他角色模型只需借助這套通用的骨骼動畫,就可以做出與原模型相同的動作,即實現(xiàn)角色動畫的重定向。
468.5角色動畫的重定向Unity3D提供了一套用于人形角8.5角色動畫的重定向8.5.2 重定向的應用(1)首先創(chuàng)建一個工程項目,并命名為“BNUAiControl”,然后將隨書光盤的資源目錄下第8章的“BNUAnimator”工程文件下的“Animations”、“Models”、“Textures”等文件夾依次拷備進項目中的“Assets”資源文件夾下。然后創(chuàng)建一個名為“AniControllers”的空文件夾,用于存放項目所需的動畫控制器文件。(2)在AniControllers文件夾下單擊鼠標右鍵“Create”→“AnimatorController”創(chuàng)建一個動畫控制器,并命名為“AnimatorController”。雙擊該動畫控制器,然后將“Boy@JumpTurnKick”和“Boy@RaceSideKick”兩個動畫文件拖拽進窗口,創(chuàng)建兩個動畫狀態(tài)單元,如圖8-52所示。
圖8-52創(chuàng)建動畫控制器
478.5角色動畫的重定向8.5.2 重定向的應用 圖8.5角色動畫的重定向8.5.2 重定向的應用(3)動畫單元和過渡添加完畢后,下面向游戲控制器中添加實現(xiàn)過渡條件所需的參數(shù)。單擊Parameters視口上的“+”號,添加兩個Bool類型的參數(shù),并分別命名為“JtoR”和“RtoJ”,設置其初始值為false,如圖8-53所示。(4)然后選中任意一個過渡條件,在Inspector視口中的Conditions列表中點擊“+”號創(chuàng)建參數(shù),并進行參數(shù)的設置。
488.5角色動畫的重定向8.5.2 重定向的應用 488.5角色動畫的重定向8.5.2 重定向的應用(5)在Assets面板下新建一個場景,雙擊打開場景。在場景中創(chuàng)建一個地形,給地形添加綠色草地紋理,然后為其添加天空盒,并調(diào)整光照方向至合適角度,如圖8-54所示。
圖8-54添加地形和天空盒圖
498.5角色動畫的重定向8.5.2 重定向的應用 圖8.5角色動畫的重定向8.5.2 重定向的應用(6)向場景中添加人物模型,將Models文件夾下的Boy模型文件和Girl模型文件拖拽到場景中,然后為其添加貼圖,如圖8-55所示。
508.5角色動畫的重定向8.5.2 重定向的應用 508.5角色動畫的重定向8.5.2 重定向的應用(7)接下來需要創(chuàng)建UI界面,點擊“GameObject”→“UI”→“Button”創(chuàng)建兩個按鈕,并分別命名為“Button1”和“Button2”按鈕。這兩個按鈕分別用于對兩個動畫的控制,當按下任意一個按鈕時,系統(tǒng)將啟動對應的動畫過渡。(8)下面為人物模型添加動畫組件。選中“Boy”和“Girl”游戲?qū)ο螅瑢⒅皠?chuàng)建的“AnimatorController”動畫控制器拖拽到Animator組件下的“Controller”框中,然后再新建一個C#腳本,并將其命名為“BNUAniControl.cs”。詳細代碼見課本。
518.5角色動畫的重定向8.5.2 重定向的應用 518.5角色動畫的重定向8.5.2 重定向的應用(9)代碼編寫完成后將其掛載到Boy游戲?qū)ο笊?,然后點擊Button1和Button2兩個按鈕對象,將Boy對象拖拽到Inspector面板下方的兩個按鈕的OnClick方法的目標對象上,然后選擇相應的方法,如圖8-56所示。
圖8-56掛載腳本528.5角色動畫的重定向8.5.2 重定向的應用 圖8-58.5角色動畫的重定向8.5.2 重定向的應用(10)接下來點擊運行按鈕,其運行效果就會呈現(xiàn)在Game窗口中,當讀者點擊任意一個按鈕時,兩個游戲角色對象就會做出相同的動作,如圖8-57和圖8-58所示。兩個角色對象通過Mecanim中的動畫重定向功能,同時播放同一個動畫。
圖8-57案例運行效果一 圖8-58案例運行效果二538.5角色動畫的重定向8.5.2 重定向的應用 圖8第八章模型與動畫
54第八章模型與動畫1
8.13D模型背景知識8.1.1主流3D建模軟件的介紹Autodesk3DStudioMaxAutodeskMayaCinema4D558.13D模型背景知識8.1.1主流3D建模軟件的介紹2
8.13D模型背景知識8.1.1主流3D建模軟件的介紹Autodesk3DStudioMaxAutodeskMayaCinema4D568.13D模型背景知識8.1.1主流3D建模軟件的介紹3
8.13D模型背景知識8.1.2 Unity與建模軟件單位的比例關系為了讓模型在導入Unity后能夠保持其本來的尺寸,就需要調(diào)整建模軟件的系統(tǒng)單位或者尺寸。在3D建模軟件中,應盡量使用“米”制單位。表8-1中展示了建模軟件的系統(tǒng)單位在設置成“米”制單位后,與Unity系統(tǒng)單位的對應比例。建模軟件建模軟件內(nèi)部米制尺寸/m導入Unity中的尺寸/m與Unity單位的比例關系3dsMax10.01100:1Maya11001:100Cinema4D11001:100578.13D模型背景知識8.1.2 Unity與建模軟件單
8.13D模型背景知識8.1.2 Unity與建模軟件單位的比例關系下面將以3dsMax為例,介紹一下參數(shù)設置調(diào)整的過程(1)打開3dsMax軟件后,打開“自定義”菜單下的“單位設置”選項,如圖8-1所示。(2)在彈出的“單位設置”對話框中,將“顯示單位比例”下的“公制”選項修改為“厘米”。如圖8-2所示。(3)點擊對話框頂部的“系統(tǒng)單位設置”按鈕,在彈出的“系統(tǒng)單位設置”對話框中將單位修改為“厘米”,如圖8-3所示。修改完成后單擊確定完成參數(shù)設置調(diào)整。
圖8-1自定義菜單 圖8-2單位設置菜單 圖8-3系統(tǒng)單位設置菜單588.13D模型背景知識8.1.2 Unity與建模軟件單
8.13D模型背景知識8.1.3 將3D模型導入Unity下面以3dsMax為例,為讀者演示一遍從建模到將模型導入Unity的過程。具體步驟如下。(1)首先打開3dsMax,點擊右側(cè)“AECExtended”(AEC擴展)中“Foliage”(樹)按鈕,在下方的列表中的模型中任意選擇一種,創(chuàng)建一個樹模型。如圖8-4所示,這時就完成了一個最基本的建模工作。598.13D模型背景知識8.1.3 將3D模型導入Unit
8.13D模型背景知識8.1.3 將3D模型導入Unity(2)點擊窗口左上角的3dsMax標志,打開下拉菜單。單擊導出選項,如圖8-5所示。然后會彈出對話框,選擇導出的路徑并且為導出的文件命名(注意保存類型選擇.FBX),點擊保存按鈕即可導出。(3)將模型導入Unity中,點擊Unity中菜單欄單擊“Assets”→“ImportNewAssets...”,會彈出導入資源對話框,按照模型的路徑找到并選中模型,點擊導入按鈕,完成導入。導入的模型會保存在Assets文件夾中,開發(fā)者可以在Assets面板中查看以及使用。608.13D模型背景知識8.1.3 將3D模型導入Unit
8.2網(wǎng)格—Mesh8.2.1 網(wǎng)格過濾器(MeshFilter)網(wǎng)格過濾器中有一個重要的屬性——“Mesh”,用于儲存物體的網(wǎng)格數(shù)據(jù),它可以從資源中拿出網(wǎng)格并將網(wǎng)格傳遞給網(wǎng)格渲染器(MeshRenderer)
,并在屏幕上渲染。在導入模型資源時,Unity會自動創(chuàng)建一個網(wǎng)格過濾器,如圖8-6所示。圖8-6網(wǎng)格過濾器組件618.2網(wǎng)格—Mesh8.2.1 網(wǎng)格過濾器(MeshF
8.2網(wǎng)格—Mesh8.2.2 Mesh屬性和方法介紹(1)Mesh中有一些用于儲存物體的網(wǎng)格數(shù)據(jù)的屬性,這些屬性主要用于儲存網(wǎng)格中各種數(shù)據(jù),并且均以數(shù)組的形式出現(xiàn),詳細說明如表8-2所示。屬性說明屬性說明vertices網(wǎng)格的頂點數(shù)組normals網(wǎng)格的法線數(shù)組tangents網(wǎng)格的切線數(shù)組uv網(wǎng)格的基礎紋理坐標uv2如果存在,這是為網(wǎng)格設定的第二個紋理坐標subMeshCount子網(wǎng)格的數(shù)量。每種材質(zhì)都有一個獨立的網(wǎng)格列表bounds網(wǎng)格的包圍體colors網(wǎng)格的頂點顏色數(shù)組triangles包含所有三角形頂點索引的數(shù)組vertexCount網(wǎng)格中頂點的數(shù)量(只讀)boneWeights每個頂點的骨骼權重bindposes綁定的姿勢。每個索引綁定的姿勢使用具有相同索引的骨骼628.2網(wǎng)格—Mesh8.2.2 Mesh屬性和方法介紹屬性
8.2網(wǎng)格—Mesh8.2.2 Mesh屬性和方法介紹(2)Mesh中有生成或修改物體網(wǎng)格的方法,這些方法主要用于設置儲存網(wǎng)格各種數(shù)據(jù),并且均以數(shù)組的形式出現(xiàn),詳細說明如表8-3所示。方法說明方法說明Clear清空所有頂點數(shù)據(jù)和所有三角形索引RecalculateBounds重新計算從網(wǎng)格包圍體的頂點RecalculateNormals重新計算網(wǎng)格的法線Optimize顯示優(yōu)化的網(wǎng)格GetTriangles返回網(wǎng)格的三角形列表SetTriangles為網(wǎng)格設定三角形列表CombineMeshes組合多個網(wǎng)格到同一個網(wǎng)格638.2網(wǎng)格—Mesh8.2.2 Mesh屬性和方法介紹方法
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(1)首先創(chuàng)建一個工程項目,并命名為“BNUMeshes”。然后創(chuàng)建地形。(2)創(chuàng)建水。選中“Assets”文件夾,右鍵選擇ImportPackage→Water(ProOnly)導入標準水資源包,如圖8-7所示。然后拖拽DaylightWater到場景中,并調(diào)整水和地形的位置參數(shù),如圖8-9和圖8-10所示,最終實現(xiàn)如圖8-8的位置效果。
圖8-9水位置參數(shù) 圖8-10地形位置參數(shù)648.2網(wǎng)格—Mesh8.2.3 Mesh的使用 圖8-9
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用
圖8-7導入標準水資源包 圖8-8地形與水面的位置658.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(3)創(chuàng)建兩個空對象,分別命名為“Expansion”和“Triangle”,具體步驟為“GameObject”→“CreateEmpty”,如圖8-11所示。然后兩個空對象添加網(wǎng)格過濾器,先選中對象然后單擊菜單“Component”→“Mesh”→“MeshFilter”為對象添加網(wǎng)格過濾器,如圖8-12所示。
圖8-11創(chuàng)建空對象圖8-12添加網(wǎng)格過濾器668.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-1
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(4)下面向兩個空對象的網(wǎng)格過濾器組件中添加網(wǎng)格屬性。將“Assets\Meshes”文件夾下的“Triangle.FBX”和“Expansion.FBX”模型文件中的網(wǎng)格“Box01”,如圖8-13,分別拖拽到“Expansion”和“Triangle”對象的網(wǎng)格過濾器組件的“Mesh”屬性中,如圖8-14所示。
圖8-13模型文件中的網(wǎng)格“Box01” 圖8-14網(wǎng)格過濾器組件678.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-13
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(5)創(chuàng)建一個空對象,并且命名為“Obj1”,調(diào)整該對象的位置和大小,具體參數(shù)如圖8-15所示。然后為“Obj1”對象添加網(wǎng)格過濾器和網(wǎng)格渲染器,具體步驟為選中對象然后單擊菜單“Component”→“Mesh”→“MeshRenderer”為對象添加網(wǎng)格渲染器,如圖8-16所示。
圖8-15“Obj1”對象的位置和大小 圖8-16添加網(wǎng)格渲染器688.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(6)然后“Obj1”對象添加紋理。將“Assets\Textures”文件夾下的“wenli.tga”紋理文件拖拽到“Obj1”對象上,然后按照相同的方法再創(chuàng)建4個對象,并分別命名為“Obj2”、“Obj3”、“Obj4”、“Obj5”,拖拽后的五個對象的網(wǎng)格渲染器的“material”屬性就均被設置為“wenli”材質(zhì),如圖8-17所示。圖8-17“Obj1”對象的網(wǎng)格渲染器組件698.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-17
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(7)單擊鼠標右鍵,在彈出的菜單中選擇“Create”→“C#Script”創(chuàng)建腳本。命名為“BNUMesh.cs”,然后雙擊打開腳本,開始“BNUMesh.cs”腳本的編寫,本腳本主要用于通過控制網(wǎng)格屬性來實現(xiàn)物體變形的效果
4 publicclassBNUMesh:MonoBehaviour{5 Meshmesh; //物體的網(wǎng)格對象6 inttime; //用于記錄時間7 publicGameObject[]g; //包含網(wǎng)格的對象數(shù)組8 Mesh[]m; //網(wǎng)格對象數(shù)組9 publicList<Vector3>vertice; //網(wǎng)格的頂點數(shù)組10 publicList<int>triangle; //包含所有三角形頂點索引的數(shù)組11 publicList<Vector2>uv; //網(wǎng)格的基礎紋理坐標12 publicList<Vector3>normal; //網(wǎng)格的法線數(shù)組13 publicList<Vector4>tangent; //網(wǎng)格的切線數(shù)組14 boolbian=true; //物體一次變形是否完成15 ints=0; //物體變形形狀標志位708.2網(wǎng)格—Mesh8.2.3 Mesh的使用17
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(8)在“BNUMesh.cs”腳本中Start方法的主要功能是系統(tǒng)通過在場景加載時調(diào)用此方法來實現(xiàn)物體網(wǎng)格的細化,Start方法的具體代碼如下。詳見課本(9)在“BNUMesh.cs”腳本中Update方法的主要功能是系統(tǒng)通過調(diào)用此方法來不斷改變網(wǎng)格數(shù)據(jù)使物體不斷變形。718.2網(wǎng)格—Mesh8.2.3 Mesh的使用18
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(10)將腳本“BNUMesh.cs”分別拖拽到上面創(chuàng)建的六個游戲?qū)ο笊?。然后單擊游戲?qū)ο?,在屬性查看器中可看到腳本組件的內(nèi)容,然后設置參數(shù),如圖8-18所示。圖8-18腳本參數(shù)設置728.2網(wǎng)格—Mesh8.2.3 Mesh的使用圖8-18
8.2網(wǎng)格—Mesh8.2.3 Mesh的使用(11)單擊游戲運行按鈕,觀察效果。在Game窗口中可以看到地形和不斷變形的六個物體。如圖8-19和圖8-20所示。
圖8-19案例運行效果圖1 圖8-20案例運行效果圖2738.2網(wǎng)格—Mesh8.2.3 Mesh的使用 圖8
8.3骨骼結構映射——AvatarAvatar是Mecanim動畫系統(tǒng)中自帶的人形骨骼結構與模型文件中的骨骼結構之間的映射,將帶有動畫的模型文件資源導入Unity3D后,系統(tǒng)會自動為模型文件生成一個Avatar文件作為其子對象,如圖8-21所示。
圖8-21Avatar文件圖 748.3骨骼結構映射——AvatarAvatar是Mecan
8.3骨骼結構映射——Avatar8.3.1 Avatar的創(chuàng)建單擊剛剛的人形角色模型文件,在Inspector視口中選擇Rig選項,如圖8-22所示。單擊AimationType下拉按鈕,選擇Humanoid選項,然后點擊Apply按鈕,視口變成如圖8-23所示。完成后該模型文件已經(jīng)被設置為人形角色模型,并且系統(tǒng)會為其創(chuàng)建Avatar文件。
8-22Rig選項圖 8-23Humanoid模式758.3骨骼結構映射——Avatar8.3.1 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(1)在Assets面板中單擊模型文件下子對象Avatar文件,然后單擊Inspector面板中的“ConfigureAvatar”按鈕,如圖8-24所示。此時系統(tǒng)會關閉原場景窗口,進入Avatar的配置窗口。配置窗口是系統(tǒng)開啟的一個臨時Scene視口,并且配置結束后該臨時窗口會自動關閉。
圖8-24 圖8-25 768.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(2)配置窗口的Scene窗口中會出現(xiàn)導入人物模型的骨骼,如圖8-26所示。右側(cè)為Avatar的Inspector面板,配置窗口與平時開發(fā)用的Scene窗口相同,更改Inspector中的參數(shù)后也會改變顯示在Scene視口中的模型。圖8-26Scene視口778.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(3)在配置窗口右側(cè)的Avatar配置面板中可以按部位對人形角色模型進行配置,此面板中共分為“Body”、“Head”、“LeftHand”和“RightHand”四個方面,分別對應四個按鈕,如圖8-25所示。點擊不同的按鈕會出現(xiàn)不同部位的骨骼配置窗口,并且各個部位的配置互不影響,如圖8-27和圖8-28所示。
圖8-27頭部骨骼配置窗口 圖8-28手部骨骼配置窗口788.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(4)一般情況下開發(fā)者創(chuàng)建了Avatar后Uniy3D都會對其正確的初始化,但有時候如果出于模型文件本身的問題,Unity3D無法識別到每個部位相應的骨骼,此時錯誤部位就會呈現(xiàn)紅色,如圖8-29所示。
圖8-29錯誤部位呈紅色
798.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.2 Avatar的配置(5)開發(fā)者此時需要手動更改錯誤部位的骨骼。首先在Hierarchy窗口的骨骼列表中找到正確的骨骼,如圖8-30所示。然后將正確的骨骼拖拽到Inspector視口中該骨骼相對應的位置上,若拖拽到正確位置后,錯誤的部位會變回綠色,Avatar的也就配置完成了。圖8-30Hierarchy窗口中的骨骼列表808.3骨骼結構映射——Avatar8.3.2 Avatar
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置(1)點擊Avatar視口中的Muscles按鈕進入Muscle的配置窗口。該窗口和剛剛的骨骼配置窗口類似,由預覽窗口、設置窗口及附加配置窗口三部分組成。(2)下面以左胳膊的骨骼為例對參數(shù)調(diào)節(jié)進行講解,首先選中設置窗口中LeftArm參數(shù),其附帶的子參數(shù)也會隨之展開,包括肩部的上下和前后移動,胳膊的上下、前后移動和轉(zhuǎn)動等等,如圖8-31所示。
圖8-31Muscle配置窗口
818.3骨骼結構映射——Avatar8.3.3 Muscle
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置(3)讀者可以通過拖動參數(shù)對應的拖拉條,調(diào)節(jié)相對應部位骨骼的運動范圍,同時在Scene窗口中對應的骨骼上會出現(xiàn)一個扇形區(qū)域,表示骨骼旋轉(zhuǎn)過的范圍,如圖8-32所示,能夠幫助開發(fā)者調(diào)節(jié)骨骼的動作范圍。
圖8-32Scene視圖828.3骨骼結構映射——Avatar8.3.3 Muscle
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置(4)在下方AdditionalSetting窗口中還可以進行其它的設置,比如UpperArmTwist參數(shù),如圖8-33所示。讀者可通過拖動其拖拉條該骨骼的運動范圍進行調(diào)整。設置完畢之后點擊配置窗口右下角的“Done”按鈕結束Muscle的配置。
圖8-33其它設置窗口
838.3骨骼結構映射——Avatar8.3.3 Muscle
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置(5)返回播放任務模型的動畫,在Assets面板中找到導入的模型資源,點擊其中的動畫文件,如圖8-34所示。在動畫的Inspetor面板下方會播放該動畫,點擊上方的進度條可以按時間查看動畫每幀的動作,如圖8-35所示。
8-34模型文件下的動畫文件848.3骨骼結構映射——Avatar8.3.3 Muscle
8.3骨骼結構映射——Avatar8.3.3 Muscle的配置
8-35播放動畫文件858.3骨骼結構映射——Avatar8.3.3 Muscle8.4動畫控制器8.4.1 創(chuàng)建動畫控制器在Assets面板中單擊鼠標右鍵“Create”→“AnimatorController”,創(chuàng)建一個動畫控制器,如圖8-36所示。動畫控制器的顯示和修改在獨立的動畫編輯界面,雙擊該動畫控制器,進入動畫控制器編輯窗口,如圖8-37所示
圖8-36創(chuàng)建動畫控制器 圖8-37動畫控制器編輯窗口868.4動畫控制器8.4.1 創(chuàng)建動畫控制器 圖8-38.4動畫控制器8.4.2 動畫控制器的配置1、動畫狀態(tài)機和過渡條件動畫狀態(tài)機:一個角色在游戲中的不同狀態(tài)下可以作出不同的動作,狀態(tài)機來更為方便地控制角色動畫。每一個動畫控制器中的狀態(tài)機會有不同的顏色,每一個動畫狀態(tài)機都對應一個動作。動畫狀態(tài)機的參數(shù)含義如表8-4所示
878.4動畫控制器8.4.2 動畫控制器的配置 348.4動畫控制器8.4.2 動畫控制器的配置動畫狀態(tài)機之間的箭頭表示兩個動畫之間的連接,將鼠標箭頭放在動畫狀態(tài)單元上,右鍵點擊“MakeTransition”創(chuàng)建動畫過渡條件,并再次點擊另一個動畫狀態(tài)單元上,完成動畫過渡條件的連接
名稱說明StateMachine動畫狀態(tài)機,可包含若干個動畫狀態(tài)單元State動畫狀態(tài)單元,動畫狀態(tài)機機制中的最小單元Sub-StateMachine子動畫狀態(tài)機,可包含若干個動畫狀態(tài)單元或子動畫狀態(tài)機BlendTree動畫混合樹,一種特殊的動畫狀態(tài)單元AnyState特殊的狀態(tài)單元,表示任意動畫狀態(tài)Entry本動畫狀態(tài)機的入口Exit本動畫狀態(tài)機的出口888.4動畫控制器8.4.2 動畫控制器的配置 名稱說明S8.4動畫控制器8.4.2 動畫控制器的配置2、過渡條件的參數(shù)設置創(chuàng)建過渡條件的參數(shù)的方法,在動畫狀態(tài)機窗口左側(cè)中的Parameters視口,點擊右上角的“+”號可選擇想要添加的參數(shù)類型,如圖8-39所示。然后可以為參數(shù)命名,并為其設置初始值,如圖8-40所示。
圖8-39新建參數(shù) 圖8-40參數(shù)設置898.4動畫控制器8.4.2 動畫控制器的配置 圖8-8.4動畫控制器8.4.2 動畫控制器的配置單擊想要添加參數(shù)的過渡條件,然后在Inspector視口中的Conditions列表中單擊“+”號創(chuàng)建參數(shù),選擇所需的參數(shù),如圖8-41。然后為參數(shù)添加對比條件,不同類型的參數(shù)對比條件也不同,比如Float類型參數(shù)的對比條件有“Greater”和“Less”,如圖8-42所示。
圖8-41為過渡條件創(chuàng)建參數(shù) 圖8-42為參數(shù)添加對比條件908.4動畫控制器8.4.2 動畫控制器的配置圖8-48.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(1)首先創(chuàng)建一個工程項目,并命名為“BNUAnimator”。然后將隨書光盤的資源目錄下第8章的“BNUAnimator”工程文件下的“Animations”、“Models”、“Textures”等文件夾依次拷備進項目中的“Assets”資源文件夾下。然后創(chuàng)建一個名為“AniControllers”的空文件夾,用于存放項目所需的動畫控制器文件。(2)在AniControllers文件夾下單擊鼠標右鍵“Create”→“AnimatorController”創(chuàng)建一個動畫控制器,并命名為“AnimatorController”。雙擊該動畫控制器,進入動畫控制器編輯窗口。(3)向編輯窗口拖拽進“Boy@ForwardKick”、“Boy@KickBack”和“Boy@Idle”三個動畫文件
918.4動畫控制器8.4.2 動畫控制器的配置 388.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(4)將Idle動畫狀態(tài)單元設置為默認動畫單元。右鍵點擊Idle動畫狀態(tài)單元,在菜單中選擇“SetasLayerDefultState”,如圖8-43所示。修改完成后Idle動畫狀態(tài)單元會變?yōu)辄S色,然后為各個動畫狀態(tài)單元添加過渡條件,如圖8-44所示。
圖8-43添加動畫單元 8-44為動畫單元添加過渡928.4動畫控制器8.4.2 動畫控制器的配置 圖8-48.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(5)動畫單元和過渡添加完畢后,下面向游戲控制器中添加實現(xiàn)過渡條件所需的參數(shù)。單擊Parameters視口上的“+”號,添加一個Float類型的參數(shù),并命名為“AniFlag”,設置其初始值為-1.0,如圖8-45所示。
圖8-45創(chuàng)建參數(shù)
938.4動畫控制器8.4.2 動畫控制器的配置 圖8-8.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(6)然后選中任意一個過渡條件,在Inspector視口中的Conditions列表中點擊“+”號創(chuàng)建參數(shù)并進行參數(shù)的設置(7)在Assets面板下新建一個場景,雙擊打開場景。在場景中創(chuàng)建一個地形,給地形添加綠色草地紋理,然后為其添加天空盒,并調(diào)整光照方向至合適角度,如圖8-46所示。
948.4動畫控制器8.4.2 動畫控制器的配置 418.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(8)向場景中添加人物模型,將Models文件夾下的fighter模型文件拖拽到場景中,然后為其添加貼圖,如圖8-47所示。
圖8-47添加人物模型
958.4動畫控制器8.4.2 動畫控制器的配置 圖88.4動畫控制器8.4.2 動畫控制器的配置3、通過代碼對動畫控制器進行操控(9)接下來需要創(chuàng)建UI界面,點擊“GameObject”→“UI”→“Button”創(chuàng)建兩個按鈕,并分別命名為“Button1”和“Button2”按鈕。這兩個按鈕分別用于對兩個動畫的控制,當按下任意一個按鈕時,系統(tǒng)將啟動對應的動畫過渡。(10)下面為人物模型添加動畫組件。選中“fighter”游戲?qū)ο?,將之前?chuàng)建的“AnimatorController”動畫控制器拖拽到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年理發(fā)剪項目資金需求報告代可行性研究報告
- 數(shù)字智慧方案家具數(shù)字化智慧工廠整體解決方案
- 職業(yè)資格-民用核安全設備焊接操作工真題庫-3
- 中國近現(xiàn)代史中的法治建設研究試題及答案
- 2025年工程法規(guī)復習中的挑戰(zhàn)與應對試題及答案
- 物流四級考試試題及答案
- 大??祻驮囶}及答案
- 袋鼠先生測試題及答案
- 低頻戀愛測試題及答案
- 財務管理中的國際視野與試題及答案
- 《公路建設項目文件管理規(guī)程》
- 2024-2030年中國產(chǎn)權交易行業(yè)前景動態(tài)與未來發(fā)展形勢報告
- DB11∕T 854-2023 占道作業(yè)交通安全設施設置技術要求
- 國家職業(yè)技術技能標準 6-30-99-00 工業(yè)機器人系統(tǒng)操作員 人社廳發(fā)2020108號
- 大數(shù)據(jù)導論(計科2103-4)學習通超星期末考試答案章節(jié)答案2024年
- 小兒常見出疹性疾病皮疹圖譜和治療課件
- 女生穿搭技巧學習通超星期末考試答案章節(jié)答案2024年
- 《地方導游基礎知識》7.3 青海 地方導游基礎知識-題庫及答案
- 2024年“燃氣安全我知道”知識競賽考試題庫-下(判斷、填空題)
- 《進一步規(guī)范管理燃煤自備電廠工作方案》發(fā)改體改〔2021〕1624號
- SAP-TM運輸管理模塊操作手冊(S4系統(tǒng))
評論
0/150
提交評論