动画过渡允许状态机从一个动画状态切换或混合到另一动画状态。过渡不仅定义状态之间的混合应该耗费多长时间,而且还定义它们应该在什么条件下激活。您可以设置仅在特定条件成立时才发生过渡。要设置这些条件,请在 Animator Controller 中指定参数值。
例如,您的角色可能具有“巡逻”状态和“睡眠”状态。您可以将巡逻和睡眠之间的过渡设置为仅在“alertness”参数值低于某个水平时才会发生。
在任何给定时间只能有一个激活的过渡。但是,当前激活的过渡可能会被另一个过渡中断。
要查看某个过渡的属性,请单击 Animator 窗口中连接两个状态的过渡线。这些属性将显示在 Inspector 窗口中。
使用以下属性可调整过渡及其在当前状态和下一状态之间如何混合。
类型 | 描述 |
标准化时间 | 范围从 0.0 到 1.0,表示动画播放的相对进度。 |
实际时间 | 指动画播放的具体秒数,例如:2.5 秒、3.7 秒等。 |
属性 | 功能 |
---|---|
Has Exit Time | Exit Time 是一种不依赖参数的特殊过渡。但是,它依赖状态的标准化时间。选中此选项可在 Exit Time 指定的具体时间进行过渡。 |
Settings | 包含详细过渡设置的折叠菜单(如下所示)。 |
Exit Time | 如果选中 Has Exit Time ,此值表示过渡可以生效的确切时间。该时间以标准化时间表示(例如,退出时间为 0.75 表示,在已播放 75% 动画的第一帧上, Exit Time 条件为 true)。在下一帧上,该条件为 false。 对于循环动画,每个循环都会评估退出时间小于 1 的过渡,因此可使用此选项在每个循环的动画中以适当时机对过渡进行计时。 对 Exit Time 大于 1 的过渡仅评估一次,因此此类过渡可用于在固定循环次数后的特定时间退出。例如,过渡的退出时间为 3.5 的情况下,在三个半循环后对该过渡评估一次。 |
Fixed Duration | 如果选中 Fixed Duration 复选框,则以秒为单位解读过渡时间。如果未选中 Fixed Duration 复选框,则过渡时间解读为源状态的标准化时间的一部分。 |
Transition Duration | 相对于当前状态持续时间的过渡持续时间,以标准化时间或秒为单位(具体取决于 Fixed Duration 模式)。此时间在过渡图中显示为两个蓝色标记之间的部分。 |
Transition Offset | 过渡到的目标状态的起始播放的时间偏移。例如,值为 0.5 表示目标状态在其时间轴的 50% 处开始播放。 |
Interruption Source | 此选项用于控制该过渡可能中断的情况。 |
Ordered Interruption | 确定当前过渡是否可在不考虑顺序的情况下被其他过渡中断。 |
Conditions | 一个过渡可以具有单个条件、多个条件或根本没有条件。如果过渡没有条件,Unity Editor 只会考虑 Exit Time ,并在达到退出时间时发生过渡。如果过渡有一个或多个条件,则必须满足所有条件才能触发过渡。 一个条件包含: - 一个事件参数(在条件中考虑其值)。 - 条件谓词(需要时填写,例如,浮点数的“小于”或“大于”)。 - 一个参数值(需要时填写)。 如果为该过渡选择 Has Exit Time 并有一个或多个条件,请注意 Unity Editor 在 Exit Time 之后考虑条件是否为 true。这样可确保在动画的特定部分中进行过渡。 |
Exit Time = 0.8
,那这个动画播放到 80% 的时候就会自动跳转到下一个动作。对循环动画的影响:
Exit Time < 1
,每一圈都会判断要不要切换。Exit Time > 1
,比如 3.5,就只会在第 3 圈半的时候判断一次。决定 Transition Duration(过渡时间)是按秒数还是按动画比例来计算。
0.5
。0
,表示从头开始。如果你同时用了 Has Exit Time 和 Conditions:
属性 | 一句话总结 |
---|---|
Has Exit Time | 动画播放到一定进度就自动切换,不需要参数。 |
Exit Time | 设定“自动切换”的具体时间点(用百分比)。 |
Fixed Duration | 决定过渡时间是用“秒”还是“动画比例”。 |
Transition Duration | 动画切换过程有多长(多久完成过渡)。 |
Transition Offset | 目标动画从哪一帧开始播放。 |
Interruption Source | 当前动画能否被别的动画打断。 |
Ordered Interruption | 多个过渡之间是否能互相打断。 |
Conditions | 触发动画切换的“开关条件”,比如变量等于多少。 |
要手动调整以上列出的设置,可直接在字段中输入数字或使用过渡图。在操作视图元素时,过渡图会修改上述值。
请根据以下说明更改图形视图中的过渡属性:
Unity官网说明:团结引擎 - 手册: 动画过渡