Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Character Studio -> Md5

Iniciado por BeRSeRKeR, 25 de Diciembre de 2004, 09:05:51 PM

« anterior - próximo »

BeRSeRKeR

 Hola.

Resulta que los grafistas nos dijeron que ellos utilizaban Character Studio para animar los modelos con lo que se presentaba un problema. Yo había desarrollado un exporter a MD5 con soporte para bones de MAX y modificador Skin pero no servía para CS así que me he puesto manos a la obra y ya tenemos nuestro exporter CS->MD5. De momento parece que funciona bien pero lo cierto es que sólo lo he probado con uno de los modelos que vienen con los tutoriales de CS (el DoctorX). De todas formas ya me habían pedido en Doom3World (y creo que LordTrancos también) si podía dar soporte para CS por lo que lo haré público para la comunidad de Doom3 (como hice con el otro exporter) y seguro que me sacan fallos por todos lados. :D

Aquí tenéis una de las pruebas que he hecho. ¡Qué mejor que probar un MD5 en Doom3 para comprobar que todo funciona bien! :lol:

Descargar video (684KB)



Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Lord Trancos 2

 Ole ole!!! Papa BeRSeRKeRNoeL nos ha traido un exporter para navidad!!!

Lo probare con la enfermera cuando la termine! ;)
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Vicente

 Hola,

tio, lo tuyo es de fuera de serie. Genial! ;) Un saludo,

Vicente

donald

 siempre está el truco de exportar como fbx, e importar como fbx(en max6 al menos, funciona), con lo que conviertes a bones y skin, pero claro, siempre les será más cómodo así. :)

Aparte de que suena mucho más cañero... los exportadores, normalmente, o no soportan biped, o no soportan physique, o no soportan skin...pero vaya, hacer las dos opciones, es la caña...

mucha gente , de todos modos, usa biped + skin....gente como el autor de Magdalena, Skullbox, usa bones y physique....no sé si esas mezclas te son posibles...

yo, cuando he tenido que usarlo, en algun curre, he preferido biped+skin...

pero los bones tienen otras ventajas, tb. Todo depende.


Me paso por aquí de cuando en cuando (1 vez cada 3 o 4 meses) ...así que si no respondo a algo no es por antipático. ;) Posteo, y me acuerdo del foro tres meses después... ;)    :-S

BeRSeRKeR

 En teoría, si puedes utilizar los bones de biped con el modificador de Skin (o sea que te salen en la lista de bones del modificador), no debería haber problema en utilizar el otro exporter que cree. Aunque tal vez harían falta algunos cambios. No sé, ya veremos. De momento me conformo con soportar bones+skin y biped+physique. :D

Ahora a otra cosa, mariposa... :lol:

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

ethernet

 Molaría un mini-fast-tutorial para coders (exclusivamente.. XD) sobre qué es biped, physique, skin.. 0:)

un saludo

donald

 @Berseker, euh, no pedía una feature ;)

Demasiado haces ya, de cara al grafo... ;)

Tu engine ha puesto a huevo el importado desde Maya, Max, Gmax(doblemente gracias a tí) , y Blender.... Así que ya hay de sobra.

De hecho, si yo tuviera la ocasión de hacer algo con Cs, simplemente haría la conversión con el FBX, a bones y skin standard (proceso que sé que rula)

Es más, mi caso no sería ni ese. Yo lo haría con XSI, necesitando que alguien se bajar la dll de importado que se ha creado hace muy poco en doom3world para XSI. Y que ese alguien tuviera el juego, que no es mi caso.  Pq se instala en no se qué carpeta de Doom3, y convierte a md5 a través del juego.,No me quedó claro, pero es algo así.  Importando directamente el formato de xsi, seguramente porta cosas mucho mejor...  Y el xsi es la caña, jeje.

Los otros exportan directamente a md5, afortunadamente.
Bueno , con LW  no estoy seguro...(sé que exporta a x, y que algo de md5 para LW hay, pero no estoy seguro)


@ Ethernet  

" mini-fast-tutorial para coders (exclusivamente.. XD) "

mini-fast, es pq me temes.  XDDDD

'Para coders'...pero...de coders para coders?

Bueno, mini fast explanation :

Todo programa para animar suele usar huesos(bones) y pesos(weights). Los pesos son la fuerza con la que un bone influencia a un vértice. Un vertice puede estar influenciado por más bones. Normalmente hasta 4 (no sé si es limitación de tarjeta, o de dx/ogl)  Antiguamente, un vértice solo era afectado por un bone. (peso 1.0 o 0.0)  O sea, HalfLife 1.

Max, Maya, Blender, Hash Am, Lightwave usan bones y pesos. cada uno tiene sus peculiaridades y ventajas.

Max tiene básicamente dos sistemas de bones y pesos:

a) Character Studio , que es un añadido incorporado a Max standard, B ) los bones y pesos "de fábrica" de Max.

character studio se basa en unas cajas (en vez de bones) con unos atributos especiales. Están organizadas en una jerarquía y con unos límites de rotación, etc, que hacen más fácil animar un bípedo (humano, normalmente)  .Pero vaya, unas cajas con unos atributos especiales, que hacen las veces de bones. El sistema de influencias (pesos, weights)  de Character Studio, se llama Physique (aunque nunca lo escribo bien) .Y tiene algunas ventajas sobre el modificador de piel de Max (Skin modifier) .  Y algunas desventajas. (no paso de ahí pq es mini-tut, aparte de discutible+polémico)  .Biped se le llama al sistema de cajas ese que te he dicho, a ese tipo de esqueleto. Y lleva asociadas una serie de ventajas en animación: habitualmente, en juegos ha sido muy práctico para intercambiar animaciones. Pero tiene desventajas, tb. La principal ventaja en general de character Studio, es la facilidad de aprendizaje y uso.

El physique es en cierto modo más complejo (pese a ser de character studio) que el skin(piel) modifier (el standard de pesos de max.) . De manejo, y en posibilidades. Aunque todo cambia con las versiones nuevas de Max...

El biped, ya te digo, se ha usado a menudo pq facilta intercambiar animaciones *.bip entre personajes dtos, etc. Tiene muchas otras cosas que facilitan el tema. Creo que había mucho middleware y librería de engine preparada para character studio...pero ahí no sé más.

El skin modifier, a mí me parece más rápido de usar, (sobre todo desde Max 6 que se puede hacer mirror de pesos, aunque ya existían scripts para esto para physique y skin. Pero no eran "error free"...tpoco lo es el de max6, pero está bastante bien)


bueno, es mini (para lo habitual en mí) y fast (a menos que leas muy despacio) .Y es para coders, creo yo.

Y respondo la pregunta.
Me paso por aquí de cuando en cuando (1 vez cada 3 o 4 meses) ...así que si no respondo a algo no es por antipático. ;) Posteo, y me acuerdo del foro tres meses después... ;)    :-S

ethernet

 gracias donald. Lo de mini-fast lo dije para que el que lo pusiera no tuviera demasiaa responsabilidad encima.. :)
y más o menos ya sé por donde van los tiros

martiño

 Perdonad mi ignorancia, pero, usando la interfaz IGame no se tratan do forma homogenea todas estas historias?

BeRSeRKeR

 
Cita de: "martiño"Perdonad mi ignorancia, pero, usando la interfaz IGame no se tratan do forma homogenea todas estas historias?
La verdad es que no tengo ni idea pero hace tiempo que dejé de hacer plugins en C++ para hacerlos en MAXScript ya que el SDK de MAX me parecía horrible. Ahora programo cualquier plugin en MAXScript, ya sea un exporter, un importer, un nuevo tipo de material....lo que sea. La interfaz IGame no la he mirado. Seguramente facilita más la cosa que el SDK a pelo de MAX. Tal vez algún día le eche un vistazo. :)

Por otro lado, una de las razones de utilizar MAXScript es que puedo dar soporte para gmax. La comunidad Doom3 lo agradece. :D

Saludos.

PD: una cosa, como sabrás, en MAX las listas de coordenadas de vértice y de textura no tienen por qué coincidir en número, es decir, no hay una equivalencia por lo que hay que realizar un proceso para consolidar esos datos. ¿Sabes si IGame ya te da estos datos consolidados?, es decir, una coordenada de textura para una coordenada de vértice.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

ethernet

Cita de: "BeRSeRKeR"

PD: una cosa, como sabrás, en MAX las listas de coordenadas de vértice y de textura no tienen por qué coincidir en número, es decir, no hay una equivalencia por lo que hay que realizar un proceso para consolidar esos datos. ¿Sabes si IGame ya te da estos datos consolidados?, es decir, una coordenada de textura para una coordenada de vértice.
Entonces usa varios campos en el índice ?

saludos

Lord Trancos 2

 Por cierto, BeRSeRKeR, ¿cuando crees (mas o menos) q tendras una beta del exporter pa probarla?  ;)  
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

BeRSeRKeR

Cita de: "ethernet"
Cita de: "BeRSeRKeR"

PD: una cosa, como sabrás, en MAX las listas de coordenadas de vértice y de textura no tienen por qué coincidir en número, es decir, no hay una equivalencia por lo que hay que realizar un proceso para consolidar esos datos. ¿Sabes si IGame ya te da estos datos consolidados?, es decir, una coordenada de textura para una coordenada de vértice.
Entonces usa varios campos en el índice ?

saludos
Tiene una lista de coordenadas de vértice, otra de coordenadas de textura, otra de índices a coordenadas de vértice y otra de índices a coordenadas de textura. Estas dos últimas son las que indican la equivalencia entre coordenadas de vértice y coordenadas de textura. Pero claro hay reconstruir toda esa información para tener una única lista de índices y una única lista de vértices para que sea digerible por las API 3D.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

BeRSeRKeR

Cita de: "Lord Trancos 2"Por cierto, BeRSeRKeR, ¿cuando crees (mas o menos) q tendras una beta del exporter pa probarla?  ;)
Mañana a lo mejor te pongo un enlace por aquí aunque aún no creo que la haga pública en Doom3World. Al menos hasta que me asegure que funciona en unos cuántos casos más. Como dije sólo lo he probado en el modelo que mostré arriba.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

senior wapo

 
Cita de: "ethernet"
Cita de: "BeRSeRKeR"

PD: una cosa, como sabrás, en MAX las listas de coordenadas de vértice y de textura no tienen por qué coincidir en número, es decir, no hay una equivalencia por lo que hay que realizar un proceso para consolidar esos datos. ¿Sabes si IGame ya te da estos datos consolidados?, es decir, una coordenada de textura para una coordenada de vértice.
Entonces usa varios campos en el índice ?

saludos
MAX no almacena las coordenadas de textura en cada vértice, sino en arrays por separado.
1 vertice puede tener varios pares de coordenadas de textura (equivalente al multitexturing de D3D/OGL). Por ejemplo, coordenadas para la imagen bitmap (componente difusa), coordenadas para el lightmap, en general 1 coordenada por cada capa de "textura" aplicado a ese poligono. MAX lo llama canales.

Basicamente un "array" (llamémoslo asi) por cada capa de texturas ("canal") que tenga la malla.

En lenguaje de picacódigo, que no me salgan grafos quisquillosos con el diccionario grafo en la mano  :P






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.