Simulacion de telas Game Engine
Publicado: Vie Feb 22, 2013 6:46 am
Hola que tal comunidad Blender, mi nombres es dius y soy animador blender, soy nuevo en esto del Game Engine que blender brinda asi que tengo una terrible duda con respecto a este asunto espero que me puedan ayudar y resolver mi problema, estaria agradecido y de paso subiria los resultados :))) bien aca va mis dudas....
He buscado y practicado TODO lo que se me ha ocurrido y se encontraba dentro de mis posibilidades para hacerme mas facil este proceso de animar ropa para un personaje que pueda importar en este caso al engine game de blender; 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 animacion necesarios para ponerlo a caminar, correr y hasta volar! en blnder, 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 animacion de ropa (ya saben, modificador cloth y listo), se vuelve un tormento a la hora de hacerlo para este motor, ya que en blender (como muchos otros) solo importa animacion por bones, y no importara ninguna animacion basada en deformacion 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 animacion dentro de Unity.
Como todos sabemos, animar ropa con bones no es tarea facil o de un \"ratito\", y ademas el resultado no es el mejor, al menos no puede compararse con una buena simulacon de ropa. Mi pregunta es si existe algun metodo \"magico\" jaja o al menos mas sencillo de animar ropa con bones para juegos, he visto a algunos utilizando interesantes scripts para ciclos de animacion cortos (caminar por ejemplo), pero yo tengo todos los ciclos de animacion juntos, en una misma tira... Bueno, para ahorraros tiempo, antes de cualquier cosa, a continuacion 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 animacion 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 metodo es genial para animar mechones de pelo sin esfuerzo, pero de una u otra forma, la animacion de la ropa utilizando este metodo 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 metodo que utilice, fue el de los huesos flotantes, el cual pense que \"seria mi salvacion\",asi 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 sabeis, quedara completamente adaptado al movimiento de la malla, obviamente hare 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 simulacion de ropa seran \"transmitidos\" al faldon original, el cual tiene su modificador skin, con los mismos huesos añadidos. Vale, pues esto queda mu feo cuando lo importo en Unity, la animacion del faldon resultante en Unity no es sino una burda y horrenda sombra de lo que deberia haber sido, de hecho incluso en 3D max el resultado de la animacion del faldon original no es muy realista, ya que nunca seran 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 metodo. Utilice el script de harrison Yu (Real time Spring), y aunque el resultado me gusta mucho mas 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 colision causa que tengas que trabajar muchisimo \"frame a frame\" simulando estas colisiones manualmente, ademas, no se muy bien como utilizar este script, ya que realmente no puedo \"conducir\" o \"dirigir\" el movimiento que deseo que la animacion en tiempo real de los huesos siga, ya que no me deja reposicionar los huesos cuando activo el \"Auto key\" de max...
Llevo ya dos semanas trabajando sobre esto, buscando y buscando alguna solucion, y quisiera saber si a dia de hoy ya existe algo que facilite esta labor... de verdad, lo necesito o enloquecere =P. No se nada sobre utilizar la funcion \"point cache\", pero mas de uno ha comentado sobre esta posibilidad, para exportar animaciones por vertices de deformacion 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 estare muy pero que muy agradecido (se que es un autentico reto para la mayoria pero tenia que preguntar).
De antemano, muchisimas gracias amigos!
He buscado y practicado TODO lo que se me ha ocurrido y se encontraba dentro de mis posibilidades para hacerme mas facil este proceso de animar ropa para un personaje que pueda importar en este caso al engine game de blender; 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 animacion necesarios para ponerlo a caminar, correr y hasta volar! en blnder, 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 animacion de ropa (ya saben, modificador cloth y listo), se vuelve un tormento a la hora de hacerlo para este motor, ya que en blender (como muchos otros) solo importa animacion por bones, y no importara ninguna animacion basada en deformacion 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 animacion dentro de Unity.
Como todos sabemos, animar ropa con bones no es tarea facil o de un \"ratito\", y ademas el resultado no es el mejor, al menos no puede compararse con una buena simulacon de ropa. Mi pregunta es si existe algun metodo \"magico\" jaja o al menos mas sencillo de animar ropa con bones para juegos, he visto a algunos utilizando interesantes scripts para ciclos de animacion cortos (caminar por ejemplo), pero yo tengo todos los ciclos de animacion juntos, en una misma tira... Bueno, para ahorraros tiempo, antes de cualquier cosa, a continuacion 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 animacion 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 metodo es genial para animar mechones de pelo sin esfuerzo, pero de una u otra forma, la animacion de la ropa utilizando este metodo 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 metodo que utilice, fue el de los huesos flotantes, el cual pense que \"seria mi salvacion\",asi 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 sabeis, quedara completamente adaptado al movimiento de la malla, obviamente hare 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 simulacion de ropa seran \"transmitidos\" al faldon original, el cual tiene su modificador skin, con los mismos huesos añadidos. Vale, pues esto queda mu feo cuando lo importo en Unity, la animacion del faldon resultante en Unity no es sino una burda y horrenda sombra de lo que deberia haber sido, de hecho incluso en 3D max el resultado de la animacion del faldon original no es muy realista, ya que nunca seran 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 metodo. Utilice el script de harrison Yu (Real time Spring), y aunque el resultado me gusta mucho mas 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 colision causa que tengas que trabajar muchisimo \"frame a frame\" simulando estas colisiones manualmente, ademas, no se muy bien como utilizar este script, ya que realmente no puedo \"conducir\" o \"dirigir\" el movimiento que deseo que la animacion en tiempo real de los huesos siga, ya que no me deja reposicionar los huesos cuando activo el \"Auto key\" de max...
Llevo ya dos semanas trabajando sobre esto, buscando y buscando alguna solucion, y quisiera saber si a dia de hoy ya existe algo que facilite esta labor... de verdad, lo necesito o enloquecere =P. No se nada sobre utilizar la funcion \"point cache\", pero mas de uno ha comentado sobre esta posibilidad, para exportar animaciones por vertices de deformacion 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 estare muy pero que muy agradecido (se que es un autentico reto para la mayoria pero tenia que preguntar).
De antemano, muchisimas gracias amigos!