Full text
MODELADO Y ANIMACIÓN DE UN PERSONAJE MASCULINO 3D PROYECTO FINAL DE CARRERA Ingeniería Técnica en Diseño Industrial Autor: Jorge Tajada Carbonel Directora: Dra. Eva Cerezo Bagdasari UNIVERSIDAD DE ZARAGOZA
Modelado y animación de un personaje masculino en 3D 2
Modelado y animación de un personaje masculino en 3D 3 Derechos de autor Los derechos de autor de la presente obra pertenecen a Jorge Tajada Carbonel y a la Dra. Eva Cerezo del Departamento de Informática e Ingeniería de sistemas de la Escuela de Ingeniería y Arquitectura de la Universidad de Zaragoza. Queda prohibida la reproducción total o parcial de esta obra, por cualquier medio, sin el permiso de los autores.
Modelado y animación de un personaje masculino en 3D 4
Modelado y animación de un personaje masculino en 3D 5 Agradecimientos A Eva Cerezo por su paciencia, sus consejos y recomendaciones y sobre todo por su tiempo. A Elisa y a Javier por ayudarme tanto y enseñarme tantas cosas de 3D Studio y Maxine. A mi familia y amigos y compañeros de carrera por haberme animado y apoyado tras tanto tiempo realizando el proyecto.
Modelado y animación de un personaje masculino en 3D 6 1. Introducción al proyecto. ......................................................................................... 9 1.1. Ámbito del proyecto: Grupo GIGA. .................................................................... 9 1.2. Tema del proyecto. .......................................................................................... 10 1.3. Objetivos del proyecto. .................................................................................... 11 1.3.1. Objetivo principal. .................................................................................... 11 1.3.2. Objetivos secundarios. ............................................................................. 11 2. Documentación ...................................................................................................... 13 2.1. Personajes virtuales. ........................................................................................ 13 2.1.1. El modelado .............................................................................................. 13 2.1.2 Estructura ................................................................................................. 17 2.1.3 Animación ................................................................................................. 22 2.2 El motor gráfico Maxine................................................................................... 31 2.3.1 Descripción general .................................................................................. 31 2.3.2 Generación de actores para Maxine ........................................................ 32 2.3.3 Carga de personajes ................................................................................. 33 2.3.4 Interacción con el usuario ........................................................................ 35 2.3.5 Modelo y aplicaciones de Maxine ............................................................ 36 3. Trabajo realizado .................................................................................................... 39 3.1. Punto de partida: el modelo Dave ................................................................... 39 3.2. Adaptación del modelo al motor gráfico Maxine ............................................ 41 3.2.1 Modificación de la malla................................................................................ 41 3.2.2 Modificación de las texturas ......................................................................... 46 3.2.3 Resumen modificaciones realizadas. ............................................................. 47
Modelado y animación de un personaje masculino en 3D 7 3.3. Animación del cuerpo ...................................................................................... 49 3.3.1 Animaciones básicas del cuerpo .................................................................... 49 3.3.2 Poses y expresiones del cuerpo ..................................................................... 59 3.4. Animación facial ............................................................................................... 74 3.4.1 Construcción de los huesos faciales .............................................................. 74 3.4.2 Emociones faciales. ....................................................................................... 79 3.4.3 Visemas .......................................................................................................... 86 4. Resultados .............................................................................................................. 91 4.1. Reconstrucción del modelo ............................................................................. 91 4.2. Animación del cuerpo ...................................................................................... 92 4.3. Expresiones y poses ......................................................................................... 98 4.4. Visemas .......................................................................................................... 102 5. Conclusiones y trabajo futuro .............................................................................. 103 5.1. Conclusiones .................................................................................................. 103 5.2. Trabajo futuro ................................................................................................ 104 6. Bibliografía ............................................................................................................ 105 Anexo 1: Trabajo con Boy ............................................................................................. 107 Anexo 2. Desarrollo temporal del proyecto ................................................................. 113 Anexo 3. Consideraciones generales sobre la creación de modelos para Maxine ...... 115
Modelado y animación de un personaje masculino en 3D 8
Modelado y animación de un personaje masculino en 3D 9 1. Introducción al proyecto. 1.1. Ámbito del proyecto: Grupo GIGA. El GIGA Grupo de Informática Gráfica Avanzada, es un grupo de investigación del Departamento de Informática e Ingeniería de sistemas (DIIS) de la Universidad de Zaragoza que realiza tareas en ámbitos diversos como la investigación, la innovación, el desarrollo y la docencia. Nació a comienzos de los 90 de la mano del profesor Francisco Serón y es uno de los grupos fundadores del Instituto de Investigación en ingeniería de Aragón (I3A). A lo largo de estos años ha contribuido a la formación de especialistas y profesionales en el ámbito de la Informática Gráfica y ha participado en numerosos proyectos de transferencia y de colaboración con empresas e instituciones tanto aragonesas como nacionales e internacionales. El GIGA es un grupo de investigación multidisciplinar cuyo área inicial y fundamental de trabajo ha sido la Simulación Realista de la Iluminación, con el tiempo ha ido diversificando sus áreas de interés y campos de trabajo centrándose también en: realidad virtual y aumentada, simulación de fenómenos naturales, humanos virtuales, animación, fotografía computacional e interacción persona-ordenador. Este proyecto se enmarca dentro del área de creación y manipulación de humanos virtuales. La representación de humanos virtuales en tiempo real supone un gran esfuerzo de integración de áreas tan diversas como la animación de figuras humanas, la animación facial, el procesamiento de lenguaje natural, el reconocimiento y la síntesis de voz o la comunicación no verbal. En los últimos años el GIGA ha desarrollado Maxine, un potente motor de animación basado en librerías open source, que permite la gestión en tiempo real de escenas y humanos virtuales 3D. Estos humanos virtuales suponen una nueva forma de interacción con el usuario y pueden utilizarse en entornos muy diversos como el aprendizaje, la terapia o el marketing. El propio grupo GIGA lleva unos años trabajando en su uso en aplicaciones de educación y domóticas.
Modelado y animación de un personaje masculino en 3D 16 Los materiales pueden ser desde simples colores hasta mapas de imágenes con distintas texturas (ver imagen 2.4). Para que estos mapas encajen se utiliza la herramienta Unwrap UVW que permite superponer una imagen 2D sobre el modelo 3D. La herramienta crea un sistema de coordenadas UV en la imagen que se asocia a las coordenadas XYZ del modelo 3D, así se pueden usar mapas como el de la imagen que posee la textura de las distintas partes de la cara. Imagen 2.4 Ejemplo de una textura por coordenadas UV
Modelado y animación de un personaje masculino en 3D 17 2.1.2 Estructura Todo personaje virtual, al igual que uno real, necesita un esqueleto para moverse. El esqueleto está formado por huesos que se vinculan unos a otros de forma que se pueden mover y rotar. Para crear este esqueleto el software 3D Studio Max ofrece dos formas de crearlos: Hueso a hueso: Consiste en generar cada hueso manualmente. Con el comando Create Bone se van creando uno a uno los huesos de la forma que se desee. Estos huesos creados manualmente se vinculan automáticamente formando una cadena de huesos, se vinculan formando un tipo de vinculación llamado “padre e hijo” en la que el hueso hijo es arrastrado por el movimiento del hueso padre. También se pueden vincular dos o más cadenas para formar una estructura vinculada compleja que formará una jerarquía. La jerarquía es la manera en que establecemos los vínculos entre las partes, normalmente tiene forma de árbol en la que la raíz es la cadera (ver imagen 2.5). Si la jerarquía está bien al mover la raíz se debería mover todo el esqueleto. Imagen 2.5. Gráfica de jerarquías, en ella se ven las vinculaciones padre e hijo que debe tener cada hueso
Modelado y animación de un personaje masculino en 3D 18 Sistema biped: Automáticamente con 3D Studio Max (ver imagen 2.6), se puede crear un esqueleto virtual completo ya vinculado. El programa permite modificar parámetros como sexo y altura para que el bípedo se adapte a las necesidades requeridas. Imagen 2.6. 3D Studio Max: Ejemplo de uno de los esqueletos automáticos Biped Se suele elegir entre uno de estos dos métodos, pero en algunos casos (como el nuestro) es necesario combinarlos; el biped para crear el esqueleto del cuerpo y un esqueleto creado manualmente para la animación facial del personaje, ya que el biped no proporciona huesos faciales sino un cráneo completo.
Modelado y animación de un personaje masculino en 3D 19 Una vez que se tiene el esqueleto y la malla, el siguiente paso antes de animar el personaje es el rigging. Esto consiste en asociar el esqueleto con la malla para que al mover el esqueleto la malla lo haga correctamente, ver imagen 2.7. Imagen 2.7. Esquema de creación de un personaje virtual, rigging
Modelado y animación de un personaje masculino en 3D 20 Es un proceso costoso ya que hay que asociar uno a uno todos los vértices de la malla a sus correspondientes huesos dándoles un peso relativo que dirá cuan influenciados están por cada hueso. 3D Studio Max dispone de dos técnicas o herramientas: el modificador skin y el modificador physique. Skin Este modificador es sencillo de usar comparado con physique y con él se obtienen buenos resultados. Para realizar la asociación hay que darle a cada vértice de la malla un peso, un valor numérico específico que varía desde 1.0 y 0.0 (valores máximo y mínimo respectivamente) según la influencia que tenga el hueso sobre ellos. Es necesario un retoque manual que hace que sea un proceso al que hay que dedicar mucho tiempo, ya que una malla puede llegar a tener un número muy elevado de vértices (ver imagen 2.8). Imagen 2.8. 3D Studio Max. Representación de los pesos por colores en la malla de un personaje
Modelado y animación de un personaje masculino en 3D 21 Physique Es un proceso más complicado que skin pero da mejor resultado por lo que suele ser utilizado en modelos más complejos. Este método también trabaja sobre los vértices pero en este caso se asocian usando envoltorios (envelopes), ver imagen 2.9. Imagen 2.9 3D Studio Max: Representación del envoltorio y de pesos por colores del Physique en un modelo. La asignación se realiza en este caso áreas completas de la malla, el envoltorio consta de dos capsulas por cada hueso y a los vértices que quedan dentro de ellas se les da automáticamente un peso relativo; el inconveniente es que esto no da un gran control sobre los pesos y es necesario un retoque manual a posteriori. Una vez utilizado, el modificador muestra el grado de vinculación de cada vértice con una escala de colores¸ al igual que skin. El gran inconveniente de Physique es que da algunos problemas cuando el personaje se usa en otras aplicaciones fuera de 3D Studio Max. Es por esto que en nuestro caso no ha podido ser utilizado, al ser incompatible con Maxine.
Modelado y animación de un personaje masculino en 3D 22 2.1.3 Animación El movimiento del cuerpo de un personaje proporciona pistas obvias de lo que está haciendo o sintiendo. La animación del cuerpo no solo permite transmitir acción, sino también emoción y actitud. Métodos de animación Una vez que se tiene todo el modelo definido toca animarlo, existen dos técnicas de animación, la basada en el movimiento de los huesos y en la deformación de la malla. Hoy en día se utilizan ambas; lo habitual es usar la primera de ellas para el cuerpo y la animación mediante morpher para animar la cara. Animación esqueletal La animación esqueletal se basa en la animación del esqueleto al que hemos asignado la malla por lo que al moverlo se deforma o traslada de manera que los vértices siguen sus movimientos. Imagen 2.10 Esquema de animación por puntos clave
Modelado y animación de un personaje masculino en 3D 23 En este tipo de técnica, la animación se crea modificando la posición de los huesos en el tiempo. Solo hay que dar valores de posición y orientación de los huesos en ciertos fotogramas clave o key frames (imagen 2.10) el programa interpola los valores de la posición del esqueleto entre los fotogramas clave (suele ser una interpolación lineal). Animación por deformación de la malla Es un tipo de animación perfecta para las expresiones faciales y animaciones de hablar de personajes pero no puede ser utilizado cuando el modelo va a ser utilizado en tiempo real. Esta técnica se basa en la deformación de la malla mediante la manipulación de los vértices de esta. Es necesario crear varias caras con el mismo número de vértices; a estas caras se les llama morphs targets, ver un ejemplo en la imagen 2.11. Imagen 2.11 Ejemplo de biblioteca de caras para su uso en animación facial por deformación de malla
Modelado y animación de un personaje masculino en 3D 24 También hay que trabajar con key frames pero en este caso se cargan las distintas caras y el programa interpola la posición de los vértices del paso de una cara a otra. En nuestro caso, por requerimiento de Maxine, se va a hacer uso de animación esqueletal tanto para el cuerpo como para la cara. En los personajes se suele trabajar por separado la animación corporal y la facial. La animación corporal es la referente a cualquier movimiento del cuerpo de personaje exceptuando la cara. La mayoría de estos tipos de movimientos está basado en rotación de los huesos por lo que suele usarse animación esqueletal. En el caso de la animación facial en cuenta de moverse huesos lo que genera los cambios en la cara es el movimiento de músculos (exceptuando la mandíbula) por lo que generalmente se utiliza la animación por deformación de malla. Además los movimientos de la cara son muy pequeños, se basan en un estado inicial y uno final en el que se muestra la nueva expresión. El resto de valores se deja que los calcule el ordenador generando un resultado bastante bueno. Para la animación facial son necesarios al menos tres tipos de movimientos para que la animación sea natural: movimiento de cejas que dan mucha expresividad, movimiento de la boca para dotar al modelo de la capacidad de hablar y parpadeo (en nuestro caso no ha sido posible). También se puede añadir movimiento a los pómulos que añaden expresividad. En la animación facial están incluidas las expresiones y los visemas que dotan al personaje de habla (imagen 2.12).
Modelado y animación de un personaje masculino en 3D 25 Imagen 2.12 Ejemplo de visemas Animación en 3D Studio Max 3D Studio Max ofrece herramientas para facilitar la animación de personajes. Cabe destacar la animación con cinemática inversa y la animación mediante huellas de Character Studio. Ambas se basan en la animación por key frames. La animación mediante huellas crea unas huellas que simulan los pasos que el personaje va a seguir. Así se pueden crear ciclos de caminar, correr o incluso saltar modificando los parámetros. El único requisito es que el esqueleto debe haber sido creado de forma automática (biped). En la cinemática inversa solamente es necesario indicar la posición del último hueso de la cadena (por ejemplo, una mano) y el ordenador calcula automáticamente la posición del resto de huesos de la cadena (brazo). Sin embargo la principal fuente de animación corporal para este proyecto ha sido la captura de movimiento.
Modelado y animación de un personaje masculino en 3D 32 Imagen 2.18 Maxine: Representación de un entorno virtual 2.3.2 Generación de actores para Maxine Como se ha mencionado antes, Maxine está basado en librerías públicas, en el caso de la animación utiliza la librería Cal3D, que establece su propio formato para definir actores entonces se ha tenido la obligación de utilizar ese formato pero no dispone de herramientas de modelado y animación 3D por lo que se han tenido que utilizar una serie de plugins de exportación creados específicamente para algunas aplicaciones de modelado y animación, en nuestro caso 3D Studio Max. En el esquema de la imagen 2.19 se puede observar el proceso de generación de actores para su uso en la aplicación Maxine. Primero se crea el personaje en 3D Studio Max, donde se modelan y se crean las animaciones del personaje, a continuación se utiliza el plugin de exportación Cal3D, que divide la exportación en varios ficheros de datos separados en esqueleto, mallas, materiales y animaciones; por ultimo se carga en Maxine.
Modelado y animación de un personaje masculino en 3D 33 Imagen 2.19 Esquema del proceso de generación de personajes para su uso en Maxine Dentro de Maxine los actores tienen la capacidad de ejecutar y mezclar animaciones, sintetizar voz en tiempo real a partir de texto escrito, reflejar emociones y la sincronización labial es realizada automáticamente. 2.3.3 Carga de personajes Una vez que se ha exportado el personaje a Cal3D, es necesaria la generación de un archivo de texto, que almacena todos los datos relativos al personaje (esqueleto, mallas, materiales, animaciones,…). Este fichero de script tiene extensión .lua y su ejecución permite la carga del personaje en Maxine (imagen 2.20)
Modelado y animación de un personaje masculino en 3D 34 Imagen 2.20 Ejemplo de un archivo de carga de un personaje en Maxine Una vez cargado el personaje en Maxine se puede lanzar las animaciones, pararlas y mezclarlas. Para ello se usan comandos en lua, como “startAction”, “stopAction” o “startPose”.
Modelado y animación de un personaje masculino en 3D 35 2.3.4 Interacción con el usuario La interacción del usuario en Maxine se hace a través de dispositivos de entrada y salida que se pueden ver en la imagen 2.21. Imagen 2.21 Grafico sobre el funcionamiento de Maxine, y la interacción con el usuario La carga de objetos, personajes y sus animaciones se hace mediante comandos de texto en tiempo de ejecución (scripts). Estos comandos, en lenguaje LuaBind, pueden ser introducidos en cualquier momento por teclado o a través de ficheros de scripts (ver ejemplo en imagen 2.25). Una vez cargado el personaje el usuario puede interaccionar también con él en lenguaje natural gracias a un reconocedor de voz y a un modulo de conversación desarrollado en Maxine.
Modelado y animación de un personaje masculino en 3D 36 2.3.5 Modelo y aplicaciones de Maxine A continuación se muestran los modelos usados en Maxine y ejemplos de aplicaciones en las que han sido utilizados. Max: Cabeza de hombre como tutor en aplicaciones educativas (imagen 2.22). Imagen 2.22 Uso de Max en tutoriales de informática gráfica. Maxine: Modelo de una mujer robot que es utilizada presentadora virtual (ver imagen 2.23). Imagen 2.23 Aplicación del modelo Maxine como presentadora virtual
Modelado y animación de un personaje masculino en 3D 37 Boy: Modelo de niño utilizado como guía en juegos infantiles (ver imagen 2.24). Imagen 2.24 Aplicación educativa para educación especial (modelo Boy) Pilar: Modelo femenino utilizado como intérprete de lengua de signos (ver imagen 2.25). Imagen 2.25 Modelo Pilar usada en la aplicación de traducción de español a LSE (lengua de signos española)
Modelado y animación de un personaje masculino en 3D 38
Modelado y animación de un personaje masculino en 3D 39 3. Trabajo realizado 3.1. Punto de partida: el modelo Dave El grupo Giga ya posee otros modelos, como se ha explicado antes, preparados para ser aplicados en Maxine: varios personajes femeninos, niños y una cabeza de un hombre; pero ningún modelo masculino completo. Por eso el grupo adquirió en Internet el modelo Dave. El modelo Dave original tiene unas especificaciones (ver tabla 3.1) que lo hacen compatible para su trabajo en Maxine. Tabla 3.1 especificaciones del Dave original El modelo posee varios paquetes de texturas para cambiar su apariencia, tanto su peinado como su vestuario (ver imagen 3.1)
Modelado y animación de un personaje masculino en 3D 40 Imagen 3.1 Dave con sus varios vestuarios y peinados
Modelado y animación de un personaje masculino en 3D 41 3.2. Adaptación del modelo al motor gráfico Maxine Lo primero que se hizo fue comprobar el rigging. Para ello, se cargó en el esqueleto biped que venía con el modelo unas capturas de movimiento de las bibliotecas del grupo GIGA. Tras comprobar que el rigging corporal estaba bien hecho se exportó y cargó en Maxine. Antes de empezar a animar el modelo, fue necesaria una prueba de carga en Maxine. Para ello, sabiendo los requisitos que necesita Maxine, como número reducido de polígonos y nada de canal alfa en texturas, se comenzó a simplificar el modelo reduciendo al máximo el número de polígonos. A continuación se detallan las modificaciones llevadas a cabo para adaptar el modelo. 3.2.1 Modificación de la malla Inicialmente el modelo tenía las siguientes mallas: cuerpo, pelo, ojo derecho, ojo izquierdo, mandíbula superior, mandíbula inferior, camiseta, pantalón con cinturón y zapatos. Para reducir el número de polígonos se desactivó el modificador TurboSmooth. Cuerpo La malla del cuerpo incluía la cabeza, las pestañas y el cuerpo propiamente dicho. El problema surgió con el material asociado a esa malla, ya que era una textura compuesta, así que se dividió la malla en tres las tres partes diferentes (cabeza, pestañas y cuerpo) como se ve en la imagen 3.2
Modelado y animación de un personaje masculino en 3D 48 Tabla 3.2 Estado inicial del personaje y modificaciones realizadas. Modelo comprado Modificado en el proyecto Observaciones Huesos cuerpo Si Si Algunos estaban bloqueados Huesos en la cara No Si Necesita todos los huesos de la cara y la jerarquía entre ellos Malla Cuerpo Si Si Eliminación de caras innecesarias Pelo Si No - Vestuario Si Si Eliminación de objetos problemáticos Ojos y mandíbula Si Si Modificación de malla Rigging Si Si Corrección de algunos detalles Texturas Cuerpo Si No - Pelo Si Si Eliminación de transparencias Vestuario Si No - Ojos y mandíbula Si Si Eliminación de transparencias
Modelado y animación de un personaje masculino en 3D 49 3.3. Animación del cuerpo El esqueleto biped era correcto y el rigging funcionaba correctamente tanto en 3D Max como en Maxine, así que se procedió a cargar y probar las capturas de movimiento que se habían grabado con anterioridad y que el Grupo GIGA posee para su uso en Maxine. 3.3.1 Animaciones básicas del cuerpo Las capturas de movimiento habían sido grabadas por una mujer por lo que los movimientos eran demasiado femeninos para un modelo masculino, así que tras cargarlos y probarlos se modificaron para que fueran movimientos más adecuadas al modelo. Para cargar una captura de movimiento (archivo.bip) hay que seleccionar el esqueleto biped y en herramientas de motion cargar un mocap como se puede observar en la imagen 3.10. Es aconsejable usar la opción de reducir el número de fotogramas clave (imagen 3.11) para que sea más sencilla su modificación. Imagen 3.10 3D Studio Max. Cargando una captura de movimiento
Modelado y animación de un personaje masculino en 3D 50 Imagen 3.11 3D Studio Max: Parámetros de conversión de capturas de movimiento. Gracias a las capturas se han podido generar unos movimientos básicos necesarios para poder utilizar el modelo en aplicaciones diversas. Las animaciones realizadas son: Discurso: El modelo mueve los brazos y la cabeza como para que al “hablar” parezca un movimiento más realista como se muestra en la imagen 3.12. Al estar grabado por una captura de una mujer el movimiento de las manos era demasiado exagerado para un hombre por lo que se modificó la animación en los frames en los que las manos no estaban en la posición deseada.
Modelado y animación de un personaje masculino en 3D 51 Imagen 3.12 Modelo en posición de discurso (key frames seleccionados en la barra de tiempo) Boca: Se creó esta animación con dos objetivos: probar si funcionaba el hueso de la mandíbula que tenía el propio modelo en maxine y también fue muy útil para comprobar si las texturas de los dientes y lengua del modelo se habían cargado correctamente en el motor gráfico maxine, ver imagen 3.13. Imagen 3.13 Modelo cargado en Maxine con la boca abierta y las texturas correctas.
Modelado y animación de un personaje masculino en 3D 52 Andar/giros: el modelo camina de lado a lado, como se ve en la imagen 3.14, y gira para volver por su camino y así sucesivamente. Inactivo: El modelo aparentemente quieto, pero como ocurre en la vida real una persona nunca está completamente quieto: existen pequeños movimientos involuntarios que se realizan sin darse cuenta, como se ve en la imagen 3.15. Imagen 3.14 Modelo caminando Imagen 3.15 Modelo inactivo, muestra pequeñas variaciones de movimientos involuntarios (movimiento de cadera y hombros)
Modelado y animación de un personaje masculino en 3D 53 Despedir: el modelo agita la mano para despedirse, como se ve en la imagen 3.16. Esta captura recordaba demasiado al movimiento de una mujer por lo que se modificaron los frames necesarios para hacer el movimiento mas apropiado para un modelo masculino. Imagen 3.16 El modelo se despide con la mano Duda: el modelo eleva los hombros y mueve la cabeza en señal de duda. Esta captura solo dio un problema en el modelo y era que la zona de los hombros y cuellos se deformaba al levantar los huesos de la clavícula. Para solucionarlo se modificó la animación suavizando el movimiento y disminuyendo la altura de la elevación de los hombros como se observa en la imagen 3.17. Imagen 3.17 Modelo en postura de duda antes y después de haber modificado la posición de los hombros.
Modelado y animación de un personaje masculino en 3D 54 No: El modelo niega con la cabeza. El resto del cuerpo no permanece completamente inmóvil, no es una animación únicamente del cuerpo hacia arriba, se mueven los brazos como si fuera de forma involuntaria también como se observa en la imagen 3.18. Imagen 3.18 Modelo negando con la cabeza, se puede apreciar pequeños movimientos en los hombros también Estornudo: El modelo se tapa la cara con la mano para estornudar y mueve la cabeza al hacerlo. El problema con esta captura fue que el modelo se atravesaba la cara con la mano al estornudar, como se ve en la imagen 3.19, por lo que fue necesario modificar la animación. Se modificó la posición de la mano y se alejó de la cara para que no se chocaran al estornudar (imagen 3.20). Imagen 3.20 La mano se ha alejado para evitar que se atraviese la cara Imagen 3.19 El modelo se atraviesa la cara con la mano al estornudar
Modelado y animación de un personaje masculino en 3D 55 Cambio de peso: El modelo, apoyado sobre una pierna, cambia el peso de su cuerpo hacia la otra pierna como se ve en la imagen 3.21. Es un movimiento casi involuntario que se realiza al estar esperando o inactivo y así descansar y estar más relajado. Imagen 3.21 modelo en varias posiciones con el peso apoyado en ambas piernas Brazos detrás: Mueve los brazos y los coloca detrás de la espalda. El problema que surgió con esta animación fue que los brazos se atravesaban por detrás con la espalda y entre ellos, y los dedos de la mano no quedaban bien entrelazados, al ser muy difícil de corregir se opto por separar las manos como se ve en el detalle de la imagen 3.22.
Modelado y animación de un personaje masculino en 3D 56 A continuación se muestra una tabla resumen (tabla 3.3) con las animaciones realizadas. Imagen 3.22 Modelo con las manos en la espalda y detalle de las manos separadas para no atravesarse.
Modelado y animación de un personaje masculino en 3D 57 Observaciones Discurso Animación demasiado femenina Caminar Animación demasiado femenina Inactivo Duda Animación demasiado exagerada Despedir Animación demasiado femenina
Modelado y animación de un personaje masculino en 3D 64 Emoción corporal ENFADO Puntos MPEG-4 Valores Pelvis 0º Spine 4 (Abdomen) 0º Spine 3 (Columna) 14º Spine 2 (Cuello) 17º Spine 1 (Cabeza) 8º Right arm 1 & Left arm 1 (hombros) Rotación * Giro** 6º 45º Right arm 1 & Left arm 1 (codos) Dcha Izq 90º 80º Right arm 2 & Left arm 2 (manos) Dcha Izq 15º Right hand & Left hand (dedos) Cerrados Right leg 1 & Left leg 1 (corvas) Dcha Izq 0º 10º Right leg 2 & Left leg 2 (pies) Dcha Izq - Hacia delante Nota: Todos estos valores en grados están referidos a las rotaciones de los huesos. Se toman los valores positivos cuando la rotación es hacia delante. *Es entendida como la rotación de los hombros tomando como punto de giro las clavículas, así se puede rotar hacia arriba (positivo) o hacia abajo (negativo) **Es el giro del hueso sobre sí mismo, si le giro es hacia delante el valor es positivo. Tabla 3.5 Descripción de la emoción enfado en función de los parámetros de MPEG-4.
Modelado y animación de un personaje masculino en 3D 65 Para la emoción de asco se ha tenido en cuenta lo que conlleva una reacción de repulsión: peso hacia atrás del cuerpo, giro de cadera, las manos por delante del cuerpo a modo de barrera… en este caso se han seguido los valores dados de los estudios ergonómicos (apartado 2.2.2. estándar de animación) pero, al igual que ocurría con la emoción de tristeza no dan valores para manos y dedos. Como la colocación de los brazos está a modo barrera, se han colocado las manos acorde a ellos, con los dedos extendidos y las palmas abiertas (la imagen 3.26). Imagen 3.26 Emoción de asco. Muestra aversión echándose hacia atrás, girando la cabeza y utilizando sus brazos como barrera. Los valores de los grados de libertad se muestran en la tabla 3.6
Modelado y animación de un personaje masculino en 3D 66 Emoción corporal ASCO Puntos MPEG-4 Valores Pelvis 6º Spine 4 (Abdomen) 20º Spine 3 (Columna) 0º Spine 2 (Cuello) 0º Spine 1 (Cabeza) -15º Right arm 1 & Left arm 1 (hombros) Rotación * Giro** 11º 0º Right arm 1 & Left arm 1 (codos) Dcha Izq 55º 65º Right arm 2 & Left arm 2 (manos) Dcha Izq -30º - 50º Right hand & Left hand (dedos) Abiertos Right leg 1 & Left leg 1 (corvas) Dcha Izq 0º 11º Right leg 2 & Left leg 2 (pies) Dcha Izq - Hacia atras Nota: Todos estos valores en grados están referidos a las rotaciones de los huesos. Se toman los valores positivos cuando la rotación es hacia delante. *Es entendida como la rotación de los hombros tomando como punto de giro las clavículas, así se puede rotar hacia arriba (positivo) o hacia abajo (negativo) **Es el giro del hueso sobre sí mismo, si le giro es hacia delante el valor es positivo. Tabla 3.6 Descripción de la emoción asco en función de los parámetros de MPEG-4.
Modelado y animación de un personaje masculino en 3D 67 Para la emoción de miedo, imagen 3.27, se han encogido los hombros y el cuerpo en general, acercando brazos, doblando rodillas… pose que toma el personaje para sentirse mas “protegido”. Imagen 3.27 La pose de miedo: el personaje se encoje y se echa para atrás. Los valores de los ángulos se pueden ver en la tabla 3.7.
Modelado y animación de un personaje masculino en 3D 68 Emoción corporal MIEDO Puntos MPEG-4 Valores Pelvis 10º Spine 4 (Abdomen) 0º Spine 3 (Columna) 10º Spine 2 (Cuello) 30º Spine 1 (Cabeza) 12º Right arm 1 & Left arm 1 (hombros) Rotación * Giro** 25º 5º Right arm 1 & Left arm 1 (codos) Dcha Izq 70º 65º Right arm 2 & Left arm 2 (manos) Dcha Izq -40º Right hand & Left hand (dedos) Abiertos Right leg 1 & Left leg 1 (corvas) Dcha Izq 22º 24º Right leg 2 & Left leg 2 (pies) Dcha Izq - Hacia delante Nota: Todos estos valores en grados están referidos a las rotaciones de los huesos. Se toman los valores positivos cuando la rotación es hacia delante. *Es entendida como la rotación de los hombros tomando como punto de giro las clavículas, así se puede rotar hacia arriba (positivo) o hacia abajo (negativo) **Es el giro del hueso sobre sí mismo, si le giro es hacia delante el valor es positivo. Tabla 3.7 Descripción de la emoción miedo en función de los parámetros de MPEG-4
Modelado y animación de un personaje masculino en 3D 69 Para la pose de alegría, imagen 3.28, se ha trabajado sobre todo con los brazos y la inclinación hacia atrás de la espalda, la palma de las manos abiertas y los dedos estirados. El valor de los parámetros puede observarse en la tabla 3.8. Imagen 3.28 Emoción de alegría
Modelado y animación de un personaje masculino en 3D 70 Emoción corporal ALEGRIA Puntos MPEG-4 Valores Pelvis 8º Spine 4 (Abdomen) -12º Spine 3 (Columna) -10º Spine 2 (Cuello) 0º Spine 1 (Cabeza) -9º Right arm 1 & Left arm 1 (hombros) Rotación * Giro** 50º 0º Right arm 1 & Left arm 1 (codos) Dcha Izq 5º Right arm 2 & Left arm 2 (manos) Dcha Izq 0º Right hand & Left hand (dedos) Abiertos Right leg 1 & Left leg 1 (corvas) Dcha Izq 0º Right leg 2 & Left leg 2 (pies) Dcha Izq Hacia delante - Nota: Todos estos valores en grados están referidos a las rotaciones de los huesos. Se toman los valores positivos cuando la rotación es hacia delante. *Es entendida como la rotación de los hombros tomando como punto de giro las clavículas, así se puede rotar hacia arriba (positivo) o hacia abajo (negativo) **Es el giro del hueso sobre sí mismo, si le giro es hacia delante el valor es positivo. Tabla 3.8 Descripción de la emoción alegría en función de los parámetros de MPEG-4
Modelado y animación de un personaje masculino en 3D 71 La última pose realizada es la correspondiente a la emoción sorpresa. La colocación de los huesos se hizo siguiendo los estudios ergonómicos vistos en el apartado 2.2.2. pero el resultado obtenido era una pose muy similar a la de alegría, con lo que se variaron algunos de sus parámetros. Uno de los cambios fue la colocación de los brazos y manos, que pasaba de estar por encima de la cabeza (imagen 3.27) a dirigirse hacia la boca colocando las manos una a cada lado de la misma. Los dedos de las manos también se recolocaron a una posición menos abierta. Otro cambio fue la colocación de los pies, se desplazo uno hacia atrás ayudando a compensar el peso de la columna del personaje generada al estar inclinada (imagen 3.29) En la tabla 3.9 se encuentran los datos correspondientes a esta pose.
Modelado y animación de un personaje masculino en 3D 72 Emoción corporal SORPRESA Puntos MPEG-4 Valores Pelvis 0º Spine 4 (Abdomen) -17º Spine 3 (Columna) -12º Spine 2 (Cuello) -6º Spine 1 (Cabeza) -13º Right arm 1 & Left arm 1 (hombros) Rotación * Giro** 10º 0º Right arm 1 & Left arm 1 (codos) Dcha Izq 90º Right arm 2 & Left arm 2 (manos) Dcha Izq 0º Right hand & Left hand (dedos) Abiertos Right leg 1 & Left leg 1 (corvas) Dcha Izq 26º 0º Right leg 2 & Left leg 2 (pies) Dcha Izq Hacia atras - Nota: Todos estos valores en grados están referidos a las rotaciones de los huesos. Se toman los valores positivos cuando la rotación es hacia delante. *Es entendida como la rotación de los hombros tomando como punto de giro las clavículas, así se puede rotar hacia arriba (positivo) o hacia abajo (negativo) **Es el giro del hueso sobre sí mismo, si le giro es hacia delante el valor es positivo. Tabla 3.9 Descripción de la emoción sorpresa en función de los parámetros de MPEG-4
Modelado y animación de un personaje masculino en 3D 73 A continuación una tabla resumen (tabla 3.10) de las expresiones corporales realizadas. Emoción de tristeza Emoción de miedo Emoción de enfado Emoción de alegría Emoción de asco Emoción de sorpresa Tabla 3.10 Resumen de las emociones corporales En el apartado siguiente se muestra el rasgo llevado a cabo para generar las correspondientes expresiones faciales.
Modelado y animación de un personaje masculino en 3D 80 La primera expresión generada es la tristeza (imagen 3.34); lo más destacable de esta emoción es la boca, el descenso de las comisuras de los labios con respecto al centro de los mismos. Pero también es muy importante el matiz de las cejas: el descenso de la parte exterior y que en el centro estén más altas le dan más poder a la emoción que un simple movimiento hacia debajo de la boca, como se ve en la imagen 3.35. Imagen 3.35 Expresión de tristeza generada Imagen 3.36 Representación de tristeza en Artnatomy
Modelado y animación de un personaje masculino en 3D 81 La siguiente emoción realizada es la de enfado. En esta expresión lo más importante son las cejas: que la parte interior de las mismas esté apuntando hacia abajo. Los labios también están separados para que se puedan ver los dientes como símbolo de ira, y los pómulos se han bajado un poco para matizar más los rasgos de la boca. Imagen 3.37 Expresión de enfado generada Imagen 3.38 Representación de enfado en Artnatomy
Modelado y animación de un personaje masculino en 3D 82 La emoción de asco fue especialmente difícil porque es la única expresión que no es simétrica lo que llevó a hacer modificaciones en los huesos faciales y el rigging como se ha mencionado anteriormente. Aquí lo que más destaca es que un lado del labio superior este más levantado que el otro como signo de desprecio. Las cejas también están arqueadas pero con menos intensidad que en la expresión de enfado. Y los pómulos se elevan un poco y se acercan a la nariz para que parezca que frunce la cara un poco. (Imágenes 3.39 y 3.40) Es una expresión difícil de conseguir que gana mucha fuerza si se muestra a la vez que la expresión corporal correspondiente. Imagen 3.39 Expresión de asco generada Imagen 3.40 Representación de asco (desprecio) en Artnatomy
Modelado y animación de un personaje masculino en 3D 83 Para la emoción de miedo se arquean las cejas hacia abajo por los extremos al igual que en la tristeza pero esta vez la boca está abierta. Como se ven en las imágenes 3.41 y 3.42. Imagen 3.41 Expresión de miedo generada Imagen 3.42 Representación de miedo en Artnatomy
Modelado y animación de un personaje masculino en 3D 84 La emoción de alegría siempre se caracteriza por la boca con las comisuras de los labios hacia arriba pero como el resultado no era demasiado real se solucionó abriendo un poco la boca, entonces la boca está realmente sonriendo. Esta emoción se ayuda mucho de las cejas que están levantadas por el centro de cada una, y los pómulos que también se han elevado un poco para darle más brillo a la cara. (Imágenes 3.43 y 3.44) Imagen 3.43 Expresión de alegría generada Imagen 3.44 representación de sonrisa en artnatomy
Modelado y animación de un personaje masculino en 3D 85 Por último, en la emoción de sorpresa también se ha abierto mucho la boca, más que en la emoción del miedo, esta vez las cejas están horizontales pero muy elevadas estirando la cara. Ver imágenes 3.45 y 3.46. Imagen 3.45 Expresión de sorpresa generada Imagen 3.46 Representación de sorpresa en Artnatomy
Modelado y animación de un personaje masculino en 3D 86 3.4.3 Visemas Como ya se ha explicado anteriormente, los visemas son la representación visual de un fonema. Para que una animación de un dialogo sea real son necesarios como mínimo 9 visemas, las cinco vocales y las consonantes se agrupan en cuatro grupos según como colocan los labios: el grupo b, m, p y v; el segundo grupo formado por d, t y n; y ya por separado un visema para la letra f y otro visema para la s. Visemas vocales. Las posiciones que más problemas dieron a la hora de preparar la pose fueron los visemas O y U, y por los que fue necesario cambiar el sistema de esqueleto facial de cuatro huesos (centro de cada labio y comisuras) a cinco huesos (dos en el labio superior, uno en el inferior y uno en cada comisura) para poder cerrar la boca desde los laterales (ver imágenes 3.47 a 3.51).
Modelado y animación de un personaje masculino en 3D 87 Imagen 3.47 El visema “A”, es la vocal más clara por lo que la boca está más abierta Imagen 3.48 El visema “E”, es un poco más cerrado que la “A”
Modelado y animación de un personaje masculino en 3D 88 Imagen 3.49 El visema “I”, la boca esta casi cerrada y las comisuras de los labios se elevan un poco Imagen 3.50 El visema “O”, las comisuras se cierran hacia el centro de la boca formando un círculo Imagen 3.51 El visema “U”, la boca como la O pero más cerrada
Modelado y animación de un personaje masculino en 3D 89 Visemas consonantes Como se ha explicado antes los visemas consonantes están agrupados en cuatro grupos ya que la posición de la boca al pronunciarlos es la misma o muy similar. El primero de todos agrupa los visemas de D, T y N, ver imagen 3.52 Imagen 3.52 Visema correspondiente a los fonemas D, T y N El siguiente visema corresponde a la posición de los labios al pronuncia la letra S (imagen 3.53). Imagen 3.53 Visema correspondiente al fonema de la S
Modelado y animación de un personaje masculino en 3D 96 Imagen 4.9 Animación de reverencia Imagen 4.10 Animación de cambio de peso
Modelado y animación de un personaje masculino en 3D 97 Imagen 4.11 Animación de brazos detrás
Modelado y animación de un personaje masculino en 3D 98 4.3. Expresiones y poses Las seis emociones generadas son las de Ekman: alegría, asco, enfado, miedo, sorpresa y tristeza; y se han conseguido representar tanto expresión facial como corporal. Pero las emociones corporales son mucho más débiles a la hora de transmitir que las faciales, así que se muestran combinadas para ver su efecto en conjunto. Alegría (ver imagen 4.12) Imagen 4.12 Expresión facial de alegría en Maxine y composición de expresión facial y corporal.
Modelado y animación de un personaje masculino en 3D 99 Asco (ver imagen 4.13) Imagen 4.13 Expresión de asco en maxine y composición de expresión facial y corporal. Enfado (ver imagen 4.14) Imagen 4.14 Expresión de enfado en maxine y composición de expresión facial y corporal.
Modelado y animación de un personaje masculino en 3D 100 Miedo (ver imagen 4.15) Imagen 4.15 Expresión de miedo en maxine y composición de expresión facial y corporal. Sorpresa (ver imagen 4.16) Imagen 4.16 Expresión de sorpresa en maxine y composición de expresión facial y corporal
Modelado y animación de un personaje masculino en 3D 101 Tristeza (ver imagen 4.17) Imagen 4.17 Expresión de tristeza en maxine y composición de expresión facial y corporal
Modelado y animación de un personaje masculino en 3D 102 4.4. Visemas Resultados finales de los diferentes visemas vistos en el motor gráfico Maxine (ver imagen 4.18) Imagen 4.18 Recopilación de todos los visemas, en orden: A, E, I, O, U, N, S, F, M.
Modelado y animación de un personaje masculino en 3D 103 5. Conclusiones y trabajo futuro En este apartado se muestran las conclusiones obtenidas tras la realización del proyecto, así como las posibilidades de trabajo futuro que se han detectado. 5.1. Conclusiones El objetivo principal del proyecto era la creación de un personaje virtual masculino, que pudiera ser utilizado en el motor Maxine del grupo GIGA; este personaje debía de estar convenientemente modelado, texturizado y animado y ser computacionalmente ligero. El personaje generado, al que se ha llamado Dave, cumple con todos los requisitos. Para ello ha sido necesario: Retocar la malla del personaje, en especial el cuerpo. Crear un conjunto de huesos para la cara. Modificar el rigging del personaje. Retocar las texturas. Además, se han generado una serie de animaciones, a partir de capturas de movimiento existentes en las bibliotecas del grupo GIGA. También se ha dotado al personaje de una serie de poses para expresar emociones mediante lenguaje corporal; se han creado poses para las seis emociones básicas (alegría, asco, enfado, miedo, sorpresa y tristeza). Se han creado las expresiones faciales correspondientes gracias a los huesos para la cara generadas. Por último, el modelo Dave es capaz de “hablar” gracias a que se han generado los visemas básicos necesarios para poder pronunciar todas las palabras (las cinco vocales y 4 agrupaciones para los consonantes).
Modelado y animación de un personaje masculino en 3D 104 Todo este trabajo realizado me ha permitido ampliar mis conocimientos sobre personajes virtuales y he aprendido a manejar una herramienta de modelado y animación como 3D Studio Max. También he aprendido a trabajar con Maxine y cal3d. 5.2. Trabajo futuro Estas son algunas de las posibilidades de trabajo futuro relacionadas con este proyecto: Ampliar la librería de poses y animaciones para Dave. Se podrían generar las poses correspondientes a la lengua de signos que permitiría usar a Dave como intérprete virtual igual que se ha hecho con otros personajes de Maxine. Ampliar el vestuario, añadir complementos, objetos, etc.
Modelado y animación de un personaje masculino en 3D 105 6. Bibliografía A continuación se expone la bibliografía utilizada en cada uno de los apartados de esta memoria, ya sean libros, páginas web u otros elementos. Personajes virtuales: Información general (esqueleto, malla y rigging): Apuntes de la asignatura “Composición y Edición de imágenes”, EUITIZ 2010 Dra. Eva Cerezo “El gran libro de 3D Max” MEDIAactive Ed. Macombo, S.A. Año: 2003 “Animación de personajes en 3D” Steve Roberts Ed. El Sevier “Modelado, rigging y animación con 3ds max 7” Michele Bousquet Anaya multimedia Capturas de movimiento: Proyecto Maxine “Animación mediante mocap de personajes 3D” Proyecto final de carrera Raúl Ordax de las Heras Poses y expresiones: Proyecto “Modelado y animación avanzada de personajes 3D” Proyecto final de carrera Lorena Palacio Jaén
Modelado y animación de un personaje masculino en 3D 112
Modelado y animación de un personaje masculino en 3D 113 Anexo 2. Desarrollo temporal del proyecto El proyecto empieza en Octubre de 2010 y termina con el depósito de la memoria en Febrero de 2012. El cuadro se muestra en la imagen 6.1 representa gráficamente el desarrollo temporal del proyecto. A continuación se explican más detalladamente cada una de las fases. La etapa de formación comienza tras saber cuál iba a ser el proyecto, y conocer que iba a necesitar conocimientos de 3d Studio Max. La formación fue el periodo que se estuvo manejando a Boy, entonces fue cuando se aprendió a manejar 3D Studio y las herramientas que se iban a necesitar. Cuando el modelo Dave fue comprado ya se podía manejar con mayor soltura el 3D Studio y el proceso de adaptación no fue muy lento. Lo que si que dio muchos problemas fue la exportación a Maxine. El apartado en que más tiempo se invirtió fue en la animación de la cara, ya que había que empezar la construcción desde cero con todos los huesos y animaciones y era un tipo de proceso que nunca había llevado a cabo. Tras unos meses de inactividad en el proyecto, se retomó para redactar la memoria y repasar algún detalle del modelo.
Modelado y animación de un personaje masculino en 3D 114 Imagen 6.1 Diagrama de Gantt del proyecto
Modelado y animación de un personaje masculino en 3D 115 Anexo 3. Consideraciones generales sobre la creación de modelos para Maxine En este anexo se describen algunas consideraciones generales a tener en cuenta si se trabaja con este modelo, o para otros futuros personajes, que hayan de ser creados para su uso en Maxine. Sobre los huesos - Cuando se crean los huesos, como en nuestro caso los huesos de la cara, de forma manual, cada hueso que se coloca en la escena trae consigo otro más pequeño; este hueso o terminador permite la unión para formar esqueletos, con lo que es importante NO borrarlo. - El inconveniente aparece cuando se realiza el rigging del personaje, a la hora de añadir los huesos a la lista del modificador que se use para el rigging es MUY importante no introducir los terminadores en ella y NO asignarles peso alguno, sino aparecerán problemas cuando se vaya a exportar el modelo. - En CONVENIENTE, para evitar posibles problemas de carga en Maxine, que el personaje siga una nomenclatura específica para los huesos. Si el personaje va a ser utilizado en aplicaciones de cinemática inversa en Maxine, entonces es absolutamente NECESARIO seguir dicha nomenclatura. En ella los nombres de los huesos van precedidos del nombre del hueso principal del personaje (normalmente situado en las caderas). Por ejemplo, en el caso del personaje Pilar, el hueso principal se llama Bip01, lo que significa que el resto de los huesos deben de ir precedidos de ese nombre; así, el hueso de la pelvis se nombrará como Bip01 Pelvis o el hueso del brazo derecho como Bip01 R UnpperArm. - El modelo creado tiene una mandíbula fija, solo se desplaza hacia arriba y hacia abajo, es RECOMENDABLE que para futuros modelos la mandíbula tenga más libertad de movimiento si va a ser usada para lenguaje de signos con componente facial. Sobre la Malla y el Rigging - Si el modelo va a ser exportado en cal3D o visto en un motor como Maxine es importante saber que una misma malla NO puede tener los modificadores skin y physique aplicados (aunque en 3d Studio sí que es posible tener ambas)
Modelado y animación de un personaje masculino en 3D 116 simultáneamente ,ya que esto puede causar problemas de carga en la aplicación o problemas de exportación. - Es NECESARIO, si las mallas van a ser exportadas en cal3d, seleccionarlas antes de exportarlas, y es ACONSEJABLE, que todas ellas estén en unidas en un grupo, ya que esto facilita la operación. Sobre las Texturas -Es ACONSEJABLE que las texturas estén en formato bmp, a tamaños estándar (potencias de dos) y lo más reducidos posibles para evitar problemas de exportación y carga de las texturas. - Es necesario seguir una nomenclatura especial para exportar en cal3d y, posteriormente, cargarlos en Maxine. Esta nomenclatura se caracteriza porque cada material tiene que tener una etiqueta seguida de un espacio y una numeración correlativa entre corchetes. Este número indica el orden en que son cargados los materiales. Un ejemplo de esta numeración es: Material_cuerpo [0] Material_pelo [1] …. La numeración debe comenzar por el cero. Sobre la animación - El exportador cal3d no permite animaciones por deformación de malla, con lo que es necesario animar todo, incluida la cara, mediante animación esqueletal.