Criando animações 2D no Unity

Para criar animações 2D em Unity, os desenvolvedores podem usar a janela Animation integrada e o componente Animator Unity. Aqui está um guia passo a passo para começar.

Configurando o projeto

  • Abra Unity e crie um novo projeto 2D ou abra um existente.
  • Se estiver iniciando um novo projeto, defina o modelo do projeto como 2D.

Importando Ativos Sprite

  • Os sprites podem ser criados dentro de Unity usando o Sprite Editor ou importados de arquivos de imagem externos, como PNG ou JPEG.
  • Para criar sprites em Unity, vá para o menu Assets, selecione Create e escolha Sprite ou Sprite Renderer. É então possível desenhar ou importar a arte do sprite.

Configurando a Animação Sprite

  • Assim que os sprites estiverem prontos, selecione o ativo do sprite na janela Projeto.
  • Na janela Inspetor, verifique se o Tipo de textura está definido como 'Sprite (2D and UI)'. Caso contrário, mude para 'Sprite (2D and UI)'.
  • Clique no recurso sprite na janela Projeto para abri-lo no Sprite Editor.
  • Use o Sprite Editor para definir os quadros individuais da animação. O sprite pode ser dividido em várias sub-imagens, se necessário. O editor também permite modificar o ponto de pivô para cada quadro para controlar a posição do sprite.
  • Salve as alterações feitas no Sprite Editor.

Criando Animações Usando a Janela de Animação

  • Para abrir a janela Animação, vá para 'Window -> Animation'.
  • Na janela Animação, clique no botão Criar para criar um novo clipe de Animação.
  • Selecione o clipe de animação na janela Projeto e suas propriedades aparecerão na janela Inspetor.
  • Na janela do Inspetor, é possível definir a duração do clipe de animação, a taxa de amostragem e outras propriedades.
  • Para criar quadros-chave, mova o cursor de reprodução na janela Animação para um tempo específico e modifique as propriedades do sprite (por exemplo, posição, escala, rotação etc.) na cena ou janela Hierarquia.
  • Adicione quadros-chave em momentos diferentes para criar uma animação suave. Unity interpolará automaticamente os valores entre os quadros-chave.

Configurando o Animador

  • Selecione o objeto sprite na janela Cena ou Hierarquia.
  • Na janela do Inspetor, clique no botão Adicionar Componente e procure por "Animator" para adicionar o componente Animator ao objeto.
  • Clique no botão Create no componente Animator para criar um novo recurso Animator Controller.
  • Atribua o recém-criado Animator Controller ao campo Controller do componente Animator.

Configurando o Animator Controller

  • Clique duas vezes no recurso Animator Controller recém-criado para abri-lo na janela do Animator.
  • Na janela do Animator, há um gráfico do Animator Controller, que representa o fluxo das animações.
  • Clique com o botão direito do mouse na janela Animator e selecione 'Create State -> From New Clip' ou 'From Sprite Renderer' para criar estados de animação.
  • Arraste e solte os clipes de animação criados anteriormente na janela Animação nos respectivos estados de animação.
  • Crie transições entre estados de animação clicando em um estado e arrastando a seta para outro estado. É possível ajustar as condições de transição, como tempo, valores de parâmetros ou eventos.
  • É possível adicionar parâmetros para controlar as transições, como bools, ints ou triggers. Por exemplo, pode haver um parâmetro bool denominado "IsRunning" que aciona uma transição de um estado de animação ocioso para um estado de animação em execução.

Jogando as animações

  • Selecione o objeto sprite na janela Cena ou Hierarquia.
  • No componente Animator na janela Inspector, arraste o recurso Animator Controller criado para o campo Controller.
  • Pressione o botão Play na janela Animation para testar e visualizar as animações.

Controlando animações programaticamente

  • Controlar animações programaticamente requer acessar o componente Animator do script.
  • No script, crie uma variável do tipo Animator e use 'GetComponent<Animator>()' para obter uma referência ao componente Animator anexado ao objeto sprite.
  • É possível então usar as funções e propriedades do Animator para acionar transições, definir valores de parâmetros ou controlar a reprodução das animações. Por exemplo, chamar o animador.SetBool("IsRunning", true) acionará a animação em execução.
using UnityEngine;

public class AnimationController : MonoBehaviour
{
    private Animator animator;

    private void Start()
    {
        // Get a reference to the Animator component
        animator = GetComponent<Animator>();
    }

    private void Update()
    {
        // Check for input or condition to trigger animations
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // Trigger a jump animation
            animator.SetTrigger("Jump");
        }

        float moveInput = Input.GetAxis("Horizontal");
        animator.SetFloat("Speed", Mathf.Abs(moveInput));

        // Check if the character is grounded
        bool isGrounded = IsGrounded();

        // Set the "IsGrounded" parameter in the Animator
        animator.SetBool("IsGrounded", isGrounded);

        if (isGrounded && Input.GetKeyDown(KeyCode.C))
        {
            // Trigger a crouch animation
            animator.SetBool("IsCrouching", true);
        }

        if (isGrounded && Input.GetKeyUp(KeyCode.C))
        {
            // Stop the crouch animation
            animator.SetBool("IsCrouching", false);
        }
    }

    private bool IsGrounded()
    {
        // Implement your own logic to check if the character is grounded
        // For example, you can use raycasting or collision detection
        // and return true if the character is touching the ground
        // and false otherwise.
        return false;
    }
}

Conclusão

Esta é uma visão geral básica da criação de animações 2D em Unity usando as ferramentas integradas. Unity também oferece suporte a técnicas mais avançadas, como o uso de folhas de sprite, cinemática inversa (IK) e scripts de animação personalizada comportamentos. Explore essas opções com base nos requisitos específicos e na complexidade das animações em questão.

Artigos sugeridos
Criando um jogo Screamer no Unity
Criando um jogo inspirado no Poppy Playtime no Unity
Criando um jogo de terror para celular no Unity
Criando um jogo de Ludo no Unity
Criando um jogo de plataforma simples no Unity
Como atribuir uma câmera a um script no Unity
Terminologia comumente usada no Unity Engine