contacto[arroba]digitallearning.es
Personaje Make Human

Creación de personaje con MakeHuman y Blender para Unity 3D

Post Series: Conociendo Unity3D (VI)

En esta publicación describiremos los pasos para la creación, modelado, diseño e implementación de un personaje con forma humana en un juego Unity 3D.

El personaje lo crearemos con el software MakeHuman, para posteriormente modificar las texturas seleccionadas con el software de diseño gráfico Blender. Con el diseño del personaje ya realizado, lo añadiremos  a un proyecto de Unity , asignándole animaciones prediseñadas.

Esta explicación la complementaremos en esta misma serie de tutoriales con otras publicaciones (incluyendo varios videos) mostrando brevemente estos programas, así como otros aspectos que son necesarios tener en cuenta en Unity cuando creamos un personaje (mallas, articulaciones, físicas).

No pretenden ser descripciones exhaustivas sobre este proceso de creación de personajes, sino una visión general para que conozcas el proceso y los elementos involucrados.

Mucho menos, se tratan de tutoriales sobre estas herramientas de diseño 3D de las que ya te citábamos documentación sobre ellas:

  • Make Human es relativamente fácil de utilizar por ser una herramienta más específica.
  • Blender es un conjunto de aplicaciones mucho más potente, y aunque aquí lo utilizamos para una cuestión puntual, tiene muchas más posibilidades. Como mencionamos en esa publicación anterior, te recomendamos el curso online de Diseño 3D con Blender que organizamos con Joaquín Herrera, para empezar a conocer y trabajar con este software.

Para desarrollar este proyecto, que denominaremos PersonajeUnity, además de tener instalados lógicamente las aplicaciones 3D Make Human y Blender (en este ejemplo se empleó la versión 1.0.2 y la versión 2.72b respectivamente. ) será necesario el Paquete «Raw Mocap Data» para la implementación de animaciones en el personaje con Mecanim (completamente gratuita con sólo iniciar sesión): .

Nota: Mecanim es el sistema de animación implementado en Unity, para el control de los movimientos de los personajes. Hablaremos de él en una publicación posterior dentro de esta misma serie de tutoriales.

Imagen que muestra la pantalla del videojuego con el personaje en movimiento.

 

Estructura del proyecto y descripción de  elementos

Aquí tienes una imagen de la estructura del proyecto y a continuación  describimos la creación del personaje y de un escenario básico que nos servirá para situar y probar dicho personaje.

Estructura del proyecto construcción del personaje para unity3D

 

Escenario (Terrain)

Permite agregar paisajes a nuestros juegos. Es posible agregar un objeto «Terrain» a la escena seleccionando en el menú GameObject > 3D Object > Terrain (también se añadirá un activo Terrain correspondiente a la vista del proyecto). Sin embargo, el paisaje inicial será una superficie plana de gran tamaño. Si nos fijamos en el inspector cuando se selecciona el objeto «Mapa», nos proporciona una serie de herramientas que podemos utilizar para crear cualquier características del paisaje.

En el proyecto que nos sirve de ejemplo, se define un escenario sencillo, que proporciona un área de prueba para los diferentes movimientos que realizará el personaje, asignándole una textura (pinchar para ampliar imágen):

Escenario del juego

Personaje

Objeto creado a partir del modelado del personaje con MakeHuman, y su posterior modificación con Blender.

Modelado humanoide realizado con MakeHuman

La creación de un modelo se realiza con su interfaz gráfica que nos permite definir tanto las características generales: género (hombre/mujer), edad, estatura, peso, musculatura y rasgos, como luego los detalles o ‘partes’ de ese modelo: torso, cara, extremidades, asimetría, etc…

El software es muy intuitivo de utilizar a través de su interfaz gráfica. Aparte, puedes consultar su documentación o numerosos videos que puedes encontrar en la red sobre el uso de esta herramienta.

Personaje Make Human

En la imagen se puede apreciar como al asignarle texturas de ropa al modelo, parte de la textura de la piel es visible

Texturación del personaje con Blender

Con Blender es posible solucionar el problema de texturas que mencionábamos en el pié de la imagen anterior. Simplemente debemos seleccionar dentro de la escena la ropa del personaje, seleccionamos en Object Mode que sea de tipo Sculpt Mode, y pulsamos en la opción Tools, y más concretamente en Add, y mediante la herramienta de pincel seleccionada se podrá disminuir o aumentar el grosor de la textura (puedes verlo también en el video que publicamos en el siguiente tutorial).

Exportación/Importación: para la importación de un diseño realizado con MakeHuman a Blender, será necesario en primer lugar exportar el proyecto de MakeHuman con extensión .mhx (MakeHuman Blender exchange). Para ello iremos a la ruta:  Files > Export > Format.

Posteriormente desde Blender, se deberá habilitar la importación de archivos de MakeHuman. Esta tarea se realiza a través de la ruta:
File > User Preferences… > Addons > Import-Export y marcamos la casilla «Import-Export: Import: MakeHuman (.mhx).

Hay una versión más avanzada de este formato de intercambio, mhx2, que puedes ver en este enlace.

Modelado Blender

Diseño Blender

Configurar personaje en Unity 3D

Será necesario exportar el proyecto desde Blender, una vez se haya finalizado su diseño, seleccionando la opción File > Export > Collada (Default)(.dae).

Una vez exportado el proyecto, bastará con arrastrar el archivo almacenado dentro del directorio Assets de la pestaña Project de Unity. En el ejemplo que se muestra en la imagen, se crea una carpeta denominada «PersonajeBlender» donde al añadir el archivo creado, mostrará tanto el personaje como una nueva carpeta denominada «Material» con las texturas utilizadas (el personaje tendrá asignadas unas texturas de color gris):
Texturas para el personaje

A continuación, seleccionaremos el personaje incorporado al proyecto, y dentro de la pestaña «Inspector» seleccionaremos la opción «Rig», e indicando dentro del atributo «Animation Type» que se trata de un objeto «Humanoid».

Posteriormente pulsaremos sobre el botón «Apply«, mostrando un check junto al botón de «Configure» si todo ha funcionado correctamente. En el supuesto de mostrar una cruz, se deberá entrar en la opción de «Configure» y seleccionar «Mapping», y en el desplegable la opción «Automap» (deberán cambiar las zonas en rojo a verde).

Para finalizar se deberá pulsar el botón «Done» (además se puede apreciar como de manera automática se ha creado un nuevo objeto llamado «PersonajeUnityAvatar«):

Configuración Zonas Rig

Rigging: es conveniente definir un proceso muy utilizado para la realización de la tarea anterior. Este proceso se denomina «rigging«, consistente en establecer la lógica de deformación de la maya que construye un cuerpo humanoide, identificando el conjunto de huesos, articulaciones y conexiones que lo forman, para la simulación de movimientos reales.

Una vez ha finalizada la lógica para permitir deformaciones de la maya del personaje, se deberá añadir dicho objeto directamente al escenario del juego, observando que el personaje es totalmente gris.

Para solucionar este problema de incompatibilidad de texturas, simplemente se deben arrastrar de manera individual las texturas almacenadas en la carpeta «textures» del modelado exportado con MakeHuman.

Posteriormente, dentro del gameobject del personaje, se deberán añadir los componentes de «Animator» y un script denominado «Bot Control Script» para la ejecución de movimientos.

En el componente «Animator», y más concretamente en la propiedad «Controller», se referenciará a un controlador de animación (recurso para Mecanim), encargado de establecer las características de los diferentes movimientos del personajes. También será necesario añadir el objeto «PersonajeUnityAvatar» creado en pasos anteriores:

Componente Animator para personaje

Por último mostramos muy esquemáticamente el funcionamiento de Mecanim (ampliaremos en un tutorial y video posterior), desde el cual es posible la modificación de la animación que realiza el personaje en diferentes momentos.

Tendremos quen seleccionar el controlador de la animación para acceder a la vista denominada «Animator«. Esta presentará la lógica de movimientos que puede realizar el personaje, pudiendo seleccionar cualquiera de ellas y modificando la animación, a partir de los recursos descargados:

Animator