AnimationNodeStateMachinePlayback

Наследует: Resource < RefCounted < Object

Обеспечивает управление воспроизведением для AnimationNodeStateMachine.

Описание

Позволяет управлять конечными автоматами AnimationTree, созданными с помощью AnimationNodeStateMachine. Извлечь с помощью $AnimationTree.get("parameters/playback").

var state_machine = $AnimationTree.get("parameters/playback")
state_machine.travel("some_state")

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

Свойства

bool

resource_local_to_scene

true (overrides Resource)

Методы

float

get_current_length() const

StringName

get_current_node() const

float

get_current_play_position() const

float

get_fading_from_length() const

StringName

get_fading_from_node() const

float

get_fading_from_play_position() const

float

get_fading_length() const

float

get_fading_position() const

Array[StringName]

get_travel_path() const

bool

is_playing() const

void

next()

void

start(node: StringName, reset: bool = true)

void

stop()

void

travel(to_node: StringName, reset_on_teleport: bool = true)


Сигналы

state_finished(state: StringName) 🔗

Генерируется, когда state завершает воспроизведение. Если state — это конечный автомат, установленный в групповой режим, его сигналы передаются с префиксом его имени.

Если используется плавный переход, он срабатывает, когда влияние анимации get_fading_from_node() прекращается.


state_started(state: StringName) 🔗

Генерируется, когда state начинает воспроизведение. Если state — это конечный автомат, установленный в групповой режим, его сигналы передаются с префиксом его имени.


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

float get_current_length() const 🔗

Возвращает текущую длину состояния.

Примечание: Возможно, что любой AnimationRootNode может быть как узлами, так и анимациями. Это означает, что в одном состоянии может быть несколько анимаций. Какая длина анимации имеет приоритет, зависит от узлов, подключенных внутри него. Кроме того, если переход не сбрасывается, будет возвращена оставшаяся длина в этой точке.


StringName get_current_node() const 🔗

Возвращает текущее состояние воспроизводимой анимации.

Примечание: При использовании кроссфейда текущее состояние меняется на следующее состояние сразу после начала кроссфейда.


float get_current_play_position() const 🔗

Возвращает позицию воспроизведения в текущем состоянии анимации.


float get_fading_from_length() const 🔗

Возвращает длительность состояния воспроизведения узла из get_fading_from_node(). Возвращает 0, если затухание анимации не происходит.


StringName get_fading_from_node() const 🔗

Возвращает начальное состояние текущей затухающей анимации.


float get_fading_from_play_position() const 🔗

Возвращает позицию воспроизведения узла из get_fading_from_node(). Возвращает 0, если анимация затухания не происходит.


float get_fading_length() const 🔗

Возвращает длительность текущей анимации затухания. Возвращает 0, если анимация затухания не выполняется.


float get_fading_position() const 🔗

Возвращает позицию воспроизведения текущей анимации затухания. Возвращает 0, если анимация затухания не выполняется.


Array[StringName] get_travel_path() const 🔗

Возвращает текущий путь перемещения, рассчитанный внутренним алгоритмом A*.


bool is_playing() const 🔗

Возвращает true, если анимация воспроизводится.


void next() 🔗

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


void start(node: StringName, reset: bool = true) 🔗

Начинает воспроизведение заданной анимации.

Если reset равен true, анимация воспроизводится с начала.


void stop() 🔗

Останавливает текущую анимацию.


void travel(to_node: StringName, reset_on_teleport: bool = true) 🔗

Переход из текущего состояния в другое по кратчайшему пути.

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

Если reset_on_teleport равен true, анимация воспроизводится с начала, когда путешествие вызывает телепортацию.