Version: 6000.3
语言: 中文
动画过渡
1D 混合

动画混合树(Animation Blend Trees)

游戏动画中的一个常见任务是在两个或多个相似的动作之间进行混合。也许最著名的例子是根据角色的速度混合步行和跑步动画。另一个例子是角色在跑步过程中转弯时向左或向右倾斜。

区分过渡和混合树非常重要。虽然两者都用于创建流畅的动画,但它们用于不同类型的情况。

  • 过渡(Transitions)状态机中从一种状态到另一种状态的混合,例如将角色从行走过渡到慢跑动画。过渡定义状态之间的混合应该需要多长时间,以及激活混合的条件。更多信息
    请参阅术语表
    在给定的时间内从一个动画状态平滑过渡到另一个动画状态。过渡被指定为动画状态机Animator 控制器中的图表,用于控制动画状态的交互。每个状态都引用一个动画混合树或单个动画剪辑。更多信息
    请参阅术语表
    .如果过渡很快,从一个运动过渡到完全不同的运动通常没问题。

  • 使用混合树(Blend Trees) 通过不同程度合并每个动画的各个部分来平滑地混合多个动画。每个动作对最终效果的贡献量使用混合参数进行控制,该参数只是数字之一动画参数用于在脚本和动画师控制器之间进行通信。某些参数可以在脚本中设置并由控制器使用,而其他参数则基于动画剪辑中的自定义曲线,可以使用脚本API进行采样。更多信息
    请参阅术语表
    Animator 控制器通过动画层控制动画状态机和动画混合树,由动画参数控制。具有 Animator 组件的多个模型可以引用同一个 Animator 控制器。更多信息
    请参阅术语表
    .为了使混合运动有意义,混合的运动必须具有相似的性质和时间。混合树是动画中的一种特殊类型的状态状态机Animator 控制器中角色或动画游戏对象可以处于的状态集,以及这些状态之间的一组转换和用于记住当前状态的变量。可用的状态取决于游戏的类型,但典型的状态包括空闲、行走、奔跑和跳跃等。更多信息
    请参阅术语表
    .

类似动作的示例可以是各种步行和跑步动画。为了使混合正常工作,剪辑中的运动必须发生在归一化时间的相同点。例如,可以对齐步行和跑步动画,以便脚与地板接触的时刻发生在归一化时间的相同点(例如,左脚在 0.0 处着地,右脚在 0.5 处着地)。由于使用了归一化时间,因此剪辑的长度是否不同并不重要。

使用混合树

要开始使用新的混合树,请执行以下作:

  1. 右键单击 Animator 控制器窗口上的空白区域。
  2. 从上下文菜单中选择 从新混合树创建状态>(Create State From New Blend Tree)。
  3. 双击 混合树(Blend Tree) 进入 混合树图表(Blend Tree Graph) 。

动画器窗口 可视化和编辑动画器控制器的窗口。更多信息
请参阅术语表
显示整个混合树的图表,而检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
显示当前选定的节点及其直接子节点(如果适用)。

例如,左侧的混合树仅显示根混合节点,因为它没有子节点。右侧的混合树有一个根,其中三个动画剪辑作为子节点。
例如,左侧的混合树仅显示根混合节点,因为它没有子节点。右侧的混合树有一个根,其中三个动画剪辑作为子节点。

添加动画剪辑可用于动画角色或简单动画的动画数据。它是一个简单的“单位”运动片段,例如(一个特定实例)“空闲”、“步行”或“运行”。更多信息
请参阅术语表
在混合树中,您可以选择混合树,然后单击检查器中运动字段中的加号图标。

添加动作之前检查器中的混合节点。使用加号图标添加动画剪辑或子混合树。
添加动作之前检查器中的混合节点。使用加号图标添加动画剪辑或子混合树。

你还可以右键点击并使用上下文菜单添加动画剪辑或子混合节点

右键单击混合树节点时的上下文菜单。
右键单击混合树节点时的上下文菜单。

当混合树具有动画剪辑和输入参数时,“检查器”窗口会显示动画组合方式的图形表示。使用滑块

此可视化效果会随着参数值的变化而变化(拖动滑块时,树根的箭头会更改其阴影以显示主要动画剪辑)。

包含五个动画剪辑的2D混合树
包含五个动画剪辑的2D混合树

选择混合树图表中的任意节点,将其显示在 Inspector 窗口中。如果所选节点是动画剪辑,则将显示该动画剪辑的检查器。如果动画是从模型导入的,则设置将是只读的。如果节点是混合节点,则将显示混合节点的检查器。

“混合类型”菜单中选择“一维”或“二维”混合。以下主题提供了有关这些混合类型以及“检查器”窗口中可用设置的更多详细信息:

混合树

动画过渡
1D 混合