UNITY x Puppet2D(二){動作系統與動畫錄製}


延續前篇:UNITY x Puppet2D(一){2D骨架、蒙皮、動畫插件介紹}

我們接著來看動畫系統的部分,開始之前先了解一下Global Ctrl的部分,他是之前我們所有建立的BONE、SPLINE、MESH的總成母體物件,因此我們要在這裡做歸零至中,有點像3D模型會將人物腳底放在(0,0,0)原點上一樣。

unet-hit-081



GLOBAL認識:

1.首先我們到Puppet2D的資料夾Prefabs下找到croc_Global_CTRL放到場景上來。
unet-hit-082

2.檢查一下最外層的物件座標是否在(0,0,0),但是內層物件的相對位置沒有對應上,因此需要做整體調整。
unet-hit-083
腳並未踩在原點上

3.全選Global下的物體後整體移動對齊
unet-hit-084

4.接下來就可以在Global的腳本做一些顯示控件或是Flip翻轉的功能控制。
unet-hit-085

5.接下來就可以來了解一下動作的儲存功能,首先釐清一個觀念,這裡所謂的動作儲存其實就是記錄下所有控制物件的位置,所以最萬無一失的做法就是將全部的腳色物件選取才做操作。如圖:
unet-hit-086

6.然後按下Animation底下的Save Seletion就可以把現在的狀態記錄下來,而且下方會多出一個Load的標籤,讓我們方便快速存取預設動作
unet-hit-087
Load標籤內右鍵會有幾個功能
unet-hit-088

  • Select Object
    此標籤內所有儲存的控件選取
  • Remove Selection
    移除此標籤內選取到的控件
  • Append Selection
    加入選取的控件到標籤內
  • Store Pose
    覆蓋動作擋到標籤內
  • Load Pose
    讀取標籤內的動作檔

7.假設這隻人物是我們自己製作綁定骨架的角色,應該不會有Animator功能,我們可以透過Add Component→Miscellaneous找到
unet-hit-089
同時在資源庫右鍵Create→AnimatorController建立一個新的動畫控制器,並且放到Animator的腳本對應欄位
unet-hit-090

8.以上就緒後到上方選單Window打開Animation,按下視窗中的Create按鈕創建一個新的Animation檔,我們就可以開始移動控件錄製動畫了。
unet-hit-091

9.動畫完成後我們也可以透過Render功能把動作輸出序列圖,並且配合Render Alpha輸出去背用的序列圖方便我們到影音剪輯軟體使用(例如AE)
exportedanim-all-files-all-files-0007

10.最後的功能Bake Animation可以幫助我們輸出動作,將動作檔分組打包方便最後的Animator流程控制
按下後視窗會顯示輸出的動作檔資訊
pp2d021pp2d020

11.之後透過Animator組裝我們的動作方便使用程式控制行為
unet-hit-092

這裡的概念是這樣,因為使用IK這類的輔助控件可以方便我們做出平滑的動畫,但是動畫錄製的是這些控制物件的坐標與旋轉量,之後我們實際要使用的是骨架和MESH來做動畫;因此BAKE實際上是將控件帶動的骨骼位置旋轉資訊實際的紀錄到骨頭上,並且打包成一個一個的Animation方便我們日後製作遊戲用。

Leave a Reply