1. 程式人生 > >Unity3D之Mecanim動畫系統學習筆記(四):Animation State

Unity3D之Mecanim動畫系統學習筆記(四):Animation State

大致 面板 輸入 jpg any 動畫播放 速度 nsf 顯示

動畫的設置

我們先看看Animation Clip的一些設置:

技術分享

Loop time:動畫是否循環播放。

下面出現了3個大致一樣的選項:

Root Transform Rotation:表示為播放動畫的對象的旋轉方面的信息。

Root Transform Position(Y):表示為播放動畫的對象的位置 y 軸方面的信息。

Root Transform Position(XZ):表示為播放動畫的對象的位置 XZ 平面方面的信息。

他們都有一致的選項,我們逐個的來看:

Bake Into Pose:不勾選表示動畫產生的旋轉或位移(具體看是哪個選項下面)會應用到播放動畫的主體對象上,勾選則表示不會應用到播放動畫的主體對象上。

具體的效果如下(我的這個動畫是人物進行前空翻的動畫):Root Transform Position(XZ)的Bake Into Pose沒有勾選,表示人物前空翻時,主體GameObject會向前移動,如果勾選則GameObject在XZ平面則不會移動。同理,Root Transform Position(Y)勾選表示GameObject在Y軸不移動,如果不勾選,則跟隨攝像機會產生抖動,因為目標GameObject在Y軸也出現了跳躍時移動。

Based Upon:基準點,有如下類型:

  • Original:表示基準點使用在動畫文件中預設好的值。
  • Center of Mass:表示基準點使用質量中心,表現為人物下半身會嵌入地面。
  • Feet:表示基準點使用第一幀的腳。

動畫狀態

我們先簡單的看看動畫狀態,點擊項目中任意一個Animator Controller,打開Animator界面可以看到如下的信息:

技術分享

我們先不管左面的Layers和Parameters面板,右方的顯示面板是一個標準的有限狀態機配置面板,其中有3個狀態“Entry”、“Any State”和“Exit”是由系統生成的,其它狀態則由我們自己創建和管理,需要註意的是在Unity4.x中,系統創建的狀態只有“Any State”一個。

每個狀態之間由帶箭頭的線段連接,表示這個狀態可以過渡到指向的狀態。

狀態面板

狀態關系和切換我們以後再看,現在我們點擊任意一個狀態,在Inspector面板可以看到該狀態的詳細信息,如下:

技術分享

  • Motion:表示當前狀態對應的Animation Clip;
  • Speed:表示當前狀態的速度,1表示正常速度,後面的Parameter勾上表示使用一個參數來表示當前的速度,同時輸入框會變為下拉選擇框,我們可以選擇指定的參數,參數可以在Parameters面板中配置,其作用就是可以方便的通過代碼修改參數的值來達到控制速度的目的,下面的Parameter也一致,就不贅述了。
  • Mirror:是否將動畫沿Y軸進行翻轉,一般用來復用動畫,比如招右手的動畫勾選了此項就會變為招左手;
  • Cycle Offset:播放偏移量;
  • Foot IK:是否開啟腳部的IK動畫(反向動力學),一般關閉,在需要腳部貼合地面的情況時可以開啟;
  • Write Defaults:動畫播放完畢後是否將狀態重置為默認狀態,一般勾選即可;

下面的Transitions面板則會列出當前狀態可以過渡到其它狀態的列表:

  • Solo:勾選表示當前過渡為唯一過渡,即當前狀態只能過渡到這個項目指向的狀態;
  • Mute:勾選表示使這個動畫過渡關閉,即當前狀態不能過渡到這個項目指向的狀態;

Unity3D之Mecanim動畫系統學習筆記(四):Animation State