Animaciones en Unity

Animaciones en Unity

En nuestros proyectos, la mayoría de los personajes, accesorios y elementos de escenario son animados para que tengan movimiento para generar realismo, fluidez y dinamismo. Dentro de las animaciones tenemos muchísimas posibilidades, desde movimientos de respiración cuando nuestro personaje está quieto, llamado Idle hasta la rotación de las monedas de nuestro videojuego. En este artículo aprenderemos sobre las animaciones en Unity.

Unity dispone de un sistema de animaciones, el Animator Controllerpermite organizar y mantener un conjunto de Clips de animación y asociar las Transiciones de animación para un personaje u objeto.

En la mayoría de los casos, es normal tener varias animaciones y cambiar entre ellas cuando ocurren ciertas condiciones del juego. Por ejemplo, puede cambiar de un Clip de animación de caminar a un Clip de animación de salto siempre que se presione la barra espaciadora. Sin embargo, incluso si solo tiene un clip de animación, debe colocarlo en un controlador de animador para usarlo en un GameObject.

En este blog aprenderás sobre las animaciones en Unity, sus propiedades y como usarlas en tus proyectos.

Ventanas de animación

Para empezar a animar un objeto necesitamos abrir las dos ventanas de animación: Animator y animation, Window/Animation

El siguiente paso es añadir al objeto a animar, el componente animator. Este componente nos requiere añadir un animator controller, que crearemos en nuestro proyecto:

Ya tenemos el controlador de clips de animación, para crear las animaciones, nos dirigimos a la ventana de animation y pulsamos en Create.

En la ventana de animation, crearemos y modificaremos nuestras animaciones. Como podemos ver tenemos una línea del tiempo y unos fotogramas para modificar el objeto que queremos animar. Un fotograma representa el contenido del objeto en un instante de tiempo. Por tanto, una animación solo es una sucesión de fotogramas. Todo se puede controlar desde la línea de tiempo, pero no todos los fotogramas tienen el mismo comportamiento. Desde Unity usaremos los Keyframes, son fotogramas con un contenido específico, se crean, para insertar nuevo contenido no existente.

Ejemplo: con tres fotogramas claves podríamos mover una plataforma de derecha a izquierda: 1 fotograma con la posición inicial, otro fotograma con la posición de la derecha y el último fotograma la misma posición que en el primer fotograma. Con estos 3 fotogramas nuestra plataforma iría de izquierda a derecha y volvería a la izquierda.

¿Cómo añadimos keyframes en Unity?

Hay dos formas de hacerlo:

  • Método de grabación: Con este modo, Unity, nos registra todas las modificaciones que hagamos en el fotograma en el que estemos.
  • Manual: Nos dirigiremos en la línea de tiempo hacia el punto donde queramos añadir uno. Seleccionaremos la propiedad que queremos modificar y lo cambiaremos manualmente pulsando el icono que se muestra en la imagen.

Creación de una animación

Ejemplo 1: Plataforma de izquierda a derecha:

  • Creamos un cubo y le damos forma plana
  • Añadimos el Animator
  • Creamos un Animator Controller y lo vinculamos al Animator.
  • Creamos el clip de animación
  • Pulsamos en la grabación
  • Situamos la línea del tiempo en el segundo 0:30:
  • Movemos la plataforma a la derecha:
  • Situamos la línea del tiempo en el segundo 1:00 y copiamos los fotogramas que se nos han generado en el 0:00:
  • Dejamos de grabar y ya tenemos el movimiento de derecha a izquierda.

Si intentamos situar esta plataforma en otra posición de nuestra escena veremos que siempre vuelve a la posición donde está animado. Para solucionar este problema, tenemos dos opciones, crear un padre para el objeto y animarlo en las posiciones (0,0,0). De esta forma solo hace falta mover el objeto padre donde deseemos. La otra opción es, en nuestro Animator, pulsar Apply Root Motion, para que mueva el objeto usando el root motion de las animaciones, si movemos la plataforma podemos observar cómo se modifican los valores de la animación:

MÁS DE UNA ANIMACIÓN

Unity nos permite añadir más de una animación en cada objeto, para cambiar de una animación a otra usaremos la ventana de Animator:

Para crear otra animación iremos a la ventana animation y create new clip:

Este nuevo clip de animación aparecerá en la ventana de Animator de color gris. Para hacer la transición de una a otra pulsaremos botón derecho encima de nuestra animación por defecto y seleccionaremos Make Transition. Nos aparecerá una flecha para seleccionar a que animación cambiar cuando termine la suya:

Las transiciones de animación a animación se pueden modificar de muchas maneras. Arriba a la izquierda de la ventana de Animator tenemos el apartado de Parameters:

Podemos crear 4 tipos de variables para modificar el cambio de animación mediante script. Para añadir esta variable a nuestra transicion debemos seleccionar la flecha de ésta e ir al apartado de conditions:

La transición se cumplirá cuando la condición se cumpla.

Vamos al script:

Primero de todo necesitamos acceder a nuestro Animator:

public Animator anim;

//crear una condición: cuando pulse space:

if(Input.GetButtonDown(KeyCode.Space)){

anim.SetBool(“NOMBREDELPARAMETRO”, true);

}

else{

anim.SetBool(“NOMBREDELPARAMETRO”, false);

}

Las transiciones que podemos añadir de animación a animación son reciprocas, igual que pueden ir, pueden volver.

Podemos añadir el número de animaciones que queramos e ir saltando de una a otra, conectándose con las flechas.

Ejemplo 2: Animación de un personaje

  • Implementamos el modelo a nuestra escena
  • Añadimos Animator
  • Creamos un Animator Controller y lo vinculamos al Animator.
  • Dentro del animator arrastramos las animaciones de nuestro modelo.
  • Creamos las transiciones que necesitemos y sus parámetros.

  

  • Activamos las condiciones vía script.

 Con estos dos ejemplos ya hemos aprendido lo básico de las animaciones en Unity, espero que les sirva de gran ayuda.

Escribe un comentario