AnimationNodeBlendSpace2D
继承: AnimationRootNode
< AnimationNode
< Resource
< RefCounted
< Object
A set of AnimationRootNode
s placed on 2D coordinates, crossfading between the three adjacent ones. Used by AnimationTree
.
描述
A resource used by AnimationNodeBlendTree
.
AnimationNodeBlendSpace2D represents a virtual 2D space on which AnimationRootNode
s are placed. Outputs the linear blend of the three adjacent animations using a Vector2
weight. Adjacent in this context means the three AnimationRootNode
s 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.
属性
bool | auto_triangles |
BlendMode | blend_mode |
Vector2 | max_space |
Vector2 | min_space |
Vector2 | snap |
bool | sync |
String | x_label |
String | y_label |
方法
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 ) |
int | get_blend_point_count ( ) const1 |
AnimationRootNode | get_blend_point_node ( point: int ) const1 |
Vector2 | get_blend_point_position ( point: int ) const1 |
int | get_triangle_count ( ) const1 |
int | 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 ) |
信号
triangles_updated ( )
Emitted every time the blend space's triangles are created, removed, or when one of their vertices changes position.
枚举
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.
属性说明
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
.
BlendMode blend_mode = 0
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.
bool
sync = false
If 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"
Name of the blend space's X axis.
String
y_label = "y"
Name of the blend space's Y axis.
方法说明
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 ( ) const1
Returns the number of points in the blend space.
AnimationRootNode
get_blend_point_node ( point: int
) const1
Returns the AnimationRootNode
referenced by the point at index point
.
Vector2
get_blend_point_position ( point: int
) const1
Returns the position of the point at index point
.
int
get_triangle_count ( ) const1
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
in the blend space.
本方法通常需要用户覆盖才能生效。
本方法无副作用,不会修改该实例的任何成员变量。
本方法除了能接受在此处描述的参数外,还能够继续接受任意数量的参数。
本方法用于构造某个类型。
调用本方法无需实例,可直接使用类名进行调用。
本方法描述的是使用本类型作为左操作数的有效运算符。
这个值是由下列位标志构成位掩码的整数。
无返回值。