天天看點

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

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

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

屬性

Controller 控制器 附加到角色的動畫控制器

Avatar角色的Avatar

Apply Root Motion 應用根動作 從動畫自身來控制角色位置還是通過腳本控制

Animate Physics 動畫實體 動畫是否涉及實體

Culling Mode 動畫剔除

oAlways animate 總是動畫 不剔除

oBased on Renderers 基于渲染器  不可見時隻有根動作在播放動畫,身體其他部分靜止。

動畫控制器 Animator Controller

建立一個Animator Controller,(Asset->Create->Animator Controller)。輕按兩下打開。

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

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

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

狀态切換

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

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

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

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

單擊這條連線,在檢視面闆上可以看到轉換的詳細資訊,可以給這個轉換設定條件,在滿足某些條件的情況下才做這個動作切換。

以下幾個選項友善調試預覽:

Solo:僅此轉化可用

Muting:轉化不可用

Atomic :轉化不能不會被中斷。

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

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

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

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

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

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

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

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

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

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

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

動畫層

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

繼續閱讀