Unity 3D-Mecanim動畫系統(tǒng)

Unity3D 動畫系統(tǒng)分類

1.Unity3D 3.5版本之前是舊的系統(tǒng)Legacy系統(tǒng)

2.Unity3D 4.0版本新增加Mecanim動畫系統(tǒng)

新動畫系統(tǒng)的有點

1>可視化動畫剪輯編輯

2>能夠?qū)赢嬓畔⑦M行復(fù)用

3>利用動畫狀態(tài)機(Animation State Mechine)實現(xiàn)不同狀態(tài)下動畫剪輯的過渡

一般動畫系統(tǒng)的制作與使用流程

1>在第三方的建模軟件中制作好模型,接著導(dǎo)出Unity3D 支持的格式,然后導(dǎo)入Unity3D中

2>通過狀態(tài)機(State Mechines)和融合樹(Blend Trees)和反向動力學(xué)(Inverser Kinematics)等功能對動畫剪輯進行設(shè)置,最后使用代碼控制角色的播放。

建模注意事項;

1.注意模型尺寸,一般在1.7~1.8之間

2.在三維建模軟件中,是角色的最底部與世界坐標(biāo)的中心點對齊

3.盡量把模型制作為T型姿勢

4.確保骨盆位置上骨骼關(guān)節(jié)為所有的骨骼的父層級

5.確保骨骼結(jié)構(gòu)至少為15個骨骼

一般模型建議使用FBX格式導(dǎo)出。導(dǎo)出的兩個方式:

1.所有的動畫信息與模型信息一起導(dǎo)出,這些動畫導(dǎo)入Unity3D 之后是被視為一個連續(xù)的動畫

2.第二種方式把每個動畫信息單獨導(dǎo)出為FBX格式。使用此方式導(dǎo)出時候,注意對動畫合理的命名,一般的命名的規(guī)則為:模型名稱@動畫剪輯.FBX


運用Mecanim動畫系統(tǒng)制作動畫需要進行四步的開發(fā)

1.制作替身

2.設(shè)置動畫狀態(tài)機

3.設(shè)置動畫循環(huán)

4.使用代碼控制角色動畫。

狀態(tài)機的融合樹技術(shù)(Blend Tree)

融合樹結(jié)構(gòu)可以使得一個東湖愛剪輯與另外的動畫剪輯序列進行光滑融合,也就是說是兩個動畫的合并

1.在Animator窗口右鍵 Create State ——>Form New Blend Tree ? 命名BlendTree-Crouch

2.雙擊進入BlendTree-Crouch動畫狀態(tài),進入Blend Tree 編輯窗口


融合樹窗口


3.選擇BlendTree-Crouch,在屬性窗口中點擊Motion下面“+”號,在彈出的下拉菜單中選擇“Add Motion Field” 添加動畫序列。

4.點擊None后面的小圓圈,打開Select Motion面板,選擇相對應(yīng)動畫,比如如下圖所示


添加的動畫

5.可以修改權(quán)重位置。把自動臨界點(Automatic Threshholds)的勾取消掉,這樣可以自定義


修改后的權(quán)重


融合樹控制核心代碼

animator=GetComponent<Animator>();//得到物體的組件

AnimatorStateInfo stateInfo=animator.GetCurrentAnimatorStateInfo(0);//獲得動畫器狀態(tài)信息

float h=Inout.GetAixs("Horizontal");//獲得水平的返回值

float v=Input.GetAixs("Vertical");//獲得垂直的返回值

animator.SetFloat("Speed",h*h+v*v);//把h和v求平方相加賦值給狀態(tài)機中的自定義變量Speed上

animator.SetFloat("Direction",h,DirectionDampTime,Time,delltaTiome);//DirectionDampTime這是自定定義的float變量 ??

if(stateInfo.IsName("Base Layer.Blend Tree-Crouch"))

{

? ? if(h < 0)

? ?{

? ? ? ?tranform.position+=-transform.right*leftspeed*Time.deltaTime;

? ?}

}

Animator 屬性說明:

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

Avatar:角色Avatar

Apply Root Motion:動畫自身還是腳本控制角色的實際位置(開啟為腳本)


Animator屬性


動畫層與身體蒙版

動畫層技術(shù)可以從已有的動畫創(chuàng)造出新的動畫系統(tǒng)

融合樹技術(shù)是有兩個動畫序列的同一谷歌的不同運動位置融合為骨骼的最終位置,而動畫層用于把不通部位的東湖組合起來成為最后的全身的動畫效果。


測試一



測試二


測試三


動畫復(fù)用

動畫復(fù)用就是把動畫剪輯序列復(fù)用到其他的角色上

反向力學(xué)(IK)

反向動力學(xué)是依據(jù)子關(guān)機的最終位置、角色來反求出父關(guān)節(jié)甚至整個骨架的形態(tài)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容