AnimationNodeBlendSpace2D
繼承: AnimationRootNode < AnimationNode < Resource < RefCounted < Object
一組置於 2D 座標的 AnimationRootNode,在三個相鄰節點間交叉淡化。供 AnimationTree 使用。
說明
AnimationNodeBlendTree 使用的資源。
AnimationNodeBlendSpace2D 代表一個虛擬 2D 空間,可在其上放置 AnimationRootNode。輸出為包含目前值之三角形頂點(相鄰三節點)依 Vector2 權重計算的線性混合。
可透過 add_blend_point() 新增頂點,並將 auto_triangles 設為 true 以自動三角化;否則可手動使用 add_triangle() 與 remove_triangle() 進行三角化。
教學
屬性
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
方法
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) |
訊號
triangles_updated() 🔗
當混合空間的三角形被建立、移除,或其頂點位置變動時發出。
列舉
enum BlendMode: 🔗
BlendMode BLEND_MODE_INTERPOLATED = 0
動畫間插值為線性模式。
BlendMode BLEND_MODE_DISCRETE = 1
混合空間播放與目前位置最近的動畫節點,可用於逐幀 2D 動畫。
BlendMode BLEND_MODE_DISCRETE_CARRY = 2
類似 BLEND_MODE_DISCRETE,但新動畫會自上一段動畫的播放位置開始。
屬性說明
若為 true,混合空間會自動三角化;每次透過 add_blend_point() 或 remove_blend_point() 變更點時都會更新網格。
控制動畫之間的插值方式。
Vector2 max_space = Vector2(1, 1) 🔗
混合空間 X、Y 軸向點位置的上限。參見 add_blend_point()。
Vector2 min_space = Vector2(-1, -1) 🔗
混合空間 X、Y 軸向點位置的下限。參見 add_blend_point()。
Vector2 snap = Vector2(0.1, 0.1) 🔗
移動點時的捕捉間距。
若為 false,當混合值為 0 時會停止混合動畫的影格。
若為 true,仍會強制推進混合動畫影格。
混合空間 X 軸名稱。
混合空間 Y 軸名稱。
方法說明
void add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1) 🔗
在 pos 位置新增代表 node 的點。可透過 at_index 指定插入索引;預設將插入至陣列末端。
void add_triangle(x: int, y: int, z: int, at_index: int = -1) 🔗
以點 x、y、z 建立新三角形。三角形可重疊。可透過 at_index 指定插入索引;預設插入於陣列末端。
int get_blend_point_count() const 🔗
回傳混合空間中的點數量。
AnimationRootNode get_blend_point_node(point: int) const 🔗
回傳索引 point 之點所參照的 AnimationRootNode。
Vector2 get_blend_point_position(point: int) const 🔗
回傳索引 point 之點的位置。
int get_triangle_count() const 🔗
回傳混合空間中的三角形數量。
int get_triangle_point(triangle: int, point: int) 🔗
回傳索引 triangle 三角形中,索引 point 頂點的位置。
void remove_blend_point(point: int) 🔗
自混合空間移除索引 point 之點。
void remove_triangle(triangle: int) 🔗
自混合空間移除索引 triangle 之三角形。
void set_blend_point_node(point: int, node: AnimationRootNode) 🔗
更換索引 point 之點所參照的 AnimationNode。
void set_blend_point_position(point: int, pos: Vector2) 🔗
更新混合空間中索引 point 點的位置。