Por motivo de mi participación en Goner, juego que queremos sacar en breve a la venta y del que podéis tener noticias en su web gonerthegame.com, desde la cual también podéis acceder a sus redes sociales y estar al día de todo lo que vayamos haciendo, estoy haciendo las animaciones del personaje protagonista.

Para mejor uso de dichas animaciones o mayor efectividad, recordé que en Unity, se puede hacer uso de Layers y Masks, que es de lo que trata este artículo-tutorial. ¿Qué se consigue con estos Layers y Masks?

Durante el tutorial lo veremos en detalle, pero básicamente es la interpolación o mezcla de 2 animaciones del mismo personaje. Por ejemplo, tenemos una serie de animaciones genéricas o básicas como caminar y correr, las cuales siempre afectarán por igual en el movimiento de nuestro jugador. Pero podemos estar llevando distintas armas en distintos brazos y posiciones y esto podría requerir animar caminar y correr para cada arma o acción. Pues ¡no!, gracias a este sistema, lo que hacemos es usar como base las animaciones básicas y con el uso de Masks de las zonas que queramos y los Layers con las nuevas animaciones, haremos que las piernas caminen siempre igual, pero la parte alta del cuerpo use la animación que tengamos en el Layer indicado. Bueno, vamos a verlo y se entenderá mejor.

Lo primero que haremos será crear un proyecto 3D sencillo en Unity.

Después nos registraremos en la web de Mixamo si no lo hemos hecho antes. Esta web pertenece a Adobe.

En este caso, en la pestaña Characters he escogido el que lleva un traje de captura de movimientos o mocap.

Se nos mostrará una ventana como la de la figura 1 donde podremos rotar el personaje y verlo con más detalle.


Mixamo character
figura 1. Nuestro personaje

Ahora pulsamos sobre Download y seleccionamos para guardar pose T y fbx Unity.


Download settings
figura 2. Opciones de descarga de Mesh

Pincharemos en la sección o pestaña Animations y buscaremos una de tipo Walking o caminar que nos guste y lo descargaremos como fbx Unity nuevamente y con skin.


Walking file
figura 3. Animación básica de andar

Repetimos el proceso para caminar con pistola. (Podéis fijaros en la imagen que adjunto como referencia aunque la original el modelo es un soldado, pero cuando seleccionamos una animación en Mixamo con nuestro personaje subido o elegido en la web, nos muestra y descargará dicha animación aplicada a nuestro modelo y no el que pone la web en la vista previa a la izquierda junto al resto de animaciones.)


Walking Gun
figura 4. Animación de andar con pistola

Volvemos a realizar los mismos pasos para una animación con un rifle, que será parecida a la anterior pero con las manos separadas entre sí para reflejar el correcto funcionamiento de este tutorial. Vosotros podréis usar espadas, arcos u otras animaciones.


Walking Rifle
figura 5. Animación de andar con rifle

El siguiente paso es importar de forma ordenada el modelo y las animaciones a Unity. Para ello, podemos crear una carpeta en nuestro proyecto y meter dentro el modelo, otra llamada Animations y meter las 3 animaciones dentro y los archivos que crearemos en relación a estas. Pulsamos en la carpeta que hayamos creado, por ejemplo Mesh, dentro, botón derecho del ratón e import new asset y seleccionamos nuestro modelo descargado en pose T.

Hacemos lo mismo con las 3 animaciones en la carpeta Animations. Botón derecho, import new asset por cada archivo.


Mesh import
figura 6. Importando el modelo en Unity

Con el mesh seleccionado, en el Inspector, nos vamos a la pestaña Rig y le decimos que use de tipo Humanoid (lo hace compatible con el sistema de Unity) y le indicamos que cree Avatar desde el propio modelo.


Humanoid Mesh Setting
figura 7. Configuramos nuestro Rig en Humanoid y creamos Avatar

Arrastramos a la escena o a la jerarquía nuestro personaje ya configurado.


Mesh to scene
figura 8. Añadimos nuestro mesh a la escena

Al arrastrar el modelo a la escena, si nos fijamos en el Inspector, vemos que ya tiene un componente del tipo Animator. Seleccionamos en Avatar, el que ha creado en el paso anterior y veremos que no tiene asignado ningún controller.


Avatar created
figura 9. Asignamos el Avatar a nuestro mesh

En la carpeta de Animations que creamos previamente, pulsaremos botón derecho del ratón y crearemos un Animation Controller con el nombre que queramos. Seleccionamos el mesh del personaje en la jerarquía para ver sus propiedades en el Inspector y le asignaremos el nuevo Animator Controller.


Animation Controller
figura 10. Creando el Animator Controller

Es importante asegurarnos de configurar nuestros archivos de animaciones como hicimos con el Mesh, en Humanoid.


Animations Humanoid
figura 11. Configuramos las animaciones como Humanoid

En el caso del Avatar de las animaciobes, le pondremos a las 3, que copie de otro Avatar y seleccionaremos el que se creó con el Mesh. Así no habrá nunca problemas.


Animations Copy Avatar
figura 12. Configuramos Avatares de animaciones en Copy

Sobre la ventana de escena o Game, seleccionamos la pestaña Animator y arrastramos a ella la animación de Walking básica, la primera que descargamos. Esto creará un rectángulo con el nombre de dicha animación y la pondrá por defecto con una flecha desde Entry. De este modo se indica cual es la animación que se activa al iniciar el juego.


Walking to Animator
figura 13. Añadimos animación de Walking al Animator

Si pulsamos Play, podremos ver ya como nuestro personaje camina. Posiblemente solo realice la animación una vez y pare. Para hacer que el ciclo de andar se repita, debemos seleccionar la animación en la carpeta de Animations, ir a la pestaña Animation y marcar Loop. Esto se suele hacer con las animaciones de Idle ya que para caminar habrá que pulsar algún botón, tecla o dirección, pero para esta prueba, no usamos scripts por lo que yo lo pongo como Loop para poder mostraros el resultado final.


Play Walking
figura 14. Resultado de animación base de andar

Ahora entraremos realmente en lo nuevo, en la ventana de Animator, podemos ver que nuestra animación de Walking fue arrastrada en un Layer que viene por defecto como Base Layer. Pulsando en el signo +, crearemos 2 nuevos Layers que llamaremos como queramos, en mi caso Rifle y Gun. Además, creamos en la carpeta Animations una máscara. Pulsamos botón derecho del ratón dentro de dicha carpeta y buscamos Avatar Mask. Le damos nombre o lo dejamos así.


Adding Layers and Avatar Mask
figura 15. Añadiendo Layers y la Máscara de avatar

Configuramos los 2 nuevos Layers. Pulsamos sobre la rueda dentada o tuerca a la derecha de cada Layer y le asignamos el nuevo Avatar Mask.


Layer Setting
figura 16. Configurando los Layers con el nuevo Avatar Mask

Tenemos que seleccionar que parte se animará y cual no, cuando marquemos los Layers. En este caso, la máscara creada nos vale para ambos Layers, ya que en ambos casos necesitaremos marcar la parte superior del cuerpo en verde y la inferior en rojo, pero no siempre será así. Imaginemos que solo queremos animar 1 brazo y en otro Layer 2 brazos. Habrá que crear varias máscaras. Para marcar las zonas, seleccionamos nuestra máscara o Avatar Mask dentro de la carpeta Animations. En el inspector, desplegamos Humanoid y nos saldrá un esquema de las partes del modelo donde seleccionaremos no solo las partes, sino los IK y el Root del suelo.


Configuring Avatar Mask Humanoid parts
figura 17. Selección de partes afectadas en las animaciones en Avatar Mask

Ahora arrastramos la animación de Walking Gun como hicimos con la Walking básica, con la diferencia de que ahora, esta nueva animación irá en el Layer de Gun de nuestro Animator.


Walking Gun to Gun Layer
figura 18. Añadiendo la animación al Layer de Gun

Repetimos el proceso para la animación de Walking Rifle en su correspondiente Layer.


Walking Rifle to Rifle Layer
figura 19. Añadiendo la animación al Layer de Rifle

Con esto, ya estaría completa la introducción al uso de Layers y Mask. A continuación, os muestro el resultado y su funcionamiento. Como podéis ver, pulsamos Play para que nuestra animación base de Walking se inicie (de ahí el tinte rojo de la ventana). Si accedemos a los Layers en el Animator, pulsando sobre la rueda dentada o tuerca, veremos las opciones de dicho Layer. Si variamos el slider de 0 a 1 en una de los Layers (ojo, solo 1, el otro u otros deberán estar a 0, al menos si coinciden en partes marcadas en el Avatar Mask o no se reflejará el resultado), veremos como la animación base va cambiando de forma que se adapta a la del Layer. Esto como es lógico, se hará después por código de modo que si por ejemplo equipamos el rifle, ponemos a 1 el Layer de Rifle y a 0 el de Gun y así todas las animaciones base se adaptarán a nuestro agarre del Rifle y lo mismo con la Pistola.

Como imaginaréis, para juegos de tipo Survival como el nuestro, RPG o FPS, es muy práctico.


Tutorial Demostration
figura 20. Resultado final y pruebas

Espero que os haya sido útil.


Y sin más me despido, espero que os haya gustado. Iré subiendo más tutoriales del estilo y de todo lo que me parezca curioso o interesante de practicar y aprender. Un saludo y gracias 👍

Si te ha gustado y aún no lo has hecho, puedes suscribirte al blog por correo o siguiéndome en Twitter y así te avisaré con cada nuevo artículo o tutorial para que estés al día.

Categorías: Tutoriales

0 commentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Translate »