想要在 Unity 裡控制 3D 模型的骨架,除了最知名的「Final IK」付費套件可以用外,如果你的 Unity 引擎版本在 2020 版以上,也可以來嘗試看看官方支援的「Animation Rigging」。
在這篇內容中我僅能介紹基礎的用法,因為我對於 3D 模型相關的知識目前處於入門等級,尚在學習中。
前情提要
- 模型必須先綁好骨架並蒙皮。
- 建議先在主流 3D 建模軟體中完成動畫設計,再由 Animation Rigging 進行動態控制。
套件資訊
- 名稱:Animation Rigging
- 語言:英文
- 版本:2020.2 以上
- 文檔:Animation Rigging | Animation Rigging | 1.2.0 (unity3d.com)
- 下載:Package Manager
套件安裝
Animation Rigging 已經是正式版套件,可以直接透過 Package Manager 進行安裝。

模型配置
一、匯入模型,我在 Mixamo 中找了一個動畫附帶模型作為操作範例,此模型已帶有骨架與動畫。

二、將模型拉入場景,為物件新增 Animator 組件和 Animator Controller,並將模型自帶的動畫拉入控制器中並設為預設。

三、顯示骨架,先選中場景上的人物模型,從頂部選單執行 Bone Renderer Setup。

四、模型將會被新增一個 Bone Renderer 組件以渲染人物骨架,可透過調整 Bone Size 與 Color 來使骨架清楚顯示。

建立手部控制器
一、先選中人物模型,只不過這次要執行的是 Rig Setup,這將會新增 Rig Builder 組件與一個子物件 Rig1。


二、在 Rig1 下建立一個空物件,先給他新增一個「Two Bone IK Constraint」,再將模型骨架中的手部物件拖入 Tip 欄位,最後在組件的標題上滑鼠右鍵選單執行 Auto Setup from Tip Transform,其他的組件欄位將會自動設置完畢,也會多出 target 和 hint 兩個子物件。


三、這邊產生的 LeftHand_target 物件就是我們的手部骨架控制器,但現在他的座標還是在 (0, 0, 0),需要進行對齊。請按著鍵盤 Ctrl,先選 LeftHand_target 後再選手部骨架,再透過頂部選單進行 Align Transform 對齊。

四、現在的 LeftHand_target 已經與手部骨架對齊,接下來選中他,並點選場景中 Animation Rigging 浮動視窗中的 + 按鈕以建立可視的控制器。

五、可調整 Shape、Size、Rotation 等屬性以使控制器符合模型現況。

六、接下來讓 LeftHand_hint 也做一樣的對齊、加 Effector 動作,但是這個物件放置的座標要注意一下,因為人的手肘是往後彎曲的,要將他放在手的後面。
LeftHand_hint 是拿來讓 Unity 判斷控制器移動時骨架要彎曲的方向,這個物件是可選的,當然我們也可刪掉 LeftHand_hint,讓 Unity 自行判斷。

LeftHand_hint 物件位置對於彎曲行為的影響:
完成。