AnimationNodeTransition

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

Переход внутри AnimationTree, соединяющий две AnimationNode-ы.

Описание

Простой конечный автомат для случаев, не требующих более продвинутого AnimationNodeStateMachine. Анимации можно подключать к входам и можно указывать время перехода.

После установки запроса и изменения воспроизведения анимации узел перехода автоматически очищает запрос на следующем кадре процесса, устанавливая его значение transition_request пустым.

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

# Воспроизвести дочернюю анимацию, подключенную к порту «state_2».
animation_tree.set("parameters/Transition/transition_request", "state_2")
# Альтернативный синтаксис (тот же результат, что и выше).
animation_tree["parameters/Transition/transition_request"] = "state_2"

# Получить название текущего состояния (только для чтения).
animation_tree.get("parameters/Transition/current_state")
# Альтернативный синтаксис (тот же результат, что и выше).
animation_tree["parameters/Transition/current_state"]

# Получить текущий индекс состояния (только для чтения).
animation_tree.get("parameters/Transition/current_index")
# Альтернативный синтаксис (тот же результат, что и выше).
animation_tree["parameters/Transition/current_index"]

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

Свойства

bool

allow_transition_to_self

false

int

input_count

0

Curve

xfade_curve

float

xfade_time

0.0

Методы

bool

is_input_loop_broken_at_end(input: int) const

bool

is_input_reset(input: int) const

bool

is_input_set_as_auto_advance(input: int) const

void

set_input_as_auto_advance(input: int, enable: bool)

void

set_input_break_loop_at_end(input: int, enable: bool)

void

set_input_reset(input: int, enable: bool)


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

bool allow_transition_to_self = false 🔗

  • void set_allow_transition_to_self(value: bool)

  • bool is_allow_transition_to_self()

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


int input_count = 0 🔗

  • void set_input_count(value: int)

  • int get_input_count()

Количество включенных входных портов для этого узла анимации.


Curve xfade_curve 🔗

  • void set_xfade_curve(value: Curve)

  • Curve get_xfade_curve()

Определяет, как плавно смягчается перекрестное затухание между анимациями. Если пусто, переход будет линейным. Должен быть единицей Curve.


float xfade_time = 0.0 🔗

  • void set_xfade_time(value: float)

  • float get_xfade_time()

Время кросс-фейдинга (в секундах) между каждой анимацией, подключенной к входам.

Примечание: AnimationNodeTransition переходит в текущее состояние сразу после начала затухания. Точное оставшееся время можно вывести только из основной анимации. Когда AnimationNodeOutput считается самым верхним по потоку, то xfade_time не масштабируется в зависимости от дельты нижнего потока. См. также AnimationNodeOneShot.fadeout_time.


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

bool is_input_loop_broken_at_end(input: int) const 🔗

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


bool is_input_reset(input: int) const 🔗

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


bool is_input_set_as_auto_advance(input: int) const 🔗

Возвращает true, если для указанного индекса input включен авто-переход.


void set_input_as_auto_advance(input: int, enable: bool) 🔗

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


void set_input_break_loop_at_end(input: int, enable: bool) 🔗

Если true, прерывает цикл в конце цикла перехода, даже если анимация зациклена.


void set_input_reset(input: int, enable: bool) 🔗

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