Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: [HiDDeN] en 30 de Junio de 2004, 07:24:52 PM

Título: Mover Articulaciones
Publicado por: [HiDDeN] en 30 de Junio de 2004, 07:24:52 PM
 Tengo una duda para un proyecto que estoy pensando...

Necesito crear un personaje en 3D (sea con el software que sea... Poser parece interesante), pero después de crearlo, me interesa mover sus articulaciones por programación (desde C++ por ejemplo).

¿Cómo puedo hacer esto? ¿Por dónde empiezo a investigar?
Es que después de muchas búsquedas en Google no doy con lo que necesito....  :(

Buscando profundamente por los foros de stratos, encontré un tema en el que se hablaban de, quizás, 2 cosas que me harían falta: el formato para guardar los modelos y un engine gratuito:

Formato: MD5
Engine: Neoengine

Debido a esto, ya no podría usar Poser, sino Blender.... ¿es así? ¿qué opináis?

PD: Este post lo puse en el foro de Programación gráfica 3D, pero nadie me ha contestado... a ver si aquí tengo más suerte!  :rolleyes:  
Título: Mover Articulaciones
Publicado por: nsL en 30 de Junio de 2004, 10:48:09 PM
 a ver si responden, aunq yo no tengo ningun proyecto de ese tipo, pero me interesa saber como es por curiosidad.. :D

de lo que llevo leido por aqui, oi hablar de MD5 como dices tu MD2 y muchos mas , y luego algo tb de .X con bones y pesos... pero no tengo ni idea de como los mueven... tb me dejaron un libro de engines 3D que para animar modelo lo que hacian era como si fuese 2D, por frames, en posiciones distintas, aunq debe ser un poco chapuza hacerlo asi  :blink:
a ver si responden  :rolleyes:
Título: Mover Articulaciones
Publicado por: Lord Trancos 2 en 30 de Junio de 2004, 11:22:10 PM
 Para exportar MD5 con Max:
http://www.doom3world.org/doom3/der_ton/3d...md5exporter.zip

Para saber como cargar y animar MD5:
http://www.nowan.net/cb/3d
Título: Mover Articulaciones
Publicado por: [HiDDeN] en 01 de Julio de 2004, 04:28:15 PM
 Lord Trancos, no están mal esos enlaces.
Lo malo es que esa herramienta, según el autor, no está depurada. Así que de poco me sirve... ¿conoces algo más? (además ese proyecto lleva 2 años parado)
Título: Mover Articulaciones
Publicado por: Lord Trancos 2 en 01 de Julio de 2004, 05:01:11 PM
 erhh.... solo te dire que (aunque con dificultades) yo lo he conseguido gracias a ese plug-in y a ese codigo de ejemplo.
Título: Mover Articulaciones
Publicado por: donald en 01 de Julio de 2004, 06:02:28 PM
 blender también exporta a md5, si lo sabes manejar.
Título: Mover Articulaciones
Publicado por: donald en 01 de Julio de 2004, 06:04:32 PM
 pero el *.x está mucho más extendido. Más programas soportandolo.

Blender (con algun problema)
max
lightwave
maya
xsi


Título: Mover Articulaciones
Publicado por: Lord Trancos 2 en 01 de Julio de 2004, 07:59:38 PM
 Tu espera a que salga el Doom3 a la venta y veras lo que es un formato extendido :P

Aunque weno, es muy posible que sea diferente al MD5 de la "leaked alpha"  (nooo)  
Título: Mover Articulaciones
Publicado por: [HiDDeN] en 01 de Julio de 2004, 08:39:56 PM
 Lo que es el formato da igual no?
Yo puedo generar un modelo con articulaciones y guardarlo en el formato que sea...
Sólo quería saber qué formato usar, y parece que el .x esta más extendido.

Dejando aparte el tema de la extensión y el programa de modelaje (que ya he investigado bastante), ¿qué códigos hay por ahí para mover las articulaciones (y el modelo en general)? (este es el verdadero problema y mi principal duda)
Título: Mover Articulaciones
Publicado por: BeRSeRKeR en 01 de Julio de 2004, 08:53:18 PM
 Lo de que el formato sea lo mismo depende. Si te lo creas tú, si que da igual pero si utilizas uno existente, no todos soportan bones (y pesos).

Con respecto a cómo funciona el tema de la animación esquelética, busca en el google "skeletal animation". También puedes mirarte la web que te ha puesto Lord Trancos sobre el MD5.

Hay otro formato muy simple que es el ASCII de Milkshape. En la web de este programa hay un visor con código fuerte que carga este formato con soporte para animación por bones. Lo puedes descargar de aquí (MsViewer MilkShape 3D ASCII Viewer). El problema de este formato es que creo que sólo soporta un peso por bone.

Saludos.
Título: Mover Articulaciones
Publicado por: donald en 01 de Julio de 2004, 09:05:01 PM
 sasto

y eso es una p**ada

Título: Mover Articulaciones
Publicado por: [HiDDeN] en 01 de Julio de 2004, 09:17:21 PM
 Gracias por vuestra orientación  :D  
Título: Mover Articulaciones
Publicado por: [HiDDeN] en 01 de Julio de 2004, 09:40:16 PM
 He estado mirando qué formatos puede exportar el Poser 5 (http://www.curiouslabs.com):

3DS
QuickdrawR 3DMF
DXF
WavefrontR OBJ
LightwaveR 5
RIB

¿Hay alguno especialmente bueno con respecto a los pesos/bones?
Título: Mover Articulaciones
Publicado por: Lord Trancos 2 en 01 de Julio de 2004, 10:07:31 PM
Cita de: "[HiDDeN"] He estado mirando qué formatos puede exportar el Poser 5 (http://www.curiouslabs.com):

3DS
QuickdrawR 3DMF
DXF
WavefrontR OBJ
LightwaveR 5
RIB

¿Hay alguno especialmente bueno con respecto a los pesos/bones?
3DS - No tiene bones
DXF - No tiene bones
OBJ - No tiene bones

El resto ni idea.
Título: Mover Articulaciones
Publicado por: [HiDDeN] en 01 de Julio de 2004, 11:25:47 PM
 Vale de acuerdo, no tienen bones.

Pero me he estado mirando un engine que soporta el .3ds (el engine se llama Irrlicht Engine - http://irrlicht.sourceforge.net) y en sus características aparece "Character animation system with skeletal and morph target animation".

Es decir... ¿el tema este de los bones es necesario realmente para mover un esqueleto? (porque no tengo ni idea cómo lo hace este engine entonces)  :blink:
Título: Mover Articulaciones
Publicado por: BeRSeRKeR en 01 de Julio de 2004, 11:34:51 PM
 Si te fijas, Irrlicht utiliza, además del formato 3ds, otros formatos como ms3d (Milkshape) y X (DirectX) que sí soportan bones.

Y con respecto a si son realmente necesarios los bones para mover un esqueleto pues digamos que eso no tiene sentido. A ver, si quieres mover un esqueleto, estás hablando de los propios bones (un esqueleto está formado por huesos).

Ahora bien, si lo que quieres es animar a través de un esqueleto una malla, entonces sí necesitas bones. De otra forma no podrás deformar la malla convenientemente. Vamos que no tendrás ningún control sobre ella en tiempo de ejecución. Y se supone que lo que tú quieres es tener control del esqueleto a través de código, ¿no?.

Saludos.
Título: Mover Articulaciones
Publicado por: BeRSeRKeR en 01 de Julio de 2004, 11:38:30 PM
 Por si te aclara este ejemplo las cosas...

Pongamos por caso que lo que quieres es que un modelo tipo quake caiga rulando por unas escaleras y que la malla del modelo se deforme en consecuencia. Evidentemente esta animación del modelo rulando por las escaleras es totalmente procedural, es decir, está controlada a través de fórmulas físicas a través del código. Pues bien, en este caso, sin un sistema de animación por esqueleto no vas a ninguna parte.

Saludos.
Título: Mover Articulaciones
Publicado por: Lord Trancos 2 en 02 de Julio de 2004, 12:03:30 AM
 En resumen; los 3DS no tienen bones.  :P

No se pq le das tantas vueltas al asunto. Es tan "facil" como elegir entre el azkeroso X y el MD5 version alpha (a falta de que salga la version definitiva) :lol:

No. Ahora en serio.

El .X a mi no me gusta; para cargarlo suele usarse DX; pones en bandeja que te ripeen los graficos, y mucha gente pregunta por aqui cosas que deberian ser sencillas sobre como controlar la animacion de este formato; pero nadie responde; parece que hay poca y/o mala documentacion al respecto.

El .MD5 que se usa actualemente pertenece a la leaked alpha del doom, y es probable que cambie cuando salga el juego. Asi que no tiene mucha esperanza de vida. Sin embargo es bastante facil de cargar y de usar (A mi me costo menos que el de milkshape).

(Otra opcion es buscar algun otro formato de algun juego bastante reciente y herramientas/documentacion para usarlo.)

Yo lo que hago es convertirlo a un formato propio (y binario) y listos. Cuando salga la nueva version de MD5, me creo un nuevo conversor (a mi formato propio) y tan contento. El "engine" no tengo que tocarlo.

Título: Mover Articulaciones
Publicado por: donald en 02 de Julio de 2004, 12:40:48 AM
 "El .X a mi no me gusta"

Y yo que te lo venía notando

;)

me extraña que no se pueda proteger..y lo sjuegos hechos en dx comerciales? xbox no usa eso...bueno, esto no lo sé...

pero como dices md5 está en estado alpha provisional...

el x es más sólido, y hay bastantes más paquetes (sólo mencioné unos pocos) que lo exportan. (algunos tan raros como 3d canvas, Hash Animation Master con el AMXTEX plugin, o el de 15$ character fx, o el mismo Ultimate Unwrap, todos software super baratos(bueno,el hash es más caro))

En breve lo exportará Blender del todo bien, pero en eso empata con el md5.

Hay oTRO formato con bones y pesos, y con formato disponible en documentación.
Hoy estoy muy cansado, pero si eso mañana os pongo el link.

Es bones y pesos, y se introdujo en una producción hija de Id, pero no de Id, según sé...RTCW, el juego ese. En el que se usaron mdc, md3, y mds.

pero debe haber una forma de proteger los x.

hay plugins de exportado (maxscripts y plugin, si recuerdo bien) para Max de formato mds, incluso para GMAX. Y DE IMPORTADO tb...
cosa en que aventaja a md5 y al x : que yo sepa ninguno de los dos es importable en max.


Hay info y documentacion en msdn de como manejar esa información en el fichero; la he visto, pero ni papa porque no soy coder.

lo único que sé es que las joints las llama "frame" este formato, vete a saber por qué...


Milkshape es odioso...no soporta pesos...tal vez el formato si lo pueda llegar a soportar, pero desde luego el software no...es una de las features más pedidas por sus usuarios...


ah, y los otros formatos mencionados tpoco soportaban pesos .

Del poser no puedes sacar animaciones 3d legalmente. en avi, renderizado, sí.  cosas de las licencias.

te recomiendo X y Character Fx. Por ser 15 $ y pq cualquiera con Max y el Panda Exporter, que es free y muy bueno, puede exportar archivos x animados, con bones y pesos, e incluso interplación spline (character fx tb la exporta)

que quieres, a mí sí me gusta el x.

Tb puedes dar soporte al mds, o al md5. Pero Blender no exporta mds, y ahora que caigo y ahora no estoy seguro si gmax lo exportaba o sólo importaba.

Es decir, con mds estás dejando fuera a blender, el único free con bones y pesos.(mediante md5 o x. Hoy por hoy, funcional, sólo md5. El x tiene algun problema con las normales todavía.)


Un último formato, del que creo han derivado el exportador md5, y blender2java de Blender, son las CAL 3d. Pero de nuevo, eso es un ámbito de compatibilidad infinitamente más limitado que el del x, y no tengo claro que si quiera exporte bien desde Max o Maya. creo que Blender si cuenta con ese formato. Cal3d de todos modos, es open source y muy bueno, parece.

Por último, FBX. Pero de nuevo, sólo soportado por paquetes comerciales como Maya, LW, XSI.





Título: Mover Articulaciones
Publicado por: Mars Attacks en 02 de Julio de 2004, 01:08:01 AM
 Qué manía con proteger los modelos. Yo estaría contentísimo de ver mis modelos esparcidos por los más diversos juegos  (ole)  
Título: Mover Articulaciones
Publicado por: Zaelsius en 02 de Julio de 2004, 05:16:56 AM
 
CitarEs decir... ¿el tema este de los bones es necesario realmente para mover un esqueleto? (porque no tengo ni idea cómo lo hace este engine entonces)

"Bones"= "huesos" en español, y un esqueleto está formado por huesos..  :rolleyes:  
Título: Mover Articulaciones
Publicado por: donald en 02 de Julio de 2004, 09:44:26 AM
 "open-mars"  ;)

hay gente que hasta vende tus modelos luego, si los consiguen ripear...

es el dilema de siempre de lo open...

Tu imaginate...decirle a un albañil que sea "open" y que no cobre por su jornada... o que te haga gratis un muro de carga...

es brooooma...no me flameeis con defensa del open source que yo estoy (aunque no del todo) de ese lado...

Título: Mover Articulaciones
Publicado por: Mars Attacks en 02 de Julio de 2004, 01:19:21 PM
 Donald, pero ¿cómo los van a vender, si son open? Si los das gratuitamente a todo el mundo, ya hay que ser tonto de comprarlos :D

Otra cosa es, por ejemplo, si hacen un juego con ellos y venden el juego. Pues muy bien, oiga :) Ojalá se me hubiera ocurrido a mí, y si necesitan más que contacten conmigo cuando sean jodidamente ricos :P

XD qué bonito es soñar.
Todo esto no tiene nada que ver con mover articulaciones, pero esto me recuerda que todavía no me he puesto con las armatures (ay, dios, les tengo un miedo...).

Yogur.
Título: Mover Articulaciones
Publicado por: donald en 02 de Julio de 2004, 01:47:05 PM
 pues es una tontería , Mars. Es como el sexo, cuanto antes te pongas... ;)

No, en serio (como con el sexo, todo tiene su momento ;) )  No es complicado.
parentas los bones a la malla, creas los grupos con sus pesos, y pcoo más. Ah, y animas  .

(nooo)

pero hasta que no haya joint pinning como en el CS, es que me niego. Este animador se declara en huelga, ea.
el x exporter creo que ya casi va del todo



Título: Mover Articulaciones
Publicado por: [HiDDeN] en 03 de Julio de 2004, 10:14:30 AM
Cita de: "ZaelSiuS""Bones"= "huesos" en español, y un esqueleto está formado por huesos..  :rolleyes:
Coño ya lo sé xDDDD
Me refería que si ese engine soporta formatos que no tienen bones, ¿cómo se lo hace para animarlos? Creo que es por morphing.

Bueno, de todas formas, a mí no me interesa animar desde la herramienta (Maya, Blender, o lo que sea), sino construir el esqueleto con los bones y los pesos asignados, y despues mediante C++ poder mover las articulaciones.

He leído algo acerca del md5mesh... puede servir creo.
Aunque la solución de usar .x también me la habéis recomendado...
Título: Mover Articulaciones
Publicado por: BeRSeRKeR en 03 de Julio de 2004, 10:34:07 AM
 Efectivamente, si sólo te interesa el modelo con sus bones, el md5mesh te será suficiente ya que es donde están definidas las coordenadas de vértice, de textura, los bones, los pesos, la pose inicial del modelo, etc.

Ahora, si quieres animarlo, entonces también necesitarás el archivo md5anim que es el que contiene las claves de animación del modelo.

De todas formas, ¿qué es lo que quieres hacer exactamnte?. ¿Una especie de editor de poses o algo así?.

Saludos.
Título: Mover Articulaciones
Publicado por: [HiDDeN] en 03 de Julio de 2004, 01:51:58 PM
 Exactamente  :)

Lo que quiero hacer es, a partir de un modelo 3D, poder definir movimientos (gira el brazo tantos grados, da un paso adelante con el pie derecho, mira a la izquierda, ahora gira la mano hacia la izquierda, etc....).

Por eso me interesaba un formato que representara un modelo 3D con bones, para poder mover esas articulaciones.

¿Me haría falta el md5anim?
Título: Mover Articulaciones
Publicado por: BeRSeRKeR en 03 de Julio de 2004, 01:54:52 PM
 En ese caso no. Con el md5mesh tienes todo lo que necesitas.

Saludos.
Título: Mover Articulaciones
Publicado por: Lord Trancos 2 en 03 de Julio de 2004, 02:06:40 PM
 Ahi, ahi.... usa md5 y que le den al .X  (uoh)  
Título: Mover Articulaciones
Publicado por: [HiDDeN] en 03 de Julio de 2004, 02:25:46 PM
 xDDDD

Ok pues.... duda solucionada  :D

Gracias a todos!!
Título: Mover Articulaciones
Publicado por: donald en 03 de Julio de 2004, 03:11:28 PM
Cita de: "Lord Trancos 2"Ahi, ahi.... usa md5 y que le den al .X  (uoh)
JAJA...

de verdad que me ha hecho gracia XD

Oye, Lord Trancos, ehm...es una duda filosófica...es que Blender tira bien , o sea, parece que exporta con menos problema el md5..yo tengo demasiadas utilidades 3d centradas en el x como pa abandonarlo, perooo...el Irrlicht por ejemplo va a incorporar gracias a un usuario, el que ha hecho el loader de md3, un loader de md5. Y no sé, crees que variará tanto que luego será trabajo tirado, una vez salga el Doom3?

Sería una putada..

pq además, lo he recomendao pa otros engines... (además del x. Por alguna razón, mucha gente odia a Microsoft, no sé que pasa ;) Les dices x , y pasan, les dices que es open source y pasan, que el sdk está ahí pa ke lo cojas, y pasan...les hablas de un formato de id, y se tiran a bocaos por él, aunuqe tenga bones, pesos, normal maps y la leche de complejidades...nuntiendo...)

Pero por mi, guay. max exporta md5, y Blender, desde hace mucho, y "parece" que sin problemas, lo que es mucho. Der_ton hizo el de Max (tiene hecho el importador pero no lo sacará hasta que salga doom3)  y el de Blender, dice qu epa este basándose en las cal3d o algo.
Sólo espero que el exportado sea correcto...   :blink:

de hecho, si Irrlicht acab importando bien md5, md3, y x, la verdad es que es la cannia total pa los grafistas...(al menos cuando lo haga sin bugs ;)   )


Título: Mover Articulaciones
Publicado por: BeRSeRKeR en 03 de Julio de 2004, 03:50:46 PM
 Si el formato pasa a ser binario, es decir, que no se puede leer a simple vista como el que hay actualmente (ASCII), habría que esperar a que salgan las especificaciones del formato para que se puedan modificar los exportadores que hay actualmente. Más allá de eso no debería haber problema porque lo que son los datos a exportar, por mucho que cambie el formato serán, más o menos, los mismos que ahora por lo que en muy poco tiempo saldrían las nuevas versiones de exportadores.

Pero vamos, todo esto suponiendo que el formato acabe siendo binario, si sigue siendo ASCII, aunque cambie un poco (porque mucho no creo que cambie), no tardarán en aparecer las versiones definitivas de los exportadores.

Saludos.
Título: Mover Articulaciones
Publicado por: Lord Trancos 2 en 03 de Julio de 2004, 06:02:57 PM
 
Citar
Oye, Lord Trancos, ehm...es una duda filosófica...es que Blender tira bien , o sea, parece que exporta con menos problema el md5..yo tengo demasiadas utilidades 3d centradas en el x como pa abandonarlo, perooo...el Irrlicht por ejemplo va a incorporar gracias a un usuario, el que ha hecho el loader de md3, un loader de md5. Y no sé, crees que variará tanto que luego será trabajo tirado, una vez salga el Doom3?

Nah, como te dice bersk, no creo. De hecho yo me inclino a creer que lo dejaran en formato texto, aunque comprimido dentro de un ZIP o algo asi.

Citar
pq además, lo he recomendao pa otros engines... (además del x. Por alguna razón, mucha gente odia a Microsoft, no sé que pasa ;) Les dices x , y pasan, les dices que es open source y pasan, que el sdk está ahí pa ke lo cojas, y pasan...les hablas de un formato de id, y se tiran a bocaos por él, aunuqe tenga bones, pesos, normal maps y la leche de complejidades...nuntiendo...)

Aparte de la antipatia que suele despertar microsoft entre muchos desarrolladores, y la admiracion que suele despertar ID, el formato X es demasiado enrevesao, poco documentado y bastante feo. Le pasa como al formato ASE; parece sencillo pero cuando te pones a leerlo es un rollo de cuidado. La unica ventaja que tiene el X es que el DirectX te lo lee/anima sin que tengas que hacer ese trabajo; pero esa ventaja se pierde cuando;
- quieres hacer algo cross-platform.
- el exportador version X de la aplicacion Z version Y funciona con el DirectX 8.1 pero falla con el DirectX 9 summer update (o viceversa).
- intentas averiguar como indicarle al directx que quieres controlar la animacion (duda que mucha gente ha preguntado en los foros y nadie ha respondido).

El md5 es mucho mas simple; y como los programadores somos muy vagos creo que tendra mas exito.

Tan solo tienes que tener en cuenta que el md5 es un formato que todavia no se sabe cual es su forma definitiva y aun asi, la gente ya lo usa!!! Cuando salga la version definitiva (es decir, cuando salga el Doom3) no tardara en convertirse en un estandar, tal y como ha sucedido con sus hermanos mayores.
Título: Mover Articulaciones
Publicado por: tewe76 en 03 de Julio de 2004, 09:51:54 PM
 Tengo una duda sobre md5 (y md2, etc). ¿Se pueden usar sin problemas en proyectos comerciales?
Título: Mover Articulaciones
Publicado por: BeRSeRKeR en 03 de Julio de 2004, 10:01:41 PM
Cita de: "tewe76"Tengo una duda sobre md5 (y md2, etc). ¿Se pueden usar sin problemas en proyectos comerciales?
La verdad es que no lo sé (nunca me he molestado en informarme sobre estas cosas ya que no me ha hecho falta) pero si te decidieses a utilizar el MD5, por ejemplo, puedes hacer como Lord Trancos, te creas tu conversor MD5->"tu formato" y a ver quién te pone pegas.

Saludos.
Título: Mover Articulaciones
Publicado por: donald en 03 de Julio de 2004, 11:28:10 PM
 desed luego, el md2, md3, bsp, son formatos libres de uso para proyectos comerciales.

Lo que no son libres para esto son las id tools, o derivadas de ellas.

No sé yo que haran del md5, pero imagino que lo mismo...

humm...como artista, la jodienda es que hay demasiados exportadores de x como par ano considerarlo...

pero me convence lo que dices.


Hay muchas formas de producir md2, md3, y 3 que yo sepa de md5, sin tocar herramientas de Id.

La putada para el grafista es un proyecto que sólo permita uno o dos paquetes, y no sean los que uno tiene o usa.

pero en fin...
supongo que empezarán a salir exporters por doquier cuando salga el juego...eso espero..