Mostrando entradas con la etiqueta rig. Mostrar todas las entradas
Mostrando entradas con la etiqueta rig. Mostrar todas las entradas

jueves, 3 de noviembre de 2016

Peces I. Modelo, rig y animaciones.

De la misma manera que hicimos con el ninja, os contaremos como fue el proceso de los peces. Esta vez es algo bastante más simple.

Para el estanque queríamos incorporar las famosas carpas Koi. Aunque parece que son originarias de China, fue Japón quién las difundió.

Carpas Koi.
Primero decidimos buscar a ver si encontrábamos algún recurso ya hecho que nos pudiera venir bien y ahorrarnos trabajo (para variar). Y aunque alguna cosilla encontramos, al final decidimos hacerla nosotros.

Primero, porqué lo que encontramos que nos podía servir era de pago. No olvidemos que necesitábamos un modelo en 3D con su textura y rig. Eso de por si, ya era complicado encontrar algo gratuito. Como para encontrar algo que también tuviera una animación simple del movimiento de un pez.

Pedíamos demasiado. Así que puestos a meternos en faena, decidimos intentar hacerlo nosotros. Como era algo que no se vería en excesivo detalle al estar en el agua, hicimos algo sencillito pero resultón.

Modelo 3D del pez.
Usamos de referencia un modelo hecho (el verde) que se pareciera lo más posible a la forma de la carpa y modelamos nuestro pez con blender. Como era bastante sencillo se hizo rápido. Después sacamos las texturas haciendo su UV para su posterior texturizado donde usamos varias imágenes para componer una final que tuviera los colores típicos de este tipo de peces. Una vez teníamos una, hicimos de distintos colores para tener más variedad.

Finalmente, creamos un rig y su pesado para poder animar a nuestra carpa.

Rig del pez.
La animación la hicimos rápido porqué no teníamos mucho tiempo, y tampoco no nos obsesionamos con que quedara perfecta ya que no se apreciaría lo suficiente al estar bajo el agua verdosa del estanque. Además el rig que hicimos era muy simplón precisamente porqué no lo vimos más necesario que otras cosas. En cualquier otro tipo de circunstancia o si el juego fuera de pescar peces, hubiéramos tenido que darle mucho más cariño en este paso para poder hacer animaciones más refinadas.

Para poner un ejemplo de lo mucho más que podríamos haberlo hecho, si os fijáis en la cola de una carpa koi veréis un movimiento muy bonito e hipnótico. En cambio el pez que hemos animado parece robótica, como si fuera de madera y no se pudiera doblar.

Para encontrar referencias, nos vimos algunos vídeos de Youtube donde se veían carpas reales en movimiento. También encontramos este tutorial que nos fue bastante útil e interesante. Aunque en nuestro caso solamente constaba del siseo del pez bastante sosegado. Ni siquiera animamos las aletas :(.

Decir los fallos que tiene la animación no es una manera de decir que uno puede hacer el trabajo a medias y nadie lo notará o quedará igual. Eso es una falacia. Cuando nosotros explicamos con detalle que se podía haber hecho mejor lo hacemos porqué consideramos importante reseñar que en un proyecto así, incluso en el más sencillo, hay mucho trabajo y al final tienes que decidir donde quieres poner las pocas horas de las que dispones.

En este caso concreto, como el modelo iba a estar en el estanque, pensamos que no se notarían tanto los detalles y que mejor sería invertir ese tiempo en mejorar las que sí se notarían o en añadir nuevas para dar más riqueza al conjunto.

Volviendo a la animación, de igual manera que con la animación del ninja, se animó sobre el sitio. Luego desde unity, se añadió el comportamiento del movimiento con código. Todo el tema de los peces y su comportamiento final lo comentaremos en un próximo artículo de igual forma que hicimos con el ninja.

A continuación, os dejamos con un pequeño video donde se puede ver la sencilla animación del pez:



Esperamos que os haya resultado útil :).

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