AnimationNodeStateMachineTransition

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

Переход внутри AnimationNodeStateMachine, соединяющий два AnimationRootNode-ов.

Описание

Путь, сгенерированный при использовании AnimationNodeStateMachinePlayback.travel(), ограничен узлами, соединенными AnimationNodeStateMachineTransition.

Вы можете подробно задать время и условия перехода.

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

Свойства

StringName

advance_condition

&""

String

advance_expression

""

AdvanceMode

advance_mode

1

bool

break_loop_at_end

false

int

priority

1

bool

reset

true

SwitchMode

switch_mode

0

Curve

xfade_curve

float

xfade_time

0.0


Сигналы

advance_condition_changed() 🔗

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


Перечисления

enum SwitchMode: 🔗

SwitchMode SWITCH_MODE_IMMEDIATE = 0

Немедленно переключиться на следующее состояние. Текущее состояние закончится и сольется с началом нового.

SwitchMode SWITCH_MODE_SYNC = 1

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

SwitchMode SWITCH_MODE_AT_END = 2

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


enum AdvanceMode: 🔗

AdvanceMode ADVANCE_MODE_DISABLED = 0

Не используйте этот переход.

AdvanceMode ADVANCE_MODE_ENABLED = 1

Используйте этот переход только во время AnimationNodeStateMachinePlayback.travel().

AdvanceMode ADVANCE_MODE_AUTO = 2

Автоматически использовать этот переход, если проверки advance_condition и advance_expression равны true (если назначено).


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

StringName advance_condition = &"" 🔗

Включите автоматическое продвижение, когда задано это условие. Предоставленное имя станет булевым параметром в AnimationTree, которым можно управлять из кода (см. Использование AnimationTree). Например, если AnimationTree.tree_root является AnimationNodeStateMachine, а advance_condition установлен в "idle":

$animation_tree.set("parameters/conditions/idle", is_on_floor and (linear_velocity.x == 0))

String advance_expression = "" 🔗

  • void set_advance_expression(value: String)

  • String get_advance_expression()

Используйте выражение как условие для переходов между состояниями машины. Можно создавать сложные условия продвижения анимации для переключения между состояниями и обеспечивает гораздо большую гибкость для создания сложных машин состояний путем прямого взаимодействия с кодом скрипта.


AdvanceMode advance_mode = 1 🔗

Определяет, следует ли отключить переход, включить его при использовании AnimationNodeStateMachinePlayback.travel() или выполнить переход автоматически, если проверки advance_condition и advance_expression равны true (если назначено).


bool break_loop_at_end = false 🔗

  • void set_break_loop_at_end(value: bool)

  • bool is_loop_broken_at_end()

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


int priority = 1 🔗

  • void set_priority(value: int)

  • int get_priority()

Переходы с более низким приоритетом предпочтительны при перемещении по дереву с помощью AnimationNodeStateMachinePlayback.travel() или advance_mode установлен в ADVANCE_MODE_AUTO.


bool reset = true 🔗

  • void set_reset(value: bool)

  • bool is_reset()

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


SwitchMode switch_mode = 0 🔗

Тип перехода.


Curve xfade_curve 🔗

  • void set_xfade_curve(value: Curve)

  • Curve get_xfade_curve()

Кривая плавности для лучшего контроля над кроссфейдом (cross-fade) между этим состоянием и следующим. Должна быть единицей Кривая.


float xfade_time = 0.0 🔗

  • void set_xfade_time(value: float)

  • float get_xfade_time()

Время для перехода между этим состоянием и следующим.

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