AnimationNodeBlendSpace2D

Inherits: AnimationRootNode < AnimationNode < Resource < Reference < Object

Blends linearly between three AnimationNode of any type placed in a 2D space.

Description

A resource to add to an AnimationNodeBlendTree.

This node allows you to blend linearly between three animations using a Vector2 weight.

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 create up the blend space by hand.

Properties

bool

auto_triangles

true

BlendMode

blend_mode

0

Vector2

max_space

Vector2( 1, 1 )

Vector2

min_space

Vector2( -1, -1 )

Vector2

snap

Vector2( 0.1, 0.1 )

String

x_label

"x"

String

y_label

"y"

Methods

void

add_blend_point ( AnimationRootNode node, Vector2 pos, int at_index=-1 )

void

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

int

get_blend_point_count ( ) const

AnimationRootNode

get_blend_point_node ( int point ) const

Vector2

get_blend_point_position ( int point ) const

int

get_triangle_count ( ) const

int

get_triangle_point ( int triangle, int point )

void

remove_blend_point ( int point )

void

remove_triangle ( int triangle )

void

set_blend_point_node ( int point, AnimationRootNode node )

void

set_blend_point_position ( int point, Vector2 pos )

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:

  • BLEND_MODE_INTERPOLATED = 0 --- The interpolation between animations is linear.

  • BLEND_MODE_DISCRETE = 1 --- The blend space plays the animation of the node the 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.

Property Descriptions

  • bool auto_triangles

Default

true

Setter

set_auto_triangles(value)

Getter

get_auto_triangles()

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.


Default

0

Setter

set_blend_mode(value)

Getter

get_blend_mode()

Controls the interpolation between animations. See BlendMode constants.


Default

Vector2( 1, 1 )

Setter

set_max_space(value)

Getter

get_max_space()

The blend space's X and Y axes' upper limit for the points' position. See add_blend_point.


Default

Vector2( -1, -1 )

Setter

set_min_space(value)

Getter

get_min_space()

The blend space's X and Y axes' lower limit for the points' position. See add_blend_point.


Default

Vector2( 0.1, 0.1 )

Setter

set_snap(value)

Getter

get_snap()

Position increment to snap to when moving a point.


Default

"x"

Setter

set_x_label(value)

Getter

get_x_label()

Name of the blend space's X axis.


Default

"y"

Setter

set_y_label(value)

Getter

get_y_label()

Name of the blend space's Y axis.

Method Descriptions

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 )

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.


Returns the AnimationRootNode referenced by the point at index point.


  • Vector2 get_blend_point_position ( int point ) 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 ( 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 )

Removes the point at index point from the blend space.


  • void remove_triangle ( int triangle )

Removes the triangle at index triangle from the blend space.


Changes the AnimationNode referenced by the point at index point.


  • void set_blend_point_position ( int point, Vector2 pos )

Updates the position of the point at index point on the blend axis.