Unity3D 技术之根运动 (Root Motion) – 工作原理
根运动 (Root Motion) – 工作原理
身体变换
身体变换 (Body Transform) 是角色的质心。它用于 Mecanim 重定位引擎,提供最稳定
的位移模型。身体方向 (Body Orientation) 是下半身方向与上半身方向的平均,与 Avatar T
字姿势 (T-Pose) 相关。
身体变换 (Body Transform) 和方向 (Orientation) 存储在动画片段 (Animation Clip) 中
(使用 Avatar 中设置的肌肉线条)。它们是存储在动画片段 (Animation Clip) 中的唯一世
界空间曲线。其他一切事项:肌肉线条和 IK 目标(四肢 (Hands and Feet))相对身体变换
存储。
根变换
根变换 (Root Transform) 是身体变换 (Body Transform) 在 Y 平面上的投影,在运行时
计算。在每一帧,根变换 (Root Transform) 中的变化都会计算出来。然后变换的变化会被应
用到游戏对象 (Game Object) 上,使之移动。
角色下面的圆代表根变换
动画片段检视器
动画片段编辑器 (Animation Clip Editor) 设置(根变换旋转 (Root Transform Rotation)、
根变换位置 (Root Transform Position) (Y) 和根变换位置 (XZ))让您从身体变换 (Body
Transform) 控制根变换 (Root Transform) 投影。根据这些设置,身体变换 (Body Transform)
的某些部分可能会是转移的根变换 (Root Transform)。例如,您可以决定是否要让运动 Y 位
置成为根运动 (Root Motion)(轨迹)或者姿势(身体转换)的一部分,这就是所谓的合并
到姿势 (Baked into Pose)。
根变换旋转
合并到姿势 (Bake into Pose):方向与身体变换(或者姿势 (Pose))保持一致。根方向
(Root Orientation) 保持不变,增量方向 (Orientation) 相同。这意味着,该 AnimationClip 完
全不会旋转游戏对象 (Game Object)。
只有拥有类似启停根方向 (Root Orientation) 的 AnimationClip 才会使用该选项。您会
在 UI 看到绿灯 (Green Light),告知您某个 AnimationClip 是好的候选片段。合适的候选
片段应当是直走或跑步动画。
基于 (Based Upon):该选项允许您设置片段的方向。片段使用身体方向 (Body
Orientation) 定向,以循着身体的向前向量。该默认设置适用于大多数动作捕捉 (Motion
Capture)(动态捕捉 (Mocap))数据,比如走路、跑步、跳跃,但不能用于扫射之类的动作,
这些动作与身体的向前向量垂直。在这种情况下,可以使用偏移(Offset) 设置手动调整方向。