日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

Unity动画系统常用知识总结

發(fā)布時間:2023/12/31 windows 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity动画系统常用知识总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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é)。

void OnAnimatorIK(int layerIndex){{//設(shè)置位置權(quán)重animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1f);//設(shè)置旋轉(zhuǎn)權(quán)重animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1f);animator.SetIKPosition(AvatarIKGoal.RightHand, objPosition.position);animator.SetIKRotation(AvatarIKGoal.RightHand, objPosition.rotation);}}

如上圖所示,角色右手受到球的影響,需要注意,需要將layer層的IK Pass勾選上,代碼中加上對應(yīng)的邏輯即可。

動畫事件


找到資源的動畫,在Event這一欄可以添加事件,選擇腳本,與腳本的方法即可。選擇固定的某一幀執(zhí)行。

總結(jié)

以上是生活随笔為你收集整理的Unity动画系统常用知识总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。