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...
Tipos de trilha de animação
Esta página fornece uma visão geral dos tipos de faixas (tracks) disponíveis para o nó de player de animação do Godot, além das faixas de propriedades padrão.
Ver também
Assumimos que você já leu Introdução aos recursos de animação, que cobre o básico, incluindo faixas de propriedades.
Faixa de Propriedade (Property Track)
O tipo de faixa mais básico. Veja Introdução aos recursos de animação.
Faixa de Posição 3D / Rotação 3D / Escala 3D (Position 3D / Rotation 3D / Scale 3D Track)
Essas faixas de transformação 3D controlam a localização, rotação e escala de um objeto 3D. Elas facilitam a animação da transformação de um objeto 3D em comparação com o uso de faixas de propriedades comuns.
Ela foi projetada para animações importadas de modelos 3D externos e pode reduzir a capacidade de armazenamento de recursos por meio de compressão.
Trilha de Blend Shape
Uma faixa de formato de mistura (blend shape track) é otimizada para animar blend shapes em um MeshInstance3D.
Ela foi projetada para animações importadas de modelos 3D externos e pode reduzir a capacidade de armazenamento de recursos por meio de compressão.
Trilha de Chamada de Método
Uma faixa de chamada de método (call method track) permite que você chame uma função em um momento preciso de dentro de uma animação. Por exemplo, você pode chamar queue_free() para deletar um nó no final de uma animação de morte.
Nota
Os eventos colocados na faixa de chamada de método não são executados quando a animação é pré-visualizada no editor por motivos de segurança.
Para criar uma faixa desse tipo no editor, clique em "Add Track -> Call Method Track". Em seguida, uma janela se abrirá e permitirá que você selecione o nó a ser associado à faixa. Para chamar um dos métodos do nó, clique com o botão direito na linha do tempo e selecione "Insert Key". Uma janela se abrirá com uma lista de métodos disponíveis. Dê um duplo clique em um deles para concluir a criação do quadro-chave.
Para alterar a chamada do método ou seus argumentos, clique na chave e vá para o painel do Inspetor. Lá, você pode alterar o método a ser chamado. Se você expandir a seção "Args", verá uma lista de argumentos que pode editar.
Para criar uma faixa desse tipo por código, passe um dicionário contendo o nome e os parâmetros do método alvo como o Variant para key em Animation.track_insert_key(). As chaves (keys) e seus valores esperados são os seguintes:
Chave |
Value (Valor) |
|---|---|
|
O nome do método como uma |
|
Os argumentos a serem passados para a função como uma |
# 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);
}
Trilha de Curva Bézier
Uma faixa de curva bezier é semelhante a uma faixa de propriedade, exceto que permite animar o valor de uma propriedade usando uma curva bezier.
Nota
Bezier curve tracks and property tracks cannot be blended in AnimationPlayer and AnimationTree.
Para criar uma, clique em "Add Track -> Bezier Curve Track". Assim como nas faixas de propriedades, você precisa selecionar um nó e uma propriedade para animar. Para abrir o editor de curva de bezier, clique no ícone de curva à direita da faixa de animação.
No editor, as chaves (keys) são representadas por losangos preenchidos e os losangos contornados conectados a elas por uma linha controlam a forma da curva.
Dica
Para melhor precisão ao trabalhar manualmente com curvas, você pode querer alterar os níveis de zoom do editor. O controle deslizante no canto inferior direito do editor pode ser usado para aumentar e diminuir o zoom no eixo do tempo, você também pode fazer isso com Ctrl + Shift + Roda do mouse. Usar Ctrl + Alt + Roda do mouse aumentará e diminuirá o zoom no eixo Y
Enquanto um quadro-chave estiver selecionado (não a alça/manipulador), no painel de clique direito do editor, você pode selecionar o modo da alça:
Free: Permite orientar um manipulador em qualquer direção sem afetar a posição do outro.
Linear: Não permite a rotação do manipulador e desenha um gráfico linear.
Balanced: Faz com que os manipuladores girem juntos, mas a distância entre a chave e um manipulador não é espelhada.
Mirrored: Faz com que a posição de um manipulador espelhe perfeitamente o outro, incluindo a distância até a chave.
Faixa de Reprodução de Áudio (Audio Playback Track)
Se você quiser criar uma animação com áudio, precisará criar uma faixa de reprodução de áudio. Para criar uma, sua cena deve ter um nó AudioStreamPlayer, AudioStreamPlayer2D ou AudioStreamPlayer3D. Ao criar a faixa, você deve selecionar um desses nós.
Para reproduzir um som na sua animação, arraste e solte um arquivo de áudio do painel do sistema de arquivos na faixa de animação. Você deverá ver a forma de onda (waveform) do seu arquivo de áudio na faixa.
Para remover um som da animação, você pode clicar com o botão direito nele e selecionar "Delete Key(s)" (Excluir Chave(s)) ou clicar nele e pressionar a tecla Del.
O modo de mistura (blend mode) permite que você escolha se deseja ou não ajustar o volume do áudio ao fazer a mistura no AnimationTree.
Trilha de Reprodução de Animação
As faixas de reprodução de animação (animation playback tracks) permitem sequenciar as animações de outros nós de player de animação em uma cena. Por exemplo, você pode usá-las para animar vários personagens em uma cena de corte (cutscene).
Para criar uma faixa de reprodução de animação, selecione "New Track -> Animation Playback Track."
Em seguida, selecione o player de animação que deseja associar à faixa.
Para adicionar uma animação à faixa, clique com o botão direito nela e insira uma chave. Selecione a chave que você acabou de criar para selecionar uma animação no painel do Inspetor.
If an animation is already playing and you want to stop it early, you can create
a key and have it set to [STOP] in the inspector.
Nota
If you instantiate a scene that contains an animation player into your scene, you need to enable "Editable Children" in the scene tree to access its animation player. Also, an animation player cannot reference itself.