游戏动画中的一项常见任务是在两个或更多相似运动之间进行混合。也许最熟知的示例就是根据角色的速度来混合行走和奔跑动画。另一个示例是角色在奔跑期间转向时向左或向右倾斜。
区分过渡与混合树十分重要。虽然两者都用于创建平滑动画,但它们用于不同种类的情况。
使用__过渡__在给定时间内从一个动画状态平滑过渡到另一动画状态。过渡作为动画状态机的一部分指定。如果过渡很快,从一个运动到完全不同运动的过渡通常没有问题。
使用__混合树__在不同程度上合并每个动画的一部分,从而平滑混合多个动画。每个运动对最终效果的影响由一个混合参数控制,该参数只是与 Animator Controller 相关联的数字动画参数之一。为了使混合后的运动合理,要混合的运动必须具有相似的性质和时机。混合树是动画状态机中的一种特殊状态类型。
例如,类似运动可能是各种行走和奔跑动画。为了使混合取得良好效果,剪辑中的动作必须在标准化时间内的相同点进行。例如,可将行走和奔跑动画对齐,使得脚与地面的接触时刻发生在标准化时间内的相同点(例如,左脚接触点为 0.0,右脚接触点为 0.5)。由于使用标准化时间,因此剪辑长度不同并不要紧。
要开始使用新混合树,请执行以下操作:
Animator 窗口显示整个混合树图,而 检视面板显示当前选定节点及其直接子节点(如适用)。
要将动画剪辑添加到混合树,可选择该混合树,然后单击 Inspector 的 Motion 字段内的加号图标。
还可以右键单击并使用上下文菜单以添加动画剪辑或子混合节点:
当混合树具有动画剪辑和输入参数时,检视面板窗口会显示动画组合方式的图形化表示。使用滑动条
此可视化会随着参数值的变化而变化(拖动滑动条时,树根中的箭头会改变其着色以显示占主导优势的动画剪辑)。
选择混合树图中的任何节点,使其显示在 检视面板窗口中。如果所选节点是动画剪辑,则会显示该动画剪辑的检视面板。如果该动画是从模型导入的,设置将处于只读状态。如果节点是混合节点,则会显示混合节点的 Inspector。
从 Blend Type 菜单中选择 1D 或 2D 混合。以下主题提供有关这些混合类型和检视面板窗口中可用设置的更多详细信息:
BlendTree