2018-07-26 17:56:21 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-03-01 08:44:37 +08:00
<class name= "AnimationNodeTransition" inherits= "AnimationNodeSync" version= "4.1" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2018-07-26 17:56:21 +08:00
<brief_description >
2020-03-04 02:21:21 +08:00
A generic animation transition node for [AnimationTree].
2018-07-26 17:56:21 +08:00
</brief_description>
<description >
2020-03-04 02:21:21 +08: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 10:04:56 +08: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 13:16:40 +08: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 10:04:56 +08: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 13:16:40 +08:00
# Get current state name (read-only).
2023-02-10 10:04:56 +08:00
animation_tree.get("parameters/Transition/current_state")
# Alternative syntax (same result as above).
animation_tree["parameters/Transition/current_state"]
2023-02-13 13:16:40 +08:00
# Get current state index (read-only).
2023-02-10 10:04:56 +08:00
animation_tree.get("parameters/Transition/current_index"))
# 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 13:16:40 +08:00
// Get current state name (read-only).
2023-02-10 10:04:56 +08:00
animationTree.Get("parameters/Transition/current_state");
2023-02-13 13:16:40 +08:00
// Get current state index (read-only).
2023-02-10 10:04:56 +08:00
animationTree.Get("parameters/Transition/current_index");
[/csharp]
[/codeblocks]
2018-07-26 17:56:21 +08:00
</description>
<tutorials >
2021-11-15 17:43:07 +08:00
<link title= "AnimationTree" > $DOCS_URL/tutorials/animation/animation_tree.html</link>
2020-10-01 16:34:47 +08: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 17:56:21 +08:00
</tutorials>
<methods >
2023-01-30 23:40:45 +08: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 22:10:09 +08:00
<method name= "is_input_set_as_auto_advance" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "bool" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "input" type= "int" />
2019-06-27 22:10:09 +08:00
<description >
2023-01-21 03:20:15 +08:00
Returns [code]true[/code] if auto-advance is enabled for the given [param input] index.
2019-06-27 22:10:09 +08:00
</description>
</method>
<method name= "set_input_as_auto_advance" >
2021-07-30 21:28:05 +08:00
<return type= "void" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "input" type= "int" />
<param index= "1" name= "enable" type= "bool" />
2019-06-27 22:10:09 +08:00
<description >
2023-01-21 03:20:15 +08: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 22:10:09 +08:00
</description>
</method>
2023-01-30 23:40:45 +08: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 17:56:21 +08:00
</methods>
<members >
2023-01-31 20:17:29 +08: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 22:54:13 +08:00
<member name= "input_count" type= "int" setter= "set_input_count" getter= "get_input_count" default= "0" >
The number of enabled input ports for this node.
2022-04-06 01:11:06 +08:00
</member>
2022-07-28 16:31:23 +08:00
<member name= "xfade_curve" type= "Curve" setter= "set_xfade_curve" getter= "get_xfade_curve" >
2023-01-21 03:20:15 +08:00
Determines how cross-fading between animations is eased. If empty, the transition will be linear.
2022-07-28 16:31:23 +08:00
</member>
<member name= "xfade_time" type= "float" setter= "set_xfade_time" getter= "get_xfade_time" default= "0.0" >
2020-03-04 02:21:21 +08:00
Cross-fading time (in seconds) between each animation connected to the inputs.
2018-07-26 17:56:21 +08:00
</member>
</members>
</class>