AnimationNodeStateMachineTransition
Наследует: Resource < RefCounted < Object
Переход внутри AnimationNodeStateMachine, соединяющий два AnimationRootNode-ов.
Описание
Путь, сгенерированный при использовании AnimationNodeStateMachinePlayback.travel(), ограничен узлами, соединенными AnimationNodeStateMachineTransition.
Вы можете подробно задать время и условия перехода.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Сигналы
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 = &"" 🔗
void set_advance_condition(value: StringName)
StringName get_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))
GetNode<AnimationTree>("animation_tree").Set("parameters/conditions/idle", IsOnFloor && (LinearVelocity.X == 0));
String advance_expression = "" 🔗
Используйте выражение как условие для переходов между состояниями машины. Можно создавать сложные условия продвижения анимации для переключения между состояниями и обеспечивает гораздо большую гибкость для создания сложных машин состояний путем прямого взаимодействия с кодом скрипта.
AdvanceMode advance_mode = 1 🔗
void set_advance_mode(value: AdvanceMode)
AdvanceMode get_advance_mode()
Определяет, следует ли отключить переход, включить его при использовании AnimationNodeStateMachinePlayback.travel() или выполнить переход автоматически, если проверки advance_condition и advance_expression равны true (если назначено).
bool break_loop_at_end = false 🔗
Если true, прерывает цикл в конце цикла перехода, даже если анимация зациклена.
Переходы с более низким приоритетом предпочтительны при перемещении по дереву с помощью AnimationNodeStateMachinePlayback.travel() или advance_mode установлен в ADVANCE_MODE_AUTO.
Если true, то при переключении анимация назначения воспроизводится с начала.
SwitchMode switch_mode = 0 🔗
void set_switch_mode(value: SwitchMode)
SwitchMode get_switch_mode()
Тип перехода.
Кривая плавности для лучшего контроля над кроссфейдом (cross-fade) между этим состоянием и следующим. Должна быть единицей Кривая.
Время для перехода между этим состоянием и следующим.
Примечание: AnimationNodeStateMachine переходит в текущее состояние сразу после начала перехода. Точное оставшееся время можно вывести только из основной анимации. Когда AnimationNodeOutput считается самым верхним по потоку, то xfade_time не масштабируется в зависимости от дельты нижнего потока. См. также AnimationNodeOneShot.fadeout_time.