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

Eredita: AnimationRootNode < AnimationNode < Resource < RefCounted < Object

Una serie di AnimationRootNode posizionati su coordinate 2D, con dissolvenza incrociata tra i tre adiacenti. Utilizzato da AnimationTree.

Descrizione

Una risorsa utilizzata da AnimationNodeBlendTree.

AnimationNodeBlendSpace2D rappresenta uno spazio 2D virtuale su cui sono posizionati gli AnimationRootNode. Produce la fusione lineare delle tre animazioni adiacenti attraverso un peso di tipo Vector2. Adiacente in questo contesto significa i tre AnimationRootNode che compongono il triangolo che contiene il valore attuale.

È possibile aggiungere vertici allo spazio di fusione con add_blend_point() e triangolarlo automaticamente impostando auto_triangles su true. Altrimenti, bisogna usare add_triangle() e remove_triangle() per triangolare manualmente lo spazio di fusione.

Tutorial

Proprietà

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"

Metodi

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)


Segnali

triangles_updated() 🔗

Emesso ogni volta che i triangoli dello spazio di fusione vengono creati, rimossi o quando uno dei loro vertici cambia di posizione.


Enumerazioni

enum BlendMode: 🔗

BlendMode BLEND_MODE_INTERPOLATED = 0

L'interpolazione tra le animazioni è lineare.

BlendMode BLEND_MODE_DISCRETE = 1

Lo spazio di fusione riproduce l'animazione del nodo di animazione a cui è più vicina la posizione di fusione. Utile per le animazioni 2D fotogramma per fotogramma.

BlendMode BLEND_MODE_DISCRETE_CARRY = 2

Simile a BLEND_MODE_DISCRETE, ma avvia la nuova animazione dalla posizione di riproduzione dell'animazione precedente.


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.


Descrizioni delle proprietà

bool auto_triangles = true 🔗

  • void set_auto_triangles(value: bool)

  • bool get_auto_triangles()

Se true, lo spazio di fusione è triangolato automaticamente. La mesh si aggiorna ogni volta che aggiungi o rimuovi punti con add_blend_point() e remove_blend_point().


BlendMode blend_mode = 0 🔗

Controlla l'interpolazione tra le animazioni.


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

Il limite superiore per la posizione dei punti sugli assi X e Y nello spazio di fusione. Vedi add_blend_point().


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

Il limite inferiore per la posizione dei punti sugli assi X e Y nello spazio di fusione. Vedi add_blend_point().


Vector2 snap = Vector2(0.1, 0.1) 🔗

Incremento dello scatto di posizione quando si sposta un punto.


bool sync 🔗

  • void set_use_sync(value: bool)

  • bool is_using_sync()

Deprecato: 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" 🔗

Nome dell'asse X nello spazio di fusione.


String y_label = "y" 🔗

Nome dell'asse Y nello spazio di fusione.


Descrizioni dei metodi

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

Aggiunge un nuovo punto denominato name che rappresenta un nodo node nella posizione impostata da pos. È possibile inserirlo a un indice specifico tramite l'argomento at_index. Se si usa il valore predefinito per at_index, il punto è inserito alla fine dell'array dei punti di fusione.

Nota: Se nessun nome è specificato, un indice sicuro viene utilizzato per riferimento. In futuro, i nomi vuoti saranno deprecati, pertanto si consiglia di specificare esplicitamente un nome.


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

Crea un nuovo triangolo usando i tre punti x, y e z. I triangoli possono sovrapporsi. È possibile inserire il triangolo a un indice specifico tramite l'argomento at_index. Se si usa il valore predefinito per at_index, il punto è inserito alla fine dell'array dei punti di fusione.


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 🔗

Restituisce il numero di punti nello spazio di fusione.


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 🔗

Restituisce l'AnimationRootNode riferito dal punto all'indice point.


Vector2 get_blend_point_position(point: int) const 🔗

Restituisce la posizione del punto all'indice point.


int get_triangle_count() const 🔗

Restituisce il numero di triangoli nello spazio di fusione.


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

Restituisce la posizione del punto all'indice point nel triangolo dell'indice triangle.


void remove_blend_point(point: int) 🔗

Rimuove il punto all'indice point dallo spazio di fusione.


void remove_triangle(triangle: int) 🔗

Rimuove il triangolo all'indice triangle dallo spazio di fusione.


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

Modifica l'AnimationNode a cui fa riferimento il punto all'indice point.


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

Aggiorna la posizione del punto all'indice point sullo spazio di fusione.