106 lines
5.4 KiB
XML
106 lines
5.4 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="AnimationNodeTransition" inherits="AnimationNodeSync" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
|
<brief_description>
|
|
A transition within an [AnimationTree] connecting two [AnimationNode]s.
|
|
</brief_description>
|
|
<description>
|
|
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.
|
|
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.
|
|
[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.
|
|
[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"
|
|
|
|
# Get current state name (read-only).
|
|
animation_tree.get("parameters/Transition/current_state")
|
|
# Alternative syntax (same result as above).
|
|
animation_tree["parameters/Transition/current_state"]
|
|
|
|
# Get current state index (read-only).
|
|
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");
|
|
|
|
// Get current state name (read-only).
|
|
animationTree.Get("parameters/Transition/current_state");
|
|
|
|
// Get current state index (read-only).
|
|
animationTree.Get("parameters/Transition/current_index");
|
|
[/csharp]
|
|
[/codeblocks]
|
|
</description>
|
|
<tutorials>
|
|
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
|
<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>
|
|
</tutorials>
|
|
<methods>
|
|
<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>
|
|
<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>
|
|
<method name="is_input_set_as_auto_advance" qualifiers="const">
|
|
<return type="bool" />
|
|
<param index="0" name="input" type="int" />
|
|
<description>
|
|
Returns [code]true[/code] if auto-advance is enabled for the given [param input] index.
|
|
</description>
|
|
</method>
|
|
<method name="set_input_as_auto_advance">
|
|
<return type="void" />
|
|
<param index="0" name="input" type="int" />
|
|
<param index="1" name="enable" type="bool" />
|
|
<description>
|
|
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.
|
|
</description>
|
|
</method>
|
|
<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>
|
|
<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>
|
|
</methods>
|
|
<members>
|
|
<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>
|
|
<member name="input_count" type="int" setter="set_input_count" getter="get_input_count" default="0">
|
|
The number of enabled input ports for this animation node.
|
|
</member>
|
|
<member name="xfade_curve" type="Curve" setter="set_xfade_curve" getter="get_xfade_curve">
|
|
Determines how cross-fading between animations is eased. If empty, the transition will be linear.
|
|
</member>
|
|
<member name="xfade_time" type="float" setter="set_xfade_time" getter="get_xfade_time" default="0.0">
|
|
Cross-fading time (in seconds) between each animation connected to the inputs.
|
|
[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].
|
|
</member>
|
|
</members>
|
|
</class>
|