1、針對Unity中實現正確動畫效果的角色,首先需要在3D建模軟件中實現骨骼化操作。
骨骼化是指底層骨骼結構添加至設計師創建的模型中,且各快骨骼與網格頂點間實現了加權操作
可使用MakeHuman軟件快速生成骨骼化角色
2、① 導入骨骼化角色,定義縮放因子
② 切換到Object Inspector中的Rig選項卡,在Animation Type下拉框選擇Humanoid
默認時,如果網格包含骨骼化信息,該值爲Generic;否則,該值表示None
Generic用於骨骼化非人物角色網格,如動物、起重機等
③ Apply後,一個勾選符號將顯示在Object Inspector中Configure按鈕一側
表明Mecanim是否可在網格文件中成功地識別人物角色的骨骼信息,也可通過人工方式進行配置
3、Avatar和重定位
人工配置Avatar網格,單擊Configure按鈕並顯示Avatar編輯器
利用Mapping和Muscles&Settings進行調整和設置
4、動畫的重定位操作
可根據不同的角色或文件獲取動畫數據,並將其應用於包含正確配置的Avatar的其他角色上
可導入遊戲角色資源包 Assets | Import Package | Characters
包含了第一人稱和第三人稱控制器,以及行走和跑動循環的角色動畫
將角色網格從Project面板中拖拽至場景中,Unity會自動添加Animator組件
將系統自帶的行走動畫賦給角色,Unity會自動配置Animation Controller
5、根節點運動
根運動:應用於網格層次結構最上方(根)對象的位置和旋轉
針對骨骼和各部件,導入的角色網格包含了多個子對象
然而,作用於最上層對象的動畫視爲根運動,默認情況下啓動根運動
如角色處於運動狀態行走,而不是原地踏步
可取消選中 Object Inspector 的 Animator 組件的 Apply Root Motion 複選框
根運動使得角色運動更具有真實感,該過程訪問了動畫曲線數據,對應角色運動方式通過插值計算高效實現
禁用根運動則會生成快速、靈活的運動行爲,適用於街機和動作類遊戲
6、修復運動偏移
偏移的原因在於,存在某一偏差使得一段時間內角色偏移路徑,主要存在於動畫的根運動中,與場景和角色無關
在 Project 面板的 Animation 選項卡查看文件的動畫數據
偏差的問題主要源於角速度,在Average Velocity向量表示角色在其動畫生命週期內的方向和朝向
解決:選中Root Transform Rotation 的 Bake Into Pose 複選框,調整Offset字段,直至Average Velocity值爲0
另外,如果角色在地面行走實際位置高於或低於中心位置,將Root Transform Position(Y)中
Based Upon(at Start)字段調整爲Feet