AnimationNodeStateMachineTransition¶
继承: Resource < RefCounted < Object
连接两个AnimationRootNode的AnimationNodeStateMachine内的过渡。
描述¶
使用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检查为true(如果已分配),则自动使用此转换。
属性说明¶
StringName advance_condition = &"" 🔗
void set_advance_condition(value: StringName)
StringName get_advance_condition()
设置此条件时启用自动前进。提供的名称将成为AnimationTree上的布尔参数,可以通过代码进行控制。例如,如果AnimationTree.tree_root是一个AnimationNodeStateMachine并且advance_condition被设置为"idle":
$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()
如果advance_condition和advance_expression检查为true(如果已分配),则确定是否应禁用、在使用AnimationNodeStateMachinePlayback.travel()时启用转换或自动遍历转换。
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()
转换类型。
轻松曲线,以便更好地控制此状态和下一个状态之间的交叉淡入淡出。应该是一个单位Curve。
在此状态和下一个状态之间交叉淡入淡出的时间。
注意:AnimationNodeStateMachine在衰落开始后立即转换当前状态。精确的剩余时间只能从主动画中推断。当AnimationNodeOutput被认为是最上游时,因此xfade_time不会根据下游增量进行缩放。另见AnimationNodeOneShot.fadeout_time。