AnimatedSprite3D

Наследует: SpriteBase3D < GeometryInstance3D < VisualInstance3D < Node3D < Node < Object

Узел 2D спрайта в 3D мире, который может использовать несколько 2D текстур для анимации.

Описание

AnimatedSprite3D похож на узел Sprite3D, за исключением того, что он содержит несколько текстур в качестве анимации sprite_frames. Анимации создаются с использованием ресурса SpriteFrames, который позволяет импортировать файлы изображений (или папку, содержащую указанные файлы) для предоставления кадров анимации для спрайта. Ресурс SpriteFrames можно настроить в редакторе через нижнюю панель SpriteFrames.

Обучающие материалы

Свойства

StringName

animation

&"default"

String

autoplay

""

int

frame

0

float

frame_progress

0.0

float

speed_scale

1.0

SpriteFrames

sprite_frames

Методы

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()


Сигналы

animation_changed() 🔗

Вызывается при изменении animation.


animation_finished() 🔗

Выдается, когда анимация достигает конца или начала, если она воспроизводится в обратном порядке. Когда анимация заканчивается, воспроизведение приостанавливается.

Примечание: Этот сигнал не выдается, если анимация зациклена.


animation_looped() 🔗

Вызывается при зацикливании анимации.


frame_changed() 🔗

Выдается при изменении frame.


sprite_frames_changed() 🔗

Вызывается при изменении sprite_frames.


Описания свойств

StringName animation = &"default" 🔗

Текущая анимация из ресурса sprite_frames. Если это значение изменяется, то сбрасываются счетчик frame и frame_progress.


String autoplay = "" 🔗

Ключ анимации, воспроизводимой при загрузке сцены.


int frame = 0 🔗

  • void set_frame(value: int)

  • int get_frame()

Индекс отображаемого кадра анимации. Установка этого свойства также сбрасывает frame_progress. Если это нежелательно, используйте set_frame_and_progress().


float frame_progress = 0.0 🔗

  • void set_frame_progress(value: float)

  • float get_frame_progress()

Значение прогресса между 0.0 и 1.0 до тех пор, пока текущий кадр не перейдет к следующему кадру. Если анимация воспроизводится в обратном направлении, значение переходит от 1.0 к 0.0.


float speed_scale = 1.0 🔗

  • void set_speed_scale(value: float)

  • float get_speed_scale()

Коэффициент масштабирования скорости. Например, если это значение равно 1, то анимация воспроизводится с нормальной скоростью. Если это 0.5, то она воспроизводится с половинной скоростью. Если это 2, то она воспроизводится с двойной скоростью.

Если установлено отрицательное значение, анимация воспроизводится в обратном направлении. Если установлено значение 0, анимация не будет продвигаться.


SpriteFrames sprite_frames 🔗

Ресурс SpriteFrames, содержащий анимацию(и). Позволяет загружать, редактировать, очищать, делать уникальными и сохранять состояния ресурса SpriteFrames.


Описания метода

float get_playing_speed() const 🔗

Возвращает фактическую скорость воспроизведения текущей анимации или 0, если не воспроизводится. Эта скорость — свойство speed_scale, умноженное на аргумент custom_speed, указанный при вызове метода play().

Возвращает отрицательное значение, если текущая анимация воспроизводится в обратном направлении.


bool is_playing() const 🔗

Возвращает true, если в данный момент воспроизводится анимация (даже если speed_scale и/или custom_speed равны 0).


void pause() 🔗

Приостанавливает текущую воспроизводимую анимацию. Member frame и frame_progress будут сохранены, а вызов play() или play_backwards() без аргументов возобновит анимацию с текущей позиции воспроизведения.

См. также stop().


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

Воспроизводит анимацию с ключом name. Если custom_speed отрицательный, а from_end равен true, анимация будет воспроизводиться в обратном направлении (что эквивалентно вызову play_backwards()).

Если этот метод вызывается с той же анимацией name или без параметра name, назначенная анимация возобновит воспроизведение, если она была приостановлена.


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

Воспроизводит анимацию с ключом name в обратном порядке.

Этот метод является сокращением для play() с custom_speed = -1.0 и from_end = true, поэтому см. его описание для получения дополнительной информации.


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

Устанавливает frame и frame_progress на заданные значения. В отличие от установки frame, этот метод не сбрасывает frame_progress на 0.0 неявно.

Пример: Измените анимацию, сохранив те же frame и 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() 🔗

Останавливает текущую воспроизводимую анимацию. Позиция анимации сбрасывается на 0, а custom_speed сбрасывается на 1.0. См. также pause().