1. 程式人生 > >unity官方demo學習之Stealth(九)角色動畫控制器

unity官方demo學習之Stealth(九)角色動畫控制器

1,(建立玩家靜止狀態)在Animator資料夾中 右鍵,create->Animator Controller,建立一個動畫控制器,命名為PlayerAnimator,建立引數,
float:Speed;bool:Snesking;bool:Dead:bool:Shouting;然後拖入角色靜止狀態下的動畫(Animation資料夾下
Humanoid資料夾中的humanoid_idle下的Idle視效,預設橘黃色),最後將PlayerAnimator拖進char_ethan裡的Controller欄裡

執行,會看到玩家靜止下晃動的樣子。。。(也可以將自帶的DonePlayerAnimator拖進去可以省很多事)

2,(建立玩家跑步或行走狀態)在Animator檢視空曠區域右鍵,Create State ->from new blend tree,點選新建的blend tree,更改名字為Locomotion,
雙擊該Blend tree進入,同樣改名字。在Motion下點選+號兩下,點選圓圈,搜尋walk,選中,退出,這樣在第一個motion中就添加了

walk動畫,第二個同理新增run動畫,取消Automate Threshold,在下面下拉框選擇speed(估算閥值)

3,(使Idle狀態轉換到Locomotion狀態),點選選項欄中的Base Layer返回,點選Idle,右鍵,make transition,連線Locomotion,
點選這條線,在conditions裡選擇Speed,是它變化的閥值為大於0.1,即選擇Greater,0.1;選擇Snesking,false。這樣就設定為,

速度大於0.1,沒在潛行狀態的時候,由Idle轉換為Locomotion。

4,(使Locomotion狀態轉化到Idle狀態),Locomotion右鍵,make transition,連線Idle,點選線編輯,speed,less 0.1,即速度小於0.1時,

由Locomotion狀態轉換到Idle狀態

5,(設定潛行狀態),將humanoid_sneak下的sneak檔案拖到左側Animator裡,如上面操作,

(Locomotion轉換到sneak),speed,greater,0.1,sneaking,false;

(sneak轉換到Locomotion),speed,grater,0.1,sneaking,true;sneak轉換到Idle,speed,less,0.1;Idle轉換到sneak,speed,greater,0.1,sneak,true。

6,設定死亡狀態,將humanoid_dying下的Dying拖上去,設定Any State到Dying的轉換(即玩家任何狀態都可以死),編輯dead , true;最後Base Layer如圖013


7,在Animator資料夾中建立Avatar Mask,命名為PlayerShoutingMask,在inspector中展開Humanoid,禁用其他部分如圖014;


建立其他動畫層:在Layers中點選+新增,命名為Shouting,點選Mask圓圈,選擇PlayerShoutingMask;

建立喊叫的其他狀態,create State-> empty(預設無動作狀態),將humanoid_shout下的shout拖進來。。。(喊叫狀態)

設定shout與空狀態之間的轉換:1,empty轉換到shout,shouting,true;2,shout轉換到empty,Exit Time,0.87(喊完0.87秒自動轉換為empty狀態)