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")
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback;
stateMachine.Travel("some_state");
Tutoriales
Propiedades
|
||
|
||
|
Métodos
void |
add_node(name: StringName, node: AnimationNode, position: Vector2 = Vector2(0, 0)) |
void |
add_transition(from: StringName, to: StringName, transition: AnimationNodeStateMachineTransition) |
get_graph_offset() const |
|
get_node(name: StringName) const |
|
get_node_list() const |
|
get_node_name(node: AnimationNode) const |
|
get_node_position(name: StringName) const |
|
get_transition(idx: int) const |
|
get_transition_count() const |
|
get_transition_from(idx: int) const |
|
get_transition_to(idx: int) const |
|
has_node(name: StringName) const |
|
has_transition(from: StringName, to: StringName) const |
|
void |
remove_node(name: StringName) |
void |
remove_transition(from: StringName, to: StringName) |
void |
|
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 🔗
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.
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 🔗
void set_state_machine_type(value: StateMachineType)
StateMachineType get_state_machine_type()
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.