Creación de animaciones 2D en Unity

Para crear animaciones 2D en Unity, los desarrolladores pueden usar la ventana de animación integrada y el componente Animator Unity. Aquí hay una guía paso a paso para comenzar.

Configuración del proyecto

  • Abra Unity y create un nuevo proyecto 2D o abra uno existente.
  • Si comienza un nuevo proyecto, configure la plantilla del proyecto como 2D.

Importación de activos de Sprite

  • Los sprites se pueden crear dentro de Unity mediante el editor de sprites o se pueden importar desde archivos de imagen externos como PNG o JPEG.
  • Para crear sprites dentro de Unity, vaya al menú Activos, seleccione Crear y elija Sprite o Sprite Renderer. Entonces es posible dibujar o importar la obra de arte del sprite.

Configuración de la animación de Sprite

  • Una vez que los sprites estén listos, seleccione el recurso de sprite en la ventana Proyecto.
  • En la ventana Inspector, asegúrese de que el Tipo de textura esté establecido en 'Sprite (2D and UI)'. Si no, cámbielo a 'Sprite (2D and UI)'.
  • Haga clic en el activo de sprite en la ventana del Proyecto para abrirlo en el Editor de Sprite.
  • Usa el Editor de Sprite para definir los fotogramas individuales de la animación. El sprite se puede dividir en varias subimágenes si es necesario. El editor también permite modificar el punto de pivote de cada cuadro para controlar la posición del sprite.
  • Guarde los cambios realizados en el Editor de Sprite.

Creación de animaciones usando la ventana de animación

  • Para abrir la ventana de Animación, vaya a 'Window -> Animation'.
  • En la ventana Animación, haga clic en el botón Crear para crear un nuevo clip de Animación.
  • Seleccione el clip de animación en la ventana Proyecto y sus propiedades aparecerán en la ventana Inspector.
  • En la ventana Inspector es posible establecer la duración del clip de animación, la frecuencia de muestreo y otras propiedades.
  • Para crear fotogramas clave, mueva el cabezal de reproducción en la ventana de animación a un tiempo específico y modifique las propiedades del sprite (p. ej., posición, escala, rotación, etc.) en la escena. o Ventana de jerarquía.
  • Agregue fotogramas clave en diferentes momentos para crear una animación fluida. Unity interpolará automáticamente los valores entre los fotogramas clave.

Configuración del animador

  • Seleccione el objeto sprite en la ventana Escena o Jerarquía.
  • En la ventana Inspector, haga clic en el botón Agregar Componente y busque "Animator" para agregar el componente Animator al objeto.
  • Haga clic en el botón Crear en el componente Animador para crear un nuevo recurso de Controlador de Animador.
  • Asigne el controlador Animator recién creado al campo Controlador del componente Animator.

Configuración del controlador Animator

  • Haga doble clic en el elemento Animator Controller recién creado para abrirlo en la ventana de Animator.
  • En la ventana de Animator, hay un gráfico de controlador de Animator, que representa el flujo de animaciones.
  • Haga clic derecho en la ventana de Animator y seleccione 'Create State -> From New Clip' o 'From Sprite Renderer' para crear estados de animación.
  • Arrastre y suelte los clips de animación creados previamente en la ventana Animación en los respectivos estados de animación.
  • Cree transiciones entre estados de animación haciendo clic en un estado y arrastrando la flecha a otro estado. Es posible ajustar las condiciones para la transición, como el tiempo, los valores de los parámetros o los eventos.
  • Es posible agregar parámetros para controlar las transiciones, como bools, ints o triggers. Por ejemplo, puede haber un parámetro booleano llamado "IsRunning" que activa una transición de un estado de animación inactivo a un estado de animación en ejecución.

Reproducción de las animaciones

  • Seleccione el objeto sprite en la ventana Escena o Jerarquía.
  • En el componente Animator de la ventana Inspector, arrastre el activo Controlador de Animator creado al campo Controlador.
  • Presione el botón Reproducir en la ventana Animación para probar y obtener una vista previa de las animaciones.

Control de animaciones programáticamente

  • El control de animaciones mediante programación requiere acceder al componente Animator desde el script.
  • En el script, cree una variable de tipo Animator y use 'GetComponent<Animator>()' para obtener una referencia al componente Animator adjunto al objeto sprite.
  • Luego, es posible usar las funciones y propiedades del Animator para activar transiciones, establecer valores de parámetros o controlar la reproducción de las animaciones. Por ejemplo, llamar a animator.SetBool("IsRunning", true) activará la animación en ejecución.
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;
    }
}

Conclusión

Esta es una descripción general básica de la creación de animaciones 2D en Unity utilizando las herramientas integradas. Unity también es compatible con técnicas más avanzadas como el uso de hojas de sprites, cinemática inversa (IK) y secuencias de comandos de animación personalizada comportamientos. Explore estas opciones según los requisitos específicos y la complejidad de las animaciones en cuestión.