[原]Unity3D深刻淺出 - 新版動畫系統(Mecanim)

Mecanim概述:app

Mecanim是Unity提供第一個豐富而複雜的動畫系統,提供了:異步

  • 針對人形角色的簡易的工做流和動畫建立能力
  • Retargeting(運動重定向)功能,即把動畫從一個角色模型應用到另外一個角色模型上的能力。
  • 針對Animations Clips(動畫片斷)的簡易工做流,針對動畫片斷及他們之間的過分和交互預覽能力。
  • 一個用於管理動畫間複雜交互做用的可視化窗口。
  • 經過不一樣邏輯來控制不一樣身體部位的運動能力。

 

Mecanim工做流:工具

1.資源導入,這一階段由美術師或動畫師經過三維工具來完成。動畫

2.角色的創建,主要分爲如下兩種方式。3d

  • 人形角色的創建,Mecanim經過擴展的圖形操做界面和動畫重定向功能,爲人物模型提供了一種特殊的工做流,它包括Avatar的建立和對肌肉定義(Musicle Definitions)的調節。
  • 通常角色的創建,通常爲運動物體和四足動物而設定,動畫重定向對此不適用。

3.角色的運動,包括設定動畫片斷以及其相互間的交互做用,也包括創建狀態機和混合樹、調整動畫參數以及經過代碼控制動畫等。索引

 

獲取人形網格模型ip

1.人形網格模型,爲了充分利用Mecanim的人形動畫系統和動畫重定向功能,須要一個具備骨骼綁定和蒙皮的人形網格模型。資源

  • 人形網格模型通常由一組多邊形或三角形網格組成,建立模型的過程稱爲建模(modelling);
  • 爲了控制角色的運動,必須爲其建立一個骨骼關節層(joint hierarchy);
  • 人形網格模型必須與關節層級關聯起來,經過指定關節的動畫來控制特定網格的運動,這個過程稱爲蒙皮(skinning);

一句話來總結,建立好人物模型後(建模modelling),爲其建立一個骨骼關節(joint hierarchy),最後異步將人物網格模型和關節關聯起來(蒙皮skinning)。[ modelling > joint hierarchy > skinning ]開發

2.獲取模型,在Mecanim系統中,能夠經過三種途徑來獲取人物網格模型:get

  • 使用一個過程試的人物建模工具,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選項卡中調節相關參數。在此可很是容易的調節角色的運動範圍,確保看起來真實天然。

用戶能夠在視圖上方使用預先定義的變形方法對幾根骨骼同時進行調整,也可在視圖下方對身體上單根骨骼進行調整。

 

人形動畫的重定向:

人形重定向是Mecanim系統中強大的功能之一,這意味着開發者只須要很簡單的操做便可將一組動畫應用到其餘人形角色模型上,前提是必須正確的配置Avatar。

 

導入單個動畫文件:

在從三維軟件導出模型前,遵循unity3d動畫文件命名方案,爲單個動畫模型文件命名modelName@animationName.fbx,即 模型名稱@動畫名稱.fbx 。

例如對於一個名爲warlock(魔法師)的模型,分別指定 idle(待機),walk(行走),attack(攻擊),death(死亡) 等動畫。

即命名規範:

warlock@idle.fbx

warlock@walk.fbx

warlock@attack.fbx

warlock@death.fbx

另外還需導出一個 warlock.fbx 不帶動畫的模型文件,在導出模型前勾選 no animation選項便可,warlock.fbx模型會遵循動畫文件命名規範來索引其餘帶動畫的模型文件。

相關文章
相關標籤/搜索