AnimationNodeStateMachine
Eredita: AnimationRootNode < AnimationNode < Resource < RefCounted < Object
Una macchina a stati con più AnimationRootNode, usata da AnimationTree.
Descrizione
Contiene più AnimationRootNode che rappresentano gli stati di animazione, collegati in un grafico. È possibile configurare le transizioni di stato per svolgersi automaticamente o tramite codice, utilizzando un algoritmo di percorso più breve. Recupera l'oggetto AnimationNodeStateMachinePlayback dal nodo AnimationTree per controllarlo programmaticamente.
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");
Tutorial
Proprietà
|
||
|
||
|
Metodi
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) |
Enumerazioni
enum StateMachineType: 🔗
StateMachineType STATE_MACHINE_TYPE_ROOT = 0
Cercare all'inizio è considerato come una riproduzione dallo stato iniziale. La transizione allo stato finale è considerata come un'uscita dalla macchina a stati.
StateMachineType STATE_MACHINE_TYPE_NESTED = 1
Cercare all'inizio è considerato come cercare all'inizio dell'animazione nello stato attuale. La transizione allo stato finale, o l'assenza di transizioni in ogni stato, è considerata come un'uscita dalla macchina a stati.
StateMachineType STATE_MACHINE_TYPE_GROUPED = 2
Questa è una macchina a stati raggruppata che può essere controllata da una macchina a stati madre. Non funziona separatamente. Ci deve essere una macchina a stati con state_machine_type impostato a STATE_MACHINE_TYPE_ROOT o STATE_MACHINE_TYPE_NESTED nel genitore o progenitore.
Descrizioni delle proprietà
bool allow_transition_to_self = false 🔗
Se true, permette il teletrasporto allo stesso stato attuale con AnimationNodeStateMachinePlayback.travel(). Quando l'opzione di reset è abilitata in AnimationNodeStateMachinePlayback.travel(), l'animazione è riavviata. Se false, non succede niente al teletrasporto allo stesso stato attuale.
Se true, tratta la dissolvenza incrociata ai nodi iniziali e finali come una fusione con l'animazione di RESET.
Nella maggior parte dei casi, quando ulteriori dissolvenze incrociate sono effettuate nell'AnimationNode genitore della macchina a stati, impostando questa proprietà a false e corrispondente il tempo di dissolvenza incrociata dell'AnimationNode genitore e il nodo iniziale e il nodo finale della macchina a stati dà buoni risultati.
StateMachineType state_machine_type = 0 🔗
void set_state_machine_type(value: StateMachineType)
StateMachineType get_state_machine_type()
Questa proprietà può definire il processo delle transizioni per diversi casi d'uso. Vedi anche StateMachineType.
Descrizioni dei metodi
void add_node(name: StringName, node: AnimationNode, position: Vector2 = Vector2(0, 0)) 🔗
Aggiunge un nuovo nodo di animazione al grafico. La posizione position è utilizzata per la visualizzazione nell'editor.
void add_transition(from: StringName, to: StringName, transition: AnimationNodeStateMachineTransition) 🔗
Aggiunge una transizione tra i nodi di animazione forniti.
Vector2 get_graph_offset() const 🔗
Restituisce lo scostamento di disegno del grafico. Utilizzato per la visualizzazione nell'editor.
AnimationNode get_node(name: StringName) const 🔗
Restituisce il nodo di animazione con il nome indicato.
Array[StringName] get_node_list() const 🔗
Restituisce una lista contenente i nomi di tutti i nodi di animazione in questa macchina a stati.
StringName get_node_name(node: AnimationNode) const 🔗
Restituisce il nome del nodo di animazione indicato.
Vector2 get_node_position(name: StringName) const 🔗
Restituisce le coordinate del nodo di animazione indicato. Utilizzato per la visualizzazione nell'editor.
AnimationNodeStateMachineTransition get_transition(idx: int) const 🔗
Restituisce la transizione indicata.
int get_transition_count() const 🔗
Restituisce il numero di connessioni nel grafico.
StringName get_transition_from(idx: int) const 🔗
Restituisce il nodo iniziale della transizione indicata.
StringName get_transition_to(idx: int) const 🔗
Restituisce il nodo finale della transizione indicata.
bool has_node(name: StringName) const 🔗
Restituisce true se il grafico contiene il nodo di animazione indicato.
bool has_transition(from: StringName, to: StringName) const 🔗
Restituisce true se c'è una transizione tra i nodi di animazione indicati.
void remove_node(name: StringName) 🔗
Elimina il nodo di animazione indicato dal grafico.
void remove_transition(from: StringName, to: StringName) 🔗
Elimina la transizione tra i due nodi di animazione specificati.
void remove_transition_by_index(idx: int) 🔗
Elimina la transizione fornita per indice.
void rename_node(name: StringName, new_name: StringName) 🔗
Rinomina il nodo di animazione fornito.
void replace_node(name: StringName, node: AnimationNode) 🔗
Sostituisce il nodo di animazione fornito con un nuovo nodo di animazione.
void set_graph_offset(offset: Vector2) 🔗
Imposta lo scostamento del grafico. Utilizzato per la visualizzazione nell'editor.
void set_node_position(name: StringName, position: Vector2) 🔗
Imposta le coordinate del nodo di animazione. Utilizzato per la visualizzazione nell'editor.