AnimationNodeBlendSpace2D ​
Inherits: AnimationRootNode < AnimationNode < Resource < RefCounted < Object
A set of AnimationRootNodes placed on 2D coordinates, crossfading between the three adjacent ones. Used by AnimationTree.
Description
A resource used by AnimationNodeBlendTree.
AnimationNodeBlendSpace1D represents a virtual 2D space on which AnimationRootNodes are placed. Outputs the linear blend of the three adjacent animations using a Vector2 weight. Adjacent in this context means the three AnimationRootNodes making up the triangle that contains the current value.
You can add vertices to the blend space with add_blend_point and automatically triangulate it by setting auto_triangles to true
. Otherwise, use add_triangle and remove_triangle to triangulate the blend space by hand.
Tutorials
Properties
true | ||
0 | ||
Vector2(1, 1) | ||
Vector2(-1, -1) | ||
Vector2(0.1, 0.1) | ||
false | ||
"x" | ||
"y" |
Methods
void | add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1) |
void | add_triangle(x: int, y: int, z: int, at_index: int = -1) |
get_blend_point_count() const | |
get_blend_point_node(point: int) const | |
get_blend_point_position(point: int) const | |
get_triangle_count() const | |
get_triangle_point(triangle: int, point: int) | |
void | remove_blend_point(point: int) |
void | remove_triangle(triangle: int) |
void | set_blend_point_node(point: int, node: AnimationRootNode) |
void | set_blend_point_position(point: int, pos: Vector2) |
Signals
triangles_updated() 🔗
Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position.
Enumerations
enum BlendMode: 🔗
BlendMode BLEND_MODE_INTERPOLATED = 0
The interpolation between animations is linear.
BlendMode BLEND_MODE_DISCRETE = 1
The blend space plays the animation of the animation node which blending position is closest to. Useful for frame-by-frame 2D animations.
BlendMode BLEND_MODE_DISCRETE_CARRY = 2
Similar to BLEND_MODE_DISCRETE, but starts the new animation at the last animation's playback position.
Property Descriptions
bool auto_triangles = true 🔗
If true
, the blend space is triangulated automatically. The mesh updates every time you add or remove points with add_blend_point and remove_blend_point.
Controls the interpolation between animations. See BlendMode constants.
Vector2 max_space = Vector2(1, 1) 🔗
The blend space's X and Y axes' upper limit for the points' position. See add_blend_point.
Vector2 min_space = Vector2(-1, -1) 🔗
The blend space's X and Y axes' lower limit for the points' position. See add_blend_point.
Vector2 snap = Vector2(0.1, 0.1) 🔗
Position increment to snap to when moving a point.
If false
, the blended animations' frame are stopped when the blend value is 0
.
If true
, forcing the blended animations to advance frame.
Name of the blend space's X axis.
Name of the blend space's Y axis.
Method Descriptions
void add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1) 🔗
Adds a new point 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.
void add_triangle(x: int, y: int, z: int, at_index: int = -1) 🔗
Creates a new triangle using three points x
, y
, and z
. Triangles can overlap. You can insert the triangle 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.
int get_blend_point_count() const 🔗
Returns the number of points in the blend space.
AnimationRootNode get_blend_point_node(point: int) const 🔗
Returns the AnimationRootNode referenced by the point at index point
.
Vector2 get_blend_point_position(point: int) const 🔗
Returns the position of the point at index point
.
int get_triangle_count() const 🔗
Returns the number of triangles in the blend space.
int get_triangle_point(triangle: int, point: int) 🔗
Returns the position of the point at index point
in the triangle of index triangle
.
void remove_blend_point(point: int) 🔗
Removes the point at index point
from the blend space.
void remove_triangle(triangle: int) 🔗
Removes the triangle at index triangle
from the blend space.
void set_blend_point_node(point: int, node: AnimationRootNode) 🔗
Changes the AnimationNode referenced by the point at index point
.
void set_blend_point_position(point: int, pos: Vector2) 🔗
Updates the position of the point at index point
on the blend axis.