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.

AnimationNode

Eredita: Resource < RefCounted < Object

Ereditato da: AnimationNodeExtension, AnimationNodeOutput, AnimationNodeSync, AnimationNodeTimeScale, AnimationNodeTimeSeek, AnimationRootNode

Classe di base per nodi AnimationTree. Non riguarda i nodi della scena.

Descrizione

Risorsa base per i nodi AnimationTree. In genere, non viene utilizzata direttamente, ma puoi crearne di personalizzate, con formule di fusione personalizzate.

Eredita questo quando crei nodi di animazione principalmente per l'uso in AnimationNodeBlendTree, altrimenti dovrebbe essere utilizzato AnimationRootNode.

È possibile accedere alle informazioni sul tempo come parametro di sola lettura, che vengono elaborati e memorizzati nel frame precedente per tutti i nodi eccetto AnimationNodeOutput.

Nota: Se sono presenti più input nell'AnimationNode, le informazioni sul tempo che hanno la precedenza dipendono dal tipo di AnimationNode.

var current_length = $AnimationTree["parameters/AnimationNodeName/current_length"]
var current_position = $AnimationTree["parameters/AnimationNodeName/current_position"]
var current_delta = $AnimationTree["parameters/AnimationNodeName/current_delta"]

Tutorial

Proprietà

bool

filter_enabled

Metodi

String

_get_caption() virtual const

AnimationNode

_get_child_by_name(name: StringName) virtual const

Dictionary

_get_child_nodes() virtual const

Variant

_get_parameter_default_value(parameter: StringName) virtual const

Array

_get_parameter_list() virtual const

bool

_has_filter() virtual const

bool

_is_parameter_read_only(parameter: StringName) virtual const

float

_process(time: float, seek: bool, is_external_seeking: bool, test_only: bool) virtual

bool

add_input(name: String)

void

blend_animation(animation: StringName, time: float, delta: float, seeked: bool, is_external_seeking: bool, blend: float, looped_flag: LoopedFlag = 0)

float

blend_input(input_index: int, time: float, seek: bool, is_external_seeking: bool, blend: float, filter: FilterAction = 0, sync: bool = true, test_only: bool = false)

float

blend_node(name: StringName, node: AnimationNode, time: float, seek: bool, is_external_seeking: bool, blend: float, filter: FilterAction = 0, sync: bool = true, test_only: bool = false)

int

find_input(name: String) const

int

get_input_count() const

String

get_input_name(input: int) const

Variant

get_parameter(name: StringName) const

int

get_processing_animation_tree_instance_id() const

bool

is_path_filtered(path: NodePath) const

bool

is_process_testing() const

void

remove_input(index: int)

void

set_filter_path(path: NodePath, enable: bool)

bool

set_input_name(input: int, name: String)

void

set_parameter(name: StringName, value: Variant)


Segnali

animation_node_removed(object_id: int, node_name: String) 🔗

Emesso dai nodi che ereditano da questa classe e che hanno un albero interno quando uno dei loro nodi di animazione viene rimosso. I nodi di animazione che emettono questo segnale sono AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine e AnimationNodeBlendTree.


animation_node_renamed(object_id: int, old_name: String, new_name: String) 🔗

Emesso dai nodi che ereditano da questa classe e che hanno un albero interno quando uno dei nomi dei loro nodi di animazione cambia. I nodi di animazione che emettono questo segnale sono AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine e AnimationNodeBlendTree.


node_updated(object_id: int) 🔗

Sperimentale: Questo segnale potrebbe essere cambiato o rimosso in versioni future.

Emitted by AnimationNodeAnimation when its AnimationNodeAnimation.animation resource is changed, or by AnimationNodeBlendTree when its connections change.


tree_changed() 🔗

Emesso dai nodi che ereditano da questa classe e che hanno un albero interno quando uno dei loro nodi di animazione cambia. I nodi di animazione che emettono questo segnale sono AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine, AnimationNodeBlendTree e AnimationNodeTransition.


Enumerazioni

enum FilterAction: 🔗

FilterAction FILTER_IGNORE = 0

Non utilizzare il filtraggio.

FilterAction FILTER_PASS = 1

I percorsi che corrispondono al filtro saranno consentiti.

FilterAction FILTER_STOP = 2

I percorsi che corrispondono al filtro saranno scartati.

FilterAction FILTER_BLEND = 3

I percorsi che corrispondono al filtro saranno fusi (per il valore di fusione).


Descrizioni delle proprietà

bool filter_enabled 🔗

  • void set_filter_enabled(value: bool)

  • bool is_filter_enabled()

Se true, il filtraggio è abilitato.


Descrizioni dei metodi

String _get_caption() virtual const 🔗

Quando si eredita da AnimationRootNode, implementare questo metodo virtuale per sovrascrivere la didascalia di testo per questo nodo di animazione.


AnimationNode _get_child_by_name(name: StringName) virtual const 🔗

Quando si eredita da AnimationRootNode, implementare questo metodo virtuale per restituire un nodo di animazione figlio dal nome name.


Dictionary _get_child_nodes() virtual const 🔗

Quando si eredita da AnimationRootNode, implementare questo metodo virtuale per restituire tutti i nodi di animazione figlio in ordine, sotto forma di un dizionario nome: nodo.


Variant _get_parameter_default_value(parameter: StringName) virtual const 🔗

Quando si eredita da AnimationRootNode, implementare questo metodo virtuale per restituire il valore predefinito del parametro parameter. I parametri sono memoria locale personalizzata utilizzata per i nodi di animazione, poiché una risorsa può essere riutilizzata in più alberi.


Array _get_parameter_list() virtual const 🔗

Quando si eredita da AnimationRootNode, implementare questo metodo virtuale per restituire una lista di proprietà in questo nodo di animazione. I parametri sono memoria locale personalizzata utilizzata per i nodi di animazione, poiché una risorsa può essere riutilizzata in più alberi. Il formato è simile a Object.get_property_list().


bool _has_filter() virtual const 🔗

Quando si eredita da AnimationRootNode, implementare questo metodo virtuale per restituire se l'editor dell'albero di fusione dovrebbe visualizzare la modifica del filtro su questo nodo di animazione.


bool _is_parameter_read_only(parameter: StringName) virtual const 🔗

Quando si eredita da AnimationRootNode, implementare questo metodo virtuale per restituire se il parametro parameter è di sola lettura. I parametri sono memoria locale personalizzata utilizzata per i nodi di animazione, poiché una risorsa può essere riutilizzata in più alberi.


float _process(time: float, seek: bool, is_external_seeking: bool, test_only: bool) virtual 🔗

Deprecato: Currently this is mostly useless as there is a lack of many APIs to extend AnimationNode by GDScript. It is planned that a more flexible API using structures will be provided in the future.

Quando si eredita da AnimationRootNode, implementare questo metodo virtuale per eseguire codice quando questo nodo di animazione viene elaborato. Il parametro time è un tempo delta relativo, a meno che seek non sia true, nel qual caso è assoluto.

Qui, chiama le funzioni blend_input(), blend_node() o blend_animation(). È anche possibile usare get_parameter() e set_parameter() per modificare la memoria locale.

Questa funzione dovrebbe restituire il delta.


bool add_input(name: String) 🔗

Aggiunge un input al nodo di animazione. È utile solo per i nodi di animazione creati per l'uso in un AnimationNodeBlendTree. Se l'aggiunta fallisce, restituisce false.


void blend_animation(animation: StringName, time: float, delta: float, seeked: bool, is_external_seeking: bool, blend: float, looped_flag: LoopedFlag = 0) 🔗

Fonde un'animazione della quantità blend (il nome deve essere valido nell'AnimationPlayer collegato). È possibile passare un tempo (time) e un delta, nonché se è avvenuta una ricerca (seeked).

Un looped_flag è utilizzato dall'elaborazione interna immediatamente dopo la ripetizione.


float blend_input(input_index: int, time: float, seek: bool, is_external_seeking: bool, blend: float, filter: FilterAction = 0, sync: bool = true, test_only: bool = false) 🔗

Fonde un input. Questo è utile solo per i nodi di animazione creati per un AnimationNodeBlendTree. Il parametro time è un delta relativo, a meno che seek non sia true, nel qual caso è assoluto. È possibile passare facoltativamente una modalità di filtro.


float blend_node(name: StringName, node: AnimationNode, time: float, seek: bool, is_external_seeking: bool, blend: float, filter: FilterAction = 0, sync: bool = true, test_only: bool = false) 🔗

Fonde un altro nodo di animazione (nel caso in cui questo nodo di animazione contenga nodi di animazione figlio). Questa funzione è utile solo se erediti da AnimationRootNode, altrimenti gli editor non visualizzeranno il tuo nodo di animazione per l'aggiunta.


int find_input(name: String) const 🔗

Restituisce l'indice di ingresso che corrisponde a name. Se non trovato, restituisce -1.


int get_input_count() const 🔗

Quantità di ingressi in questo nodo di animazione, utile solo per i nodi di animazione che vanno in AnimationNodeBlendTree.


String get_input_name(input: int) const 🔗

Ottiene il nome di un'ingresso tramite l'indice.


Variant get_parameter(name: StringName) const 🔗

Ottiene il valore di un parametro. I parametri sono memoria locale personalizzata utilizzata per i nodi di animazione, dato che una risorsa può essere riutilizzata in più alberi.


int get_processing_animation_tree_instance_id() const 🔗

Restituisce l'ID oggetto dell'AnimationTree che possiede questo nodo.

Nota: Questo metodo dovrebbe essere chiamato solo dall'interno del metodo AnimationNodeExtension._process_animation_node(), altrimenti restituirà un ID non valido.


bool is_path_filtered(path: NodePath) const 🔗

Restituisce true se il percorso specificato è filtrato.


bool is_process_testing() const 🔗

Restituisce true se questo nodo d'animazione è in elaborazione in modalità di solo test.


void remove_input(index: int) 🔗

Rimuove un'ingresso, richiama questo metodo solo quando inattivo.


void set_filter_path(path: NodePath, enable: bool) 🔗

Aggiunge o rimuove un percorso per il filtro.


bool set_input_name(input: int, name: String) 🔗

Imposta il nome dell'ingresso all'indice input specificato. Se l'impostazione fallisce, restituisce false.


void set_parameter(name: StringName, value: Variant) 🔗

Imposta un parametro personalizzato. Questi sono usati come memoria locale, perché le risorse possono essere riutilizzate nell'albero o nelle scene.