Class reference
AnimationNodeBlendSpace2D
Inherits AnimationRootNode
A set of AnimationRootNodes placed on 2D coordinates, crossfading between the three adjacent ones. Used by AnimationTree.
Description
A resource used by AnimationNodeBlendTree. AnimationNodeBlendSpace2D 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.
Properties
bool auto_triangles = true
bool auto_triangles = trueIf 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().
int blend_mode = 0
int blend_mode = 0Controls the interpolation between animations.
Vector2 max_space = Vector2(1, 1)
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)
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)
Vector2 snap = Vector2(0.1, 0.1)Position increment to snap to when moving a point.
bool sync = false
bool sync = falseIf false, the blended animations' frame are stopped when the blend value is 0. If true, forcing the blended animations to advance frame.
String x_label = "x"
String x_label = "x"Name of the blend space's X axis.
String y_label = "y"
String y_label = "y"Name of the blend space's Y axis.
Methods
void add_blend_point(AnimationRootNode node, Vector2 pos, int at_index = -1)
AnimationRootNode node, Vector2 pos, int at_index = -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(int x, int y, int z, int at_index = -1)
int x, int y, int z, int at_index = -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
int get_blend_point_count() constReturns the number of points in the blend space.
AnimationRootNode get_blend_point_node(int point) const
AnimationRootNode get_blend_point_node(int point) constReturns the AnimationRootNode referenced by the point at index point.
Vector2 get_blend_point_position(int point) const
Vector2 get_blend_point_position(int point) constReturns the position of the point at index point.
int get_triangle_count() const
int get_triangle_count() constReturns the number of triangles in the blend space.
int get_triangle_point(int triangle, int point)
int get_triangle_point(int triangle, int point)Returns the position of the point at index point in the triangle of index triangle.
void remove_blend_point(int point)
int point)Removes the point at index point from the blend space.
void remove_triangle(int triangle)
int triangle)Removes the triangle at index triangle from the blend space.
void set_blend_point_node(int point, AnimationRootNode node)
int point, AnimationRootNode node)Changes the AnimationNode referenced by the point at index point.
void set_blend_point_position(int point, Vector2 pos)
int point, Vector2 pos)Updates the position of the point at index point in the blend space.
Signals
triangles_updated()
Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position.
Constants
BLEND_MODE_INTERPOLATED = 0
The interpolation between animations is linear.
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.
BLEND_MODE_DISCRETE_CARRY = 2
Similar to BLEND_MODE_DISCRETE, but starts the new animation at the last animation's playback position.