¡Buenas! Pues trasteando con modelos antiguos me he dado cuenta de la poca documentación que hay para extraer los modelos 3D de Pokémon Battle Revolution (PBR), de Nintendo Wii. Para el que no conozca este juego, fue el primer juego de la franquicia Pokémon para dicha consola. Se trata básicamente de un simulador de batalla creado por Genius Sonority, los mismos que Pokémon Colosseum y Pokémon XD: Tempestad oscura.
Y bueno, en este tutorial vamos a extraer los modelos que queramos del juego con sus respectivas animaciones. ¿Para qué? os preguntaréis algunos. Bien, Pokémon Colosseum, XD y PBR tenían todavía las animaciones de los modelos de Pokémon Stadium 1 y 2 de Nintendo 64. Y como éstos no se pueden parsear actualmente, no hay forma de recuperar las animaciones originales. Sin embargo, podemos utilizar la de modelos más modernos si los extraemos primero. Para ello seguiremos unos sencillos:
1) Extraer los archivos en formato .fsys:
Nos vamos a centrar en los PKX que son los Pokémon, pero hay más modelos con animaciones que se pueden extraer. Una vez tengamos todos, seleccionaremos a nuestro sujeto de pruebas: Ho-oh (vamos a hacer honor a la portada de Vestigios de Wah
)
2) Descomprimir los .FSYS:

y aquí la comparativa con Pokémon Stadium 2 (Nintendo 64):

No creo que nadie tenga problemas hasta este punto pero por si os hiciera falta, aquí tenéis el vídeo demostrativo:
4) Exportar los modelos desde Unity Engine:
Y bueno, en este tutorial vamos a extraer los modelos que queramos del juego con sus respectivas animaciones. ¿Para qué? os preguntaréis algunos. Bien, Pokémon Colosseum, XD y PBR tenían todavía las animaciones de los modelos de Pokémon Stadium 1 y 2 de Nintendo 64. Y como éstos no se pueden parsear actualmente, no hay forma de recuperar las animaciones originales. Sin embargo, podemos utilizar la de modelos más modernos si los extraemos primero. Para ello seguiremos unos sencillos:
1) Extraer los archivos en formato .fsys:
- Lo primero que vamos a hacer es adquirir nuestra ISO de Pokémon Battle Revolution. Vamos a asumir que lo habéis adquirido legalmente mediante un rip de vuestro juego en físico a modo de backup en vez de descargado de los siete mares. En cualquier caso, lo dejamos en una carpeta que conozcamos.
- Descargamos el emulador ya conocido Dolphin de su página oficial y lo descomprimimos en otra carpeta que tengamos localizada.
- Abrimos Dolphin y mediante Opciones > Configuración > Rutas, establecemos la ruta a donde tenemos la ISO de nuestro juego. Se nos listará en Dolphin.
- Hacemos click derecho sobre el juego > Propiedades > Sistema de archivos. Veremos que se nos listan todos los archivos internos del juego.
- Click derecho en la raíz (Partición de datos) > Extraer archivos… > seleccionamos una carpeta que conozcamos. Se nos extraeran todos los archivos internos del juego.
Nos vamos a centrar en los PKX que son los Pokémon, pero hay más modelos con animaciones que se pueden extraer. Una vez tengamos todos, seleccionaremos a nuestro sujeto de pruebas: Ho-oh (vamos a hacer honor a la portada de Vestigios de Wah
2) Descomprimir los .FSYS:
- Como es evidente y habitual, los modelos suelen estar encriptados. En este caso, hacen uso de LZSS pero no os preocupéis que se hará sencillo. Vamos a utilizar la herramienta PokemonFSYSConverter.exe que nos hará todo el trabajo sucio. Para ello tendremos que compilarla. La forma más sencilla que yo he encontrado es la siguiente:
- Descargamos o clonamos el repositorio de VGMoose: https://github.com/vgmoose/PokemonFSYSConverter
- Descargamos el archivo dirent.h de este otro repositorio: https://github.com/tronkko/dirent/blob/master/include/dirent.h y lo ponemos con el resto del código del converter.
- Si tenéis GCC instalado, podéis hacer "make" en este paso directamente. Si no, instalamos el Visual Studio Developer Command (se instala automáticamente con Visual Studio) y abrimos su terminal.
- Vamos a la carpeta con "cd Ruta\al\codigo\del\converter" y ponemos el siguiente comando:
cl /EHsc /I. main.cpp bytetools.cpp igtl_Directory.cpp /Fe:PokemonFSYSConverter.exe - Si todo ha ido correcto, se nos generará el archivo PokemonFSYSConverter.exe.
- Volvemos a la carpeta donde están los FSYS y copiamos a nuestro sujeto de pruebas: PKX_250.fsys a la carpeta Files, que está junto al converter.
- Simplemente con hacer doble click en el PokemonFSYSConverter.exe ya se nos habrá ejecutado (una sospechosa ventana cmd se abre y cierra pero no pasa nada). Vamos a la carpeta Files/OBM y ahora tendremos los archivos del modelo normal y shiny. En la carpeta "Out" hay varios archivos .out. Tendremos que renombrarlos a ".sdr" porque son los que tienen las animaciones.
- Si queremos sacar todos de una, con poner todos los fsys en Files ya se nos extraen todos.
- Como es habitual en mi contenido, vamos a utilizar Unity Engine. Básicamente porque nos va a simplificar todo. En mi caso voy a utilizar Unity 5.6.6f2 pero podéis utilizar cualquier versión. Lo primero es instalarlo, como siempre.
- Descargamos o clonamos mi herramienta: Pokémon Battle Revolution Importer for Unity de mi Github: https://github.com/Manurocker95/Pokemon-Battle-Revolution-Importer-for-Unity
- Es un proyecto entero, en particular solo necesitamos lo que hay dentro de Assets, podeis borrar lo demas o usar este proyecto de "base". Sea como fuere, en Unity abriremos la tab PS3DS > Battle Revolution > Importer
- Se nos abrirá una imponente tab que podremos ajustar a un lado. Lo que tendremos que seleccionar son las rutas al OBM, Tex y SDR que acabamos de extraer
- Simplemente una vez seleccionadas las rutas hacemos click en Import All y dejamos que termine. Al terminar, si todo ha ido bien se nos habrá importado en la escena el modelo 3D con un Animator y todas sus animaciones.

y aquí la comparativa con Pokémon Stadium 2 (Nintendo 64):

4) Exportar los modelos desde Unity Engine:
- Para exportar desde Unity podemos utilizar cualquier exporter ya que se exportará la geometría con las texturas embebidas y las animaciones. Lo más habitual es utilizar el formato GLTF con el GLTF Exporter https://github.com/Plattar/gltf-exporter, pasarlo a motores de render como Blender o 3DS Max y de ahí ya a donde queráis.
Adjuntos
-
434,4 KB Visitas: 3
Última edición: