1. 程式人生 > >Unity遊戲開發之動畫播放與動畫控制器 Animator Controller

Unity遊戲開發之動畫播放與動畫控制器 Animator Controller

配置好Avatar之後把模型加到場景之後會檢視面板中可以看到Animator元件。

屬性Controller 控制器 附加到角色的動畫控制器Avatar角色的AvatarApply Root Motion 應用根動作 從動畫自身來控制角色位置還是通過指令碼控制Animate Physics 動畫物理 動畫是否涉及物理Culling Mode 動畫剔除oAlways animate 總是動畫 不剔除oBased on Renderers 基於渲染器  不可見時只有根動作在播放動畫,身體其他部分靜止。動畫控制器 Animator Controller建立一個Animator Controller,(Asset->Create->Animator Controller)。雙擊開啟。

資源面板中找到閒置動畫“idle1” 拖到到狀態機當中,黃色矩形表示該狀態為預設狀態,可以右鍵點選其他狀態並設定為預設狀態(“set as default”)。

狀態切換右鍵某一個狀態,Make Transition 建立一個狀態切換,把連線拉到要切換到的目標狀態。

這樣就建立了從某一個狀態到另一個狀態的切換。

單擊這條連線,在檢視面板上可以看到轉換的詳細資訊,可以給這個轉換設定條件,在滿足某些條件的情況下才做這個動作切換。以下幾個選項方便除錯預覽:Solo:僅此轉化可用Muting:轉化不可用Atomic :轉化不能不會被中斷。

點選Conditions 中我們看到預設條件是Exit Time ,值為0.74。表示第一個動作開始播放0.74秒之後,切換成第二個動作。可以點選條件選擇其他條件,我們看到現在沒有可以選擇的其他條件。

可以通過動畫面板增加自定義的條件。點選動畫面板上的Parameters  後邊 “+”;

我們可以增加4種類型的引數,分別為向量,浮點數,整數,布林值。增加兩個引數。

再次點選連線,選擇條件的時候,就可以看到我們增加的引數了。

當存在太多狀態時,可以建立子狀態機。子狀態機可以當做一個普通節點組建狀態機。

動畫層通過左上角的按鈕可以增加不同的動畫層,每一個動畫層可以設定各自的狀態機。通過層的使用可以方便的控制多個動作的轉化併為不同的動畫設定相應的權重。如一個射擊動畫,一個空閒和行走迴圈動畫,想要在行走和空閒動畫之間連續過渡,基於玩家的速度。但當玩家射擊時,僅顯示射擊動畫,因此,射擊動畫基本上有更高優先順序。要做到這點最簡單的方法是在射擊時簡單的保持行走和空閒動畫,然後我們需要確保射擊動畫比空閒和行走動畫在更高的層(預設值為0,可以設定一個大於0的整數)。這意思是射擊動畫將首先接收融合權重。行走和空閒動畫僅當射擊動畫不使用融合權重100%時,接收權重。因此,交叉淡入淡出射擊動畫時,權重將從0開始很短時間內變為100%,在開始時步行和空閒層仍然會收到融合權重,但當射擊動畫完全切入時,它們不再接收權重。