AnimationNodeStateMachineTransition
继承: Resource < RefCounted < Object
AnimationNodeStateMachine 中连接两个 AnimationRootNode 的过渡。
描述
使用 AnimationNodeStateMachinePlayback.travel 时生成的路径,仅限于通过 AnimationNodeStateMachineTransition 连接的节点。
可以详细设置过渡的时机和条件。
教程
属性
| ||
| ||
| ||
| ||
| ||
| ||
| ||
|
信号
advance_condition_changed() 🔗
变更 advance_condition 时发出。
枚举
enum SwitchMode: 🔗
SwitchMode SWITCH_MODE_IMMEDIATE = 0
立即切换到下一个状态。当前状态将结束,并混合到新状态的开始。
SwitchMode SWITCH_MODE_SYNC = 1
立即切换到下一个状态,但会将新的状态定位到旧状态的播放位置。
SwitchMode SWITCH_MODE_AT_END = 2
等待当前状态播放结束,然后切换到下一个状态动画的开头。
enum AdvanceMode: 🔗
AdvanceMode ADVANCE_MODE_DISABLED = 0
不要使用该过渡。
AdvanceMode ADVANCE_MODE_ENABLED = 1
仅在 AnimationNodeStateMachinePlayback.travel 时使用该过渡。
AdvanceMode ADVANCE_MODE_AUTO = 2
如果 advance_condition 和 advance_expression 检查为真,则自动使用该过渡(如果已分配)。
属性说明
StringName advance_condition = &""
🔗
void set_advance_condition(value: StringName)
StringName get_advance_condition()
该条件被设置时打开自动前进。提供的名称将成为 AnimationTree 上的布尔参数,可以通过代码进行控制(请参阅 使用 AnimationTree)。例如,如果 AnimationTree.tree_root 是一个 AnimationNodeStateMachine 并且 advance_condition 被设置为 "idle"
:
GDScriptC#
$animation_tree.set("parameters/conditions/idle", is_on_floor and (linear_velocity.x == 0))
GetNode<AnimationTree>("animation_tree").Set("parameters/conditions/idle", IsOnFloor && (LinearVelocity.X == 0));
String advance_expression = ""
🔗
将表达式用作状态机过渡的条件。可以为状态之间的切换创建复杂的动画推进条件,并通过直接与脚本代码交互为创建复杂的状态机提供更大的灵活性。
AdvanceMode advance_mode = 1
🔗
void set_advance_mode(value: AdvanceMode)
AdvanceMode get_advance_mode()
决定在使用 AnimationNodeStateMachinePlayback.travel 时该过渡是否应该被禁用/启用,或者如果 advance_condition 和 advance_expression 检查为真则自动行进(如果已分配)。
bool break_loop_at_end = false
🔗
如果true
,则在循环循环结束时中断循环以进行转换,即使动画正在循环。
当在树中通过 AnimationNodeStateMachinePlayback.travel 或将 advance_mode 设置为 ADVANCE_MODE_AUTO 行进时,倾向于优先级较低的过渡。
如果为 true
,切换时目标动画从头开始播放。
SwitchMode switch_mode = 0
🔗
void set_switch_mode(value: SwitchMode)
SwitchMode get_switch_mode()
过渡类型。
缓动曲线可以更好地控制此状态和下一个状态之间的交叉淡入淡出。
在该状态和下一个状态之间交叉渐变的时间。
注意:AnimationNodeStateMachine 是在淡入淡出结束后转换当前状态的。只能根据主动画推断精确的剩余时间。将 AnimationNodeOutput 视为最上游时,xfade_time 不会根据下游增量进行缩放。另见 AnimationNodeOneShot.fadeout_time。