AnimatedSprite3D

Hereda: SpriteBase3D < GeometryInstance3D < VisualInstance3D < Node3D < Node < Object

Nodo de sprites 2D en el mundo 3D, que puede usar múltiples texturas 2D para la animación.

Descripción

AnimatedSprite3D es similar al nodo Sprite3D, excepto que contiene múltiples texturas como sprite_frames de animación. Las animaciones se crean mediante el recurso SpriteFrames, que permite importar archivos de imagen (o una carpeta que contenga dichos archivos) para generar los fotogramas de animación del sprite. El recurso SpriteFrames se puede configurar en el editor mediante el panel inferior SpriteFrames.

Tutoriales

Propiedades

StringName

animation

&"default"

String

autoplay

""

int

frame

0

float

frame_progress

0.0

float

speed_scale

1.0

SpriteFrames

sprite_frames

Métodos

float

get_playing_speed() const

bool

is_playing() const

void

pause()

void

play(name: StringName = &"", custom_speed: float = 1.0, from_end: bool = false)

void

play_backwards(name: StringName = &"")

void

set_frame_and_progress(frame: int, progress: float)

void

stop()


Señales

animation_changed() 🔗

Emitida cuando animation cambia.


animation_finished() 🔗

Emitida cuando la animación llega al final, o al inicio si se reproduce en reversa. Cuando la animación termina, pausa la reproducción.

Nota: Esta señal no se emite si una animación está en bucle.


animation_looped() 🔗

Emitida cuando la animación se repite.


frame_changed() 🔗

Emitida cuando frame cambia.


sprite_frames_changed() 🔗

Emitida cuando sprite_frames cambia.


Descripciones de Propiedades

StringName animation = &"default" 🔗

La animación actual del recurso sprite_frames. Si este valor cambia, el contador frame y el frame_progress se reinician.


String autoplay = "" 🔗

La clave de la animación que se reproducirá cuando se cargue la escena.


int frame = 0 🔗

  • void set_frame(value: int)

  • int get_frame()

El índice del fotograma de animación que se muestra. Establecer esta propiedad también reinicia frame_progress. Si no se desea, usa set_frame_and_progress().


float frame_progress = 0.0 🔗

  • void set_frame_progress(value: float)

  • float get_frame_progress()

El valor de progreso entre 0.0 y 1.0 hasta que el fotograma actual hace la transición al siguiente fotograma. Si la animación se está reproduciendo hacia atrás, el valor hace la transición de 1.0 a 0.0.


float speed_scale = 1.0 🔗

  • void set_speed_scale(value: float)

  • float get_speed_scale()

La relación de escala de velocidad. Por ejemplo, si este valor es 1, entonces la animación se reproduce a velocidad normal. Si es 0.5, entonces se reproduce a media velocidad. Si es 2, entonces se reproduce al doble de velocidad.

Si se establece en un valor negativo, la animación se reproduce en reversa. Si se establece en 0, la animación no avanzará.


SpriteFrames sprite_frames 🔗

El recurso SpriteFrames que contiene la(s) animación(es). Te permite cargar, editar, borrar, hacer único y guardar los estados del recurso SpriteFrames.


Descripciones de Métodos

float get_playing_speed() const 🔗

Devuelve la velocidad de reproducción real de la animación actual o 0 si no se está reproduciendo. Esta velocidad es la propiedad speed_scale multiplicada por el argumento custom_speed especificado al llamar al método play().

Devuelve un valor negativo si la animación actual se está reproduciendo hacia atrás.


bool is_playing() const 🔗

Devuelve true si una animación se está reproduciendo actualmente (incluso si speed_scale y/o custom_speed son 0).


void pause() 🔗

Pausa la animación que se está reproduciendo. El frame y el frame_progress se mantendrán y al llamar a play() o play_backwards() sin argumentos se reanudará la animación desde la posición de reproducción actual.

Véase también stop().


void play(name: StringName = &"", custom_speed: float = 1.0, from_end: bool = false) 🔗

Reproduce la animación con la clave name. Si custom_speed es negativo y from_end es true, la animación se reproducirá hacia atrás (lo que equivale a llamar a play_backwards()).

Si este método se llama con la misma animación name, o sin el parámetro name, la animación asignada continuará reproduciéndose si estaba en pausa.


void play_backwards(name: StringName = &"") 🔗

Reproduce la animación con la clave name al revés.

Este método es una abreviatura de play() con custom_speed = -1.0 y from_end = true, así que consulta su descripción para obtener más información.


void set_frame_and_progress(frame: int, progress: float) 🔗

Establece frame y frame_progress a los valores dados. A diferencia de establecer frame, este método no reinicia el frame_progress a 0.0 implícitamente.

Ejemplo: Cambia la animación manteniendo el mismo frame y frame_progress:

var current_frame = animated_sprite.get_frame()
var current_progress = animated_sprite.get_frame_progress()
animated_sprite.play("walk_another_skin")
animated_sprite.set_frame_and_progress(current_frame, current_progress)

void stop() 🔗

Detiene la animación que se está reproduciendo. La posición de la animación se restablece a 0 y la custom_speed se restablece a 1.0. Véase también pause().