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.

AnimationNodeBlendSpace2D

Hereda: AnimationRootNode < AnimationNode < Resource < RefCounted < Object

Un conjunto de AnimationRootNodes colocados en coordenadas 2D, que se funden entre las tres adyacentes. Usado por AnimationTree.

Descripción

Un recurso utilizado por AnimationNodeBlendTree.

AnimationNodeBlendSpace2D representa un espacio virtual 2D sobre el que se colocan los AnimationRootNode. Genera la mezcla lineal de las tres animaciones adyacentes mediante un peso Vector2. En este contexto, "adyacente" se refiere a los tres AnimationRootNode que forman el triángulo que contiene el valor actual.

Puedes añadir vértices al espacio de mezcla con add_blend_point() y triangularlo automáticamente configurando auto_triangles a true. De lo contrario, utiliza add_triangle() y remove_triangle() para triangular el espacio de mezcla manualmente.

Tutoriales

Propiedades

bool

auto_triangles

true

BlendMode

blend_mode

0

float

cyclic_length

0.0

Vector2

max_space

Vector2(1, 1)

Vector2

min_space

Vector2(-1, -1)

Vector2

snap

Vector2(0.1, 0.1)

bool

sync

SyncMode

sync_mode

0

String

x_label

"x"

String

y_label

"y"

Métodos

void

add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1, name: StringName = &"")

void

add_triangle(x: int, y: int, z: int, at_index: int = -1)

int

find_blend_point_by_name(name: StringName) const

int

get_blend_point_count() const

StringName

get_blend_point_name(point: int) const

AnimationRootNode

get_blend_point_node(point: int) const

Vector2

get_blend_point_position(point: int) const

int

get_triangle_count() const

int

get_triangle_point(triangle: int, point: int)

void

remove_blend_point(point: int)

void

remove_triangle(triangle: int)

void

reorder_blend_point(from_index: int, to_index: int)

void

set_blend_point_name(point: int, name: StringName)

void

set_blend_point_node(point: int, node: AnimationRootNode)

void

set_blend_point_position(point: int, pos: Vector2)


Señales

triangles_updated() 🔗

Emitida cada vez que los triángulos del espacio de mezcla se crean, se eliminan, o cuando uno de sus vértices cambia de posición.


Enumeraciones

enum BlendMode: 🔗

BlendMode BLEND_MODE_INTERPOLATED = 0

La interpolación entre las animaciones es lineal.

BlendMode BLEND_MODE_DISCRETE = 1

El espacio de mezcla reproduce la animación del nodo de animación cuya posición de mezcla es la más cercana. Es útil para las animaciones 2D fotograma a fotograma.

BlendMode BLEND_MODE_DISCRETE_CARRY = 2

Similar a BLEND_MODE_DISCRETE, pero inicia la nueva animación en la posición de reproducción de la última animación.


enum SyncMode: 🔗

SyncMode SYNC_MODE_NONE = 0

Inactive animations are frozen and do not advance.

SyncMode SYNC_MODE_INDEPENDENT = 1

Inactive animations advance with a weight of 0. This is equivalent to the previous sync = true behavior.

SyncMode SYNC_MODE_CYCLIC_MUTABLE = 2

All animations are time-scaled so they stay in sync, with the cycle length dynamically computed from active blend weights. This is self-normalizing: a solo animation plays at normal speed.

Note: If you apply AnimationNodeTimeSeek to the result when handling animations of different lengths, synchronization will be broken. In such cases, it is recommended to use AnimationNodeAnimation.use_custom_timeline to align the animation lengths.

SyncMode SYNC_MODE_CYCLIC_CONSTANT = 3

All animations are time-scaled so they complete one cycle in cyclic_length seconds, keeping them in sync regardless of their individual lengths.

Note: If you apply AnimationNodeTimeSeek to the result when handling animations of different lengths, synchronization will be broken. In such cases, it is recommended to use AnimationNodeAnimation.use_custom_timeline to align the animation lengths.


Descripciones de Propiedades

bool auto_triangles = true 🔗

  • void set_auto_triangles(value: bool)

  • bool get_auto_triangles()

Si es true, el espacio de mezcla se triangula automáticamente. La malla se actualiza cada vez que añades o eliminas puntos con add_blend_point() y remove_blend_point().


BlendMode blend_mode = 0 🔗

Controla la interpolación entre animaciones.


float cyclic_length = 0.0 🔗

  • void set_cyclic_length(value: float)

  • float get_cyclic_length()

The cycle length in seconds used by SYNC_MODE_CYCLIC_CONSTANT. All animations are time-scaled so they complete one full cycle in this duration. Must be greater than 0 for cyclic sync to take effect.


Vector2 max_space = Vector2(1, 1) 🔗

El límite superior de los ejes X e Y del espacio de mezcla para la posición de los puntos. Véase add_blend_point().


Vector2 min_space = Vector2(-1, -1) 🔗

El límite inferior de los ejes X e Y del espacio de mezcla para la posición de los puntos. Véase add_blend_point().


Vector2 snap = Vector2(0.1, 0.1) 🔗

Incremento de la posición a la que se ajusta cuando se mueve un punto.


bool sync 🔗

  • void set_use_sync(value: bool)

  • bool is_using_sync()

Obsoleto: Use sync_mode instead.

If true, sync mode is enabled (equivalent to SYNC_MODE_INDEPENDENT). This property is kept for backward compatibility.


SyncMode sync_mode = 0 🔗

Controls how animations are synced when blended. See SyncMode for available options.


String x_label = "x" 🔗

Nombre del eje X del espacio de la mezcla.


String y_label = "y" 🔗

El nombre del eje Y del espacio de mezcla.


Descripciones de Métodos

void add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1, name: StringName = &"") 🔗

Adds a new point with name that represents a node at the position set by pos. You can insert it at a specific index using the at_index argument. If you use the default value for at_index, the point is inserted at the end of the blend points array.

Note: If no name is provided, safe index is used as reference. In the future, empty names will be deprecated, so explicitly passing a name is recommended.


void add_triangle(x: int, y: int, z: int, at_index: int = -1) 🔗

Crea un nuevo triángulo usando tres puntos x, y, and z. Los triángulos pueden superponerse. Puedes insertar el triángulo en un índice específico usando el argumento at_index. Si utilizas el valor por defecto de at_index, el punto se inserta al final del array de puntos de mezcla.


int find_blend_point_by_name(name: StringName) const 🔗

Returns the index of the blend point with the given name. Returns -1 if no blend point with that name is found.


int get_blend_point_count() const 🔗

Devuelve el número de puntos en el espacio de mezcla.


StringName get_blend_point_name(point: int) const 🔗

Returns the name of the blend point at index point.


AnimationRootNode get_blend_point_node(point: int) const 🔗

Devuelve el AnimationRootNode referenciado por el punto en el índice point.


Vector2 get_blend_point_position(point: int) const 🔗

Devuelve la posición del punto en el índice point.


int get_triangle_count() const 🔗

Devuelve el número de triángulos en el espacio de mezcla.


int get_triangle_point(triangle: int, point: int) 🔗

Devuelve la posición del punto en el índice point en el triángulo de índice triangle.


void remove_blend_point(point: int) 🔗

Elimina el punto en el índice point del espacio de mezcla.


void remove_triangle(triangle: int) 🔗

Elimina el triángulo en el índice triangle del espacio de mezcla.


void reorder_blend_point(from_index: int, to_index: int) 🔗

Swaps the blend points at indices from_index and to_index, exchanging their positions and properties.


void set_blend_point_name(point: int, name: StringName) 🔗

Sets the name of the blend point at index point. If the name conflicts with an existing point, a unique name will be generated automatically.


void set_blend_point_node(point: int, node: AnimationRootNode) 🔗

Cambia el AnimationNode al que se refiere el punto en el índice point.


void set_blend_point_position(point: int, pos: Vector2) 🔗

Actualiza la posición del punto en el índice point en el espacio de mezcla.