2018-07-26 11:56:21 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-03-01 01:44:37 +01:00
<class name= "AnimationNodeOneShot" inherits= "AnimationNodeSync" version= "4.1" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2018-07-26 11:56:21 +02:00
<brief_description >
2020-03-03 19:21:21 +01:00
Plays an animation once in [AnimationNodeBlendTree].
2018-07-26 11:56:21 +02:00
</brief_description>
<description >
2020-03-03 19:21:21 +01:00
A resource to add to an [AnimationNodeBlendTree]. This 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
# Get current state (read-only).
animation_tree.get("parameters/OneShot/active"))
# Alternative syntax (same result as above).
animation_tree["parameters/OneShot/active"]
2023-02-10 03:04:56 +01:00
[/gdscript]
[csharp]
// Play child animation connected to "shot" port.
animationTree.Set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_FIRE);
// Abort child animation connected to "shot" port.
animationTree.Set("parameters/OneShot/request", AnimationNodeOneShot.ONE_SHOT_REQUEST_ABORT);
2023-02-13 06:16:40 +01:00
// Get current state (read-only).
animationTree.Get("parameters/OneShot/active");
2023-02-10 03:04:56 +01:00
[/csharp]
[/codeblocks]
2018-07-26 11:56:21 +02:00
</description>
<tutorials >
2021-11-15 10:43:07 +01:00
<link title= "AnimationTree" > $DOCS_URL/tutorials/animation/animation_tree.html</link>
2020-10-01 10:34:47 +02:00
<link title= "Third Person Shooter Demo" > https://godotengine.org/asset-library/asset/678</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>
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-02-10 03:04:56 +01:00
The fade-in duration. For example, setting this to [code]1.0[/code] for a 5 second length animation will produce a crossfade that starts at 0 second and ends at 1 second during the animation.
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-02-11 19:14:35 +01:00
The fade-out duration. For example, setting this to [code]1.0[/code] for a 5 second length animation will produce a crossfade that starts at 4 second and ends at 5 second during the animation.
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>
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>