Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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.