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.
Checking the stable version of the documentation...
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.