Animation Rigging in Unity

內容目錄

前言

在各種的3D軟體裡面都會有Rigging腳色的功能,甚至我們可以利用上傳到Mixamo的方式快速Rigging,但其實在Unity裡面也是可以製作Rigging的,如果我們在Unity裡面製作Rigging甚至直接在Unity裡面製作完整動畫,也是一種快速便捷的方法之一,今天就跟著大家一起練習在Unity幫腳色製作Rigging吧。

  1. 開啟Unity以後首先我們最重要的就是要在Package Manager裡面找到Animation Rigging下載安裝。

這時候大家就可以藉由Daz 或是Adobe Fuse來製作自己喜歡的腳色並拉近場景裡面,拉進場景後就可以針對腳色製作Bone骨架,這步驟相當的簡單! 我們從選單找到Animation Rigging下拉就可以看到Bone Render Setup,點下去以後就可以清楚的看到腳色上多了Unity幫你架構好的骨架了。

2. Bone 骨架產生好以後我們就可以開始製作Rigging了,方法也是相當的簡單!

首先選擇我們腳色的最上層並按下按下Rig Setup。

按下Rig Setup後會會發現腳色的子層級裡面出現了一個Rig1,這個Rig1就是我們剛剛製作出來新的Rigging,我們在Rig1的子層級新建一個Empty空白物件並命名為HeadAim,接著我們選擇 HeadAim 新增Componet 選擇Multi-Aim-Constraint。

接著我們找到腳色的Head拖曳至Constrained Object這樣我們就擁有了Aim Axis了,這時候記得將我們的Aim Axis 設定為Y軸。

3. 再來我們來製作HeadAim所要Follow的Target,首先我們在HeadAim的子層級新建一個Empty物件並命名為Target,我們在Target裡面可以看到右下角有個可以設定Gizmo的地方,我們首先點選Animation Rigging的Shape,接著可以在Select Mesh 裡面搜尋Effector,這邊可以選擇你喜歡的Mesh樣式,我這邊先選擇Ball球形的Mesh來當作頭部的Target Mesh。

選擇好你要的Mesh以後,我們將Target Object拖曳到 Head Aim 裡面的Source Objects裡面,這樣Head Aim就會跟著Target的Source位置而改變了,接著我們在在Setting裡面將 Min Limit設定為-100 Max Limit設定為 100 設定我們的旋轉角度為100度,讓整個投在旋轉的時候不至於太過誇張,如果覺得Target的Weight太大的話也可以調低,這樣跟著Target移動的時候就不會幅度這麼大了。

都設定好以後我們可以按下Play到Scene裡面移動我們剛剛建立好的Target球球,這時候神奇的事情發生了,我們腳色的頭部真的會隨著Tagrget的移動而跟著改變。

3. 但是單純只有頭部移動的話實在很不符合人體工學,看起來不夠自然的話在動畫裡面可以說是致命傷,所以我們來讓Spine的位置也可以跟著動看起來才是正常的轉動。

這邊的方法很簡單,首先我們直接複製整個HeadAim,並將複製出來的HeadAim重新命名為ChestAim,接著我們將Target拖曳到ChestAim裡面的Source Object這樣就可以我們就可以與HeadAim共用Target了。

因為我們是複製HeadAim的內容,所以記得要更改Muti Aim Constraint裡面的Object,我們找到腳色的Spine將Spine拖曳到ChestAim裡面 Constrained Object裡面就完成更改了,因為Spine的擺動幅度也不能跟頭部一樣,依照人體結構我們的肩膀到頭部的地方是沒辦法轉動這麼快的,所以Source Objects裡面的數值調成0.3 讓轉動Spine的幅度不要太大。

設定好以後我們按下play並一樣到Secne裡面移動一下我們的Target物件,可以發現頭部的擺動隨著整個身體擺動,可以讓整個頭部移動的效果看起來更加自然。

4. 接著我們來試著做整個左手的Rigging,首先我們選擇腳色並按下Animation Rigging下拉選擇Rig Setup新增一個全新的Rig2,在我們最上層的腳色新增的Rig2重新命名為ArmRig,舊的Rig1命名為HeadRig,新增一個空物件命名為ArmMover,接著我們在ArmMover新增一個Two Bone IK Constraint的compomet。

這邊我們需要將Two Bone Ik 指定做一個設定

LeftArm拖曳到Two Bone IK Constraint的Root

LeftForeArm拖曳到Two Bone IK Constraint的Mid

LeftHand拖曳到Two Bone IK Constraint的Tip

建立好新的Two bone IK以後我們一樣需要一個Target,在ArmMover的子層級建立一個新的Empty物件同樣命名為Target,這時候會發現Target的位置離我們的手部位置相當遠,這時候我們只要同時選取LeftHand以及Target,並選擇表單上的Aninmation Rigging下拉選擇Align Transform,這樣Target的位置就會與LeftHand相同了。

同樣的將我們ArmMover的Target設定Gizmo選擇shape形狀,這邊我選擇的是Box形狀,設定好Mesh之後將Target拖曳到Two Bone IK Constraint Source Objects的Target就完成左半部手的Rigging了。

設定完以後我們可以按下play一樣到Scene裡面移動手部的Target,整個手就可以跟著我們Target移動,不管是位置、角度,都可以依照自己的想法移動。

最後我們在Unity裡面設定Animation移動我們設定好的Target以及配合原本腳色的Animator就可以看到我們在Unity完成了簡單Rigging製作了!

5. 其實在Animation Rigging裡面有很多的Sample Scene可以參考怎麼製作Rigging的,我們在Package Manager裡面就可以Import進來

透過官方所給我們的Rigging Sample可以讓我們在學習Unity的Rigging更加快速

小結

在Unity裡面的Rigging製作其實跟C4D等3D軟體的步驟差異不大,但是蠻有優勢的是我們可以直接在Unity裡面就建立Rigging方便我們在製作Unity場景裡面所需要的動畫,而不用先在其他的3D軟體裡面製作Rigging匯入到Unity裡面反而會更加的費工且位置等可以還不會正確,可以說是一個相當方便的工具,在往後製作情境場景的時候可以多加利用此項工具讓工作效率提升不少。

參考資料: https://youtu.be/Htl7ysv10Qs

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *