Tutorial
Updated
Export your Pokémon animated models from Nintendo Switch to Unity Engine
Hey folks! Some of you might know me from my tutorial about how to export from 3DS games to Unity Engine, exporting lets go models and animate them with Mixamo or exporting Switch models and animate them with 3DS animations.
Well, thanks to Mvit, Golui, Reisyukaku, @KillzXGaming and the rest of the PokéModding team, we can now export the models and animations from Nintendo Switch games to Unity Engine in a few minutes. Beware that Scarlet and Violet require some extra steps as they use a different format for files and compression.
Lets start!
NOTE: This DOESN'T apply Mystery Dungeon DX. At the moment of this post, Lets Go animations are the only ones that fully work. SWSH mostly work, but have some key issues you need to fix by hand. Also, Blender importer is not working properly, but 3DS Max is, so we will use it.
What do you need:
- Pokémon Lets Go Eevee/Pikachu/Sword/Shield decrypted
- Switch Toolbox: https://github.com/KillzXGaming/Switch-Toolbox
- 3DS Max (I will use 2019 for this tutorial)
- This 3DS Max Script: Download
-SMD plugin for 3DS Max: Download
- Unity Engine
Step 1: Prepare your game.
- Get the desired game (In this case Pokémon Sword)
- Decrypt the game with your favourite method.
I recommend taking a look to these tutorials if you don't know how to do it: https://gbatemp.net/threads/decrypt...backup-loading-ryujinx-yuzu-in-1-click.506954 or https://gbatemp.net/threads/extract-nsp-nca-xci-update-all-in-one-tool-for-layeredfs.511156/
- Place all files anywhere in your PC.
Step 2: Get the desired model and export the GFBMDL file.
- Open Switch Toolbox
- Click on File > Open.
- Look for the Pokémon gfpak you want to export. In this case, I'm gonna export Sobble which is pm0951_00_00.gfpak (if you want to check the IDs to know which one matches a Pokémon, check this thread: https://gbatemp.net/threads/tutoria...-and-animate-them-with-3ds-animations.552486/
- Click on (+) next to the gfpak name in the hierarchy and the list will be displayed. We need to double click in > Quick Access > Models > gfbmdl file. (rare is for Shiny one). Once you do it, it will show more options and the model will be rendered.
You can 2 two things here: Export the model or export the gfbmdl.
A) Exporting the GFBMDL
- Right click on the gfbmdl > archive > export raw data > save the gfbmdl anywhere in your computer (remember where).
- Right click on Textures > Export All > Save them anywhere you want
B) Exporting the model as DAE:
- Instead of Archive > Export Raw Data, just click on Export Model > Save them anywhere you want. Toggle export all textures to export every used texture with it.
Step 3: Export all the animations
- Click on (+) next to Quick access > Animations
- Double click on each .gfbanim. Then, if you select again the gfbmdl (with left click) and then select any gfbanim, the animation will be displayed in the timeline.
- You need to go one by one > Right click > Export Animation > Save them wherever you want (same folder as the gfbmdl helps to have everything ordered).
Step 3: Export the 3D model and add animations to it.
- Download SMD plugin and install it.
A) If you exported the GFBMDL file:
- Download the GFBMDL script.
- Unzip the script anywhere in your computer.
- Run 3DS Max.
- In the toolbar, click on Scripting > Run Script > Open the script
- A new window will appear.
- Click on Import *.GFBMDL > Look for the GFBMDL file exported in step 2 and open it.
- The model will load.
B) If you exported the .DAE:
- File > Import > Look for the exported DAE in step 2.
- Model will load.
- After that, click on File > Import > select the animations exported in step 3. They are in .SMD Files.
- Sword Models need to be rotated in 90º on the X axis.
- File > Game Exporter > Select the location where the FBX will be saved > Export.
Step 4: Import animations into Unity
- Open Unity Engine
- Create/open your project
- Drag the FBX to the project resources tab.
- Click on the FBX. In the inspector > You will see Avatar definition as No Avatar> Click there and select "Create from this model" > Apply
- Now Click on the arrow in the FBX to open it > Select all animationclip files > Left Control + D to duplicate them outside the FBX
- Toggle loop whenever is needed.
- Add it to your scene and give it some cool materials (Remember textures must be mirrored in the same way 3DS ones: https://gbatemp.net/threads/tutoria...ed-models-from-3ds-to-unity-engine-3d.532962/).
Step 5: Enjoy!
Got stuck already? I made a video of the full process:
NOTE: If animations make 3DS Max to crash, it maybe because of decimal character (comma or dot) depending on your region. Check your 3DS Max use same character than the parsed animation and change them if so.
Other Locations:
Environment objects can be extracted in the same way. Just export the models from the correct gfpaks.
Let's Go (Thanks to Sceo for the list):
Credits:
- @KillzXGaming: Switch Toolbox
- @Demothene: PLGU Shaders
- @PRAGMA: Romfs decrypting tutorial
- @huma_dawii: Other decrypting tutorial
- @Random Talking Bush: 3DS Max Exporter Script
- Rei, Golui, Mvit and all pokéModding team for making this possible.
Dev Community:
I created a Discord where some of the best Unity, Godot, RMXP and Unreal pokémon fanmade devs discuss and help each other. Wanna join? https://discord.gg/pYBWwAa
Other useful threads:
- https://gbatemp.net/threads/tutoria...-and-animate-them-with-3ds-animations.552486/
- https://gbatemp.net/threads/tutoria...ainer-models-and-rig-them-with-mixamo.547159/
- https://gbatemp.net/threads/tutoria...ed-models-from-3ds-to-unity-engine-3d.532962/
- https://gbatemp.net/threads/tutorials-discussion-how-to-make-pokemon-shaders.547875/
Well, thanks to Mvit, Golui, Reisyukaku, @KillzXGaming and the rest of the PokéModding team, we can now export the models and animations from Nintendo Switch games to Unity Engine in a few minutes. Beware that Scarlet and Violet require some extra steps as they use a different format for files and compression.
Lets start!
NOTE: This DOESN'T apply Mystery Dungeon DX. At the moment of this post, Lets Go animations are the only ones that fully work. SWSH mostly work, but have some key issues you need to fix by hand. Also, Blender importer is not working properly, but 3DS Max is, so we will use it.
What do you need:
- Pokémon Lets Go Eevee/Pikachu/Sword/Shield decrypted
- Switch Toolbox: https://github.com/KillzXGaming/Switch-Toolbox
- 3DS Max (I will use 2019 for this tutorial)
- This 3DS Max Script: Download
-SMD plugin for 3DS Max: Download
- Unity Engine
Step 1: Prepare your game.
- Get the desired game (In this case Pokémon Sword)
- Decrypt the game with your favourite method.
I recommend taking a look to these tutorials if you don't know how to do it: https://gbatemp.net/threads/decrypt...backup-loading-ryujinx-yuzu-in-1-click.506954 or https://gbatemp.net/threads/extract-nsp-nca-xci-update-all-in-one-tool-for-layeredfs.511156/
- Place all files anywhere in your PC.
Step 2: Get the desired model and export the GFBMDL file.
- Open Switch Toolbox
- Click on File > Open.
- Look for the Pokémon gfpak you want to export. In this case, I'm gonna export Sobble which is pm0951_00_00.gfpak (if you want to check the IDs to know which one matches a Pokémon, check this thread: https://gbatemp.net/threads/tutoria...-and-animate-them-with-3ds-animations.552486/
- Click on (+) next to the gfpak name in the hierarchy and the list will be displayed. We need to double click in > Quick Access > Models > gfbmdl file. (rare is for Shiny one). Once you do it, it will show more options and the model will be rendered.
You can 2 two things here: Export the model or export the gfbmdl.
A) Exporting the GFBMDL
- Right click on the gfbmdl > archive > export raw data > save the gfbmdl anywhere in your computer (remember where).
- Right click on Textures > Export All > Save them anywhere you want
B) Exporting the model as DAE:
- Instead of Archive > Export Raw Data, just click on Export Model > Save them anywhere you want. Toggle export all textures to export every used texture with it.
Step 3: Export all the animations
- Click on (+) next to Quick access > Animations
- Double click on each .gfbanim. Then, if you select again the gfbmdl (with left click) and then select any gfbanim, the animation will be displayed in the timeline.
- You need to go one by one > Right click > Export Animation > Save them wherever you want (same folder as the gfbmdl helps to have everything ordered).
Step 3: Export the 3D model and add animations to it.
- Download SMD plugin and install it.
A) If you exported the GFBMDL file:
- Download the GFBMDL script.
- Unzip the script anywhere in your computer.
- Run 3DS Max.
- In the toolbar, click on Scripting > Run Script > Open the script
- A new window will appear.
- Click on Import *.GFBMDL > Look for the GFBMDL file exported in step 2 and open it.
- The model will load.
B) If you exported the .DAE:
- File > Import > Look for the exported DAE in step 2.
- Model will load.
- After that, click on File > Import > select the animations exported in step 3. They are in .SMD Files.
- Sword Models need to be rotated in 90º on the X axis.
- File > Game Exporter > Select the location where the FBX will be saved > Export.
Step 4: Import animations into Unity
- Open Unity Engine
- Create/open your project
- Drag the FBX to the project resources tab.
- Click on the FBX. In the inspector > You will see Avatar definition as No Avatar> Click there and select "Create from this model" > Apply
- Now Click on the arrow in the FBX to open it > Select all animationclip files > Left Control + D to duplicate them outside the FBX
- Toggle loop whenever is needed.
- Add it to your scene and give it some cool materials (Remember textures must be mirrored in the same way 3DS ones: https://gbatemp.net/threads/tutoria...ed-models-from-3ds-to-unity-engine-3d.532962/).
Step 5: Enjoy!
Got stuck already? I made a video of the full process:
NOTE: If animations make 3DS Max to crash, it maybe because of decimal character (comma or dot) depending on your region. Check your 3DS Max use same character than the parsed animation and change them if so.
Other Locations:
Environment objects can be extracted in the same way. Just export the models from the correct gfpaks.
Let's Go (Thanks to Sceo for the list):
Maps
Overworld maps:
Extracted_NCA_Let's Go\romfs\bin\archive\field
Indoor maps: Extracted_NCA_Let's Go\romfs\bin\field\model
Background maps of battles: Extracted_NCA_Let's Go\romfs\bin\archive\background
Doors, grass, SS Anne, etc: Extracted_NCA_Let's Go\romfs\bin\archive\field\buildmodel.gfpak
Player/NPC
Playermodels and NPC's with animations, also Ghost from Pokemon Tower (last 2 models)):
Extracted_NCA_Let's Go\romfs\bin\archive\chara\data\tr
Headwear for player (unsure if also for poke?): Extracted_NCA_Let's Go\romfs\bin\archive\chara\data\pd
Models of Pikachu and Eevee, with animations, models from on shoulder:
Extracted_NCA_Let's Go\romfs\bin\archive\chara\data\bd
Different textures of outfits of hero and heroine, other shirt for example, uses original model.
Extracted_NCA_Let's Go\romfs\bin\chara\data\tr
Different textures of outfits of Pikachu and Eevee:
Extracted_NCA_Let's Go\romfs\bin\chara\data\bd
Different textures of headwear for the player:
Extracted_NCA_Let's Go\romfs\bin\chara\data\pd
Random
Pokeball models/textures (few berries, and random like HM's etc, Subsitute model):
Extracted_NCA_Let's Go\romfs\bin\archive\chara\data\ob
Overworld maps:
Extracted_NCA_Let's Go\romfs\bin\archive\field
Indoor maps: Extracted_NCA_Let's Go\romfs\bin\field\model
Background maps of battles: Extracted_NCA_Let's Go\romfs\bin\archive\background
Doors, grass, SS Anne, etc: Extracted_NCA_Let's Go\romfs\bin\archive\field\buildmodel.gfpak
Player/NPC
Playermodels and NPC's with animations, also Ghost from Pokemon Tower (last 2 models)):
Extracted_NCA_Let's Go\romfs\bin\archive\chara\data\tr
Headwear for player (unsure if also for poke?): Extracted_NCA_Let's Go\romfs\bin\archive\chara\data\pd
Models of Pikachu and Eevee, with animations, models from on shoulder:
Extracted_NCA_Let's Go\romfs\bin\archive\chara\data\bd
Different textures of outfits of hero and heroine, other shirt for example, uses original model.
Extracted_NCA_Let's Go\romfs\bin\chara\data\tr
Different textures of outfits of Pikachu and Eevee:
Extracted_NCA_Let's Go\romfs\bin\chara\data\bd
Different textures of headwear for the player:
Extracted_NCA_Let's Go\romfs\bin\chara\data\pd
Random
Pokeball models/textures (few berries, and random like HM's etc, Subsitute model):
Extracted_NCA_Let's Go\romfs\bin\archive\chara\data\ob
Credits:
- @KillzXGaming: Switch Toolbox
- @Demothene: PLGU Shaders
- @PRAGMA: Romfs decrypting tutorial
- @huma_dawii: Other decrypting tutorial
- @Random Talking Bush: 3DS Max Exporter Script
- Rei, Golui, Mvit and all pokéModding team for making this possible.
Dev Community:
I created a Discord where some of the best Unity, Godot, RMXP and Unreal pokémon fanmade devs discuss and help each other. Wanna join? https://discord.gg/pYBWwAa
Other useful threads:
- https://gbatemp.net/threads/tutoria...-and-animate-them-with-3ds-animations.552486/
- https://gbatemp.net/threads/tutoria...ainer-models-and-rig-them-with-mixamo.547159/
- https://gbatemp.net/threads/tutoria...ed-models-from-3ds-to-unity-engine-3d.532962/
- https://gbatemp.net/threads/tutorials-discussion-how-to-make-pokemon-shaders.547875/
Last edited by Manurocker95,