📝 Unity 动作重定向(Motion Retargeting)标准笔记
核心原理
Unity 的 Humanoid(人形)动画系统 通过一个名为 Avatar(骨骼映射骨架) 的中间件,将"A模型的动画数据"翻译给"B模型"。只要两个模型都被成功识别为 Humanoid,系统就会自动处理身高、手臂长度等身材比例差异,实现完美的动作复用。
📥 第一步:导入资产 (Import Assets)
将以下源文件拖入 Unity 的 Project(项目)窗口中:
- 源模型(动作提供者): 从 GVHMR 导出的、带有动画关键帧的灰色人模 FBX。
- 目标模型(皮肤拥有者): 经 Maya 导出、已做好标准骨骼绑定(Rigging)与蒙皮(Skinning)的男/女模型 FBX。
🤖 第二步:配置双方的 Humanoid 骨架 (Rig Configuration)
对"源模型"和"目标模型"的 FBX 文件本体,分别执行以下完全相同的操作:
- 在
Project窗口点击选中该模型 FBX 文件。 - 在右侧
Inspector面板顶端,切换到Rig标签页。 - 将
Animation Type下拉菜单由 Generic 改为Humanoid。 - Avatar Definition 保持默认的 Create From This Model。
- 点击
Apply按钮(此时 Unity 会自动生成一个带有 λ˙\dot{\lambda}λ˙ 形状的小绿人图标资产,称为Avatar)。 - 点击 Apply 旁的
Configure...按钮进入黑色的骨骼映射检查视图:
- 检查右侧面板的"小绿人"是否全身上下都是绿色圆圈(代表 Unity 自动精准识别了头、胸、四肢等核心骨骼)。
- 确保模型在场景中呈现标准的 T-Pose (双手水平伸直,双腿并拢,面朝正前方)。如果姿势歪斜,点击右下角
Pose -> Enforce T-Pose强制纠正。 - 点击右下角
Apply,然后点击Done退出该视图。
✂️ 第三步:提取动画剪辑 (Extract Animation Clip)
GVHMR 的动画数据默认被锁在源模型 FBX 文件内部,需要提取出来才能自由编辑和挂载:
- 在
Project窗口点击展开源模型(灰色模型)的 FBX 文件(点击其右侧的小三角)。 - 在展开的子资产中,找到青色/蓝绿色三角块图标 的资产(这代表动画剪辑
AnimationClip)。 - 选中该动画资产,按下键盘快捷键
Ctrl + D(Mac 上为Cmd + D) 进行复制。 - 此时会发现一模一样的动画文件被复制到了 FBX 外部。将其重命名(例如:
GVHMR_Dance_Motion)。
🕹️ 第四步:构建动画控制器 (Animator Controller)
- 在
Project窗口的空白处右键 →\rightarrow→Create -> Animator Controller,命名为Character_Controller。 - 双击打开这个新建的
Character_Controller,会弹出一个网格状的连线状态机窗口(Animator 窗口)。 - 将第三步中用
Ctrl + D复制出来的GVHMR_Dance_Motion动画剪辑直接拖入这个网格窗口中。它会自动变为橙色,作为默认播放状态。
🎬 第五步:组装并运行 (Assemble & Play)
- 将目标模型(带皮肤的模型)从
Project窗口拖入到层级面板(Hierarchy)或直接拖入场景中。 - 选中场景中的目标模型,查看右侧
Inspector面板,确保其身上挂有Animator组件。 - 关键插槽配置:
Controller插槽: 把第四步创建的Character_Controller拖进去。Avatar插槽: 把目标模型自己生成的 Avatar (即第二步为他改 Humanoid 时生成的那个 λ˙\dot{\lambda}λ˙ 图标)拖进去。(⚠️注意:绝对不能放灰色模型的 Avatar)
- 点击 Unity 编辑器正上方的
Play(播放) 按钮。
💡 记笔记时的避坑总结(Checklist):
- 双 Humanoid 原则: 动捕模型和皮肤模型必须都是 Humanoid 模式。
- 双 T-Pose 原则: 双方在
Configure界面里的初始姿势必须都是标准的 T-Pose,否则重定向后关节会脱臼或穿模。 - Avatar 属于自己: 场景里的皮肤模型,其
Animator组件上的Avatar必须绑定它自己的骨架映射,动作才能通过 Controller 正确"翻译"给它。