lunes, 18 de agosto de 2014

Protagonista: Rigging y animación

Hasta aquí el personaje principal tenía el modelo hecho, arreglados los defectos, y ya lo he vestido. Así que para terminar solo queda que se mueva y haga cosas.

Rigging




Para poder animar un personaje, primero hay que ponerle huesos. Lo hice con un esqueleto predefinido de la colección CAT de 3Ds max, por lo que no tuve que hacer el esqueleto en si, hueso a hueso, poner las restricciones, uniones... pero si la parte final, el skinning, donde se asigna qué parte de la malla se ve afectada por el movimiento de cada hueso.


Rigging



Es decir que si tenemos un triángulo cerca del codo, tendremos que decir a cada vértice de ese triángulo cuanto debe moverse con el movimiento del hueso del antebrazo, y cuantos con el del brazo superior. Hay herramientas automáticas, intentas ajustar los huesos lo mejor posible a la malla, usar herramientas de pintado de pesos en 3D, pero en el peor de los casos te toca ir vértice a vértice dando un porcentaje de afectación por cada hueso. Recuerdo que mi modelo tiene 26.000 polígonos, y el esqueleto unos 20 huesos sin contar dedos. Si realmente lo hiciéramos a lo bruto y pusiéramos un peso a cada vértice por cada hueso serían más de medio millón de cifras a escribir. Un trabajo titánico. Peor bueno, no nos pongamos en el peor de los casos, habrá partes que si colocaste bien los huesos vayan bien solas, y a nadie se le ocurre que haya que modificar el peso del hueso del pie en la parte de la malla de la cabeza.En la imagen de abajo se puede ver por colores la zona de la malla que un hueso afecta mucho (rojo), medio (amarillo) o poco (azul). También se puede ver que como no iba a hacer gestos con las manos, más allá de cerrar o abrir el puño, puse un solo hueso para los 4 dedos que no son el pulgar y así ahorrar trabajo de skinning y animación.



Aún así da problemas. Muchos problemas. Hay partes críticas, sobre todo articulaciones, donde es muy difícil repartir bien la influencia de los huesos. Hay vértices que les bajas la influencia de un hueso y lo reparten con todos los demás que cree que están involucrados, ¡aunque sean de otra pierna! Así que pasamos a tener brazos con trozos de piel que llegan al otro brazo, piernas que se doblan en plano, trozos de una pierna que se mueven con la otra. O en general movimientos muy poco creíbles, como si más que una persona fuera un muñeco relleno de arena, o directamente un ser del inframundo que se deforma de maneras que las leyes físicas no permitirían. Para probar que tal va, cargas una animación, y vas probando si salen cosas raras y vas arreglando.



Me volví loco, había veces que ya no sabía qué hacía mal, por más que probaba combinaciones racionales de pesos para una articulación se movían rarísimo. Y hay que tener en cuenta que una articulación de este modelo tiene cientos o miles de vértices y al menos 2 huesos implicados, así que cada prueba suponía una larga modificación de cifras, o intentar pintar pesos con alguna herramienta. Me desquiciaba, llegaba a puntos que no sabía por donde seguir y volvía a empezar, probé distintos esqueletos de CAT, combinaciones de herramientas... Al final, y después de una semana de trabajar en ello todos los días, todo el día, conseguí que se moviera medio decente, al menos que no se vieran cosas alarmantes al mover el personaje con las animaciones básicas. Podía pasar a la siguiente fase. 

Skinning

 

Animación


Y llegamos al paso final de la parte de diseño del personaje: animarlo. En esto si tenía más experiencia, ya que había tenido que entregar unas animaciones para la asignatura de Modelado y comportamiento de personajes. Fue bastante trabajo, se necesita paciencia, fijarse en los movimientos y un cierto arte. Pero allí donde para el dibujo o modelado me veo más incapaz si me vi mejor para la animación. Será que tengo más capacidad para fijarme en pequeños movimientos, y la paciencia para ir editando cosas casi frame a frame.

La base de la animación es coger un hueso y moverlo, coger en otro momento de la animación y moverlo a otra posición, y que el programa haga todos los movimientos intermedios para crear el movimiento entre la primera y segunda posición. Luego se puede refinar, elegir como es el movimiento, dar más movimientos intermedios... pero la base es esa.

Una vez más la falta de tiempo hizo que no sean animaciones de mi agrado. Animar bien lleva mucho tiempo, y ya iba contrarreloj con lo que había tardado en hacer el rigging. Por eso usé la animación base de correr que trae 3Ds max (y que tiene la habilidad de quedar bien en el esqueleto y mal en el modelo, siempre, le ha pasado a bastantes compañeros), y me inventé lo que necesitaba. Para atacar ya a estas alturas había decidido cambiar el ataque con espada por una bola de fuego, así que solo tenía que hacer algún gesto en plan poner la palma de la mano para disparar la bola de fuego. Después hice un salto en 4 animaciones, para poder saltar a una sola pierna. Esto fue pensando en las zamburguesas, donde pensaba hacer que fueran saltando rápido de zamburguesa en zamburguesa apoyando sólo un pie en cada una. Las 4 fases serían: despegar con el pie derecho, aterrizar con el izquierdo, despegar con el izquierdo y aterrizar con el derecho. Se hacen como 4 porque si hay desnivel no puedes predecir en tiempo de animación cuánto va a durar el salto hasta que haya que apoyar, y ya se hace dentro del código del juego. Después la típica animación de idle, o que parezca que el personaje al menos respira cuando no está haciendo nada. La última, y que me dio más problemas, fue la de levantarse del suelo.

No usé referencias en vídeo para las animaciones, algo que me ayuda mucho. Lo más que hice fue dar 4 saltos por la casa (ante la mirada ojiplática de mi novia) para pensar un poco que brazos se adelantan con cada movimiento de pierna. Tampoco dediqué el tiempo que requería hacer una animación fina y no apliqué técnicas básicas de animación. El resultado: las animaciones son bastante malas. Pero eran lo suficientemente potables para poder jugar y seguir para adelante.

Aproveché unos archivos de captura de movimiento que vienen con el 3Ds max para ponerlas en el modelo. Hacen alguna cosa rara, como darle la vuelta a las muecas o movimientos raros en los tobillos, sospecho que debido al mal rigging que había hecho, y a no poner bien los parámetros para usar el fichero de captura de movimientos. Aún así estos movimientos quedaban mucho más fluidos que los creados malamente por mi paso a paso. Lástima que fueran movimientos extraños que no podía usar... o sí, al final los utilicé para las celebraciones de las zamburguesas y dar un broche divertido al juego. En el vídeo siguiente he juntado un poco las animaciones que cree para este personaje, para los dos juegos. En algún momento subiré las animaciones que hice para la otra asignatura que son bastante mejores. 

No hay comentarios :

Publicar un comentario