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

Hereda: Resource < RefCounted < Object

Una transición dentro de un AnimationNodeStateMachine que conecta dos AnimationRootNodes.

Descripción

La ruta generada al usar AnimationNodeStateMachinePlayback.travel() está limitada a los nodos conectados por AnimationNodeStateMachineTransition.

Puedes establecer el tiempo y las condiciones de la transición en detalle.

Tutoriales

Propiedades

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


Señales

advance_condition_changed() 🔗

Emitida cuando advance_condition cambia.


Enumeraciones

enum SwitchMode: 🔗

SwitchMode SWITCH_MODE_IMMEDIATE = 0

Intercambia a el proximo estado inmediatamente. El actual estado terminara y se mezclara en el comienzo del nuevo.

SwitchMode SWITCH_MODE_SYNC = 1

Intercambia a el proximo estado inmediatamente, pero buscara el nuevo estado a la reproduccion de la posicion del antiguo estado.

SwitchMode SWITCH_MODE_AT_END = 2

Espera a que termine el actual estado en reproduccion, entonces intercambia con el principio de la proxima animación.


enum AdvanceMode: 🔗

AdvanceMode ADVANCE_MODE_DISABLED = 0

No usar esta transición.

AdvanceMode ADVANCE_MODE_ENABLED = 1

Utiliza esta transición únicamente durante AnimationNodeStateMachinePlayback.travel().

AdvanceMode ADVANCE_MODE_AUTO = 2

Utiliza automáticamente esta transición si las comprobaciones de advance_condition y advance_expression son true (si están asignadas).


Descripciones de Propiedades

StringName advance_condition = &"" 🔗

Activa el avance automático cuando se establece esta condición. El nombre proporcionado se convertirá en un parámetro booleano en el AnimationTree que puede controlarse desde el código (véase Uso de AnimationTree). Por ejemplo, si AnimationTree.tree_root es un AnimationNodeStateMachine y advance_condition está establecido en "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()

Usa una expresión como condición para las transiciones de la máquina de estados. Es posible crear condiciones complejas de avance de animación para cambiar entre estados y da una flexibilidad mucho mayor para crear máquinas de estados complejas al interactuar directamente con el código del script.


AdvanceMode advance_mode = 1 🔗

Determina si la transición debe ser deshabilitada, habilitada cuando se usa AnimationNodeStateMachinePlayback.travel(), o recorrida automáticamente si las comprobaciones de advance_condition y advance_expression son true (si están asignadas).


bool break_loop_at_end = false 🔗

  • void set_break_loop_at_end(value: bool)

  • bool is_loop_broken_at_end()

Si es true, interrumpe el bucle al final del ciclo de bucle para la transición, incluso si la animación está en bucle.


int priority = 1 🔗

  • void set_priority(value: int)

  • int get_priority()

Se prefieren las transiciones de menor prioridad cuando se viaja a través del árbol a través de AnimationNodeStateMachinePlayback.travel() o si advance_mode está configurado como ADVANCE_MODE_AUTO.


bool reset = true 🔗

  • void set_reset(value: bool)

  • bool is_reset()

Si es true, la animación de destino se reproduce desde el principio cuando se cambia.


SwitchMode switch_mode = 0 🔗

El tipo de transicion.


Curve xfade_curve 🔗

  • void set_xfade_curve(value: Curve)

  • Curve get_xfade_curve()

Curva de suavizado para un mejor control del fundido cruzado entre este estado y el siguiente. Debe ser una Curve de unidad.


float xfade_time = 0.0 🔗

  • void set_xfade_time(value: float)

  • float get_xfade_time()

El tiempo para el fundido cruzado entre este estado y el siguiente.

Nota: AnimationNodeStateMachine transiciona el estado actual inmediatamente después del inicio del fundido. El tiempo restante preciso sólo puede inferirse de la animación principal. Cuando AnimationNodeOutput se considera como el más ascendente, el xfade_time no se escala dependiendo del delta descendente. Véase también AnimationNodeOneShot.fadeout_time.