jueves, 27 de octubre de 2016

Ninja I. Diseño, modelo, rig y animaciones.

Modelo

Como ya avanzamos, usamos un modelo 3D realizado en blender ya hecho. Eso nos aportaba muchas cosas. Algunas buenas, unas no tanto y otras que simplemente nos aportaban cosas, ni buenas ni malas.

Por una parte nos ahorraba horas de trabajo porque ya estaba hecho de principio a fin. Ese punto fue decisivo. No disponíamos de tiempo para dedicarnos a hacer un diseño, modelarlo en 3D, texturizarlo y hacerle su correspondiente rig y su pesado (explicamos este proceso un poco más abajo).

Hay que pensar que ese modelo había que animarlo, y eso ya es mucho trabajo. De hecho, tuvimos que recortar gran parte de trabajo de animación, pero eso lo explicamos más adelante en el post.

Además, nos proporcionaba un contexto (Japón tradicional) y un estilo (cartoon). Este punto ni es positivo ni negativo. O se acepta o no se acepta. Pero como ya comentamos, nos venía muy bien porqué la ambientación que venía implícita nos gustaba mucho. No había que pensar en demasiado en el tema.

Ahora vienen los puntos negativos, que son unos cuantos. Todos estos puntos son del modelo en si. Este personaje fue el primer personaje de principio a fin que hizo una parte del equipo. Al ser el primero, salió con sus cositas.

El modelo se hizo con la idea de hacer algún corto o pequeñas animaciones. Es decir, estaba enfocado a animación y no a videojuegos. Eso es un problemón, ya que hay diferencias muy grandes entre hacer el modelo para una cosa u otra. El número de polígonos, quizás, es de lo que más se tiene en cuenta.

Otra cosa bastante evidente es que el modelo está hecho con polígonos de 4 lados. En animación hay que evitar los triángulos (entre otras cosas), que es justo lo contrario de lo que pasa cuando modelas para videojuegos. Aunque cuando se importa en unity el propio programa los transforma a triángulos, se debería hacer en el momento de modelado.

Pero además de que no estaba hecho para videojuegos, tenía los errores típicos que hace uno cuando empieza, y es que la malla no está muy limpia. Eso se nota mucho en los hombros, por ejemplo. Este tipo de cosas hace que aparezcan problemas cuando se anima (también lo explicamos más adelante en el post).

A pesar de todo ello, decidimos aceptar sus limitaciones en pro de todo el trabajo que nos ahorraba.

Rig y animación

El rig es el sistema de huesos que se crea en el modelo para poderlo animar. Además de los huesos hay que realizar el pesado para decirle al hueso que vértices de la malla debe mover. Hablando mal, seria decirle a cada hueso que parte de "chicha" del personaje le corresponde.

El modelo tiene un rig muy sencillito. Apenas tiene 4 cositas en el rig facial (mover la cabeza, cejas, ojos, orejas y mandíbula). La mayor parte del trabajo está en el cuerpo. Aunque tampoco le sacamos mucho provecho, ya que el número de animaciones se redujo muchísimo.

Teníamos pensado tener diferentes animaciones según las acciones que podría hacer el modelo, pero al final se quedó en un idle* muy sencillo y muy sutil y en un ciclo de andar neutro.

En un inicio queríamos que pudiera andar, correr y lanzar estrellas en el campo de tiro. Además, queríamos un par de idle diferentes. Uno muy sutil para que no se vea el modelo parado y también queríamos añadir alguna más con el personaje mirando de lado a lado, o cambiando de pie. Nos flipamos bastante. No es que quisiéramos hacer animaciones de luchas complejas, pero ya nos costó bastante acabar con las básicas. Además, llegamos a un punto de desgaste que había que cuidar mucho para no dejarlo sin acabar.

Pero finalmente se quedó solo con el idle sencillo y con el ciclo de caminar normal solamente :(.

Las animaciones, así como el modelo, tienen muchos fallos. A parte de la dificultad que lleva realizar un ciclo de andar, salieron algunos fallitos por culpa de la malla y su pesado. Cuando se realizan las animaciones o posados de un modelo en 3D es cuando aparecen los fallos de una mala disposición de los polígonos. Por muy bien que hagas el pesado, siempre toca arreglar este tipo de cosas.

Con blender se pueden resolver estas cosas arreglando la parte "rota" con el sculpt (es una funcionalidad con la que esculpir directamente sobre el modelo como si fuera de barro)Por ejemplo, en los hombros cuando se mueven los brazos a veces se ve un parpadeo en la malla. Para intentar arreglarlo hubiéramos tenido que esculpir para resolver ese fallo y animarlo de manera que aparezca el arreglo cuando la malla se rompe.

Pero como la textura del modelo era de azul oscuro y apenas se notaba en unity, decidimos que mejor sería invertir el tiempo en otras cosas más urgentes.

La animación del ciclo de andar se hizo sobre el sitio. Es decir, en blender no movemos al ninja en uno de los ejes para avanzar, sino que lo animamos todo en el mismo sitio para que luego desde unity se pueda configurar el movimiento más fácilmente. Esto lo explicaremos con más detalle en un próximo artículo.

A continuación os mostramos un pequeño video donde se puede ver el rig del ninja y como está animado:




Resultado final

Para poder usar las animaciones en unity, había que exportar el modelo a formato FBX. Desde el programa se importaba y detectaba las animaciones perfectamente.

Como ya hemos avanzado, más adelante os explicaremos más cosas sobre el personaje una vez ya en unity. Las fases de movimiento, las distintas animaciones y como se resolvieron algunas cosas con código. Ahora os dejamos con el resultado final del personaje en blender.



Esperamos que os haya resultado útil :).


*idle es un ciclo de reposo que se activa cuando el modelo en 3D no se mueve para que no parezca inanimado, por ejemplo, la respiración del personaje

No hay comentarios:

Publicar un comentario