2018-07-26 11:56:21 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2022-02-14 14:18:53 +01:00
<class name= "AnimationNodeStateMachineTransition" inherits= "Resource" version= "4.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2018-07-26 11:56:21 +02:00
<brief_description >
</brief_description>
<description >
</description>
<tutorials >
2021-11-15 10:43:07 +01:00
<link title= "AnimationTree" > $DOCS_URL/tutorials/animation/animation_tree.html</link>
2018-07-26 11:56:21 +02:00
</tutorials>
<members >
2021-06-05 21:24:24 +02:00
<member name= "advance_condition" type= "StringName" setter= "set_advance_condition" getter= "get_advance_condition" default= "&""" >
2022-08-25 07:07:54 +02:00
Turn on auto advance when this condition is set. The provided name will become a boolean parameter on the [AnimationTree] that can be controlled from code (see [url=$DOCS_URL/tutorials/animation/animation_tree.html#controlling-from-code]Using AnimationTree[/url]). For example, if [member AnimationTree.tree_root] is an [AnimationNodeStateMachine] and [member advance_condition] is set to [code]"idle"[/code]:
2020-07-31 16:07:26 +02:00
[codeblocks]
[gdscript]
$animation_tree.set("parameters/conditions/idle", is_on_floor and (linear_velocity.x == 0))
[/gdscript]
[csharp]
2022-12-07 16:11:39 +01:00
GetNode< AnimationTree> ("animation_tree").Set("parameters/conditions/idle", IsOnFloor & & (LinearVelocity.X == 0));
2020-07-31 16:07:26 +02:00
[/csharp]
[/codeblocks]
2018-08-21 00:35:30 +02:00
</member>
2022-04-20 12:36:54 +02:00
<member name= "advance_expression" type= "String" setter= "set_advance_expression" getter= "get_advance_expression" default= """" >
Use an expression as a condition for state machine transitions. It is possible to create complex animation advance conditions for switching between states and gives much greater flexibility for creating complex state machines by directly interfacing with the script code.
</member>
2022-10-06 17:44:59 +02:00
<member name= "advance_mode" type= "int" setter= "set_advance_mode" getter= "get_advance_mode" enum= "AnimationNodeStateMachineTransition.AdvanceMode" default= "1" >
Determines whether the transition should disabled, enabled when using [method AnimationNodeStateMachinePlayback.travel], or traversed automatically if the [member advance_condition] and [member advance_expression] checks are true (if assigned).
2018-07-26 11:56:21 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "priority" type= "int" setter= "set_priority" getter= "get_priority" default= "1" >
2022-10-06 17:44:59 +02:00
Lower priority transitions are preferred when travelling through the tree via [method AnimationNodeStateMachinePlayback.travel] or [member advance_mode] is set to [constant ADVANCE_MODE_AUTO].
2018-07-26 11:56:21 +02:00
</member>
2023-01-10 10:15:16 +01:00
<member name= "reset" type= "bool" setter= "set_reset" getter= "is_reset" default= "true" >
If [code]true[/code], the destination animation is played back from the beginning when switched.
</member>
2019-06-29 12:38:01 +02:00
<member name= "switch_mode" type= "int" setter= "set_switch_mode" getter= "get_switch_mode" enum= "AnimationNodeStateMachineTransition.SwitchMode" default= "0" >
2019-04-07 13:21:31 +02:00
The transition type.
2018-07-26 11:56:21 +02:00
</member>
2022-07-28 10:31:23 +02:00
<member name= "xfade_curve" type= "Curve" setter= "set_xfade_curve" getter= "get_xfade_curve" >
Ease curve for better control over cross-fade between this state and the next.
</member>
2019-06-29 12:38:01 +02:00
<member name= "xfade_time" type= "float" setter= "set_xfade_time" getter= "get_xfade_time" default= "0.0" >
2019-04-07 13:21:31 +02:00
The time to cross-fade between this state and the next.
2018-07-26 11:56:21 +02:00
</member>
</members>
2018-08-21 00:35:30 +02:00
<signals >
<signal name= "advance_condition_changed" >
<description >
2020-01-23 11:14:14 +01:00
Emitted when [member advance_condition] is changed.
2018-08-21 00:35:30 +02:00
</description>
</signal>
</signals>
2018-07-26 11:56:21 +02:00
<constants >
<constant name= "SWITCH_MODE_IMMEDIATE" value= "0" enum= "SwitchMode" >
2019-04-07 13:21:31 +02:00
Switch to the next state immediately. The current state will end and blend into the beginning of the new one.
2018-07-26 11:56:21 +02:00
</constant>
<constant name= "SWITCH_MODE_SYNC" value= "1" enum= "SwitchMode" >
2019-04-07 13:21:31 +02:00
Switch to the next state immediately, but will seek the new state to the playback position of the old state.
2018-07-26 11:56:21 +02:00
</constant>
<constant name= "SWITCH_MODE_AT_END" value= "2" enum= "SwitchMode" >
2019-04-07 13:21:31 +02:00
Wait for the current state playback to end, then switch to the beginning of the next state animation.
2018-07-26 11:56:21 +02:00
</constant>
2022-10-06 17:44:59 +02:00
<constant name= "ADVANCE_MODE_DISABLED" value= "0" enum= "AdvanceMode" >
Don't use this transition.
</constant>
<constant name= "ADVANCE_MODE_ENABLED" value= "1" enum= "AdvanceMode" >
Only use this transition during [method AnimationNodeStateMachinePlayback.travel].
</constant>
<constant name= "ADVANCE_MODE_AUTO" value= "2" enum= "AdvanceMode" >
Automatically use this transition if the [member advance_condition] and [member advance_expression] checks are true (if assigned).
</constant>
2018-07-26 11:56:21 +02:00
</constants>
</class>