標準化面部動畫流程:從基礎模型到表情庫構建
本教程演示業界標準的BlendShape (混合變形)面部動畫製作流程:以綁定好頭部模型為基礎,導出 OBJ 供外部雕刻/修改,製作多個表情變形目標,再導入 Maya 建立 BlendShape 節點並搭建控制器。適合需要建立角色表情庫的項目。
核心工作流
階段一:基礎模型準備與導出
- 確認頭部模型拓撲乾淨、UV 展開完整、綁定骨骼/控制器就緒。
- 導出 OBJ 格式(僅幾何體,不含歷史/骨骼/材質)。
- 保存 Maya 場景 (`.mb`) 以備後續導入。
- 關閉 Maya 釋放內存(後續雕刻/修改極耗資源)。
階段二:外部製作變形目標 (ZBrush / Mudbox / Blender 等)
- 導入 OBJ → 以基礎模型為底,雕刻/編輯出一系列表情形態:
`Brow_Raise`(抬眉)、`Brow_Furrow`(皺眉)、`Eye_Blink`(眨眼)、`Smile`(微笑)、`Frown`(撇嘴)、`Mouth_Open`(張嘴)、`Phoneme_A/E/I/O/U`(語音嘴型)等。
- 關鍵規則:每個表情模型頂點數、頂點順序、UV必須與基礎模型**完全一致**,否則 BlendShape 失效。
- 各表情單獨導出 OBJ(命名規範:`char_head_blendShape_smile.obj`)。
階段三:Maya 導入與 BlendShape 建立
- 重新打開 Maya 場景 (`.mb`)。
- 依次導入所有表情 OBJ → 自動對齊到基礎模型位置(或手動對齊)。
- 選擇所有表情模型 → 最後選基礎模型(基礎模型必須最後選中)。
- 執行 `Deform > Blend Shape > □` → 選項:
`Deformation Order: Front of Chain` (變形鏈前端)
`Topology Check: On` (拓撲檢查) → `Create`。
生成 `blendShape1` 節點掛載在基礎模型歷史上。
階段四:表情控制器搭建
- 打開 `Shape Editor` (Windows > Animation Editors > Shape Editor) —— 視覺化管理所有 Target 權重。
- 為每個 Target 創建友好命名的代理屬性(Proxy Attribute)於主控制器 (如 `FACE_CTRL`) 上:
右鍵 Target → `Create Proxy Attribute` → 輸入名稱 (如 `smile`)、範圍 (0-1)。
- 或使用 `Set Driven Key` 將主控制器自定義屬性驅動 BlendShape 權重(支援非線性映射)。
階段五:眉毛/睫毛等附屬幾何體同步
- 眉毛/睫毛若為獨立模型,需同樣製作對應變形目標並建立 BlendShape,或用 `Wrap Deformer` 綁定至主頭模變形。
- 教程截圖展示了「加個眉毛」步驟:獨立眉毛模型 → 同樣 BlendShape 流程 → 連接同一控制器屬性。
專業級優化建議
- 分區 BlendShape:上臉部(眉/眼)、下臉部(嘴/臉頰)分離,減少單節點計算量,便於局部控制。
- 修正形狀:為極端組合表情(如「大笑+眨眼」)製作修正目標,消除穿模/體積塌陷。
- 混合映射曲線:在 `Shape Editor` 中調整每個 Target 的 `Weight` 曲線,實現非線性疊加(如前 50% 權重驅動主要形變,後 50% 只微調細節)。
- 輸出遊戲引擎:導出 FBX 時勾選 `Blend Shapes`,Unity/Unreal 可直接播放/腳本驅動。
避坑清單
- ❌ 表情模型頂點順序不一致 → 導入後 BlendShape 亂飛。
- ❌ 忘記刪除表情模型歷史/非變形歷史 → 場景冗余、渲染報錯。
- ❌ 基礎模型修改後未同步更新所有表情目標 → 破壞拓撲一致性。
- ✅ 使用 `Delta Mush` 節點平滑 BlendShape 邊緣過渡。
- ✅ 建立 `Pose Space Deformation (PSD)` 系統應對大角度關節帶動的面部二次變形。
掌握此流程,即可為任何角色建立可擴展、可複用、引擎友好的面部表情系統。