2018-07-26 11:56:21 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-07-06 10:08:05 +02:00
<class name= "AnimationNodeTransition" inherits= "AnimationNodeSync" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2018-07-26 11:56:21 +02:00
<brief_description >
2023-04-28 17:16:44 +02:00
A transition within an [AnimationTree] connecting two [AnimationNode]s.
2018-07-26 11:56:21 +02:00
</brief_description>
<description >
2020-03-03 19:21:21 +01:00
Simple state machine for cases which don't require a more advanced [AnimationNodeStateMachine]. Animations can be connected to the inputs and transition times can be specified.
2023-02-10 03:04:56 +01:00
After setting the request and changing the animation playback, the transition node automatically clears the request on the next process frame by setting its [code]transition_request[/code] value to empty.
2023-02-13 06:16:40 +01:00
[b]Note:[/b] When using a cross-fade, [code]current_state[/code] and [code]current_index[/code] change to the next state immediately after the cross-fade begins.
2023-02-10 03:04:56 +01:00
[codeblocks]
[gdscript]
# Play child animation connected to "state_2" port.
animation_tree.set("parameters/Transition/transition_request", "state_2")
# Alternative syntax (same result as above).
animation_tree["parameters/Transition/transition_request"] = "state_2"
2023-02-13 06:16:40 +01:00
# Get current state name (read-only).
2023-02-10 03:04:56 +01:00
animation_tree.get("parameters/Transition/current_state")
# Alternative syntax (same result as above).
animation_tree["parameters/Transition/current_state"]
2023-02-13 06:16:40 +01:00
# Get current state index (read-only).
2023-04-30 16:32:18 +02:00
animation_tree.get("parameters/Transition/current_index")
2023-02-10 03:04:56 +01:00
# Alternative syntax (same result as above).
animation_tree["parameters/Transition/current_index"]
[/gdscript]
[csharp]
// Play child animation connected to "state_2" port.
animationTree.Set("parameters/Transition/transition_request", "state_2");
2023-02-13 06:16:40 +01:00
// Get current state name (read-only).
2023-02-10 03:04:56 +01:00
animationTree.Get("parameters/Transition/current_state");
2023-02-13 06:16:40 +01:00
// Get current state index (read-only).
2023-02-10 03:04:56 +01:00
animationTree.Get("parameters/Transition/current_index");
[/csharp]
[/codeblocks]
2018-07-26 11:56:21 +02:00
</description>
<tutorials >
2023-04-28 17:16:44 +02:00
<link title= "Using AnimationTree" > $DOCS_URL/tutorials/animation/animation_tree.html</link>
2020-10-01 10:34:47 +02:00
<link title= "3D Platformer Demo" > https://godotengine.org/asset-library/asset/125</link>
<link title= "Third Person Shooter Demo" > https://godotengine.org/asset-library/asset/678</link>
2018-07-26 11:56:21 +02:00
</tutorials>
<methods >
2024-01-07 22:08:10 +01:00
<method name= "is_input_loop_broken_at_end" qualifiers= "const" >
<return type= "bool" />
<param index= "0" name= "input" type= "int" />
<description >
Returns whether the animation breaks the loop at the end of the loop cycle for transition.
</description>
</method>
2023-01-30 16:40:45 +01:00
<method name= "is_input_reset" qualifiers= "const" >
<return type= "bool" />
<param index= "0" name= "input" type= "int" />
<description >
Returns whether the animation restarts when the animation transitions from the other animation.
</description>
</method>
2019-06-27 16:10:09 +02:00
<method name= "is_input_set_as_auto_advance" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "bool" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "input" type= "int" />
2019-06-27 16:10:09 +02:00
<description >
2023-01-20 20:20:15 +01:00
Returns [code]true[/code] if auto-advance is enabled for the given [param input] index.
2019-06-27 16:10:09 +02:00
</description>
</method>
<method name= "set_input_as_auto_advance" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
2022-08-06 20:11:48 +02:00
<param index= "0" name= "input" type= "int" />
<param index= "1" name= "enable" type= "bool" />
2019-06-27 16:10:09 +02:00
<description >
2023-01-20 20:20:15 +01:00
Enables or disables auto-advance for the given [param input] index. If enabled, state changes to the next input after playing the animation once. If enabled for the last input state, it loops to the first.
2019-06-27 16:10:09 +02:00
</description>
</method>
2024-01-07 22:08:10 +01:00
<method name= "set_input_break_loop_at_end" >
<return type= "void" />
<param index= "0" name= "input" type= "int" />
<param index= "1" name= "enable" type= "bool" />
<description >
If [code]true[/code], breaks the loop at the end of the loop cycle for transition, even if the animation is looping.
</description>
</method>
2023-01-30 16:40:45 +01:00
<method name= "set_input_reset" >
<return type= "void" />
<param index= "0" name= "input" type= "int" />
<param index= "1" name= "enable" type= "bool" />
<description >
If [code]true[/code], the destination animation is restarted when the animation transitions.
</description>
</method>
2018-07-26 11:56:21 +02:00
</methods>
<members >
2023-01-31 13:17:29 +01:00
<member name= "allow_transition_to_self" type= "bool" setter= "set_allow_transition_to_self" getter= "is_allow_transition_to_self" default= "false" >
If [code]true[/code], allows transition to the self state. When the reset option is enabled in input, the animation is restarted. If [code]false[/code], nothing happens on the transition to the self state.
</member>
2023-01-29 15:54:13 +01:00
<member name= "input_count" type= "int" setter= "set_input_count" getter= "get_input_count" default= "0" >
2023-04-30 16:32:18 +02:00
The number of enabled input ports for this animation node.
2022-04-05 19:11:06 +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" >
2023-01-20 20:20:15 +01:00
Determines how cross-fading between animations is eased. If empty, the transition will be linear.
2022-07-28 10:31:23 +02:00
</member>
<member name= "xfade_time" type= "float" setter= "set_xfade_time" getter= "get_xfade_time" default= "0.0" >
2020-03-03 19:21:21 +01:00
Cross-fading time (in seconds) between each animation connected to the inputs.
2024-01-07 22:08:10 +01:00
[b]Note:[/b] [AnimationNodeTransition] transitions the current state immediately after the start of the fading. The precise remaining time can only be inferred from the main animation. When [AnimationNodeOutput] is considered as the most upstream, so the [member xfade_time] is not scaled depending on the downstream delta. See also [member AnimationNodeOneShot.fadeout_time].
2018-07-26 11:56:21 +02:00
</member>
</members>
</class>