1. 程式人生 > >unity之動畫控制器元件基本概念

unity之動畫控制器元件基本概念

      1:  BodyMask身體遮罩:指定骨骼結構中的哪一部分可以用到動畫中,常用於動畫層,以及動畫的輸入控制中。BodyMask身體遮罩:點選帶有骨骼動畫的模型,在Animations面板下的mask卡中humanoid可以勾選起作用的部位。使用身體遮罩可以減輕CPU及記憶體的負擔。

 

           2: Avatar:骨骼重定向,把一副骨骼中的動作指定到其他骨骼中的一個介面:a interface for retargeting one skeleton to another。主要應用於骨骼的識別,便於unity動畫系統識別。riging  skinning蒙皮主要是在max中進行操作。人形角色模型繫結的骨骼架構所包含的骨骼數量和名稱不盡相同,難以實現動畫的通用。Mecanim動畫系統提供了一套簡化過的人形角色骨骼架構,而Avatar就是他們之間的橋樑,重定向的骨骼架構都要通過Avatar與自帶的骨骼架構搭建對映

           3:T-pose :預設狀態。如果沒有指定相應動作檔案,就會處於這種狀態。

           4:   動畫控制器元件:Animator Controller:通過動畫層,以及動畫狀態機,blendtrees來控制動畫的實現,也就是動畫控制邏輯,可以被其他模型所使用

                            

      Animator包含了動畫檔案,及Avatar,Animator layer:顧名思義層,就是說將身體各部分劃分成不同的層,分別進行動作的設定,播放。比如邊走邊播放揮手動作。建立Avatar就是分析角色資源的骨骼結構,並對其進行標識,從而轉換為unity動畫系統Mecanim可以識別的骨骼結構,轉換為通用的骨骼結構,所以在進行的資源準備時,命名要遵循規範,從而實現動畫檔案的共用

          5:在匯入配有骨骼的人物模型之後,要配置Avatar。就是配置Rig面板下的:Avatar Definition, Animation Type,當然不要忘了點選Apply,如果自動建立Avatar不成功的時候,我們也可選擇Configure來手動進行配置,其實重新指定各個骨骼(紅黃藍三色標記那個東西),當然還可以這樣:1:pose下中sample Bind-pose  2:在Mapping下選擇Automap 3:Enforce-T-pose強制轉換為Tpose狀態,在Mapping中的Save是將配置好的骨骼對映進行儲存,儲存型別是ht,退出按Done ,Rig下點選Configure,裡面有Muscle&Settings,改變肌肉構造會,其實就是調節動作的誇張程度,例如如果是舞蹈人員模型,那麼就該擴大腰部的曲張數值。此改變只能改變Animations下面的動作片段

        6:       ,帶有動畫的角色模型檔案。

        7:, Start第一正,End最後一幀,是否設定迴圈動畫,是否設定姿勢迴圈,動畫片段偏移量。         動畫分割        8:       
  • Apply Root Motion:繫結該元件的GameObject的位置是否可以由動畫進行改變(如果存在改變位移的動畫)。即是動畫產生位移,還是模型自身transform發生改變。
  • Update Mode:更新模式:Normal表示使用Update進行更新,Animate Physics表示使用FixUpdate進行更新(一般用在和物體有互動的情況下),Unscale Time表示無視timeScale進行更新(一般用在UI動畫中)。
      9:      10:AnimatorStateInfo state=ani.GetCurrentAnimatorStateInfo(0);獲取當前角色運動狀態。ani是動畫控制器元件的引用。state.IsName("Base Layer.idle"),此程式碼是角色處於idle動畫狀態,返回bool值,可以用於檢測

     11:Animation State屬性Foot IK的作用是當勾選後,人物遇到臺階,斜坡的時候,腿部會產生彎曲效果,符合現實表現。

Solo,Mute是動畫狀態是否被應用,主要用於除錯。

   12:Interruption Source動畫打斷,在某個動畫進行過程中滿足了另一個動畫播放條件,則切換到另一個動畫中。

   13:Animator Override Controller:相當於繼承自Animator Controller。作用是比如有10個人物角色帶有攻擊動畫,不一定要做10個角色控制器。

   14:狀態機越複雜,效能消耗越大,場景中的面數啥的開銷都還好,但是動畫相關的開銷(渲染)比較大。要控制Cntroller的複雜度。