Introdução aos recursos de animação

O nó AnimationPlayer permite que você crie desde animações simples até animações complexas.

Neste guia, você aprenderá a:

  • Trabalhar com o Painel de Animação

  • Animar qualquer propriedade de qualquer nó

  • Criar uma animação simples

  • Chamar funções com as poderosas faixas de Chamada de funções

No Godot, você pode animar qualquer coisa disponível no Inspetor, como transformações de nó, sprites, elementos de interface do usuário, partículas, visibilidade e cor de materiais e assim por diante. Você também pode modificar valores de variáveis de script e chamar qualquer função.

Criar um nó AnimationPlayer

Para usar as ferramentas de animação, primeiro temos que criar um nó AnimationPlayer.

O tipo de nó AnimationPlayer é o contêiner de dados para suas animações. Um nó AnimationPlayer pode conter várias animações, que podem transitar automaticamente umas para as outras.

O nó AnimationPlayer

O nó AnimationPlayer

Depois de criar um clique no nó AnimationPlayer na guia Nó para abrir o Painel de Animação na parte inferior da janela de visualização.

A posição do painel de animação

A posição do painel de animação

É composto por quatro partes:

O painel de animação

O painel de animação

  • Controles de animação (ou seja, adicionar, carregar, salvar e excluir animações)

  • Lista de faixas

  • A linha do tempo com quadros-chave

  • A linha do tempo e controles de faixa, onde você pode ampliar a linha do tempo e editar faixas, por exemplo.

A animação por computador depende de quadros-chave

Um quadro-chave define o valor de uma propriedade em um determinado ponto no tempo.

As formas de diamante representam quadros-chave na linha do tempo. Uma linha entre dois quadros-chave indica que o valor não mudou.

Quadros-chave no Godot

Quadros-chave no Godot

A engine interpola valores entre quadros-chave, resultando em uma mudança gradual de valores ao longo do tempo.

Dois quadros-chave são tudo o que é necessário para obter um movimento suave

Dois quadros-chave são tudo o que é necessário para obter um movimento suave

A linha do tempo permite inserir quadros-chave e alterar seu tempo. Ele também define quanto tempo dura a animação.

A linha do tempo no painel de animação

A linha do tempo no painel de animação

Cada linha do Painel de Animação é uma trilha de animação. As faixas Normal e Transform fazem referência às propriedades do nó. Seu nome ou id é um caminho para o nó e a propriedade afetada.

Exemplo de faixas de animação Normal

Exemplo de faixas de animação Normal

Dica

Se você animar a propriedade errada, poderá editar o caminho de uma trilha a qualquer momento. Clique duas vezes nele e digite o novo caminho. Reproduza a animação usando o botão "Reproduzir do início" |Reproduzir do início| (ou pressionando Shift + D no teclado) para ver as alterações instantaneamente.

Tutorial: Criando uma animação simples

Configuração da cena

Para este tutorial, criaremos um nó Sprite com um AnimationPlayer como filho. Vamos animar o sprite para se mover entre dois pontos na tela.

Nossa configuração de cena

Nossa configuração de cena

Aviso

AnimationPlayer herda de Node em vez de Node2D ou Spatial, o que significa que os nós filhos não herdarão a transformação dos nós pais devido à presença de um Node vazio na hierarquia.

Portanto, não é recomendável adicionar nós que tenham uma transformação 2D/3D como filho de um nó AnimationPlayer.

O sprite contém uma textura de imagem. Animamos esse sprite para se mover entre dois pontos na tela. Para este tutorial, use o ícone Godot padrão como a textura do sprite. Como ponto de partida, mova o sprite para uma posição à esquerda na tela.

Select the AnimationPlayer node, then click the "Animation" button in the animation editor. From the list select "New" (Adicionar animação) to add a new animation. And Enter a name for the animation in the dialog box.

Adicionar uma nova animação

Adicionar uma nova animação

Adicionando uma faixa

Para adicionar uma nova faixa para nosso sprite, selecione-a e dê uma olhada na barra de ferramentas:

Botões de conveniência

Botões de conveniência

Estes interruptores e botões permitem adicionar quadros-chave para a localização, rotação e escala do nó selecionado, respectivamente.

Desmarque a rotação, porque estamos interessados apenas na localização do nosso sprite para este tutorial e clique no botão de chave.

Como ainda não temos uma faixa configurada para a propriedade transform/location, Godot pergunta se ela deve ser configurada para nós. Clique em Criar.

Isso cria uma nova faixa e nosso primeiro quadro-chave no início da linha do tempo:

A faixa de sprite

A faixa de sprite

O segundo quadro-chave

Agora precisamos definir o destino para onde nosso sprite deve ir e quanto tempo leva para chegar lá.

Digamos que queremos que leve 2 segundos para chegar ao outro ponto. Por padrão, a animação é definida para durar apenas 1 segundo, portanto, altere isso nos controles da linha do tempo no painel inferior do painel de animação para 2.

Duração da animação

Duração da animação

Clique no cabeçalho da linha do tempo perto da marca de 2 segundos e mova o sprite para o destino de destino no lado direito.

Novamente, clique no botão de chave na barra de ferramentas. Isso cria nosso segundo quadro-chave.

Reproduzir a animação

Clique no botão "Reproduzir do início" (|Reproduzir do início|).

Eba! Nossa animação está funcionando:

A animação

A animação

Vai e volta

Godot tem um recurso adicional aqui. Como dito antes, Godot sempre calcula os quadros entre dois quadros-chave. Em um loop, o primeiro quadro-chave também é o último quadro-chave, se nenhum quadro-chave for especificado no final.

Loop de animação

Loop de animação

Se você definir a duração da animação para 4 segundos agora, a animação se moverá para frente e para trás. Você pode alterar esse comportamento se alterar o modo de loop da faixa. Isso será abordado no próximo capítulo.

Configurações de faixa

Cada faixa tem um painel de configurações no final, onde você pode definir o modo de atualização, a interpolação de faixa e o modo de loop.

Configurações de faixa

Configurações de faixa

O modo de atualização de uma faixa informa a Godot quando atualizar os valores de propriedade. Isso pode ser:

  • Contínuo: Atualiza a propriedade em cada quadro.

  • Discreto: Atualize apenas a propriedade em quadros-chave.

  • Trigger: Apenas atualize a propriedade em quadros ou acionadores. Os acionadores são um tipo de quadro-chave usado pela propriedade ``current_animation` de um AnimationPlayer, e as faixas Animation Playback.

  • Captura: Se o tempo do primeiro quadro-chave for maior que 0.0, o valor atual da propriedade será lembrado e será misturado com a primeira chave de animação. Por exemplo, você pode usar o modo de captura para mover um nó localizado em qualquer lugar para um local específico.

Modo de faixa

Modo de faixa

Em animações normais, você geralmente usa "Contínuo". Os outros tipos são usados para criar scripts de animações complexas.

A interpolação diz ao Godot como calcular os valores de quadro entre os quadros-chave. Estes modos de interpolação são suportados:

  • Nearest(Mais próximo): defina o valor do quadro-chave mais próximo

  • Linear: defina o valor com base em um cálculo de função linear entre os dois quadros-chave

  • Cúbico: defina o valor com base em um cálculo de função cúbica entre os dois quadros-chave

Interpolação de faixa

Interpolação de faixa

A interpolação cúbica leva a um movimento mais natural, onde a animação é mais lenta em um quadro-chave e mais rápida entre os quadros-chave. Isso geralmente é usado para animação de personagens. A interpolação linear cria um movimento mais robótico.

Godot suporta dois modos de loop, que afetam a animação se ela for definida como loop:

Modos de Loop

Modos de Loop

  • Clamp loop interpolation: Quando esta opção é selecionada, a animação para após o último quadro-chave desta faixa. Quando o primeiro quadro-chave for atingido novamente, a animação será redefinida para seus valores.

  • Wrap loop interpolation: Quando esta opção é selecionada, Godot calcula a animação após o último quadro-chave para atingir os valores do primeiro quadro-chave novamente.

Quadros-chave para outras propriedades

Godot não restringe você apenas para editar propriedades de transformação. Cada propriedade pode ser usada como uma faixa onde você pode definir quadros-chave.

Se você selecionar seu sprite enquanto o painel de animação estiver visível, obterá um pequeno botão de quadro-chave para todas as propriedades do sprite. Clique neste botão e o Godot adiciona automaticamente uma faixa e um quadro-chave à animação atual.

Quadros-chave para outras propriedades

Quadros-chave para outras propriedades

Editar quadro-chave

Para uso avançado e para editar quadros-chave em detalhes, você pode clicar neles para abrir o editor de quadros-chave no inspetor. Você pode usar isso para editar diretamente seus valores.

Editor de quadros-chave editando uma chave

Editor de quadros-chave editando uma chave

Além disso, você também pode editar o valor de suavização para esse quadro-chave clicando e arrastando a configuração de suavização. Isso diz a Godot, como alterar os valores da propriedade quando ele atinge esse quadro-chave.

Você geralmente ajusta suas animações dessa maneira, quando o movimento não "parece certo".

Avançado: faixas de chamada de métodos

O motor de animação do Godot não pára aqui. Se você já está confortável com a linguagem de scripting de Godot Básicos do GDScript e All classes você sabe que cada tipo de nó é uma classe e tem um monte de métodos caláveis.

Por exemplo, o tipo de nó AudioStreamPlayer tem um método para reproduzir um fluxo de áudio.

Não seria ótimo usar um método em um quadro-chave específico em uma animação? É aqui que "Call Method Tracks" é útil. Essas faixas referenciam um nó novamente, desta vez sem uma referência a uma propriedade. Em vez disso, um quadro-chave contém o nome e os argumentos de um método, que Godot deve chamar quando atingir esse quadro-chave.

Para demonstrar, vamos usar uma faixa de chamada de método para reproduzir áudio em um quadro-chave específico. Normalmente, para reproduzir áudio, você deve usar uma trilha de áudio, mas para demonstrar os métodos, faremos desta maneira.

Adicione um AudioStreamPlayer à Árvore de Cenas e configure um stream usando um arquivo de áudio que você colocou em seu projeto.

Clique em "Adicionar faixa" (|Adicionar faixa|) nos controles de faixa do painel de animação.

Selecione "Adicionar faixa de chamada de método" na lista de tipos de trilha possíveis.

Adicionar Faixa de Chamada de Método

Adicionar Faixa de Chamada de Método

Selecione o nó AudioStreamPlayer na janela de seleção. Godot adiciona a trilha com a referência ao nó.

Selecione AudioStreamPlayer

Selecione AudioStreamPlayer

Clique com o botão direito do mouse na linha do tempo onde Godot deve reproduzir a amostra e clique na opção "Inserir chave". Isso trará uma lista de métodos que podem ser chamados para o nó AudioStreamPlayer. Selecione o primeiro.

../../_images/animation_method_options.png

Quando Godot atinge o quadro-chave, Godot chama a função "play" do nó AudioStreamPlayer e o som é reproduzido.

Você pode alterar sua posição arrastando-o na linha do tempo, também pode clicar no quadro-chave e usar as configurações do quadro-chave no inspetor.

../../_images/animation_call_method_keyframe.png

Usando faixas RESET

Você pode configurar uma animação RESET especial para conter a "pose padrão". Isso é usado para garantir que a pose padrão seja restaurada quando você salvar a cena e abri-la novamente no editor.

Para faixas existentes, você pode adicionar uma animação chamada "RESET" (com distinção entre maiúsculas e minúsculas) e adicionar faixas para cada propriedade que deseja redefinir. O único quadro-chave deve estar no tempo 0 e dar a ele o valor padrão desejado para cada faixa.

Se a propriedade Reset On Save do AnimationPlayer estiver definida como true, a cena será salva com os efeitos da animação de redefinição aplicada (como se tivesse sido buscada para o tempo 0.0). Isso afeta apenas o arquivo salvo – as faixas de propriedade no editor permanecem onde estavam.

Se quiser redefinir as trilhas no editor, selecione o nó AnimationPlayer, abra o painel inferior Animação e escolha Aplicar redefinição no menu suspenso Animação do editor de animação.

Ao adicionar faixas em novas animações, o editor solicitará que você crie automaticamente uma faixa RESET ao usar o ícone de quadro-chave ao lado de uma propriedade no inspetor. Isso não se aplica a faixas criadas com versões Godot anteriores a 3.4, pois o recurso de faixa de redefinição de animação foi adicionado em 3.4.