Unity:Manuales:2D Animation

De WikiGarcia

Guía rápida para hacer animaciones 2D desde Unity.

Existen varias técnicas para crear animaciones 2D, en este caso lo que haremos será importar un sprite de un personaje y animarlo utilizando "Huesos" que al moverlos modifiquen la imagen. Esta técnica es la que se utiliza para animaciones 3D y tiene la ventaja de que no debes crear una nueva imagen por cada frame.

Obtención de Sprites

Los sprites son las imágenes que formarán el personaje. Para una mejor animación se necesita un personaje cuyas partes del cuerpo estén separadas.

Imagen ejemplo

En internet existen varias páginas desde donde se pueden descargar éstos personajes de forma gratuita, algunos bajo algunas condiciones:

Es recomendable contar con un programa de edición de imágenes que soporte gráficos vectoriales (Adobe Illustrator, Inkscape, etc.) para realizar modificaciones a la imagen y exportar la imagen en las condiciones necesarias.

Exportación/Importación de Sprites

Para exportar los sprites solo basta con exportar la imagen deseada a un PNG.

Para poder manipular de mejor forma las dimensiones de la imagen se recomienda lo siguiente:

  1. Definir la altura que tendrá el personaje (en metros). Ej: 1.80m
  2. Tomar la imagen original del personaje (sin separar las partes) y escalarla a un tamaño ni muy grande ni muy pequeño y que sea múltiplo de la altura real. Ej: 1.80m -> 180px -> Escalamos a 720px (x4). Ahora sabemos que 4px son 1cm y hay 400px en 1m.
  3. Como tenemos que crear una imagen donde las partes del cuerpo no se sobrepongan separamos las partes del cuerpo en una imagen de tamaño proporcional. Ej: 1.80m -> 180px -> Imagen de 900px (x5). No escalamos el personaje, por lo que la relación de 4px por 1cm se mantiene.
  4. Exportamos la imagen de 900px a PNG.

Para importar la imagen en Unity y conservar los tamaños:

  1. Importar la imagen (Arrastrar a las Assets).
  2. Cambiar el "Texture type" a "Sprite (2D and UI)" y dar en "Apply".
  3. En "Pixels per Unity" usar el factor de conversión calculado arriba. Ej: 400px. y dar en "Apply"
  4. Arrastrar el sprite a la escena y comprobar con un cubo que el tamaño es el correcto.

Crear los Huesos

  1. Abrir el "Sprite Editor" de la imagen importada.
  2. Dentro del editor seleccionar el "Skinning Editor" (Esquina superior izquierda).
  3. Utilizar la herramienta "Bones -> Create bone" para crear los huesos requeridos. Es recomendable mantener un estándar para poder reciclar animaciones. Utilizar nombre correctos.
  4. Asignar el "Depth" de cada hueso.
  5. Utilizar la herramienta "Geometry -> Auto Geometry" para crear la geometría del personaje. Se pueden modificar los ajustes hasta alcanzar el detalle deseado.
  6. Utilizar la herramienta "Weights -> Auto Weights" para generar los "pesos" (El peso es qué tanta influencia tiene el hueso sobre esa parte del sprite). Seleccionar todos los nodos antes de Generar.
  7. Dar click en "Apply".

Crear el GameObject

  1. Arrastrar el sprite a la escena.
  2. Agregar el componente "Sprite Skin".
  3. Click en "Create Bones" del componente.
  4. En la escena acomodar las partes separadas del cuerpo para armar el personaje en su pose por defecto.
  5. Para facilitar algunos movimientos complejos creamos los IK (Inverse Kinematics). En este caso solo los creamos para los pies. Agregamos el componente "IK Manager" al objeto.
  6. Click en "IK Solvers +" y agregamos un "Limb". Y al nuevo objeto creado lo colocamos en el punto de referencia del IK. Ej: En la base del pie derecho.
  7. En "Effector" asociar el último hueso en la cadena que se debe mover. Ej: R_Foot y damos click en "Create Target".

Animar el personaje

  1. Abrir la ventana de "Animation"
  2. Con el Game Object seleccionado click en "Create"
  3. Animar moviendo los IK o los huesos a placer