Registrarse
  • ¡Estamos buscando un/a Encargado/a de Eventos! Si crees que puedes ayudarnos con los concursos de Whack a Hack. ¡No esperes más, Invitado! ¡Haz click abajo, infórmate y manda tu postulación!

    Muchas gracias a todos los interesados en mejorar la comunidad

[Otros] [3DS] Extraer los modelos de Pokémon Sol/Luna/Ultra Sol/Ultra Luna

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
¡Hey! Ya que por estos lares no se ha tocado mucho la 3DS hoy os vengo a enseñar cómo extraer los modelos 3D de los juegos de Pokémon de 3DS. Esto servirá a futuro cuando haga el tutorial de Nintendo Switch.

Primero necesitamos obtener los archivos desencriptados de los juegos de 3DS siguiendo este otro tutorial: TUTORIAL


Bien, ahora vamos a obtener los archivos binarios del juego.

1. Descargamos pk3DS. Éste es un programa que sirve para editar pokémon salvajes, entrenadores, textos y mucho más. Esto lo traeré en otro tutorial si veo que os gusta.
2. Abrimos "Tools/Misc Tools/(un)Pack+BCLIM.
3. Por otro lado en el explorador de windows vamos a donde tengamos los recursos de nuestro juego extraídos por el tutorial mencionado. En específico, la carpeta "ExtractedRomFS\a\0\9".
4. Arrastramos la carpeta "4" a la primera caja de la ventana de pk3DS (necesitaremos pulsar CTRL mientras).
5. Se creará una carpeta llamada "4_g". Dentro estarán todos los ".bin" necesarios. Tendrán dígitos como nombre.

Los nombres corresponden a:

0 - Modelo Highpoly y Lowpoly
1 - Texturas normales
2 - Texturas shiny
3 - Animaciones de visibilidad (Ejemplo: Pidgey cuando vuela usa unas alas distintas a cuando está quieto en idle).
4 - Animaciones de material (Ejemplo: Parpadeo)
5,6,7 - Animaciones del esqueleto

Desencriptando los binarios

1. Descargamos Ohana3DS o Spica3DS. En este caso, usaremos Ohana https://github.com/gdkchan/Ohana3DS-Rebirth
2. Lo extraemos donde queramos.
3. Abrimos Ohana3DS.
4. File > Abrimos el archivo 0.
5. Seleccionamos en (+) Textures y seleccionamos el archivo binario 1 o 2 según queramos.
6. Seleccionamos (+) en Skeletal Animations y seleccionamos del 5 al 7.
7. Dándole al play podremos reproducir las animaciones.

Exportando los modelos

1. Damos al (+) en modelos > Export as SMD con un tic en Incluir todas las animaciones. Ponemos la carpeta donde queramos exportar el modelo.
2. Damos al (+) en texturas > Export y guardamos las texturas donde queramos (a ser posible misma carpeta del paso 1)
3. Las animaciones hay que ir una a una, por lo que seleccionamos una, vemos cual es y damos Export > exportamos con el nombre.


¡Bien, ya tendremos los modelos exportados como SMD!

Si queremos abrirlos en blender para editarlos necesitaremos las tools de Valve: Blender Source Tools

Pero eso vendrá en otro tutorial...

¡Hasta pronto!
 
Última edición:

Saph

Pequeño saltamontes
Hola que tal me acabo de registrar porque estoy muy interesado en poder crear algo sobre pókemon aunque sería la primera vez que intente hacer algo y he estado buscando formas de extraer los archivos de los archivos .3ds desencriptador pero no he encontrado aún como ¿podrías ayudarme con eso por favor?

Creo que encontré algo en un tutorial de desencriptar los archivos 3ds y luego con una función de pk3ds creo que está funcionando lo de descomprimir
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Hola que tal me acabo de registrar porque estoy muy interesado en poder crear algo sobre pókemon aunque sería la primera vez que intente hacer algo y he estado buscando formas de extraer los archivos de los archivos .3ds desencriptador pero no he encontrado aún como ¿podrías ayudarme con eso por favor?
Solo tienes que seguir el tutorial que aparece como link literalmente en la 4ta línea... :whistle:
 

Saph

Pequeño saltamontes
Solo tienes que seguir el tutorial que aparece como link literalmente en la 4ta línea... :whistle:
sí gracias descomprimí el CIA con el HackingToolkit9DS.exe unas 3 veces porque primero me soltaba archivos bin luego una carpeta con un archivo cxi y ultimo si ya dejo carpetas luego ya tuve que intentar otras veces mas con el pk3ds porque paso lo mismo y bueno el ohana me suelta un error pero el spica si arranca normal así que usaré el segundo

me deja archivos dec_00001.bin y aumentando y un 00000.bin luego intenta y deja todo como la segunda forma 00000.bin luego regresa a los que van con el dec_00001.bin y un 00000.bin y el spica me dice que no puede abrirlos
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
me deja archivos dec_00001.bin y aumentando y un 00000.bin luego intenta y deja todo como la segunda forma 00000.bin luego regresa a los que van con el dec_00001.bin y un 00000.bin y el spica me dice que no puede abrirlos
si estas pulsando control al sacar los dec, no lo pulses
 

Saph

Pequeño saltamontes
si estas pulsando control al sacar los dec, no lo pulses
Bueno estos días he estado intentando de distintas formas de los juegos de ultra sol y luna 3ds, desencriptados y CIA pero sigue soltando esos archivos de antes no las carpetas que debería y esa función de GARC shuffler que lo hace soltar carpetas malogra los archivos y solo hace unas 5 o 7 carpetas que no reconocen el spica

¿habría la posibilidad de que el problema sea mi computadora?
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Bueno estos días he estado intentando de distintas formas de los juegos de ultra sol y luna 3ds, desencriptados y CIA pero sigue soltando esos archivos de antes no las carpetas que debería y esa función de GARC shuffler que lo hace soltar carpetas malogra los archivos y solo hace unas 5 o 7 carpetas que no reconocen el spica
Spica es para binarios, dime exactamente qué pasos estás haciendo. Si puedes grabar la pantalla, mejor.
 

Saph

Pequeño saltamontes
Spica es para binarios, dime exactamente qué pasos estás haciendo. Si puedes grabar la pantalla, mejor.
Oh sí gracias estuve probando más formas y logré hacer que funcione el Spica pero solo cuando hay "dec_000001.bin" tengo que cambiarle el nombre y borrar el "dec_" el otro no se puede leer y creo que el nombre del archivo debe ser también un factor entendí un poco más cuando empecé a buscar páginas en inglés en específico estoy siguiendo la que hiciste en GBATemp gracias estás siendo de mucha ayuda

disculpa tengo una duda las Mega Evoluciones y las pokemón hembras ¿se conectan con la forma original o macho?

uno tiene los binarios de charizar y mega charizard X y el otro de butterfree macho y hembra

ambos tienen binarios que pesan solo 1kb además del vacío pero esos cuando intento abrirlos con el Spica suelta un error aunque lo intente con Merge ¿podrían ser como enlaces hacia las animaciones originales? ¿en todo caso tendría que reemplazarlos?

Listo ahora ya todo está renombrado y ordenado según la Pokedex nacional solo me falta saber lo que acabo de preguntar XD
 

Adjuntos

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Oh sí gracias estuve probando más formas y logré hacer que funcione el Spica pero solo cuando hay "dec_000001.bin" tengo que cambiarle el nombre y borrar el "dec_" el otro no se puede leer y creo que el nombre del archivo debe ser también un factor entendí un poco más cuando empecé a buscar páginas en inglés en específico estoy siguiendo la que hiciste en GBATemp gracias estás siendo de mucha ayuda
no tienes por quée borrar el dec_ xD La que hice en GBATemp es la misma que he peusto aquí
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
uno tiene los binarios de charizar y mega charizard X y el otro de butterfree macho y hembra

ambos tienen binarios que pesan solo 1kb además del vacío pero esos cuando intento abrirlos con el Spica suelta un error aunque lo intente con Merge ¿podrían ser como enlaces hacia las animaciones originales? ¿en todo caso tendría que reemplazarlos?
Spica tiene algunos problemas con algunos binarios (con mega-altaria pasa igual). Sería cuestión de usar Ohana en vez de Spica.
 

Saph

Pequeño saltamontes
Spica tiene algunos problemas con algunos binarios (con mega-altaria pasa igual). Sería cuestión de usar Ohana en vez de Spica.
Bueno por alguna razón Ohana no me funciona solo el Spica

no tienes por quée borrar el dec_ xD La que hice en GBATemp es la misma que he peusto aquí
Extraño, yo no sé inglés pero entendí más el GBATemp como que leo más cosas

Hola disculpa al importar los pokemón me salió un error en el Unity que decía "Output Char Buffer is too small" o algo así pero como era algo tarde ayer lo cerré luego de eso y ahora se queda cargando sin iniciar el proyecto
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Hola disculpa al importar los pokemón me salió un error en el Unity que decía "Output Char Buffer is too small" o algo así pero como era algo tarde ayer lo cerré luego de eso y ahora se queda cargando sin iniciar el proyecto
Pero lo has importado con 3DS2Unity?
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Sí, estaba en eso, se importaron algo de 385 pokemón en total
Son de Sol/Luna/Ultra Sol/Ultra Luna? Si has podido importar 385, supongo que sí. Debe estar mal el binario del pokemon en cuestión, aunque en Unity debería salir un "ups, something failed..." en vez de cualquier otra cosa por try catching. Skippea, el que haya fallado.
 

Saph

Pequeño saltamontes
pero cree otro proyecto nuevo y volví a intentar importar desde el principio y me salió el mismo error

Something went horribly wrong! Hmu, I'll try to fix it.
Specified argument was out of the range of valid values.
Parameter name: index
at System.Linq.Enumerable.ElementAt[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Int32 index) [0x0007b] in <93223d662c2546d4b5d1784737504095>:0
at P3DS2U.Editor.PokemonImporter.StartImportingBinaries (P3DS2U.Editor.P3ds2USettingsScriptableObject importSettings, System.Collections.Generic.Dictionary`2[TKey,TValue] scenesDict) [0x0005d] in E:\Archivos\Usuario\Documentos\Pokemón\Assets\Pokemon3DStoUnity-2.1\Editor\PokemonImporter.cs:65
UnityEngine.Debug:LogError (object)
P3DS2U.Editor.PokemonImporter:StartImportingBinaries (P3DS2U.Editor.P3ds2USettingsScriptableObject,System.Collections.Generic.Dictionary`2<string, System.Collections.Generic.List`1<string>>) (at Assets/Pokemon3DStoUnity-2.1/Editor/PokemonImporter.cs:174)
P3DS2U.Editor.P3ds2USettingsScriptableObject:StartImporting () (at Assets/Pokemon3DStoUnity-2.1/Editor/P3ds2USettingsScriptableObject.cs:368)
P3DS2U.Editor.P3ds2USettingsScriptableObjectEditor:OnInspectorGUI () (at Assets/Pokemon3DStoUnity-2.1/Editor/P3ds2USettingsScriptableObject.cs:520)
P3DS2U.Editor.Pokemon3DSToUnityEditorWindow:OnGUI () (at Assets/Pokemon3DStoUnity-2.1/Editor/Pokemon3DSToUnityEditorWindow.cs:49)
UnityEngine.GUIUtility:processEvent (int,intptr,bool&)

Eso reporta
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Something went horribly wrong! Hmu, I'll try to fix it.
Specified argument was out of the range of valid values.
Parameter name: index
at System.Linq.Enumerable.ElementAt[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Int32 index) [0x0007b] in <93223d662c2546d4b5d1784737504095>:0
at P3DS2U.Editor.PokemonImporter.StartImportingBinaries (P3DS2U.Editor.P3ds2USettingsScriptableObject importSettings, System.Collections.Generic.Dictionary`2[TKey,TValue] scenesDict) [0x0005d] in E:\Archivos\Usuario\Documentos\Pokemón\Assets\Pokemon3DStoUnity-2.1\Editor\PokemonImporter.cs:65
UnityEngine.Debug:LogError (object)
P3DS2U.Editor.PokemonImporter:StartImportingBinaries (P3DS2U.Editor.P3ds2USettingsScriptableObject,System.Collections.Generic.Dictionary`2<string, System.Collections.Generic.List`1<string>>) (at Assets/Pokemon3DStoUnity-2.1/Editor/PokemonImporter.cs:174)
P3DS2U.Editor.P3ds2USettingsScriptableObject:StartImporting () (at Assets/Pokemon3DStoUnity-2.1/Editor/P3ds2USettingsScriptableObject.cs:368)
P3DS2U.Editor.P3ds2USettingsScriptableObjectEditor:OnInspectorGUI () (at Assets/Pokemon3DStoUnity-2.1/Editor/P3ds2USettingsScriptableObject.cs:520)
P3DS2U.Editor.Pokemon3DSToUnityEditorWindow:OnGUI () (at Assets/Pokemon3DStoUnity-2.1/Editor/Pokemon3DSToUnityEditorWindow.cs:49)
UnityEngine.GUIUtility:processEvent (int,intptr,bool&)
Esto me cuadra más. Si estás usando Sol/Luna, hay un problema con mi indexación de los pokes, que son para USUM. Prueba con este script para separar correctamente los binarios según la pokédex y prueba de nuevo el mismo índice.
 

Adjuntos

Saph

Pequeño saltamontes
oh bueno es que yo los había ordenado uno por uno revisando con el Spica antes de guardarlos tal vez fue error de mi mano no usé ese archivo Python separé también los que están vacíos en carpetas aparte volveré a empezar y estaba usando Pokemón US
 
Arriba