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...
AnimationPlayer
Eredita: AnimationMixer < Node < Object
Un nodo utilizzato per la riproduzione di animazioni.
Descrizione
Un riproduttore di animazioni è utilizzato per la riproduzione generale di animazioni. Contiene un dizionario di risorse AnimationLibrary e tempi di fusione personalizzati tra le transizioni delle animazioni.
Alcuni metodi e proprietà usano una singola chiave per fare riferimento direttamente a un'animazione. Queste chiavi sono formattate come la chiave per la libreria, seguita da una barra obliqua, e poi la chiave per l'animazione all'interno della libreria, per esempio "movement/run". Se la chiave della libreria è una stringa vuota (nota come la libreria predefinita), la barra obliqua è omessa, essendo la stessa chiave utilizzata dalla libreria.
AnimationPlayer è più adatto di Tween per animazioni più complesse, per esempio quelle con tempi non banali. Può anche essere utilizzato invece di Tween se l'editor di tracce di animazione è più conveniente di scriverlo in codice.
L'aggiornamento delle proprietà di destinazione delle animazioni avviene al frame di processo.
Tutorial
Proprietà
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Metodi
animation_get_next(animation_from: StringName) const |
|
void |
animation_set_next(animation_from: StringName, animation_to: StringName) |
void |
|
get_blend_time(animation_from: StringName, animation_to: StringName) const |
|
get_method_call_mode() const |
|
get_playing_speed() const |
|
get_process_callback() const |
|
get_root() const |
|
get_section_end_time() const |
|
get_section_start_time() const |
|
has_section() const |
|
is_animation_active() const |
|
is_playing() const |
|
void |
pause() |
void |
play(name: StringName = &"", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) |
void |
play_backwards(name: StringName = &"", custom_blend: float = -1) |
void |
play_section(name: StringName = &"", start_time: float = -1, end_time: float = -1, custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) |
void |
play_section_backwards(name: StringName = &"", start_time: float = -1, end_time: float = -1, custom_blend: float = -1) |
void |
play_section_with_markers(name: StringName = &"", start_marker: StringName = &"", end_marker: StringName = &"", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) |
void |
play_section_with_markers_backwards(name: StringName = &"", start_marker: StringName = &"", end_marker: StringName = &"", custom_blend: float = -1) |
void |
play_with_capture(name: StringName = &"", duration: float = -1.0, custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false, trans_type: TransitionType = 0, ease_type: EaseType = 0) |
void |
queue(name: StringName) |
void |
|
void |
seek(seconds: float, update: bool = false, update_only: bool = false) |
void |
set_blend_time(animation_from: StringName, animation_to: StringName, sec: float) |
void |
|
void |
|
void |
|
void |
set_section(start_time: float = -1, end_time: float = -1) |
void |
set_section_with_markers(start_marker: StringName = &"", end_marker: StringName = &"") |
void |
Segnali
animation_changed(old_name: StringName, new_name: StringName) 🔗
Emesso quando un'animazione in coda d'attesa viene riprodotta dopo che la animazione precedente ha terminato. Vedi anche queue().
Nota: Il segnale non è emesso quando l'animazione è cambiata via play() o da un AnimationTree.
current_animation_changed(anim_name: StringName) 🔗
Emesso quando current_animation cambia.
Enumerazioni
enum AnimationProcessCallback: 🔗
AnimationProcessCallback ANIMATION_PROCESS_PHYSICS = 0
Deprecato: See AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS.
AnimationProcessCallback ANIMATION_PROCESS_IDLE = 1
Deprecato: See AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_IDLE.
AnimationProcessCallback ANIMATION_PROCESS_MANUAL = 2
Deprecato: See AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_MANUAL.
enum AnimationMethodCallMode: 🔗
AnimationMethodCallMode ANIMATION_METHOD_CALL_DEFERRED = 0
Deprecato: See AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_DEFERRED.
AnimationMethodCallMode ANIMATION_METHOD_CALL_IMMEDIATE = 1
Deprecato: See AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE.
Descrizioni delle proprietà
StringName assigned_animation 🔗
void set_assigned_animation(value: StringName)
StringName get_assigned_animation()
Se in riproduzione, la chiave dell'animazione attuale, altrimenti, l'ultima animazione riprodotta. Quando impostato, questo cambia l'animazione, ma non la riprodurrà a meno che è già in riproduzione. Vedi anche current_animation.
StringName autoplay = &"" 🔗
void set_autoplay(value: StringName)
StringName get_autoplay()
La chiave dell'animazione da riprodurre quando la scena è caricata.
StringName current_animation = &"" 🔗
void set_current_animation(value: StringName)
StringName get_current_animation()
La chiave dell'animazione attualmente in gioco. Se nessuna animazione si sta riproducendo, il valore della proprietà è una stringa vuota. Cambiare questo valore non riavvia l'animazione. Vedi play()Per ulteriori informazioni sulla riproduzione delle animazioni.
Nota: Nonostante questa proprietà appaia nell'Ispettore, non è pensata per essere modificata, e non è salvata nella scena. Questa proprietà è utilizzata principalmente per ottenere l'animazione attualmente in riproduzione, e internamente per le tracce di riproduzione animazioni. Per ulteriori informazioni, vedi Animation.
float current_animation_length 🔗
float get_current_animation_length()
La durata (in secondi) dell'animazione attualmente in riproduzione.
float current_animation_position 🔗
float get_current_animation_position()
La posizione (in secondi) dell'animazione attualmente in riproduzione.
bool movie_quit_on_finish = false 🔗
Se true e il motore è in esecuzione in modalità Movie Maker (vedi MovieWriter), il motore si chiude con SceneTree.quit() non appena un'animazione ha terminato la riproduzione in questo AnimationPlayer. Un messaggio è stampato quando il motore si chiude per questo motivo.
Nota: Questo obbedisce alla stessa logica del segnale AnimationMixer.animation_finished, perciò non chiuderà il motore se l'animazione è impostata a ripetersi.
bool playback_auto_capture = true 🔗
Se true, esegue AnimationMixer.capture() automaticamente prima della riproduzione. Questo significa che solo play_with_capture() è eseguito con gli argomenti predefiniti invece di play().
Nota: L'interpolazione della cattura è solo eseguita se l'animazione contiene una traccia di cattura. Vedi anche Animation.UPDATE_CAPTURE.
float playback_auto_capture_duration = -1.0 🔗
Vedi anche play_with_capture() e AnimationMixer.capture().
Se playback_auto_capture_duration è un valore negativo, la durata è impostata all'intervallo tra la posizione attuale e la prima chiave.
EaseType playback_auto_capture_ease_type = 0 🔗
The ease type of the capture interpolation. See also EaseType.
TransitionType playback_auto_capture_transition_type = 0 🔗
void set_auto_capture_transition_type(value: TransitionType)
TransitionType get_auto_capture_transition_type()
Il tipo di transizione dell'interpolazione di cattura. Vedi anche TransitionType.
float playback_default_blend_time = 0.0 🔗
Il tempo predefinito in cui mischiare animazioni. L'intervallo va da 0 a 4096 avente una precisione di 0,01.
Il rapporto di scala della velocità. Ad esempio, se questo valore è 1, l'animazione è riprodotta alla velocità normale. Se è 0.5, allora è riprodotta alla velocità dimezzata. Se è 2, allora è riprodotta alla velocità doppia.
Se impostato a un valore negativo, l'animazione è riprodotta al rovescio. Se impostato su 0, l'animazione non avanza.
Descrizioni dei metodi
StringName animation_get_next(animation_from: StringName) const 🔗
Restituisce la chiave dell'animazione che è in coda per essere riprodotta dopo l'animazione animation_from.
void animation_set_next(animation_from: StringName, animation_to: StringName) 🔗
Attiva l'animazione animation_to quando l'animazione animation_from conclude.
void clear_queue() 🔗
Pulisce tutte le animazioni in coda d'attesa e non riprodotte.
float get_blend_time(animation_from: StringName, animation_to: StringName) const 🔗
Restituisce il tempo di fusione (in secondi) tra due animazioni, riferite dalle loro chiavi.
AnimationMethodCallMode get_method_call_mode() const 🔗
Deprecato: Use AnimationMixer.callback_mode_method instead.
Restituisce la modalità di chiamata utilizzata per le tracce "Chiama metodo".
float get_playing_speed() const 🔗
Restituisce la velocità di riproduzione effettiva dell'animazione attuale o 0 se non è riprodotta. Questa velocità è la proprietà speed_scale moltiplicata per l'argomento custom_speed specificato quando si chiama il metodo play().
Restituisce un valore negativo se l'animazione corrente si sta riproducendo all'indietro.
AnimationProcessCallback get_process_callback() const 🔗
Deprecato: Use AnimationMixer.callback_mode_process instead.
Restituisce la notifica di processo in cui aggiornare le animazioni.
Array[StringName] get_queue() 🔗
Restituisce un elenco di chiavi di animazione che sono attualmente in coda per essere riprodotte.
Deprecato: Use AnimationMixer.root_node instead.
Restituisce il nodo da cui i riferimenti di percorso del nodo partono.
float get_section_end_time() const 🔗
Restituisce il tempo di fine della sezione attualmente riprodotta.
float get_section_start_time() const 🔗
Restituisce il tempo di inizio della sezione attualmente riprodotta.
Restituisce true se un'animazione è attualmente in riproduzione con una sezione.
bool is_animation_active() const 🔗
Returns true if the an animation is currently active. An animation is active if it was played by calling play() and was not finished yet, or was stopped by calling stop().
This can be used to check whether an animation is currently paused or stopped.
var is_paused = not is_playing() and is_animation_active()
var is_stopped = not is_playing() and not is_animation_active()
Restituisce true se un'impostazione è attualmente in riproduzione (anche se speed_scale e/o custom_speed sono 0).
void pause() 🔗
Pausa l'animazione attualmente in riproduzione. Il current_animation_position sarà mantenuto e chiamando play() o play_backwards() senza argomenti o con lo stesso nome dell'animazione assigned_animation riprenderà l'animazione dalla posizione di riproduzione corrente.
Vedi anche stop().
void play(name: StringName = &"", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) 🔗
Riproduce l'animazione con la chiave name. È possibile impostare tempi e velocità di fusione personalizzati.
L'opzione from_end ha effetto solo quando si passa a una nuova traccia di animazione o se è la stessa traccia ma all'inizio o alla fine. Non ha effetto quando si riprende la riproduzione messa in pausa nel mezzo di un'animazione. Se custom_speed è negativo e from_end è true, l'animazione sarà riprodotta all'indietro (il che equivale a chiamare play_backwards()).
AnimationPlayer tiene traccia della sua animazione attuale o dell'ultima riprodotta con assigned_animation. Se questo metodo viene chiamato con la stessa animazione con name o senza il parametro name, l'animazione assegnata riprenderà la riproduzione se era stata messa in pausa.
Nota: L'animazione verrà aggiornata la prossima volta che l'AnimationPlayer verrà elaborato. Se altre variabili vengono aggiornate allo stesso tempo che questo metodo viene chiamato, potrebbero essere aggiornate troppo presto. Per eseguire l'aggiornamento immediatamente, chiama advance(0).
void play_backwards(name: StringName = &"", custom_blend: float = -1) 🔗
Riproduce l'animazione con la chiave name al rovescio.
Questo metodo è una abbreviazione per play() con custom_speed = -1.0 e from_end = true, quindi vedi la sua descrizione per ulteriori informazioni.
void play_section(name: StringName = &"", start_time: float = -1, end_time: float = -1, custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) 🔗
Riproduce l'animazione con la chiave name e la sezione a partire da start_time e che termina a end_time. Vedi anche play().
Impostando start_time su un valore al di fuori dell'intervallo dell'animazione, verrà utilizzato l'inizio dell'animazione, mentre impostando end_time su un valore al di fuori dell'intervallo dell'animazione, verrà utilizzata la fine dell'animazione. start_time non può essere uguale a end_time.
void play_section_backwards(name: StringName = &"", start_time: float = -1, end_time: float = -1, custom_blend: float = -1) 🔗
Riproduce l'animazione con la chiave name e la sezione a partire da start_time e che termina a end_time al rovescio.
Questo metodo è una abbreviazione per play_section() con custom_speed = -1.0 e from_end = true, quindi vedi la sua descrizione per ulteriori informazioni.
void play_section_with_markers(name: StringName = &"", start_marker: StringName = &"", end_marker: StringName = &"", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) 🔗
Riproduce l'animazione con la chiave name e la sezione che inizia da start_marker e termina su end_marker.
Se il marcatore di inizio è vuoto, la sezione inizia dall'inizio dell'animazione. Se il marcatore di fine è vuoto, la sezione termina alla fine dell'animazione. Vedi anche play().
void play_section_with_markers_backwards(name: StringName = &"", start_marker: StringName = &"", end_marker: StringName = &"", custom_blend: float = -1) 🔗
Riproduce l'animazione con la chiave name e la sezione a partire da start_marker e che termina a end_marker al rovescio.
Questo metodo è una abbreviazione per play_section_with_markers() con custom_speed = -1.0 e from_end = true, quindi vedi la sua descrizione per ulteriori informazioni.
void play_with_capture(name: StringName = &"", duration: float = -1.0, custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false, trans_type: TransitionType = 0, ease_type: EaseType = 0) 🔗
Vedi anche AnimationMixer.capture().
È possibile utilizzare questo metodo per fornire opzioni di acquisizione più dettagliate rispetto a quelle eseguite da playback_auto_capture. Quando playback_auto_capture è false, questo metodo è quasi uguale al seguente:
capture(name, duration, trans_type, ease_type)
play(name, custom_blend, custom_speed, from_end)
Se name è vuoto, specifica assigned_animation.
Se duration è un valore negativo, la durata è impostata sull'intervallo tra la posizione attuale e la prima chiave, quando from_end è true, utilizza invece l'intervallo tra la posizione attuale e l'ultima chiave.
Nota: duration tiene conto di speed_scale, ma non di custom_speed, perché la cache di acquisizione viene interpolata con il risultato della fusione e il risultato potrebbe contenere più animazioni.
void queue(name: StringName) 🔗
Mette in coda un'animazione per la riproduzione una volta completata l'animazione attuale e tutte le animazioni precedentemente messe in coda.
Nota: Se è in corso la riproduzione di un'animazione in ripetizione, l'animazione in coda non verrà mai riprodotta a meno che l'animazione in ripetizione non venga interrotta in qualche modo.
void reset_section() 🔗
Ripristina la sezione attuale. Non fa nulla se non è stata impostata una sezione.
void seek(seconds: float, update: bool = false, update_only: bool = false) 🔗
Cerca l'animazione fino al punto seconds nel tempo (in secondi). Se update è true, anche l'animazione viene aggiornata, altrimenti viene aggiornata in fase di processo. Gli eventi compresi tra il frame attuale e seconds vengono saltati.
Se update_only è true, le tracce di riproduzione metodi/audio/animazioni non saranno elaborate.
Nota: Cercare fino alla fine dell'animazione non emette AnimationMixer.animation_finished. Se si desidera saltare l'animazione ed emettere il segnale, usa AnimationMixer.advance().
void set_blend_time(animation_from: StringName, animation_to: StringName, sec: float) 🔗
Restituisce il tempo di fusione (in secondi) tra due animazioni, riferite dalle loro chiavi.
void set_method_call_mode(mode: AnimationMethodCallMode) 🔗
Deprecato: Use AnimationMixer.callback_mode_method instead.
Imposta la modalità di chiamata utilizzata per le tracce "Chiama metodo".
void set_process_callback(mode: AnimationProcessCallback) 🔗
Deprecato: Use AnimationMixer.callback_mode_process instead.
Imposta la notifica di processo in cui aggiornare le animazioni.
void set_root(path: NodePath) 🔗
Deprecato: Use AnimationMixer.root_node instead.
Imposta il nodo da cui i riferimenti di percorso del nodo partono.
void set_section(start_time: float = -1, end_time: float = -1) 🔗
Modifica i tempi di inizio e fine della sezione riprodotta. La posizione di riproduzione attuale verrà limitata all'interno della nuova sezione. Vedi anche play_section().
void set_section_with_markers(start_marker: StringName = &"", end_marker: StringName = &"") 🔗
Modifica i marcatori di inizio e fine della sezione riprodotta. La posizione di riproduzione attuale verrà limitata all'interno della nuova sezione. Vedi anche play_section_with_markers().
Se l'argomento è vuoto, la sezione utilizza l'inizio o la fine dell'animazione. Se entrambi sono vuoti, significa che la sezione non è impostata.
void stop(keep_state: bool = false) 🔗
Interrompe l'animazione attualmente in riproduzione. La posizione di animazione è ripristinata a 0 e custom_speed è ripristinato a 1.0. Vedi anche pause().
Se keep_state è true, lo stato di animazione non è aggiornato visivamente.
Nota: Le tracce di riproduzione metodi/audio/animazioni non saranno elaborate da questo metodo.