天天看點

unity之Mecanim動畫系統學習(6):Avatar Maskunity之Mecanim動畫系統學習(6)

unity之Mecanim動畫系統學習(6)

動畫分層

WHY?

動畫分層可以解決在同一人物中不同動畫的播放問題,具體而言就是吃雞裡面,任務下半身的移動和上半身的各種操作。

Avatar Mask——動畫混合

首先,我們在場景添加任務,給他添加動畫以及Animator Controller

unity之Mecanim動畫系統學習(6):Avatar Maskunity之Mecanim動畫系統學習(6)

然後根據需求發現我們要讓下半身動作和上半身動作分開,那我們建立一個動畫層Another Layer

unity之Mecanim動畫系統學習(6):Avatar Maskunity之Mecanim動畫系統學習(6)

将weight權重設為1

unity之Mecanim動畫系統學習(6):Avatar Maskunity之Mecanim動畫系統學習(6)

然後添加本層的動畫邏輯,但是此時的Idle不需要添加動畫了

通過腳本控制動畫的播放,腳本這裡就不列出了,大家根據自己需求來

當運作遊戲時發現,Base Layer動畫播放後接着播放Another Layer動畫,那麼Base Layer動畫就會停止,也就是覆寫了Base Layer的動畫,那麼此時我們需要建立一個Avatar Mask來表示我們隻希望播放動畫的部分,也就是說,雖然我的動畫檔案是整個人物的動畫,但是,我隻希望播放一部分(比如手部)的動畫,那我就通過Avatar Mask來把人物的其他部位的動畫給遮蔽。

unity之Mecanim動畫系統學習(6):Avatar Maskunity之Mecanim動畫系統學習(6)
unity之Mecanim動畫系統學習(6):Avatar Maskunity之Mecanim動畫系統學習(6)

紅色代表遮蔽,綠色代表播放

這樣一來,手部的動畫就可以和下半身動畫一起播放,是以Avatar Mask也叫動畫混合

最後将Avatar Mask拖入Another Layer中的Mask即可

動畫層的屬性說明

Weight

動畫層的權重,預設的Base Layer必須為1。如果設定為0則目前層的動畫不會播放,1則會播放,0-1之間會采用類似融合的情況來播放動畫,比如之前的招手的例子,如果設定為0.5則招手動畫播放時手部隻會擡到脖子附近,即播放的程度。

Mask

動畫混合,上方已經詳解。

Blending

動畫混合方式:

Override:覆寫,表示目前層的動畫會覆寫掉其它層的動畫,比如招手播放時右手就不能播放其它的動畫了;

Additive:添加,表示目前層的動畫的量添加到其它層的動畫,比如招手播放時,手部奔跑或站立的甩動也會保留;

Sync

開啟了該功能後會多出一些選項,如下:

unity之Mecanim動畫系統學習(6):Avatar Maskunity之Mecanim動畫系統學習(6)

我們可以将該功能看做複制的功能。

Source Layer:指定目前層是哪個層的副本,設定後目前層的狀态會和指定層完全一緻或完全同步,但是我們可以修改某一個狀态的動畫。

該功能提供的效果就是兩個狀态一緻的層可以做出一些不同的調整。

Timing:目前層和Souurce層同一個狀态使用的動畫時間長度不一緻時,不勾選複制的層按Source層的時間播放(效果就是複制層動畫可能會變快或變慢,Source層動畫播放速度不變),勾選則Source層按複制層的時間播放(效果就是Source層動畫可能會變快或變慢,複制層動畫播放速度不變)。

IK Pass:勾選了之後能夠使用IK動畫功能

繼續閱讀