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.

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")

Tutorial

Proprietà

bool

allow_transition_to_self

false

bool

reset_ends

false

StateMachineType

state_machine_type

0

Metodi

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)


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 🔗

  • void set_allow_transition_to_self(value: bool)

  • bool is_allow_transition_to_self()

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.


bool reset_ends = false 🔗

  • void set_reset_ends(value: bool)

  • bool are_ends_reset()

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 🔗

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.