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= "AnimationNodeOneShot" 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
Plays an animation once in an [AnimationNodeBlendTree].
2018-07-26 11:56:21 +02:00
</brief_description>
<description >
2023-04-30 16:32:18 +02:00
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.
2023-02-10 03:04:56 +01:00
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
2023-02-13 06:16:40 +01:00
2023-05-13 00:20:35 +02:00
# 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
2023-02-13 06:16:40 +01:00
# Get current state (read-only).
2023-05-13 00:20:35 +02:00
animation_tree.get("parameters/OneShot/active")
2023-02-13 06:16:40 +01:00
# Alternative syntax (same result as above).
animation_tree["parameters/OneShot/active"]
2023-05-13 00:20:35 +02:00
# 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"]
2023-02-10 03:04:56 +01:00
[/gdscript]
[csharp]
// Play child animation connected to "shot" port.
2023-05-31 17:04:29 +02:00
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Fire);
2023-02-10 03:04:56 +01:00
// Abort child animation connected to "shot" port.
2023-05-31 17:04:29 +02:00
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.Abort);
2023-02-13 06:16:40 +01:00
2023-05-13 00:20:35 +02:00
// Abort child animation with fading out connected to "shot" port.
2023-05-31 17:04:29 +02:00
animationTree.Set("parameters/OneShot/request", (int)AnimationNodeOneShot.OneShotRequest.FadeOut);
2023-05-13 00:20:35 +02:00
2023-02-13 06:16:40 +01:00
// Get current state (read-only).
animationTree.Get("parameters/OneShot/active");
2023-05-13 00:20:35 +02:00
// Get current internal state (read-only).
animationTree.Get("parameters/OneShot/internal_active");
2023-02-10 03:04:56 +01:00
[/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>
2024-03-25 02:20:59 +01:00
<link title= "Third Person Shooter (TPS) Demo" > https://godotengine.org/asset-library/asset/2710</link>
2018-07-26 11:56:21 +02:00
</tutorials>
<members >
2019-06-29 12:38:01 +02:00
<member name= "autorestart" type= "bool" setter= "set_autorestart" getter= "has_autorestart" default= "false" >
2020-03-03 19:21:21 +01:00
If [code]true[/code], the sub-animation will restart automatically after finishing.
2023-02-10 03:04:56 +01:00
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.
2018-07-26 11:56:21 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "autorestart_delay" type= "float" setter= "set_autorestart_delay" getter= "get_autorestart_delay" default= "1.0" >
2020-03-03 19:21:21 +01:00
The delay after which the automatic restart is triggered, in seconds.
2018-07-26 11:56:21 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "autorestart_random_delay" type= "float" setter= "set_autorestart_random_delay" getter= "get_autorestart_random_delay" default= "0.0" >
2020-03-03 19:21:21 +01:00
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].
2018-07-26 11:56:21 +02:00
</member>
2024-01-07 22:08:10 +01:00
<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>
2023-05-13 00:20:35 +02:00
<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>
2022-05-04 20:53:48 +02:00
<member name= "fadein_time" type= "float" setter= "set_fadein_time" getter= "get_fadein_time" default= "0.0" >
2023-05-13 00:20:35 +02:00
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.
2024-01-07 22:08:10 +01:00
[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.
2023-05-13 00:20:35 +02:00
</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.
2018-07-26 11:56:21 +02:00
</member>
2022-05-04 20:53:48 +02:00
<member name= "fadeout_time" type= "float" setter= "set_fadeout_time" getter= "get_fadeout_time" default= "0.0" >
2023-05-13 00:20:35 +02:00
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.
2024-01-07 22:08:10 +01:00
[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.
2018-07-26 11:56:21 +02:00
</member>
2020-04-16 23:21:11 +02:00
<member name= "mix_mode" type= "int" setter= "set_mix_mode" getter= "get_mix_mode" enum= "AnimationNodeOneShot.MixMode" default= "0" >
2023-02-10 03:04:56 +01:00
The blend type.
2020-04-16 23:21:11 +02:00
</member>
2018-07-26 11:56:21 +02:00
</members>
<constants >
2023-01-12 13:51:03 +01:00
<constant name= "ONE_SHOT_REQUEST_NONE" value= "0" enum= "OneShotRequest" >
2023-02-10 03:04:56 +01:00
The default state of the request. Nothing is done.
2023-01-12 13:51:03 +01:00
</constant>
<constant name= "ONE_SHOT_REQUEST_FIRE" value= "1" enum= "OneShotRequest" >
2023-02-10 03:04:56 +01:00
The request to play the animation connected to "shot" port.
2023-01-12 13:51:03 +01:00
</constant>
<constant name= "ONE_SHOT_REQUEST_ABORT" value= "2" enum= "OneShotRequest" >
2023-02-10 03:04:56 +01:00
The request to stop the animation connected to "shot" port.
2023-01-12 13:51:03 +01:00
</constant>
2023-05-13 00:20:35 +02:00
<constant name= "ONE_SHOT_REQUEST_FADE_OUT" value= "3" enum= "OneShotRequest" >
The request to fade out the animation connected to "shot" port.
</constant>
2018-07-26 11:56:21 +02:00
<constant name= "MIX_MODE_BLEND" value= "0" enum= "MixMode" >
2023-02-10 03:04:56 +01:00
Blends two animations. See also [AnimationNodeBlend2].
2018-07-26 11:56:21 +02:00
</constant>
<constant name= "MIX_MODE_ADD" value= "1" enum= "MixMode" >
2023-02-10 03:04:56 +01:00
Blends two animations additively. See also [AnimationNodeAdd2].
2018-07-26 11:56:21 +02:00
</constant>
</constants>
</class>