AnimationNodeStateMachine

Hereda: AnimationRootNode < AnimationNode < Resource < RefCounted < Object

Una máquina de estados con múltiples AnimationRootNode, utilizada por AnimationTree.

Descripción

Contains multiple AnimationRootNodes representing animation states, connected in a graph. State transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the AnimationNodeStateMachinePlayback object from the AnimationTree node to control it programmatically.

var state_machine = $AnimationTree.get("parameters/playback")
state_machine.travel("some_state")

Tutoriales

Propiedades

bool

allow_transition_to_self

false

bool

reset_ends

false

StateMachineType

state_machine_type

0

Métodos

void

add_node(name: StringName, node: AnimationNode, position: Vector2 = Vector2(0, 0))

void

add_transition(from: StringName, to: StringName, transition: AnimationNodeStateMachineTransition)

Vector2

get_graph_offset() const

AnimationNode

get_node(name: StringName) const

Array[StringName]

get_node_list() const

StringName

get_node_name(node: AnimationNode) const

Vector2

get_node_position(name: StringName) const

AnimationNodeStateMachineTransition

get_transition(idx: int) const

int

get_transition_count() const

StringName

get_transition_from(idx: int) const

StringName

get_transition_to(idx: int) const

bool

has_node(name: StringName) const

bool

has_transition(from: StringName, to: StringName) const

void

remove_node(name: StringName)

void

remove_transition(from: StringName, to: StringName)

void

remove_transition_by_index(idx: int)

void

rename_node(name: StringName, new_name: StringName)

void

replace_node(name: StringName, node: AnimationNode)

void

set_graph_offset(offset: Vector2)

void

set_node_position(name: StringName, position: Vector2)


Enumeraciones

enum StateMachineType: 🔗

StateMachineType STATE_MACHINE_TYPE_ROOT = 0

Buscar el principio se trata como reproducir desde el estado inicial. La transición al estado final se trata como salir de la máquina de estados.

StateMachineType STATE_MACHINE_TYPE_NESTED = 1

Buscar el principio se trata como buscar el principio de la animación en el estado actual. La transición al estado final, o la ausencia de transiciones en cada estado, se trata como salir de la máquina de estados.

StateMachineType STATE_MACHINE_TYPE_GROUPED = 2

Esta es una máquina de estados agrupada que puede ser controlada desde una máquina de estados padre. No funciona de forma independiente. Debe haber una máquina de estados con state_machine_type de STATE_MACHINE_TYPE_ROOT o STATE_MACHINE_TYPE_NESTED en el padre o ancestro.


Descripciones de Propiedades

bool allow_transition_to_self = false 🔗

  • void set_allow_transition_to_self(value: bool)

  • bool is_allow_transition_to_self()

Si es true, permite teletransportarse al estado propio con AnimationNodeStateMachinePlayback.travel(). Cuando la opción de reinicio está activada en AnimationNodeStateMachinePlayback.travel(), la animación se reinicia. Si es false, no ocurre nada en la teletransportación al estado propio.


bool reset_ends = false 🔗

  • void set_reset_ends(value: bool)

  • bool are_ends_reset()

Si es true, trata el fundido cruzado a los nodos de inicio y fin como una mezcla con la animación RESET.

En la mayoría de los casos, cuando se realizan fundidos cruzados adicionales en el AnimationNode padre de la máquina de estados, establecer esta propiedad a false y hacer coincidir el tiempo de fundido cruzado del AnimationNode padre con el de los nodos de inicio y fin de la máquina de estados da buenos resultados.


StateMachineType state_machine_type = 0 🔗

Esta propiedad puede definir el proceso de transiciones para diferentes casos de uso. Véase también StateMachineType.


Descripciones de Métodos

void add_node(name: StringName, node: AnimationNode, position: Vector2 = Vector2(0, 0)) 🔗

Añade un nuevo nodo de animación al gráfico. La position se utiliza para la visualización en el editor.


void add_transition(from: StringName, to: StringName, transition: AnimationNodeStateMachineTransition) 🔗

Agrega una transición entre los nodos de animación dados.


Vector2 get_graph_offset() const 🔗

Devuelve el dezplazamiento del dibujo de un grafico. Utilizado para visualizaciones en el editor.


AnimationNode get_node(name: StringName) const 🔗

Devuelve el nodo animacion con el nombre dado.


Array[StringName] get_node_list() const 🔗

Devuelve una lista que contiene los nombres de todos los nodos de animación en esta máquina de estados.


StringName get_node_name(node: AnimationNode) const 🔗

Devuelve el node del nombre de la animacion dada.


Vector2 get_node_position(name: StringName) const 🔗

Devuelve las coordenadas del nodo de animación especificado. Se utiliza para visualizar en el editor.


AnimationNodeStateMachineTransition get_transition(idx: int) const 🔗

Devuelve la transicion dada.


int get_transition_count() const 🔗

Devuelve el numero de conexiones en el grafico.


StringName get_transition_from(idx: int) const 🔗

Devuelve el nodo de comienzo de la transicion dada.


StringName get_transition_to(idx: int) const 🔗

Devuelve el nodo final de la transicion dada.


bool has_node(name: StringName) const 🔗

Devuelve true si el gráfico contiene el nodo de animación dado.


bool has_transition(from: StringName, to: StringName) const 🔗

Devuelve true si hay una transición entre los nodos de animación dados.


void remove_node(name: StringName) 🔗

Elimina el nodo de animación dado del gráfico.


void remove_transition(from: StringName, to: StringName) 🔗

Elimina la transición entre los dos nodos de animación especificados.


void remove_transition_by_index(idx: int) 🔗

Elimina la transicion dado un indice.


void rename_node(name: StringName, new_name: StringName) 🔗

Cambia el nombre del nodo de animación dado.


void replace_node(name: StringName, node: AnimationNode) 🔗

Reemplaza el nodo de animación dado con un nuevo nodo de animación.


void set_graph_offset(offset: Vector2) 🔗

Coloca el desplazamiento de dibujo del grafico. Utilizado para visualizaciones en el editor.


void set_node_position(name: StringName, position: Vector2) 🔗

Establece las coordenadas del nodo de animación. Se utiliza para visualizarlo en el editor.