Unity动画系统常用知识总结
Unity動畫系統(tǒng)常用知識總結(jié)
- 資源導(dǎo)入需要注意的地方
- 常用的組件
- Animator 組件
- Avatar Mask 骨骼遮罩
- Animator Controller
- 動畫切換
- Any State
- Has Exit Time:是否有退出時間(是否一定要播放完當(dāng)前動畫才可以切換到下一個)
- 如何讓兩個動畫同時播放,例如一邊走路一邊揮手
- 混合樹
- 1D
- 2D
- IK反向動力學(xué)
- 動畫事件
資源導(dǎo)入需要注意的地方
導(dǎo)入數(shù)據(jù)的時候,需要看當(dāng)前模型是否符合unity的正常大小。
方法:創(chuàng)建一個Cube,然后將模型拖到場景中與Cube比較一下大小,如果大小不合適需要在模型中調(diào)整,而不是調(diào)整unity的游戲物體,避免出現(xiàn)不必要的錯誤。
常用的組件
Animator 組件
重點介紹一下前三個。
Contorller:游戲狀態(tài)控制器,控制當(dāng)前角色處于什么狀態(tài)(播放對應(yīng)的動畫)。
Avatar:骨骼,當(dāng)前人物模型的骨骼,通常情況下美工配好。
只要有經(jīng)過處理的Avatar,我們就可以通過 Animator Controller動畫控制器控制人物模型播放一組制定的動畫。
所以符合Avatar進行Retaring重定向的條件為:
1、相同的Animator Controller控制器。
2、都有經(jīng)過成功處理的Avatar資源組件(可以不是同一個Avatar)。
3、可以模型不帶任何動畫。
Apply Root Motion:簡單理解,有的動畫自帶移動,帶有矢量,如果勾選,則表明使用動畫自帶的位移,不適用則自己手寫移動相關(guān)的代碼。
Avatar Mask 骨骼遮罩
在Project面板創(chuàng)建,點擊對應(yīng)的位置,即可讓對應(yīng)的部位無法播放動畫,在Animator Controller中的layer層綁定,綁定完之后該layer層下的所有手臂動畫無法播放(該圖中)。
Animator Controller
動畫狀態(tài)控制器,控制動畫切換的核心組件。
動畫切換
常用動畫切換,創(chuàng)建兩個State,然后點擊其中一個右鍵選擇Make Transition
在Parameters中添加跳轉(zhuǎn)參數(shù)。
可以通過代碼控制
animator.SetBool(“CanMove”, true);
滿足條件時就會走向下一個狀態(tài),如下圖。
Any State
代表當(dāng)前所有狀態(tài)都可以轉(zhuǎn)向一個,例如死亡,避免出現(xiàn)連線到處都是。
Has Exit Time:是否有退出時間(是否一定要播放完當(dāng)前動畫才可以切換到下一個)
如何讓兩個動畫同時播放,例如一邊走路一邊揮手
我上家公司做模擬休閑游戲,有個廠長巡查,需要走路,揮手,邊走路邊揮手功能,下面探討一下如何實現(xiàn)。
1、讓美工一共做三個動畫,分別是走路,揮手,走路+揮手,但是這樣非常繁瑣,而且維護起來也麻煩(需要不同狀態(tài)之間來回切換)。
2、使用多個layer層
如圖所示,Base Layer控制行走,Arm Layer控制廠長揮手,但是需要注意,Arm Layer的權(quán)重需要和Base Layer一樣,Blending中需要改為Additive,默認(rèn)是override覆蓋重寫。
3、使用混合樹,下面單獨開一個標(biāo)題講混合樹,但是混合樹更適合多種狀態(tài)之間的平滑處理,而不是同時實現(xiàn)效果。
混合樹
1D
在Animator面板中創(chuàng)建BlendTree,先從最簡單的1D講起。
添加一個BlendValue,然后在BlendTree中添加兩個行為,最左邊是Walk,最右邊是Run,動畫系統(tǒng)會自動綜合。
也可以在混合樹中添加混合樹,達到與更多效果綜合的效果,我用的不多,此處不再贅述。
2D
2D Directional兩個差不多,Freedom比Sample更好用一點,但是需要注意,Freedom中必須要有一個0,0點,即Idle狀態(tài)。
如上圖所示,目前一共有五個狀態(tài),分別是向前、后、左、右跑,還有一個待機,我們可以獲取用戶輸入WASD的坐標(biāo),GetAxis方法,將對應(yīng)的值傳給動畫組件。
animator.SetInteger();
然后角色就會做對應(yīng)的動畫。
ps:時間的那個圖標(biāo),改為負(fù)數(shù)則是向后運動。
另外,設(shè)置完動畫這里最好選擇Velocity XZ,代表由XZ的坐標(biāo)控制動畫切換,對應(yīng)兩個參數(shù)。
剩下的一個笛卡爾積2D,更加復(fù)雜,也適合更多的動畫平滑切換,我用的不多,此處不再贅述。
IK反向動力學(xué)
簡單介紹一下,例如你推門,你給門一個力,相對的門也會給你一個力,他會讓你的手臂彎曲,這個就被稱之為IK反向動力學(xué)。
如上圖所示,角色右手受到球的影響,需要注意,需要將layer層的IK Pass勾選上,代碼中加上對應(yīng)的邏輯即可。
動畫事件
找到資源的動畫,在Event這一欄可以添加事件,選擇腳本,與腳本的方法即可。選擇固定的某一幀執(zhí)行。
總結(jié)
以上是生活随笔為你收集整理的Unity动画系统常用知识总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: APISpace 全球快递物流地图轨迹查
- 下一篇: 计算机桌面操作系统版本,查看电脑操作系统