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.

AnimationNodeStateMachineTransition

Eredita: Resource < RefCounted < Object

Una transizione all'interno di un AnimationNodeStateMachine che collega due AnimationRootNode.

Descrizione

Il percorso generator quando si utilizza AnimationNodeStateMachinePlayback.travel() è limitato ai nodi collegati da AnimationNodeStateMachineTransition.

Puoi impostare la tempistica e condizioni della transizione in dettaglio.

Tutorial

Proprietà

StringName

advance_condition

&""

String

advance_expression

""

AdvanceMode

advance_mode

1

bool

break_loop_at_end

false

int

priority

1

bool

reset

true

SwitchMode

switch_mode

0

Curve

xfade_curve

float

xfade_time

0.0


Segnali

advance_condition_changed() 🔗

Emesso quando advance_condition è cambiato.


Enumerazioni

enum SwitchMode: 🔗

SwitchMode SWITCH_MODE_IMMEDIATE = 0

Passa subito allo stato successivo. Lo stato attuale terminerà e verrà fuso all'inizio del nuovo stato.

SwitchMode SWITCH_MODE_SYNC = 1

Passa immediatamente allo stato successivo, ma cercherà il nuovo stato alla posizione di riproduzione del vecchio stato.

SwitchMode SWITCH_MODE_AT_END = 2

Attende il termine della riproduzione dello stato attuale, poi passa all'inizio della prossima animazione di stato.


enum AdvanceMode: 🔗

AdvanceMode ADVANCE_MODE_DISABLED = 0

Non usare questa transizione.

AdvanceMode ADVANCE_MODE_ENABLED = 1

Utilizza questa transizione solo durante AnimationNodeStateMachinePlayback.travel().

AdvanceMode ADVANCE_MODE_AUTO = 2

Utilizza automaticamente questa transizione se le verifiche di advance_condition e advance_expression sono pari a true (se assegnati).


Descrizioni delle proprietà

StringName advance_condition = &"" 🔗

Attiva l'avanzamento automatico quando questa condizione è impostata. Il nome fornito diventerà un parametro booleano nell'AnimationTree che può essere controllato in codice (vedi Utilizzo dell'AnimationTree). Per esempio, se AnimationTree.tree_root è un AnimationNodeStateMachine e advance_condition è impostato a "idle":

$animation_tree.set("parameters/conditions/idle", is_on_floor and (linear_velocity.x == 0))

String advance_expression = "" 🔗

  • void set_advance_expression(value: String)

  • String get_advance_expression()

Usa un'espressione come condizione per le transizioni della machina a stati. È possibile creare condizioni complesse di avanzamento d'animazioni per passare tra vari stati, e permette una maggiore flessibilità nella creazione di macchine a stati complesse, interfacciandosi direttamente con il codice di script.


AdvanceMode advance_mode = 1 🔗

Determina se la transizione dovrebbe essere disattivata, abilitata quando si utilizza AnimationNodeStateMachinePlayback.travel(), o attraversata automaticamente se le verifiche di advance_condition e advance_expression sono pari a true (se assegnati).


bool break_loop_at_end = false 🔗

  • void set_break_loop_at_end(value: bool)

  • bool is_loop_broken_at_end()

Se true, interrompe la ripetizione alla fine del ciclo per la transizione, anche se l'animazione è in ripetizione.


int priority = 1 🔗

  • void set_priority(value: int)

  • int get_priority()

Le transizioni di priorità più basse sono preferite quando si viaggia attraverso l'albero tramite AnimationNodeStateMachinePlayback.travel() o advance_mode è impostato su ADVANCE_MODE_AUTO.


bool reset = true 🔗

  • void set_reset(value: bool)

  • bool is_reset()

Se true, l'animazione di destinazione è riprodotta dall'inizio quando avviene il passaggio.


SwitchMode switch_mode = 0 🔗

Il tipo di transizione.


Curve xfade_curve 🔗

  • void set_xfade_curve(value: Curve)

  • Curve get_xfade_curve()

Curva di allentamento per un miglior controllo sulla dissolvenza incrociata tra questo stato e quello successivo. Dovrebbe essere una Curve unitaria.


float xfade_time = 0.0 🔗

  • void set_xfade_time(value: float)

  • float get_xfade_time()

Il tempo per attraversare tra questo stato e il successivo.

Nota: AnimationNodeStateMachine passa dallo stato attuale immediatamente dopo l'inizio della dissolvenza. Il tempo esatto rimanente può essere solo dedotto dall'animazione principale. Quando AnimationNodeOutput è considerato il più upstream, quindi il xfade_time non è scalato a seconda del delta downstream. Vedi anche AnimationNodeOneShot.fadeout_time.