Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
AnimationNodeBlendSpace1D
繼承: AnimationRootNode < AnimationNode < Resource < RefCounted < Object
一組放置於虛擬軸上的 AnimationRootNode,在相鄰的兩節點間進行交叉淡化。供 AnimationTree 使用。
說明
AnimationNodeBlendTree 使用的資源。
AnimationNodeBlendSpace1D 代表一條虛擬軸,可透過 add_blend_point() 新增任意 AnimationRootNode。其輸出為最接近目前值之兩節點的線性混合。
教學
屬性
|
||
|
||
|
||
|
||
|
||
|
||
|
方法
void |
add_blend_point(node: AnimationRootNode, pos: float, at_index: int = -1, name: StringName = &"") |
find_blend_point_by_name(name: StringName) const |
|
get_blend_point_count() const |
|
get_blend_point_name(point: int) const |
|
get_blend_point_node(point: int) const |
|
get_blend_point_position(point: int) const |
|
void |
remove_blend_point(point: int) |
void |
reorder_blend_point(from_index: int, to_index: int) |
void |
set_blend_point_name(point: int, name: StringName) |
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,但新動畫會自上一段動畫的播放位置開始。
enum SyncMode: 🔗
SyncMode SYNC_MODE_NONE = 0
Inactive animations are frozen and do not advance.
SyncMode SYNC_MODE_INDEPENDENT = 1
Inactive animations advance with a weight of 0. This is equivalent to the previous sync = true behavior.
SyncMode SYNC_MODE_CYCLIC_MUTABLE = 2
All animations are time-scaled so they stay in sync, with the cycle length dynamically computed from active blend weights. This is self-normalizing: a solo animation plays at normal speed.
Note: If you apply AnimationNodeTimeSeek to the result when handling animations of different lengths, synchronization will be broken. In such cases, it is recommended to use AnimationNodeAnimation.use_custom_timeline to align the animation lengths.
SyncMode SYNC_MODE_CYCLIC_CONSTANT = 3
All animations are time-scaled so they complete one cycle in cyclic_length seconds, keeping them in sync regardless of their individual lengths.
Note: If you apply AnimationNodeTimeSeek to the result when handling animations of different lengths, synchronization will be broken. In such cases, it is recommended to use AnimationNodeAnimation.use_custom_timeline to align the animation lengths.
屬性說明
控制動畫之間的插值方式。
The cycle length in seconds used by SYNC_MODE_CYCLIC_CONSTANT. All animations are time-scaled so they complete one full cycle in this duration. Must be greater than 0 for cyclic sync to take effect.
混合空間軸向的點位置上限。參見 add_blend_point()。
混合空間軸向的點位置下限。參見 add_blend_point()。
在軸上移動點時的捕捉間距。
已棄用: Use sync_mode instead.
If true, sync mode is enabled (equivalent to SYNC_MODE_INDEPENDENT). This property is kept for backward compatibility.
Controls how animations are synced when blended. See SyncMode for available options.
String value_label = "value" 🔗
混合空間虛擬軸的標籤。
方法說明
void add_blend_point(node: AnimationRootNode, pos: float, at_index: int = -1, name: StringName = &"") 🔗
Adds a new point with name that represents a node on the virtual axis at a given 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.
Note: If no name is provided, safe index is used as reference. In the future, empty names will be deprecated, so explicitly passing a name is recommended.
int find_blend_point_by_name(name: StringName) const 🔗
Returns the index of the blend point with the given name. Returns -1 if no blend point with that name is found.
int get_blend_point_count() const 🔗
回傳混合軸上的點數量。
StringName get_blend_point_name(point: int) const 🔗
Returns the name of the blend point at index point.
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 reorder_blend_point(from_index: int, to_index: int) 🔗
Swaps the blend points at indices from_index and to_index, exchanging their positions and properties.
void set_blend_point_name(point: int, name: StringName) 🔗
Sets the name of the blend point at index point. If the name conflicts with an existing point, a unique name will be generated automatically.
void set_blend_point_node(point: int, node: AnimationRootNode) 🔗
更換索引 point 之點所參照的 AnimationNode。
void set_blend_point_position(point: int, pos: float) 🔗
更新混合軸上索引 point 之點的位置。