110 lines
7.2 KiB
XML
110 lines
7.2 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="AnimationNodeOneShot" inherits="AnimationNodeSync" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
|
<brief_description>
|
|
Plays an animation once in an [AnimationNodeBlendTree].
|
|
</brief_description>
|
|
<description>
|
|
A resource to add to an [AnimationNodeBlendTree]. This animation node will execute a sub-animation and return once it finishes. Blend times for fading in and out can be customized, as well as filters.
|
|
After setting the request and changing the animation playback, the one-shot node automatically clears the request on the next process frame by setting its [code]request[/code] value to [constant ONE_SHOT_REQUEST_NONE].
|
|
[codeblocks]
|
|
[gdscript]
|
|
# Play child animation connected to "shot" port.
|
|
animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE)
|
|
# Alternative syntax (same result as above).
|
|
animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE
|
|
|
|
# Abort child animation connected to "shot" port.
|
|
animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT)
|
|
# Alternative syntax (same result as above).
|
|
animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT
|
|
|
|
# Abort child animation with fading out connected to "shot" port.
|
|
animation_tree.set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT)
|
|
# Alternative syntax (same result as above).
|
|
animation_tree["parameters/OneShot/request"] = AnimationNodeOneShot.ONE_SHOT_REQUEST_FADE_OUT
|
|
|
|
# Get current state (read-only).
|
|
animation_tree.get("parameters/OneShot/active")
|
|
# Alternative syntax (same result as above).
|
|
animation_tree["parameters/OneShot/active"]
|
|
|
|
# Get current internal state (read-only).
|
|
animation_tree.get("parameters/OneShot/internal_active")
|
|
# Alternative syntax (same result as above).
|
|
animation_tree["parameters/OneShot/internal_active"]
|
|
[/gdscript]
|
|
[csharp]
|
|
// Play child animation connected to "shot" port.
|
|
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
|
|
|
|
// Abort child animation connected to "shot" port.
|
|
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
|
|
|
|
// Abort child animation with fading out connected to "shot" port.
|
|
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.FadeOut);
|
|
|
|
// Get current state (read-only).
|
|
animationTree.Get("parameters/OneShot/active");
|
|
|
|
// Get current internal state (read-only).
|
|
animationTree.Get("parameters/OneShot/internal_active");
|
|
[/csharp]
|
|
[/codeblocks]
|
|
</description>
|
|
<tutorials>
|
|
<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
|
<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
|
|
</tutorials>
|
|
<members>
|
|
<member name="autorestart" type="bool" setter="set_autorestart" getter="has_autorestart" default="false">
|
|
If [code]true[/code], the sub-animation will restart automatically after finishing.
|
|
In other words, to start auto restarting, the animation must be played once with the [constant ONE_SHOT_REQUEST_FIRE] request. The [constant ONE_SHOT_REQUEST_ABORT] request stops the auto restarting, but it does not disable the [member autorestart] itself. So, the [constant ONE_SHOT_REQUEST_FIRE] request will start auto restarting again.
|
|
</member>
|
|
<member name="autorestart_delay" type="float" setter="set_autorestart_delay" getter="get_autorestart_delay" default="1.0">
|
|
The delay after which the automatic restart is triggered, in seconds.
|
|
</member>
|
|
<member name="autorestart_random_delay" type="float" setter="set_autorestart_random_delay" getter="get_autorestart_random_delay" default="0.0">
|
|
If [member autorestart] is [code]true[/code], a random additional delay (in seconds) between 0 and this value will be added to [member autorestart_delay].
|
|
</member>
|
|
<member name="break_loop_at_end" type="bool" setter="set_break_loop_at_end" getter="is_loop_broken_at_end" default="false">
|
|
If [code]true[/code], breaks the loop at the end of the loop cycle for transition, even if the animation is looping.
|
|
</member>
|
|
<member name="fadein_curve" type="Curve" setter="set_fadein_curve" getter="get_fadein_curve">
|
|
Determines how cross-fading between animations is eased. If empty, the transition will be linear.
|
|
</member>
|
|
<member name="fadein_time" type="float" setter="set_fadein_time" getter="get_fadein_time" default="0.0">
|
|
The fade-in duration. For example, setting this to [code]1.0[/code] for a 5 second length animation will produce a cross-fade that starts at 0 second and ends at 1 second during the animation.
|
|
[b]Note:[/b] [AnimationNodeOneShot] transitions the current state after the end of the fading. When [AnimationNodeOutput] is considered as the most upstream, so the [member fadein_time] is scaled depending on the downstream delta. For example, if this value is set to [code]1.0[/code] and a [AnimationNodeTimeScale] with a value of [code]2.0[/code] is chained downstream, the actual processing time will be 0.5 second.
|
|
</member>
|
|
<member name="fadeout_curve" type="Curve" setter="set_fadeout_curve" getter="get_fadeout_curve">
|
|
Determines how cross-fading between animations is eased. If empty, the transition will be linear.
|
|
</member>
|
|
<member name="fadeout_time" type="float" setter="set_fadeout_time" getter="get_fadeout_time" default="0.0">
|
|
The fade-out duration. For example, setting this to [code]1.0[/code] for a 5 second length animation will produce a cross-fade that starts at 4 second and ends at 5 second during the animation.
|
|
[b]Note:[/b] [AnimationNodeOneShot] transitions the current state after the end of the fading. When [AnimationNodeOutput] is considered as the most upstream, so the [member fadeout_time] is scaled depending on the downstream delta. For example, if this value is set to [code]1.0[/code] and an [AnimationNodeTimeScale] with a value of [code]2.0[/code] is chained downstream, the actual processing time will be 0.5 second.
|
|
</member>
|
|
<member name="mix_mode" type="int" setter="set_mix_mode" getter="get_mix_mode" enum="AnimationNodeOneShot.MixMode" default="0">
|
|
The blend type.
|
|
</member>
|
|
</members>
|
|
<constants>
|
|
<constant name="ONE_SHOT_REQUEST_NONE" value="0" enum="OneShotRequest">
|
|
The default state of the request. Nothing is done.
|
|
</constant>
|
|
<constant name="ONE_SHOT_REQUEST_FIRE" value="1" enum="OneShotRequest">
|
|
The request to play the animation connected to "shot" port.
|
|
</constant>
|
|
<constant name="ONE_SHOT_REQUEST_ABORT" value="2" enum="OneShotRequest">
|
|
The request to stop the animation connected to "shot" port.
|
|
</constant>
|
|
<constant name="ONE_SHOT_REQUEST_FADE_OUT" value="3" enum="OneShotRequest">
|
|
The request to fade out the animation connected to "shot" port.
|
|
</constant>
|
|
<constant name="MIX_MODE_BLEND" value="0" enum="MixMode">
|
|
Blends two animations. See also [AnimationNodeBlend2].
|
|
</constant>
|
|
<constant name="MIX_MODE_ADD" value="1" enum="MixMode">
|
|
Blends two animations additively. See also [AnimationNodeAdd2].
|
|
</constant>
|
|
</constants>
|
|
</class>
|