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.

AnimationNodeTransition

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

AnimationTree 中連接兩個 AnimationNode 的過渡。

說明

適用於不需要較進階的 AnimationNodeStateMachine 的情況的簡易狀態機。可將動畫接到輸入,並指定過渡時間。

設定請求並變更動畫播放後,過渡節點會在下一個處理影格將其 transition_request 值設為空字串,藉此自動清除請求。

注意: 使用交叉淡入時,current_statecurrent_index 會在淡入一開始就即刻切換到下一個狀態。

# 播放連接至 "state_2" 埠的子動畫。
animation_tree.set("parameters/Transition/transition_request", "state_2")
# 另一種寫法(結果相同)。
animation_tree["parameters/Transition/transition_request"] = "state_2"

# 取得目前狀態名稱(唯讀)。
animation_tree.get("parameters/Transition/current_state")
# 另一種寫法(結果相同)。
animation_tree["parameters/Transition/current_state"]

# 取得目前狀態索引(唯讀)。
animation_tree.get("parameters/Transition/current_index")
# 另一種寫法(結果相同)。
animation_tree["parameters/Transition/current_index"]

教學

屬性

bool

allow_transition_to_self

false

int

input_count

0

Curve

xfade_curve

float

xfade_time

0.0

方法

bool

is_input_loop_broken_at_end(input: int) const

bool

is_input_reset(input: int) const

bool

is_input_set_as_auto_advance(input: int) const

void

set_input_as_auto_advance(input: int, enable: bool)

void

set_input_break_loop_at_end(input: int, enable: bool)

void

set_input_reset(input: int, enable: bool)


屬性說明

bool allow_transition_to_self = false 🔗

  • void set_allow_transition_to_self(value: bool)

  • bool is_allow_transition_to_self()

若為 true,允許過渡到自身狀態;若在輸入啟用了重設選項,動畫將重新開始。若為 false,則過渡到自身狀態時不會有任何效果。


int input_count = 0 🔗

  • void set_input_count(value: int)

  • int get_input_count()

此動畫節點已啟用的輸入埠數量。


Curve xfade_curve 🔗

  • void set_xfade_curve(value: Curve)

  • Curve get_xfade_curve()

決定動畫交叉淡入淡出的緩動方式。若留空則為線性過渡。應為單位 Curve


float xfade_time = 0.0 🔗

  • void set_xfade_time(value: float)

  • float get_xfade_time()

各輸入所連接動畫之間的交叉淡入時間(秒)。

注意:AnimationNodeTransition 會在淡入開始後立即將目前狀態切換為下一個狀態。剩餘的精確時間只能由主要動畫推算。當 AnimationNodeOutput 被視為最上游時,xfade_time 不會因下游的 delta 而縮放。另見 AnimationNodeOneShot.fadeout_time


方法說明

bool is_input_loop_broken_at_end(input: int) const 🔗

返回動畫是否會在迴圈週期結束時中斷迴圈以進行過渡。


bool is_input_reset(input: int) const 🔗

返回當動畫自另一段動畫過渡而來時,該動畫是否會重新開始播放。


bool is_input_set_as_auto_advance(input: int) const 🔗

若指定的 input 索引已啟用自動前進,則回傳 true


void set_input_as_auto_advance(input: int, enable: bool) 🔗

啟用或停用指定 input 索引的自動前進。啟用後,節點在動畫播放一次後會切換到下一個輸入;若為最後一個輸入,則會循環回第一個。


void set_input_break_loop_at_end(input: int, enable: bool) 🔗

如果為 true,即使動畫設定為循環,也會在本迴圈結束時中斷迴圈以進行轉場。


void set_input_reset(input: int, enable: bool) 🔗

若為 true,過渡至目標動畫時會重新開始播放。