Mecanim 工作流程,mecanim工作流程
Mecanim概述:
Mecanim是Unity提供第一個豐富而複雜的動畫系統,提供了:
- 針對人形角色的簡易的工作流程和動畫建立能力
- Retargeting(運動重新導向)功能,即把動畫從一個角色模型應用到另一個角色模型上的能力。
- 針對Animations Clips(動畫片段)的簡易工作流程,針對動畫片段及他們之間的過度和互動預覽能力。
- 一個用於管理動畫間複雜互動作用的可視化視窗。
Mecanim工作流程:
1.資源匯入,這一階段由美術師或動畫師通過三維工具來完成。
2.角色的建立,主要分為以下兩種方式。
- 人形角色的建立,Mecanim通過擴充的圖形操作介面和動畫重新導向功能,為人物模型提供了一種特殊的工作流程,它包括Avatar的建立和對肌肉定義(Musicle Definitions)的調節。
- 一般角色的建立,一般為運動物體和四足動物而設定,動畫重新導向對此不適用。
3.角色的運動,包括設定動畫片段以及其相互間的互動作用,也包括建立狀態機器和混合樹、調整動畫參數以及通過代碼控制動畫等。
擷取人形網格模型
1.人形網格模型,為了充分利用Mecanim的人形動畫系統和動畫重新導向功能,需要一個具有骨骼綁定和蒙皮的人形網格模型。
- 人形網格模型一般由一組多邊形或三角形網格組成,建立模型的過程稱為建模(modelling);
- 為了控制角色的運動,必須為其建立一個骨骼關節層(joint hierarchy);
- 人形網格模型必須與關節層級關聯起來,通過指定關節的動畫來控制特定網格的運動,這個過程稱為蒙皮(skinning);
一句話來總結,建立好人物模型後(建模modelling),為其建立一個骨骼關節(joint hierarchy),最後非同步將人物網格模型和關節關聯起來(蒙皮skinning)。[ modelling > joint hierarchy > skinning ]
2.擷取模型,在Mecanim系統中,可以通過三種途徑來擷取人物網格模型:
- 使用一個過程試的人物建模工具,Poser 、 Makehum或Mixamo等。其中有些三維軟體可以在建模的同時進行骨骼綁定和蒙皮操作。應該儘可能的減少人形網格的面片數量,從而更好的在unity中使用。
- 在Unity Asset Store下載。
- 通過三維建模軟體來建立全新的人形模型,這類軟體包括3Dmax、Maya、Blender等。
3.匯出和驗證模型,unity引擎可以匯入一系列的常用3D檔案格式,推薦使用FBX 2012,因為改格式允許:匯出的網格中包含關節層級、法線、紋理以及動畫資訊;也可以匯入不包含網格的動畫資訊。
動畫分解:
1.預分解動畫模型:最容易使用的動畫模型是含有預分解動畫片段模型,這種動畫模型在匯入項目後,可看到面板中包含多個可用的動畫片段列表,還可對每個動畫片段的幀數範圍進行編輯調整。
2.未分解動畫模型:提供單一連續動畫片段的模型,這種情況可自行設定每個動畫的片段所需要的幀。如該模型動畫一共有100幀,1-10幀為待機喘息狀態,11-30幀為行走,31-60幀為奔跑,61-80幀為攻擊,81-100幀為死亡動畫。
3.為模型添加動畫:使用者可以為任意模型的動畫組建添加動畫片段,該模型甚至可以沒有肌肉定義(非Mecanim模型),進而在Animations屬性中指定一個預設的動畫片段和所有可用的動畫片段。在非Mecanim模型上添加動畫片段也必須採用非Mecanim的方式進行,即將Muscle Definition屬性設定為None。
對具有肌肉定義的Mecnim模型處理過程如下:
- 建立一個Animator Controller。
- 開啟Animator Controller視窗。
- 將特定的動畫片段拖到Animator Controller視窗。
- 將模型資源拖入到Hierarchy視圖中。
4.通過模型檔案來匯入動畫片段:該方法是遵循Unity指定的動畫檔案命名方案,使用者可以建立獨立的模型檔案並按照modelName@animaionName.fbx的格式來命名。例如一個魔法師的模型(wizard.fbx),待機、行走、攻擊分別命名為 wizard@idle.fbx、wizard@walk.fbx 、wizard@attack.fbx。只有在這種情況下,動畫資料才會被使用。
使用人形角色動畫
Mecanim動畫系統特別適合用於人形角色的動畫製作,因為人形模型均具有相同的基本結構,所以使用者可以實現將動畫效果從一個人形骨架映射到另外一個人形骨架上去,從而實現動畫重新導向的功能。
建立一個動畫的基本步驟就是建立一個從Mecanim系統的簡化人形骨架結構到使用者實際提供的骨架結構的映射,這種映射關係稱為Avatar,下面就介紹如何為一個模型建立一個Avatar。
建立Avatar
在匯入一個模型(例如fbx)後,在該模型面板上選中Rig選項卡指定他它的骨骼模型,包括Humanoid、Generic和Legacy這三種。
1.人形動畫(Humanoid)
對於人形骨架,選中Animation Type下拉式功能表,選擇Humanoid,單擊Apply按鈕,Mecanim系統就會嘗試將使用者提供的骨架結構與Mecanim系統內嵌的骨架結構進行匹配,匹配成功後在可以看到Configure...複選框被選中。在匹配成功的情況下,會在模型資源中添加一個Avatar子資源。需要注意的是,這裡匹配成功僅僅是匹配了所有必要的關節骨骼,如果想達到更好的效果,還需要對Avatar進行手動調整。如果在Configure...旁邊顯示一個叉號,即不會產生相應的Avatar子資源,這種情況就需要手動設定Avatar。
2.非人形動畫
Unity為非人形動畫提供了兩個選項,一般動畫類型(Generic)和舊版動畫類型(Legacy),一般動畫仍可由Mecanim系統匯入,但無法使用人形動畫專有的功能。
配置Avatar:
在上一步產生Avatar子資源後,即可配置Avatar。Avatat是Mecanim系統中極為重要的模組,因此為模型資源正確的設定Avatar也至關重要,不管Avatar自動建立過程是否成功,使用者都需要進入Configure...Avatar介面中確認Avatar的有效性,即確認使用者提供的骨骼結構與Mecanim系統預定義的骨骼結構是否正確的關聯起來,並且模型處於T形姿態。
點擊Configure...後Scene視圖將被用於顯示當前模型的骨骼、肌肉、和動畫資訊,同時會出現一個Avatar配置面板,可看到一個關鍵骨骼映射資訊的視圖,該視圖還顯示了哪些骨骼是必須匹配的(實線圓圈),哪些是可選匹配的(虛線圓圈)。為了方便Mecanim進行骨骼匹配,使用者提供的骨架中應半酣所有必須匹配的骨骼。此外為了提高匹配的成功率,應盡量通過骨骼代表的部位來給骨骼命名。
如果複發為模型找到合適的匹配,使用者也可以通過類似Mecanim內部使用的方法來進行手動設定:
1.在Avatar面板中選擇Pose下拉項中的Sample Bind-pose(得到模型的原始姿態);
2.在Avatar面板中選擇Mapping下拉項中的Automap(基於原始姿態建立一個骨骼映射);
3.在Avatar面板中選擇Pose下拉項中的Enforce T-pose(強制模型貼近T形姿態,即Mecanim動畫的預設姿態)
如果在第二個步驟中,自動對應的過程出現失敗或者局部失敗,使用者可通過Scene視圖或者Hierarchy視圖中拖出骨骼並指定骨骼,如果Mecanim認為骨骼匹配,將在Avatar面板中以綠色顯示,否則以紅色顯示。
如果沒有指定正確則會看到Sence視圖中會出現Character not inT-pose提示,可通過EnforceT-pose強制將模型轉換為T型姿態或者旋轉至模型為T型姿態。
上述骨骼映射資訊還可奧村一個人形模版檔案(Humanoid Template File).ht ,這個檔案可在所有使用這個映射關係的角色之間複用。
設定Muscle參數:
Mecanim使用肌肉(Muscle)來限制不同骨骼的運動範圍,一旦Avatar配置完成,Mecanim就能解析其骨骼結構,進而使用者就可以在Muscles選項卡中調節相關參數。在此可非常容易的調節角色的運動範圍,確保看起來真實自然。
使用者可以在視圖上方使用預先定義的變形方法對幾根骨骼同時進行調整,也可在視圖下方對身體上單根骨骼進行調整。