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.

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 = &"" 🔗

  • void set_advance_condition(value: StringName)

  • StringName get_advance_condition()

Вмикає автоматичний перехід при виконанні цієї умови. Введене ім'я стане логічним параметром у 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()

Крива полегшення для кращого контролю над затуханням між цим станом і наступним. Має бути одиницею Curve.


float xfade_time = 0.0 🔗

  • void set_xfade_time(value: float)

  • float get_xfade_time()

Час переходу між цим станом і наступним.

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