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...
AnimationNode
Hereda: Resource < RefCounted < Object
Heredado por: AnimationNodeExtension, AnimationNodeOutput, AnimationNodeSync, AnimationNodeTimeScale, AnimationNodeTimeSeek, AnimationRootNode
Clase base para los nodos AnimationTree. No está relacionado con los nodos de escena.
Descripción
Recurso base para los nodos AnimationTree. En general, no se utiliza directamente, pero se pueden crear otros personalizados con fórmulas de mezcla personalizadas.
Heredar esto al crear nodos de animación principalmente para su uso en AnimationNodeBlendTree; de lo contrario, se debe utilizar AnimationRootNode en su lugar.
Se puede acceder a la información de tiempo como parámetro de solo lectura que se procesa y almacena en el fotograma anterior para todos los nodos excepto AnimationNodeOutput.
Nota: Si existen varias entradas en AnimationNode, la información de tiempo que tiene prioridad depende del tipo de 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"]
Tutoriales
Propiedades
Métodos
_get_caption() virtual const |
|
_get_child_by_name(name: StringName) virtual const |
|
_get_child_nodes() virtual const |
|
_get_parameter_default_value(parameter: StringName) virtual const |
|
_get_parameter_list() virtual const |
|
_has_filter() virtual const |
|
_is_parameter_read_only(parameter: StringName) virtual const |
|
_process(time: float, seek: bool, is_external_seeking: bool, test_only: bool) virtual |
|
void |
blend_animation(animation: StringName, time: float, delta: float, seeked: bool, is_external_seeking: bool, blend: float, looped_flag: LoopedFlag = 0) |
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) |
|
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) |
|
find_input(name: String) const |
|
get_input_count() const |
|
get_input_name(input: int) const |
|
get_parameter(name: StringName) const |
|
is_path_filtered(path: NodePath) const |
|
is_process_testing() const |
|
void |
remove_input(index: int) |
void |
set_filter_path(path: NodePath, enable: bool) |
set_input_name(input: int, name: String) |
|
void |
set_parameter(name: StringName, value: Variant) |
Señales
animation_node_removed(object_id: int, node_name: String) 🔗
Emitida por los nodos que heredan de esta clase y que tienen un árbol interno cuando se elimina uno de sus nodos de animación. Los nodos de animación que emiten esta señal son AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine y AnimationNodeBlendTree.
animation_node_renamed(object_id: int, old_name: String, new_name: String) 🔗
Emitida por los nodos que heredan de esta clase y que tienen un árbol interno cuando cambia el nombre de uno de sus nodos de animación. Los nodos de animación que emiten esta señal son AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine y AnimationNodeBlendTree.
node_updated(object_id: int) 🔗
Experimental: Esta señal podría ser modificada o eliminada en versiones futuras.
Emitted by AnimationNodeAnimation when its AnimationNodeAnimation.animation resource is changed, or by AnimationNodeBlendTree when its connections change.
tree_changed() 🔗
Emitida por los nodos que heredan de esta clase y que tienen un árbol interno cuando uno de sus nodos de animación cambia. Los nodos de animación que emiten esta señal son AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine, AnimationNodeBlendTree y AnimationNodeTransition.
Enumeraciones
enum FilterAction: 🔗
FilterAction FILTER_IGNORE = 0
No utilizar el filtrado.
FilterAction FILTER_PASS = 1
Las rutas que coincidan con el filtro podrán pasar.
FilterAction FILTER_STOP = 2
Las rutas que coincidan con el filtro serán descartados.
FilterAction FILTER_BLEND = 3
Los caminos que coincidan con el filtro se mezclarán (por el valor de mezcla).
Descripciones de Propiedades
Si es true, el filtrado está activado.
Descripciones de Métodos
String _get_caption() virtual const 🔗
Al heredar de AnimationRootNode, implementa este método virtual para sobrescribir el título de texto para este nodo de animación.
AnimationNode _get_child_by_name(name: StringName) virtual const 🔗
Al heredar de AnimationRootNode, implementa este método virtual para devolver un nodo de animación hijo por su name.
Dictionary _get_child_nodes() virtual const 🔗
Al heredar de AnimationRootNode, implementa este método virtual para devolver todos los nodos de animación secundarios en orden como un diccionario name: node.
Variant _get_parameter_default_value(parameter: StringName) virtual const 🔗
Al heredar de AnimationRootNode, implementa este método virtual para devolver el valor predeterminado de un parameter. Los parámetros son memoria local personalizada utilizada para tus nodos de animación, dado que un recurso puede ser reutilizado en múltiples árboles.
Array _get_parameter_list() virtual const 🔗
Al heredar de AnimationRootNode, implementa este método virtual para devolver una lista de las propiedades de este nodo de animación. Los parámetros son memoria local personalizada utilizada para los nodos de animación; dado que un recurso puede reutilizarse en varios árboles, el formato es similar al de Object.get_property_list().
bool _has_filter() virtual const 🔗
Al heredar de AnimationRootNode, implementa este método virtual para determinar si el editor del árbol de mezcla debe mostrar la edición de filtro en este nodo de animación.
bool _is_parameter_read_only(parameter: StringName) virtual const 🔗
Al heredar de AnimationRootNode, implementa este método virtual para indicar si parameter es de solo lectura. Los parámetros son memoria local personalizada que se utiliza para los nodos de animación, dado que un recurso puede reutilizarse en varios árboles.
float _process(time: float, seek: bool, is_external_seeking: bool, test_only: bool) virtual 🔗
Obsoleto: 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.
Al heredar de AnimationRootNode, implemente este método virtual para ejecutar algún código cuando se procese este nodo de animación. El parámetro time es un delta relativo, a menos que seek sea true, en cuyo caso es absoluto.
Aquí, llame a las funciones blend_input(), blend_node() o blend_animation(). También puede usar get_parameter() y set_parameter() para modificar la memoria local.
Esta función debe devolver el delta.
bool add_input(name: String) 🔗
Añade una entrada al nodo de animación. Esto solo es útil para nodos de animación creados para usarse en un AnimationNodeBlendTree. Si la adición falla, devuelve false.
void blend_animation(animation: StringName, time: float, delta: float, seeked: bool, is_external_seeking: bool, blend: float, looped_flag: LoopedFlag = 0) 🔗
Mezcla una animación por la cantidad blend (el nombre debe ser válido en el AnimationPlayer vinculado). Se pueden pasar time y delta, así como si se produjo seeked.
Un looped_flag se utiliza para el procesamiento interno inmediatamente después del bucle.
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) 🔗
Mezcla una entrada. Esto sólo es útil para los nodos creados para un AnimationNodeBlendTree. El parametro time es un delta relativo, a menos que seek sea true, en cuyo caso es absoluto. Se puede pasar opcionalmente a un modo de 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) 🔗
Mezcla otro nodo de animación (en caso de que este nodo contenga nodos hijos de animación). Esta función es útil sólo si hereda de AnimationRootNode En cambio, de lo contrario, los editores no mostrarán su nodo de animación para su adición.
int find_input(name: String) const 🔗
Devuelve el índice de entrada que corresponde a name. Si no se encuentra, devuelve -1.
Cantidad de entradas en este nodo de animación, solo útil para los nodos de animación que van a AnimationNodeBlendTree.
String get_input_name(input: int) const 🔗
Obtiene el nombre de una entrada por índice.
Variant get_parameter(name: StringName) const 🔗
Obtiene el valor de un parámetro. Los parámetros son memoria local personalizada que se utiliza para los nodos de animación. Dado que un recurso puede reutilizarse en varios árboles, se puede obtener un valor.
int get_processing_animation_tree_instance_id() const 🔗
Devuelve el ID de objeto del AnimationTree propietario de este nodo.
Nota: Este método solo debe llamarse desde dentro del método AnimationNodeExtension._process_animation_node() y, en caso contrario, devolverá un ID no válido.
bool is_path_filtered(path: NodePath) const 🔗
Devuelve true si la ruta dada es filtrada.
bool is_process_testing() const 🔗
Devuelve true si este nodo de animación se está procesando en modo de solo prueba.
void remove_input(index: int) 🔗
Elimina una entrada, llama a esto sólo cuando está inactivo.
void set_filter_path(path: NodePath, enable: bool) 🔗
Añade o elimina una ruta para el filtro.
bool set_input_name(input: int, name: String) 🔗
Establece el nombre de la entrada en el índice input especificado. Si la configuración falla, devuelve false.
void set_parameter(name: StringName, value: Variant) 🔗
Establece un parámetro personalizado. Estos se utilizan como memoria local, ya que los recursos se pueden reutilizar en el árbol o en las escenas.