summaryrefslogtreecommitdiff
path: root/doc/classes
diff options
context:
space:
mode:
authorDanil Alexeev <danil@alexeev.xyz>2022-11-26 17:00:38 +0300
committerDanil Alexeev <danil@alexeev.xyz>2023-01-05 13:13:25 +0300
commit0d25d8e7fcb9db82e2017de3ca5281fcd28ddcf5 (patch)
tree44ae09a8f6033f8562fa7aea1eac51eb174370a9 /doc/classes
parentdc3175e4cdb4e54e1c6200b6c4d07646eea95284 (diff)
`AnimatedSprite{2D,3D}` improvements
* Add support for individual frame duration to `SpriteFrames`. * Various minor improvements.
Diffstat (limited to 'doc/classes')
-rw-r--r--doc/classes/AnimatedSprite2D.xml11
-rw-r--r--doc/classes/AnimatedSprite3D.xml11
-rw-r--r--doc/classes/SpriteFrames.xml40
3 files changed, 41 insertions, 21 deletions
diff --git a/doc/classes/AnimatedSprite2D.xml b/doc/classes/AnimatedSprite2D.xml
index afbe34816a..e20fb71c7e 100644
--- a/doc/classes/AnimatedSprite2D.xml
+++ b/doc/classes/AnimatedSprite2D.xml
@@ -6,7 +6,7 @@
<description>
[AnimatedSprite2D] is similar to the [Sprite2D] node, except it carries multiple textures as animation frames. Animations are created using a [SpriteFrames] resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The [SpriteFrames] resource can be configured in the editor via the SpriteFrames bottom panel.
After setting up [member frames], [method play] may be called. It's also possible to select an [member animation] and toggle [member playing], even within the editor.
- To pause the current animation, call [method stop] or set [member playing] to [code]false[/code]. Alternatively, setting [member speed_scale] to [code]0[/code] also preserves the current frame's elapsed time.
+ To pause the current animation, set [member playing] to [code]false[/code]. Alternatively, setting [member speed_scale] to [code]0[/code] also preserves the current frame's elapsed time.
[b]Note:[/b] You can associate a set of normal or specular maps by creating additional [SpriteFrames] resources with a [code]_normal[/code] or [code]_specular[/code] suffix. For example, having 3 [SpriteFrames] resources [code]run[/code], [code]run_normal[/code], and [code]run_specular[/code] will make it so the [code]run[/code] animation uses normal and specular maps.
</description>
<tutorials>
@@ -20,13 +20,14 @@
<param index="1" name="backwards" type="bool" default="false" />
<description>
Plays the animation named [param anim]. If no [param anim] is provided, the current animation is played. If [param backwards] is [code]true[/code], the animation is played in reverse.
+ [b]Note:[/b] If [member speed_scale] is negative, the animation direction specified by [param backwards] will be inverted.
</description>
</method>
<method name="stop">
<return type="void" />
<description>
Stops the current [member animation] at the current [member frame].
- [b]Note:[/b] This method resets the current frame's elapsed time. If this behavior is undesired, consider setting [member speed_scale] to [code]0[/code], instead.
+ [b]Note:[/b] This method resets the current frame's elapsed time and removes the [code]backwards[/code] flag from the current [member animation] (if it was previously set by [method play]). If this behavior is undesired, set [member playing] to [code]false[/code] instead.
</description>
</method>
</methods>
@@ -53,7 +54,9 @@
The texture's drawing offset.
</member>
<member name="playing" type="bool" setter="set_playing" getter="is_playing" default="false">
- If [code]true[/code], the [member animation] is currently playing. Setting this property to [code]false[/code] is the equivalent of calling [method stop].
+ If [code]true[/code], the [member animation] is currently playing. Setting this property to [code]false[/code] pauses the current animation. Use [method stop] to stop the animation at the current frame instead.
+ [b]Note:[/b] Unlike [method stop], changing this property to [code]false[/code] preserves the current frame's elapsed time and the [code]backwards[/code] flag of the current [member animation] (if it was previously set by [method play]).
+ [b]Note:[/b] After a non-looping animation finishes, the property still remains [code]true[/code].
</member>
<member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale" default="1.0">
The animation speed is multiplied by this value. If set to a negative value, the animation is played in reverse. If set to [code]0[/code], the animation is paused, preserving the current frame's elapsed time.
@@ -62,7 +65,7 @@
<signals>
<signal name="animation_finished">
<description>
- Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted every time the last frame is drawn.
+ Emitted when the animation reaches the end, or the start if it is played in reverse. If the animation is looping, this signal is emitted at the end of each loop.
</description>
</signal>
<signal name="frame_changed">
diff --git a/doc/classes/AnimatedSprite3D.xml b/doc/classes/AnimatedSprite3D.xml
index 09baf882fb..4837ae715f 100644
--- a/doc/classes/AnimatedSprite3D.xml
+++ b/doc/classes/AnimatedSprite3D.xml
@@ -6,7 +6,7 @@
<description>
[AnimatedSprite3D] is similar to the [Sprite3D] node, except it carries multiple textures as animation [member frames]. Animations are created using a [SpriteFrames] resource, which allows you to import image files (or a folder containing said files) to provide the animation frames for the sprite. The [SpriteFrames] resource can be configured in the editor via the SpriteFrames bottom panel.
After setting up [member frames], [method play] may be called. It's also possible to select an [member animation] and toggle [member playing], even within the editor.
- To pause the current animation, call [method stop] or set [member playing] to [code]false[/code]. Alternatively, setting [member speed_scale] to [code]0[/code] also preserves the current frame's elapsed time.
+ To pause the current animation, set [member playing] to [code]false[/code]. Alternatively, setting [member speed_scale] to [code]0[/code] also preserves the current frame's elapsed time.
</description>
<tutorials>
<link title="2D Sprite animation (also applies to 3D)">$DOCS_URL/tutorials/2d/2d_sprite_animation.html</link>
@@ -18,13 +18,14 @@
<param index="1" name="backwards" type="bool" default="false" />
<description>
Plays the animation named [param anim]. If no [param anim] is provided, the current animation is played. If [param backwards] is [code]true[/code], the animation is played in reverse.
+ [b]Note:[/b] If [member speed_scale] is negative, the animation direction specified by [param backwards] will be inverted.
</description>
</method>
<method name="stop">
<return type="void" />
<description>
Stops the current [member animation] at the current [member frame].
- [b]Note:[/b] This method resets the current frame's elapsed time. If this behavior is undesired, consider setting [member speed_scale] to [code]0[/code], instead.
+ [b]Note:[/b] This method resets the current frame's elapsed time and removes the [code]backwards[/code] flag from the current [member animation] (if it was previously set by [method play]). If this behavior is undesired, set [member playing] to [code]false[/code] instead.
</description>
</method>
</methods>
@@ -39,7 +40,9 @@
The [SpriteFrames] resource containing the animation(s).
</member>
<member name="playing" type="bool" setter="set_playing" getter="is_playing" default="false">
- If [code]true[/code], the [member animation] is currently playing. Setting this property to [code]false[/code] is the equivalent of calling [method stop].
+ If [code]true[/code], the [member animation] is currently playing. Setting this property to [code]false[/code] pauses the current animation. Use [method stop] to stop the animation at the current frame instead.
+ [b]Note:[/b] Unlike [method stop], changing this property to [code]false[/code] preserves the current frame's elapsed time and the [code]backwards[/code] flag of the current [member animation] (if it was previously set by [method play]).
+ [b]Note:[/b] After a non-looping animation finishes, the property still remains [code]true[/code].
</member>
<member name="speed_scale" type="float" setter="set_speed_scale" getter="get_speed_scale" default="1.0">
The animation speed is multiplied by this value. If set to a negative value, the animation is played in reverse. If set to [code]0[/code], the animation is paused, preserving the current frame's elapsed time.
@@ -48,7 +51,7 @@
<signals>
<signal name="animation_finished">
<description>
- Emitted when the animation is finished (when it plays the last frame). If the animation is looping, this signal is emitted every time the last frame is drawn.
+ Emitted when the animation reaches the end, or the start if it is played in reverse. If the animation is looping, this signal is emitted at the end of each loop.
</description>
</signal>
<signal name="frame_changed">
diff --git a/doc/classes/SpriteFrames.xml b/doc/classes/SpriteFrames.xml
index e9721495dd..87b823bd2a 100644
--- a/doc/classes/SpriteFrames.xml
+++ b/doc/classes/SpriteFrames.xml
@@ -20,8 +20,9 @@
<method name="add_frame">
<return type="void" />
<param index="0" name="anim" type="StringName" />
- <param index="1" name="frame" type="Texture2D" />
- <param index="2" name="at_position" type="int" default="-1" />
+ <param index="1" name="texture" type="Texture2D" />
+ <param index="2" name="duration" type="float" default="1.0" />
+ <param index="3" name="at_position" type="int" default="-1" />
<description>
Adds a frame to the given animation.
</description>
@@ -56,22 +57,34 @@
<return type="float" />
<param index="0" name="anim" type="StringName" />
<description>
- The animation's speed in frames per second.
+ Returns the speed in frames per second for the [param anim] animation.
</description>
</method>
- <method name="get_frame" qualifiers="const">
- <return type="Texture2D" />
+ <method name="get_frame_count" qualifiers="const">
+ <return type="int" />
+ <param index="0" name="anim" type="StringName" />
+ <description>
+ Returns the number of frames for the [param anim] animation.
+ </description>
+ </method>
+ <method name="get_frame_duration" qualifiers="const">
+ <return type="float" />
<param index="0" name="anim" type="StringName" />
<param index="1" name="idx" type="int" />
<description>
- Returns the animation's selected frame.
+ Returns a relative duration of the frame [param idx] in the [param anim] animation (defaults to [code]1.0[/code]). For example, a frame with a duration of [code]2.0[/code] is displayed twice as long as a frame with a duration of [code]1.0[/code]. You can calculate the absolute duration (in seconds) of a frame using the following formula:
+ [codeblock]
+ absolute_duration = relative_duration / (animation_fps * abs(speed_scale))
+ [/codeblock]
+ In this example, [code]speed_scale[/code] refers to either [member AnimatedSprite2D.speed_scale] or [member AnimatedSprite3D.speed_scale].
</description>
</method>
- <method name="get_frame_count" qualifiers="const">
- <return type="int" />
+ <method name="get_frame_texture" qualifiers="const">
+ <return type="Texture2D" />
<param index="0" name="anim" type="StringName" />
+ <param index="1" name="idx" type="int" />
<description>
- Returns the number of frames in the animation.
+ Returns the texture of the frame [param idx] in the [param anim] animation.
</description>
</method>
<method name="has_animation" qualifiers="const">
@@ -115,18 +128,19 @@
<method name="set_animation_speed">
<return type="void" />
<param index="0" name="anim" type="StringName" />
- <param index="1" name="speed" type="float" />
+ <param index="1" name="fps" type="float" />
<description>
- The animation's speed in frames per second.
+ Sets the speed for the [param anim] animation in frames per second.
</description>
</method>
<method name="set_frame">
<return type="void" />
<param index="0" name="anim" type="StringName" />
<param index="1" name="idx" type="int" />
- <param index="2" name="txt" type="Texture2D" />
+ <param index="2" name="texture" type="Texture2D" />
+ <param index="3" name="duration" type="float" default="1.0" />
<description>
- Sets the texture of the given frame.
+ Sets the texture and the duration of the frame [param idx] in the [param anim] animation.
</description>
</method>
</methods>