AnimationNodeStateMachineTransition

继承: Resource < RefCounted < Object

连接两个AnimationRootNodeAnimationNodeStateMachine内的过渡。

描述

使用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_conditionadvance_expression检查为true(如果已分配),则自动使用此转换。


属性说明

StringName advance_condition = &"" 🔗

设置此条件时启用自动前进。提供的名称将成为AnimationTree上的布尔参数,可以通过代码进行控制。例如,如果AnimationTree.tree_root是一个AnimationNodeStateMachine并且advance_condition被设置为"idle"

$animation_tree.set("parameters/conditions/idle", is_on_floor and (linear_velocity.x == 0))

String advance_expression = "" 🔗

  • void set_advance_expression(value: String)

  • String get_advance_expression()

使用表达式作为状态机转换的条件。可以为状态之间的切换创建复杂的动画预处理条件,并通过直接与脚本代码交互为创建复杂的状态机提供更大的灵活性。


AdvanceMode advance_mode = 1 🔗

如果advance_conditionadvance_expression检查为true(如果已分配),则确定是否应禁用、在使用AnimationNodeStateMachinePlayback.travel()时启用转换或自动遍历转换。


bool break_loop_at_end = false 🔗

  • void set_break_loop_at_end(value: bool)

  • bool is_loop_broken_at_end()

如果true,则在循环循环结束时中断循环以进行转换,即使动画正在循环。


int priority = 1 🔗

  • void set_priority(value: int)

  • int get_priority()

当通过AnimationNodeStateMachinePlayback.travel()advance_mode设置为ADVANCE_MODE_AUTO遍历树时,较低优先级的转换是首选。


bool reset = true 🔗

  • void set_reset(value: bool)

  • bool is_reset()

如果true,则切换时从头开始播放目标动画。


SwitchMode switch_mode = 0 🔗

转换类型。


Curve xfade_curve 🔗

  • void set_xfade_curve(value: Curve)

  • Curve get_xfade_curve()

轻松曲线,以便更好地控制此状态和下一个状态之间的交叉淡入淡出。应该是一个单位Curve


float xfade_time = 0.0 🔗

  • void set_xfade_time(value: float)

  • float get_xfade_time()

在此状态和下一个状态之间交叉淡入淡出的时间。

注意:AnimationNodeStateMachine在衰落开始后立即转换当前状态。精确的剩余时间只能从主动画中推断。当AnimationNodeOutput被认为是最上游时,因此xfade_time不会根据下游增量进行缩放。另见AnimationNodeOneShot.fadeout_time