Version: 6000.3
语言: 中文
状态机转换
动画混合树(Animation Blend Trees)

动画过渡

animation transitions:允许状态机从一种动画状态切换或混合到另一种动画状态。过渡定义状态之间的混合应该花费多长时间,以及激活它们的条件。更多信息
请参阅术语表
状态机Animator 控制器中角色或动画游戏对象可以处于的状态集,以及这些状态之间的一组转换和用于记住当前状态的变量。可用的状态取决于游戏的类型,但典型的状态包括空闲、行走、奔跑和跳跃等。更多信息
请参阅术语表
从一种动画状态切换或混合到另一种动画状态。过渡定义状态之间的混合持续时间和发生过渡时的条件。要设置这些条件,请在Animator 控制器通过动画层控制动画状态机和动画混合树,由动画参数控制。具有 Animator 组件的多个模型可以引用同一个 Animator 控制器。更多信息
请参阅术语表
.

例如,你的角色可能有一个Patrollingstate 和Sleeping州。您可以将巡逻和睡眠之间的转换设置为仅在Alertness参数值下降到一定水平以下。

要命名过渡,请在过渡上方的字段中键入其名称:

检查器窗口中过渡上方的空字段。
检查器窗口中过渡上方的空字段。

检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。更多信息
请参阅术语表
窗口显示状态使用的过渡:

“巡逻”状态使用的过渡列表。
“巡逻”状态使用的过渡列表。

您只能在给定时间激活一个过渡。但是,您可以配置设置以使用另一个过渡中断当前活动的过渡。有关更多信息,请参阅转换中断

过渡属性

要查看过渡的属性,请在动画器窗口可视化和编辑动画器控制器的窗口。更多信息
请参阅术语表
.这些属性将显示在“检查器”窗口中。

“检查器”窗口中的“交易”属性。
“检查器”窗口中的“交易”属性。

使用以下属性调整过渡及其在当前状态和下一个状态之间的混合方式。

财产 功能
有退出时间 退出时间是一种不依赖于参数的特殊过渡。相反,它依赖于状态的归一化时间。选中以使转换在“退出时间”中指定的特定时间发生。
设置 包含详细过渡设置的折叠菜单。下面介绍每个过渡设置。
退出时间 如果选中“有退出时间”,则此值表示转换可以生效的确切时间。这以归一化时间表示(例如,退出时间 0.75 表示在播放了 75% 动画的第一帧上,退出时间条件为 true)。在下一帧上,条件为 false。

对于循环动画,退出时间小于 1 的过渡会在每个循环中进行评估,因此你可以使用它在每个循环的动画中以适当的时间来计时过渡。

退出时间大于 1 的过渡仅计算一次,因此它们可用于在固定数量的循环后的特定时间退出。例如,退出时间为 3.5 的过渡在三个半循环后计算一次。
固定持续时间 如果选中“固定持续时间”框,则转换时间以秒为单位进行解释。如果未选中“固定持续时间”框,则转换时间将解释为源状态归一化时间的一小部分。
过渡持续时间 相对于当前状态的持续时间,以标准化时间或秒为单位,具体取决于“固定持续时间”模式。这在过渡图中可视化为两个蓝色标记之间的部分。
过渡偏移(Transition Offset) 在转换到的目标状态下开始播放的时间偏移量。例如,值为 0.5 表示目标状态在其自己的时间轴的 50% 处开始播放。
中断源 使用它来控制此转换可能中断的情况。有关更多信息,请参阅转换中断
有序中断 确定当前过渡是否可以被其他过渡中断,而不受其顺序的影响(请参阅下面的过渡中断)。
条件 转换可以具有单个条件、多个条件或根本没有条件。如果您的过渡没有条件,则 Unity 编辑器仅考虑退出时间,并在达到退出时间时发生过渡。如果您的转换有一个或多个条件,则必须在触发转换之前满足所有条件。条件包括:
  • 事件参数(条件中考虑的值)。
  • 条件谓词(如果需要,例如 <less than或>greater than对于浮点)。
  • 参数值(如果需要)。
如果您为过渡选择了 Has Exit Time 并且有一个或多个条件,请注意,Unity 编辑器会考虑 Exit Time 之后的条件是否为真。这使您可以确保在动画的特定部分发生过渡。

过渡中断

使用 中断源(Interruption Source) 和 有序中断(Ordered Interruption) 属性来控制转换的中断方式。从概念上讲,中断顺序的工作原理就像转换排队,然后解析从插入的第一个转换到最后一个转换的有效转换一样。

中断源属性

AnyState 中的转换始终首先添加到队列中,然后根据 Interruption Source 的值将其他转换排队:

价值 功能
没有 不要再添加任何过渡。
当前状态 将当前状态的转换排队。
下一个状态 将下一个状态的转换排队。
当前状态,然后是下一个状态 将当前状态的转换排队,然后将下一个状态的转换排队。
下一个状态,然后是当前状态 将下一个状态的转换排队,然后将当前状态的转换排队。

Ordered Interruption 属性

属性 Ordered Interruption 更改了队列的解析方式。根据其值,解析队列会在不同的时刻结束,如下所示。

价值 结束时间
检查 已找到有效的转换或当前转换。
猖獗 已找到有效的转换。

只有 AnyState 转换可以自行中断。要了解有关转换中断的更多信息,请参阅状态机转换中断

过渡图

使用“过渡”图表直观地调整过渡设置。

“过渡”图表,如检查器中所示。
“过渡”图表,如检查器中所示。

过渡图表中的白线表示每个状态的IK脚接触。图表的顶部代表左脚,底部代表右脚。当白线位于图形顶部时,左脚接触地板平面。当白线位于底部时,右脚接触地板平面。

调整过渡设置,直到状态之间出现平滑过渡。具有平滑过渡的白线可避免脚部打滑、动画跳跃并保留运动的动态。

使用以下作来调整过渡设置:

  • 拖动持续时间“输出”标记以更改过渡的持续时间
  • 拖动持续时间“in”标记以更改过渡的持续时间和退出时间
  • 拖动目标状态以调整 过渡偏移(Transition Offset) 。
  • 拖移预览播放标记以在检查器底部的预览窗口中拖动动画混合。

混合树状态之间的过渡

如果属于此转场的当前状态或下一个状态是“混合树”状态,则“混合树”参数会显示在“检查器”窗口中。调整这些值以预览将混合树值设置为不同配置时过渡的外观。 如果混合树包含不同长度的剪辑,则应测试显示短剪辑和长剪辑时的过渡外观。调整这些值不会影响过渡在运行时的行为方式;它们仅用于帮助您预览过渡在不同情况下的外观。

混合树参数预览控件,当当前或下一个状态为混合树状态时可见。
混合树参数预览控件,当当前或下一个状态为混合树状态时可见。

条件

转换可以具有单个条件、多个条件或无条件。如果您的过渡没有条件,则 Unity 编辑器仅考虑退出时间,并在达到退出时间时发生过渡。如果您的转换有一个或多个条件,则必须在触发转换之前满足所有条件。

条件包括:

  • 事件参数,其值在条件中被考虑。
  • 条件谓词,如果需要(例如,对于浮点数,更小或更大)。
  • 参数值(如果需要)。

如果您为过渡启用了 Has Exit Time,并且过渡有一个或多个条件,则 Unity 仅在状态退出时间之后检查这些条件。这可确保您的过渡仅在动画的特定部分发生。

过渡

状态机转换
动画混合树(Animation Blend Trees)