如何让绑定角色沿直线路径移动,而不是自动形成弧线
要让绑定角色沿直线移动,请在两个位置之间为其移动控制器制作动画,使平移关键帧在时间上对齐,并在初次测试时使用线性切线。如果角色仍然走弧线,请检查其父级变换以及是否连接了运动路径。
本指南适用于已有可用角色绑定、但发现起始姿势与结束姿势之间出现不需要的弧线的动画师。以下操作步骤以 Maya 为例。目标是在保留独立姿势动画的同时,让角色的整体移动轨迹变直。
判断问题出在路径还是速度
路径为直线和速度恒定是两个不同的要求。角色可以沿直线移动,同时逐渐加速;也可以沿曲线路径以恒定速度移动。Adobe 的文档明确区分了空间插值(控制物体在空间中的移动方式)和时间插值(控制物体随时间的变化方式)。这一区别有助于判断需要调整动画的哪一部分。After Effects 中的关键帧插值
首先,确定需要保持直线路径的点:移动控制器的原点、根关节,或绑定中另一个定义明确的点。在整个移动过程中持续观察同一个点。即使角色整体沿直线移动,旋转或摆姿势的角色,其末端部位也可能沿曲线运动。
更改动画前,请按以下顺序诊断:
| 观察到的情况 | 首先检查的内容 |
|---|---|
| 移动点偏离预期直线,向外弯曲 | 平移曲线和中间关键帧 |
| 路径是直线,但移动速度时快时慢 | 时间设置和切线斜率 |
| 平移曲线看起来是线性的,但移动点仍沿弧线运动 | 父级变换或其他驱动连接 |
| 移动点保持直线,其他部位却沿曲线运动 | 局部姿势动画和绑定求值 |
选择真正带动整个角色移动的控制器
先使用绑定指定的移动控制器。它的名称和用途取决于绑定本身:名为“global”的控制器可能用于摆放角色,而另一个控制器则负责制作移动动画。对预期使用的控制器进行小幅临时平移,检查结果,然后撤销测试。
确认角色的可见部位和相关控制器是否一起跟随。如果某些控制器没有跟随,请先弄清绑定预期的跟随方式,再创建移动关键帧。直接编辑任意关节或可见网格,会让测试结果更难判断。
同时检查控制器的父级层级。Maya 对象可以继承父级的变换。因此,动画旋转的父级下方即使有一段局部直线平移,在世界空间中也可能形成弧线路径。这是继承的变换与局部动画叠加后的结果。Maya inheritTransform 命令
初次测试时,使用父级变换在整个时间段内保持不变的移动控制器。如果需要临时隔离已有动画,请在保存的副本中操作。记录原始数值;不要将偏移量可能属于绑定设置一部分的控制器归零。
创建简洁的双关键帧平移测试
使用两个端点关键帧,确认基本平移是否正常。以下数值仅为场景单位示例,并非针对某个特定角色的测量值。示例假设移动控制器可编辑、坐标系固定,且没有其他连接驱动其平移。
| 帧 | 平移 X | 平移 Y | 平移 Z |
|---|---|---|---|
| 1 | 0 | 0 | 0 |
| 25 | 6 | 0 | 0 |
在 Maya 中按以下步骤创建测试:
- 选择移动控制器,并将时间滑块移到第 1 帧。
- 在通道框中输入起始平移值。
- 选择 Translate X、Translate Y 和 Translate Z 属性名称,右键单击,然后选择 Key Selected。
- 移到第 25 帧并输入目标值。
- 再次为相同的三个平移属性设置关键帧。
- 检查时间段内是否已有平移关键帧。在测试副本中,只删除与预期移动冲突的中间关键帧,并保留无关的姿势动画。
Maya 支持通过通道框为单个属性或选定的属性组设置关键帧。使用 Key Selected 可以明确此次测试影响的范围。如果控制器的起始值不为零,请保留这些偏移量,并将所需位移加到相应轴上。在通道框中设置关键帧
为平移关键帧应用线性切线
选中移动控制器并打开 Maya 的曲线图编辑器。显示其平移通道,选择这些通道上的端点关键帧,然后选择 Tangents > Linear。对移动涉及的所有平移通道应用此设置。Maya 文档说明,线性切线会在关键帧之间生成直线动画曲线段。曲线图编辑器工具栏、关键帧切线标记菜单
在示例移动中,X 值应持续增加,而 Y 和 Z 保持不变。请在整个时间段内拖动时间轴检查,不要只检查端点。角色可能到达正确的目标位置,但在途中偏离预期路径。
对于斜向移动,应让每个发生变化的平移通道使用相同的起止帧。例如,在该坐标系中,从 (0, 0, 0) 移动到 (6, 0, 3),并使用同步的线性插值,会形成一条直线斜向轨迹。如果 X 比 Z 更早到达目标值,合成轨迹就会改变方向。
有选择地应用线性切线。将绑定中的每个关键帧都转换为线性切线,也会改变不需要调整的姿势动画时间。Autodesk 区分了线性、样条、平坦等切线类型,因为它们会在关键帧值之间产生不同的过渡效果。关键帧切线标记菜单
使用运动轨迹和中点检查验证结果
在移动控制器上创建运动轨迹,以检查其移动路径。在 Maya 的 Animation 菜单组中,打开 Visualize > Open Motion Trail Editor,选择合适的显示范围,并在选中已制作动画的控制器后单击 Create Motion Trail。文档介绍的工作流程包括 Before 和 After 显示模式,可用于检查当前帧附近的移动。创建和编辑运动轨迹
使用示例数值进行数值检查。第 13 帧位于第 1 帧与第 25 帧的正中间,因此预期平移值为 (3, 0, 0)。对于斜向移动示例,预期值为 (3, 0, 1.5)。这些是根据同步线性插值计算出的预期值,并非报告的软件测试结果。
通用检查公式为 P(u) = A + u × (B − A),其中 A 是起始位置,B 是目标位置,u 表示进度,取值范围为 0 到 1。进度达到四分之一时,位置应位于线段的四分之一处。这样可以同时检查方向和间距。
从多个固定视口角度检查,以便观察深度变化。请记住,运动轨迹显示的是最终移动结果;它与驱动物体沿预设路线移动的运动路径不同。使用运动轨迹预览动画
诊断线性插值后仍存在的弧线
如果双关键帧测试后仍然出现弧线,请检查哪些因素影响了最终位置。首先检查整个时间段内的父级层级。父级即使在端点处看起来方向相同,中间也可能发生旋转,因此也要检查中间帧。使用绑定预期的移动空间,不要在不了解设置的情况下更改变换继承。Maya inheritTransform 命令
接下来,检查控制器是否连接到了运动路径。Maya 的路径动画会使对象沿定义好的三维路线移动,其文档将调整路径形状和改变移动速度视为两个独立操作。如果路径本身是弯曲的,只调整时间无法让它变直。请将路径编辑为直线段,或使用绑定支持的直接平移工作流程。路径动画
最后,将移动控制器的轨迹与看起来沿弧线运动的特定关节或控制器进行比较。绑定求值可能产生不同的中间结果。例如,Autodesk 文档指出,HumanIK 的全局 IK 效应器与层级局部 FK 效应器的插值方式并不相同。因此,移动控制器沿直线运动,并不能证明绑定中的每个点都会沿相同路径移动。HumanIK 控制器
增加缓入缓出效果,同时保持路径笔直
确认路径后,决定角色应保持恒定速度,还是在移动开始和结束时缓入缓出。对于只沿 X 轴移动的情况,保持 Y 和 Z 不变,只调整 X 轴上的时间设置。只要坐标系保持固定,沿单一轴改变移动进度就不会造成侧向位移。
对于斜向移动,所有变化的坐标都必须使用相同的归一化进度。在表达式 P(u) = A + u × (B − A) 中,缓动会改变 u 随时间推进的方式。如果分别编辑每个坐标的缓动,就可能破坏这种关系,使路径弯曲。这是根据直线方程推导出的几何条件。
完成后,在预期姿势动画启用的状态下检查完整绑定。确认整个时间段内的端点、中间位置和移动轨迹。在细化角色的局部动作时,保留已验证的移动动画作为参考。
