AnimatedSprite3D
Наследует: SpriteBase3D < GeometryInstance3D < VisualInstance3D < Node3D < Node < Object
Узел 2D спрайта в 3D мире, который может использовать несколько 2D текстур для анимации.
Описание
AnimatedSprite3D похож на узел Sprite3D, за исключением того, что он содержит несколько текстур в качестве анимации sprite_frames. Анимации создаются с использованием ресурса SpriteFrames, который позволяет импортировать файлы изображений (или папку, содержащую указанные файлы) для предоставления кадров анимации для спрайта. Ресурс SpriteFrames можно настроить в редакторе через нижнюю панель SpriteFrames.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
Методы
get_playing_speed() const |
|
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" 🔗
void set_animation(value: StringName)
StringName get_animation()
Текущая анимация из ресурса sprite_frames. Если это значение изменяется, то сбрасываются счетчик frame и frame_progress.
Ключ анимации, воспроизводимой при загрузке сцены.
Индекс отображаемого кадра анимации. Установка этого свойства также сбрасывает frame_progress. Если это нежелательно, используйте set_frame_and_progress().
Значение прогресса между 0.0 и 1.0 до тех пор, пока текущий кадр не перейдет к следующему кадру. Если анимация воспроизводится в обратном направлении, значение переходит от 1.0 к 0.0.
Коэффициент масштабирования скорости. Например, если это значение равно 1, то анимация воспроизводится с нормальной скоростью. Если это 0.5, то она воспроизводится с половинной скоростью. Если это 2, то она воспроизводится с двойной скоростью.
Если установлено отрицательное значение, анимация воспроизводится в обратном направлении. Если установлено значение 0, анимация не будет продвигаться.
SpriteFrames sprite_frames 🔗
void set_sprite_frames(value: SpriteFrames)
SpriteFrames get_sprite_frames()
Ресурс SpriteFrames, содержащий анимацию(и). Позволяет загружать, редактировать, очищать, делать уникальными и сохранять состояния ресурса SpriteFrames.
Описания метода
float get_playing_speed() const 🔗
Возвращает фактическую скорость воспроизведения текущей анимации или 0, если не воспроизводится. Эта скорость — свойство speed_scale, умноженное на аргумент custom_speed, указанный при вызове метода play().
Возвращает отрицательное значение, если текущая анимация воспроизводится в обратном направлении.
Возвращает 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().