簡介
在這次要介紹的功能用於,當你有兩個動畫檔案,想要混成一個新的效果,例如原本有一個角色是原始跑步以及一個角色是在攻擊的,現在我們想要合成一個邊跑步邊攻擊的效果。這邊要先準備好上述的兩個動畫與腳色,就準備開始了。
設定
先新增一個Animator Controller,也是我們常見的animator,接著把模型Prefab附著上Animator元件,並新增一個測試AnimatorMask的Animator,並且把該角色Avatar一併附著上,如上圖。
請點下剛剛新增的Animator並進入該視窗,我們新增一個專屬AnimatorMask的Layer,如上圖,請案至Layer按下”+”,並命名該Layer。
我們在轉台到新增一個本篇要介紹到的Animator Mask,請在自己的資料夾Create→Avatar Mask。
點開剛剛新增的Avatar Mask會出現上圖,讓你調整要遮住的部位,可以看到1.Humanoid,這是Unity提供一個比較簡易的調整方式,透過視覺化讓你點選。2.Transform,假如剛剛的功能無法選到你要遮的某個細部關節,你可以用這個選項,並將你的腳色原本的Avatar丟進「Use skeleton from」並Import skeleton,接著在下面就可以選擇細部骨架部分,這邊我們先使用Humanoid。
這邊講一個Layer觀念,在同一個Animator中可以有好幾層Layer,而我們可以透過Animator Mask來遮住上一層Layer的某些區塊,例如上圖舉的例子,我在Base Layer的IDEL狀態是全身手腳都會動,而加入Mask遮住遮住下半身,最後在Attack Layer我們加入Attack Animation,最後在Game View產出的會呈現「下半身是Base Layer的Animation,上半身是Atteck Layer的Animation」。
依據剛剛的Layer構造,我們順勢就把攻擊動畫丟到上層的Layer,並在該Layer可以看到Layer右側有個齒輪Icon,點下去可以調整Weight,可以調整該圖層顯示的權重,大家可以試試看在還沒有加入Avatar Mask前的效果。
接著我們依照上圖的順序來製作:
1.先把剛剛新增的Avatar Mask上半身點選,意思就是在Attack Layer允許Base Layer腳跑步的Animation。
2.3.調整Attack Layer的權重,建議調整到最大值:1,並且你可以看到在Layer處下方有個藍色線條,這是呈現Weight的大小。
4.這邊要把Blending調整成Additive,假如你這邊不做變更,依然是Override的話,Avatar Mask可能就會沒有作用了。
小結
完成以上的設定,其實最基本的Animator Mask就差不多了,大家可以看看上面的驗證影片,而在Animator的控制還有非常多的功能可以介紹,且Mask還有一些進階的用法,等待我們去發掘,讓我們繼續看下去。