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.
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.
É composto por quatro partes:
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.
A engine interpola valores entre quadros-chave, resultando em uma mudança gradual de valores ao longo do tempo.
A linha do tempo permite inserir quadros-chave e alterar seu tempo. Ele também define quanto tempo dura a 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.
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.
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" () to add a new animation. And Enter a name for the animation in the dialog box.
Adicionando uma faixa¶
Para adicionar uma nova faixa para nosso sprite, selecione-a e dê uma olhada na barra de ferramentas:
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:
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.
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:
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.
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.
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.
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
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:
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.
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.
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 Godot API 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.
Selecione o nó AudioStreamPlayer na janela de seleção. Godot adiciona a trilha com a referência ao nó.
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.
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.
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.