版本:Unity 6 (6000.0)
语言:英语
状态机过渡
动画混合树

动画过渡

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

例如,您的角色可能具有“巡逻”状态和“睡觉”状态。您可以将巡逻和睡觉之间的过渡设置为仅在“警觉度”参数值降至某个特定水平以下时才发生。

An example of a transition as viewed in the inspector.
在检查器中查看的过渡示例。

要命名过渡,请在以下字段中键入其名称

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

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

过渡属性

要查看过渡的属性,请在动画窗口可视化和编辑动画控制器的窗口。 更多信息
术语表 中查看
中选择连接两个状态的过渡线。属性将显示在检查器窗口中。

使用以下属性调整过渡以及它如何在当前状态和下一个状态之间混合。

属性 函数
具有退出时间 退出时间是一种特殊的过渡,不依赖于参数。相反,它依赖于状态的归一化时间。选中以使过渡在退出时间中指定的特定时间发生。
设置 包含详细过渡设置的折叠菜单。每个过渡设置将在下面进行描述。
退出时间 如果选中了具有退出时间,则此值表示过渡生效的确切时间。这以归一化时间表示(例如,退出时间为 0.75 表示在动画播放了 75% 的第一个帧,退出时间条件为真)。在下一帧,条件为假。

对于循环动画,退出时间小于 1 的过渡在每次循环中都会被评估,因此您可以使用它在每次循环中将过渡与动画中的适当时间同步。

退出时间大于 1 的过渡仅评估一次,因此它们可用于在固定次数的循环后特定时间退出。例如,退出时间为 3.5 的过渡评估一次,在三个半循环后评估。
固定持续时间 如果选中了固定持续时间框,则过渡时间以秒为单位进行解释。如果未选中固定持续时间框,则过渡时间将被解释为源状态的归一化时间的几分之一。
过渡持续时间 过渡的持续时间,以归一化时间或秒为单位,具体取决于固定持续时间模式,相对于当前状态的持续时间。这在过渡图中可视化为两个蓝色标记之间的部分。
过渡偏移 要开始在将要过渡到的目标状态中播放的时间的偏移量。例如,值为 0.5 表示目标状态在其自己的时间线上播放 50% 的位置开始播放。
中断来源 使用此项控制此过渡可能被中断的情况。有关更多信息,请参阅过渡中断
有序中断 确定当前过渡是否可以被其他过渡中断,而不管它们的顺序如何(请参阅下面的过渡中断)。
条件 过渡可以有一个条件、多个条件或根本没有条件。如果您的过渡没有条件,Unity 编辑器只考虑退出时间,并且过渡在达到退出时间时发生。如果您的过渡有一个或多个条件,则必须满足所有条件才能触发过渡。

一个条件包括

- 事件参数(在条件中考虑的值)。
- 条件谓词(如果需要,例如,对于浮点数的“小于”或“大于”)。
- 参数值(如果需要)。

如果您为过渡选择了具有退出时间并有一个或多个条件,请注意,Unity 编辑器会在退出时间后考虑这些条件是否为真。这使您可以确保您的过渡在动画的特定部分发生。

过渡中断

使用中断来源有序中断属性控制您的过渡如何被中断。

从概念上讲,中断顺序就像过渡被排队然后从第一个插入的过渡到最后一个过渡解析有效过渡。

中断来源属性

AnyState中的过渡始终首先添加到队列中,然后其他过渡根据中断来源的值添加到队列中

函数
不再添加任何过渡。
当前状态 将来自当前状态的过渡排队。
下一个状态 将来自下一个状态的过渡排队。
当前状态然后是下一个状态 将来自当前状态的过渡排队,然后将来自下一个状态的过渡排队。
下一个状态然后是当前状态 将来自下一个状态的过渡排队,然后将来自当前状态的过渡排队。

有序中断属性

属性有序中断会改变队列的解析方式。

根据其值,解析队列会在下面列出的不同时刻结束。

结束时
选中 找到有效过渡或当前过渡。
未选中 找到有效过渡。

只有AnyState过渡可以被自身中断。要详细了解过渡中断,请参阅状态机过渡中断

过渡图

使用过渡图以视觉方式调整过渡设置。

The Transition graph as shown in the Inspector.
检查器中显示的过渡图。

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

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

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

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

混合树状态之间的过渡

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

The Blend Tree parameter preview controls, visible when either your current or next state is a Blend Tree state.
混合树参数预览控件,在当前状态或下一个状态是混合树状态时可见。

条件

过渡可以有一个条件、多个条件或根本没有条件。如果您的过渡没有条件,Unity 编辑器只考虑退出时间,并且过渡在达到退出时间时发生。如果您的过渡有一个或多个条件,则必须满足所有条件才能触发过渡。

一个条件包括

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

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

过渡

状态机过渡
动画混合树