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...
Tipi di tracce d'animazione
Questa pagina offre una panoramica dei tipi di traccia disponibili per il nodo AnimationPlayer di Godot, oltre alle tracce predefinite di proprietà.
Vedi anche
Presupponiamo che tu abbia già letto Introduzione alle funzionalità d'animazione, che illustra le nozioni di base, inclusi le tracce di proprietà.
Traccia di proprietà
Il tipo di traccia più semplice. Consulta Introduzione alle funzionalità d'animazione.
Position 3D / Rotation 3D / Scale 3D Track
Queste tracce di trasformazione 3D controllano la posizione, la rotazione e la scala di un oggetto 3D. Rendono più facile animare la trasformazione di un oggetto 3D in confronto alle solite tracce di proprietà.
È progettato per animazioni importate da modelli 3D esterni e può ridurre il consumo di memoria tramite compressione.
Blend Shape Track
Una traccia di blend shape è ottimizzata per animare le blend shape in un MeshInstance3D.
È progettato per animazioni importate da modelli 3D esterni e può ridurre il consumo di memoria tramite compressione.
Call Method Track
Una traccia di chiamata metodi consente di richiamare una funzione in un momento preciso dall'interno di un'animazione. Ad esempio, è possibile chiamare queue_free() per eliminare un nodo al termine di un'animazione di morte.
Nota
Per sicurezza, gli eventi inseriti nella traccia di chiamata metodi non sono eseguiti quando l'animazione è visualizzata in anteprima nell'editor.
Per creare una traccia di questo tipo nell'editor, clicca su "Aggiungi traccia -> Traccia di chiamata metodi". Si aprirà una finestra che permetterà di selezionare il nodo da associare alla traccia. Per richiamare uno dei metodi del nodo, fai clic destro sulla timeline e seleziona "Inserisci chiave". Si aprirà una finestra con un elenco dei metodi disponibili. Fai doppio clic su uno di essi per finire di creare il fotogramma chiave.
Per modificare la chiamata al metodo o i suoi argomenti, clicca sulla chiava e vai al pannello Ispettore. Lì, puoi cambiare il metodo da chiamare. Se espandi la sezione "Argomenti", apparirà un elenco di argomenti che puoi modificare.
Per creare una traccia di questo tipo tramite codice, è necessario passare un dizionario contenente il nome del metodo interessato e i relativi parametri come Variant per key in Animation.track_insert_key(). Le chiavi e i relativi valori previsti sono i seguenti:
Chiave |
Valore |
|---|---|
|
Il nome del metodo sotto forma di |
|
Gli argomenti da passare alla funzione sotto forma di un |
# Create a call method track.
func create_method_animation_track():
# Get or create the animation the target method will be called from.
var animation = $AnimationPlayer.get_animation("idle")
# Get or create the target method's animation track.
var track_index = animation.add_track(Animation.TYPE_METHOD)
# Make the arguments for the target method jump().
var jump_velocity = -400.0
var multiplier = randf_range(.8, 1.2)
# Get or create a dictionary with the target method's name and arguments.
var method_dictionary = {
"method": "jump",
"args": [jump_velocity, multiplier],
}
# Set scene-tree path to node with target method.
animation.track_set_path(track_index, ".")
# Add the dictionary as the animation method track's key.
animation.track_insert_key(track_index, 0.6, method_dictionary, 0)
# The target method that will be called from the animation.
func jump(jump_velocity, multiplier):
velocity.y = jump_velocity * multiplier
// Create a call method track.
public void CreateAnimationTrack()
{
// Get reference to the AnimationPlayer.
var animationPlayer = GetNode<AnimationPlayer>("AnimationPlayer");
// Get or create the animation the target method will be called from.
var animation = animationPlayer.GetAnimation("idle");
// Get or create the target method's animation track.
var trackIndex = animation.AddTrack(Animation.TrackType.Method);
// Make the arguments for the target method Jump().
var jumpVelocity = -400.0;
var multiplier = GD.RandRange(.8, 1.2);
// Get or create a dictionary with the target method's name and arguments.
var methodDictionary = new Godot.Collections.Dictionary
{
{ "method", MethodName.Jump },
{ "args", new Godot.Collections.Array { jumpVelocity, multiplier } }
};
// Set scene-tree path to node with target method.
animation.TrackSetPath(trackIndex, ".");
// Add the dictionary as the animation method track's key.
animation.TrackInsertKey(trackIndex, 0.6, methodDictionary, 0);
}
// The target method that will be called from the animation.
private void Jump(float jumpVelocity, float multiplier)
{
Velocity = new Vector2(Velocity.X, jumpVelocity * multiplier);
}
Traccia di curva di Bézier
Una traccia di curva di Bézier è simile a una traccia di proprietà, eccetto che consente di animare il valore di una proprietà tramite una curva di Bézier.
Nota
Le tracce di curva di Bezier e le tracce delle proprietà non si possono fondere in AnimationPlayer e AnimationTree.
Per crearne una, clicca su "Aggiungi traccia -> Traccia di curva di Bezier". Come per le tracce di proprietà, bisogna selezionare un nodo e una proprietà da animare. Per aprire l'editor della curva di Bezier, clicca sull'icona della curva a destra della traccia di animazione.
Nell'editor, le chiavi sono rappresentate da rombi pieni e i rombi contornati sono collegati ad essi dalla forma di una curva di controllo.
Suggerimento
Per una maggiore precisione durante la modifica manuale delle curve, potrebbe essere utile cambiare i livelli di zoom dell'editor. lo slider in basso a destra dell'editor serve per ingrandire e ridurre l'asse temporale; è possibile farlo anche con Ctrl + Maiusc + Rotella del mouse. Con Ctrl + Alt + Rotella del mouse si ingrandisce e si riduce l'asse Y
While a keyframe is selected (not the handle), in the right click panel of the editor, you can select the handle mode:
Libero: permette di orientare un manipolatore in qualsiasi direzione senza influenzare la posizione degli altri.
Lineare: non permette la rotazione del manipolatore e disegna un grafico lineare.
Equilibrata: fa sì che i manipolatori ruotino insieme, ma la distanza tra la chiave e un manipolatore non è simmetrica.
Simmetrica: Fa sì che la posizione di un manipolatore sia perfettamente speculare a quella dell'altro, inclusa la loro distanza dalla chiave.
Traccia di riproduzione audio
Se vuoi creare un'animazione con audio, devi creare una traccia di riproduzione audio. Per crearne una, la tua scena deve contenere un nodo AudioStreamPlayer, AudioStreamPlayer2D o AudioStreamPlayer3D. Durante la creazione della traccia, devi selezionare uno di questi nodi.
Per riprodurre un suono nell'animazione, trascina e rilascia un file audio dal pannello Filesystem sulla traccia di animazione. Dovrebbe apparire la forma d'onda del file audio nella traccia.
Per rimuovere un suono dall'animazione, puoi fare clic destro su di esso e selezionare "Cancella chiave(i)" oppure cliccare su di esso e premere il tasto Canc.
La modalità di fusione consente di scegliere se regolare o meno il volume dell'audio durante una fusione nell'AnimationTree.
Traccia di riproduzione animazioni
Le tracce di riproduzione animazioni consentono di sequenziare le animazioni di altri nodi AnimationPlayer in una scena. Ad esempio, è possibile utilizzarle per animare diversi personaggi in una cutscene.
Per creare una traccia di riproduzione animazioni, seleziona "Nuova traccia -> Traccia di riproduzione animazioni".
Poi, seleziona l'AnimationPlayer che vuoi associare alla traccia.
Per aggiungere un'animazione alla traccia, fai clic destro su di essa e inserisci un fotogramma chiave. Seleziona il fotogramma chiave appena creato per selezionare un'animazione nel pannello Ispettore.
Se un'animazione è già in riproduzione e desideri interromperla in anticipo, puoi creare un fotogramma chiave e impostarlo su [STOP] nell'Ispettore.
Nota
Se hai istanziato una scena che contiene un AnimationPlayer al suo interno, devi abilitare l'opzione "Figli modificabili" nell'albero di scene per accedere al suo AnimationPlayer. Inoltre, un AnimationPlayer non può fare riferimento a se stesso.