Hola amigos,

He buscado y practicado TODO lo que se me ha ocurrido y se encontraba dentro de mis posibilidades para hacerme más fácil este proceso de animar ropa para un personaje que pueda importar en este caso al engine Unity; me refiero al tipo de "ropa movil" que todos conocemos en los juegos, capas, faldas, faldones, incluso banderas, etc. He modelado un personaje low poly que tiene un faldon en 3d Max 2010, le he hecho el rigging, y todos los ciclos de animación necesarios para ponerlo a caminar, correr y hasta volar! en Unity, No he tenido problemas para importar el personaje con sus animaciones y texturas; sin embargo, algo que es tan sencillo de realizar con 3D max, la animación de ropa (ya saben, modificador cloth y listo), se vuelve un tormento a la hora de hacerlo para este motor, ya que en Unity (como muchos otros) solo importa animación por bones, y no importara ninguna animación basada en deformación de la malla si a esta no se le ha hecho el skinning. O sea que necesitas una estructura de huesos y el modificador skin/physique en la malla para conseguir que te importe la animación dentro de Unity.


Como todos sabemos, animar ropa con bones no es tarea fácil o de un "ratito", y además el resultado no es el mejor, al menos no puede compararse con una buena simulacon de ropa. Mi pregunta es si existe algún método "magico" jaja o al menos más sencillo de animar ropa con bones para juegos, he visto a algunos utilizando interesantes scripts para ciclos de animación cortos (caminar por ejemplo), pero yo tengo todos los ciclos de animación juntos, en una misma tira... Bueno, para ahorraros tiempo, antes de cualquier cosa, a continuación presentare un muy breve resumen de las cosas que he probado, y cuyo resultado no me ha gustado:

- Le he colocado IK Spline a las cadenas de huesos que moveran la ropa, y luego he colocado el modificador "Flex" a la spline que hay en cada cadena de huesos. El resultado es una animación en tiempo real de cada cadena de huesos, pero incluso tras utilizar decenas de configuraciones en las propiedades de "Flex", el resultado no es ni mucho menos como el comportamiento esperable de una tela, este método es genial para animar mechones de pelo sin esfuerzo, pero de una u otra forma, la animación de la ropa utilizando este método resulta muy "rigida", pareciera que la prenda tiene una estructura semi rigida y elastica debajo, no queda bien para una capa o un faldon por ejemplo.

- Otro método que utilice, fue el de los huesos flotantes, el cual pensé que "seria mi salvacion",así he creado muchos huesos pequeñitos, como "bolitas", entonces clone la malla de la prenda de ropa (supongamos un faldon), oculte la malla "original" del faldon, y ahora comienzo a unir cada hueso a la malla clonada con "Attachment constraint", luego presiono en "Set position" en el panel de la derecha, y coloco este hueso en cualquiera de las caras de la malla, la que yo quiera, el hueso como sabéis, quedará completamente adaptado al movimiento de la malla, obviamente haré esto con cada hueso, y luego a su vez "linkeare" todos los huesos por ejemplo a la pelvis del biped. Cuando tengo todos mis huesos posicionados en las caras que he elegido de la malla clonada, desoculto el faldon original y le aplico el modificador skin añadiendo todos estos huesitos, vuelvo a ocultarla y al faldon clonado le aplico el modificador cloth, de esta manera los movimientos del faldon resultantes de la simulación de ropa serán "transmitidos" al faldon original, el cual tiene su modificador skin, con los mismos huesos añadidos. Vale, pues esto queda muy feo cuando lo importo en Unity, la animación del faldon resultante en Unity no es sino una burda y horrenda sombra de lo que debería haber sido, de hecho incluso en 3D max el resultado de la animación del faldon original no es muy realista, ya que nunca serán suficientes huesos como para llevar al faldon original una reproduccion exacta de los movimientos conseguidos en el faldon clonado simulado con cloth... Triste y descorazonador..

-Tambien utilice otro método. Utilice el script de harrison Yu (Real time Spring), y aunque el resultado me gusta mucho más que lo que sucede cuando utilizas el modificador flex + IK spline en una cadena de huesos, el hecho de que no puedan añadirse objetos de colisión causa que tengas que trabajar muchísimo "frame a frame" simulando estas colisiones manualmente, además, no se muy bien como utilizar este script, ya que realmente no puedo "conducir" o "dirigir" el movimiento que deseo que la animación en tiempo real de los huesos siga, ya que no me deja reposicionar los huesos cuando activo el "Auto key" de max...

Así que ando en las mismas, llevo ya dos semanas trabajando sobre esto, buscando y buscando alguna solución, y quisiera saber si a día de hoy ya existe algo que facilite esta labor... de verdad, lo necesito o enloquecere =P. No se nada sobre utilizar la función "point cache", pero más de uno ha comentado sobre esta posibilidad, para exportar animaciones por vértices de deformación en la malla sin necesidad de utilizar huesos a Unity u otros moteres similares para juegos, pero desconozco como esto seria posible, si por favor alguien puede darme luz acerca de esto estaré muy pero que muy agradecido (se que es un auténtico reto para la mayoría pero tenía que preguntar).

De antemano, muchísimas gracias amigos!