29 de mayo de 2008

Traisión!

Una de las cosas que más me molestan es tener que perder el tiempo buscando y preparando modelos y escenas para los ejemplos. Te tiras un día entero para encontrar algo que no te acaba de convencer y te quedas con la sensación de no haber hecho nada. Pues bien, el otro día encontré uno que debía usar a toda costa en lo que fuera:


Si.... tiene una pinta genial, pero entonces empezaron los problemas. Se me había ocurrido una idea para un ejemplo en el que Master Chief quedaría de lujo, pero necesitaba dos cosas:

- Encontrar un escenario acorde con el personaje / ejemplo.
- Cambiarle la pose al Chief.

Al principio el primer punto fue sencillo, encontré un escenario a mi gusto en uno de los ejemplos del SDK de DirectX10. El problema es que a los de Microsoft se les ha ocurrido dejar de dar soporte a su formato de modelos .X en favor de un nuevo formato llamado sdkmesh que ellos mismos indican que es una mierda. Bravo.

Pero bueno, según ellos en el SDK han incluido una herramienta que convierte modelos entre los dos formatos. Lo probé y efectivamente funciona perfectamente al hacer la conversión .X -> .sdkmesh, pero no había manera de conseguir el paso inverso.

Después de trastear un poco con el código fuente del programa, encontré la siguiente condición en la función que carga el modelo de entrada:

if( nLength == 2 && pszExt && wcscmp( pszExt, L".x" ) == 0 )
{
CLoaderXFile loader;
hr = loader.Load( szFileName, requestedBHT );
m_pIntermediateMesh = loader.GetMesh();
}


Es decir, que sólo es capaz de pasar de .X a sdkmesh. Pues a la mierda el escenario.

El segundo punto no fue mejor. Yo no tengo ni idea de edición de modelos en programas estilo 3dStudio, Maya o XSI, pero conseguí cargar el modelo y cambiarle la pose. El problema es que los pesos están mal y a la hora de moverlo se le va la olla.

Al final me cansé de importarlo en varios programas, trastear, exportar, volver a importar, etc... Así que a la mierda el Chief (al menos hasta que contacte con un amigo que controla del tema).

Total, que me he cabreado y me voy a poner con otra cosa, porque eso de estar dos días sin parar para no conseguir nada me pone de mala leche. Lo volveré a intentar otro día...

No hay comentarios: