AnimationNodeBlendSpace1D

繼承: AnimationRootNode < AnimationNode < Resource < RefCounted < Object

一組放置於虛擬軸上的 AnimationRootNode,在相鄰的兩節點間進行交叉淡化。供 AnimationTree 使用。

說明

AnimationNodeBlendTree 使用的資源。

AnimationNodeBlendSpace1D 代表一條虛擬軸,可透過 add_blend_point() 新增任意 AnimationRootNode。其輸出為最接近目前值之兩節點的線性混合。

可使用 min_spacemax_space 設定軸向範圍。

教學

屬性

BlendMode

blend_mode

0

float

max_space

1.0

float

min_space

-1.0

float

snap

0.1

bool

sync

false

String

value_label

"value"

方法

void

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

int

get_blend_point_count() const

AnimationRootNode

get_blend_point_node(point: int) const

float

get_blend_point_position(point: int) const

void

remove_blend_point(point: int)

void

set_blend_point_node(point: int, node: AnimationRootNode)

void

set_blend_point_position(point: int, pos: float)


列舉

enum BlendMode: 🔗

BlendMode BLEND_MODE_INTERPOLATED = 0

動畫間插值為線性模式。

BlendMode BLEND_MODE_DISCRETE = 1

混合空間播放與目前位置最近的動畫節點,可用於逐幀 2D 動畫。

BlendMode BLEND_MODE_DISCRETE_CARRY = 2

類似 BLEND_MODE_DISCRETE,但新動畫會自上一段動畫的播放位置開始。


屬性說明

BlendMode blend_mode = 0 🔗

控制動畫之間的插值方式。


float max_space = 1.0 🔗

  • void set_max_space(value: float)

  • float get_max_space()

混合空間軸向的點位置上限。參見 add_blend_point()


float min_space = -1.0 🔗

  • void set_min_space(value: float)

  • float get_min_space()

混合空間軸向的點位置下限。參見 add_blend_point()


float snap = 0.1 🔗

在軸上移動點時的捕捉間距。


bool sync = false 🔗

  • void set_use_sync(value: bool)

  • bool is_using_sync()

若為 false,當混合值為 0 時會停止混合動畫的影格。

若為 true,仍會強制推進混合動畫影格。


String value_label = "value" 🔗

  • void set_value_label(value: String)

  • String get_value_label()

混合空間虛擬軸的標籤。


方法說明

void add_blend_point(node: AnimationRootNode, pos: float, at_index: int = -1) 🔗

在虛擬軸上 pos 位置新增代表 node 的點。可透過 at_index 指定插入索引;預設則插入至陣列末端。


int get_blend_point_count() const 🔗

回傳混合軸上的點數量。


AnimationRootNode get_blend_point_node(point: int) const 🔗

回傳索引 point 之點所參照的 AnimationNode


float get_blend_point_position(point: int) const 🔗

回傳索引 point 之點的位置。


void remove_blend_point(point: int) 🔗

自混合軸移除索引 point 之點。


void set_blend_point_node(point: int, node: AnimationRootNode) 🔗

更換索引 point 之點所參照的 AnimationNode


void set_blend_point_position(point: int, pos: float) 🔗

更新混合軸上索引 point 之點的位置。