All Projects → Makiah → BotW-SBFRES-to-FBX

Makiah / BotW-SBFRES-to-FBX

Licence: other
⚔ A repo which employs a number of useful libraries I found across the net along with some custom-written Python and MAXScript to facilitate batch export of Nintendo SBFRES compressed files to FBX files (for use in Unity, for instance). DISCLAIMER: I do not condone the unauthorized replication of files provided by employing this script!

Programming Languages

MAXScript
40 projects
GLSL
2045 projects
python
139335 projects - #7 most used programming language
HTML
75241 projects
C++
36643 projects - #6 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to BotW-SBFRES-to-FBX

objmap
Breath of the Wild object map
Stars: ✭ 61 (+0%)
Mutual labels:  botw
byml-v2
Nintendo BYML or BYAML parser, writer and converter. Fully supports Breath of the Wild and Super Mario Odyssey files.
Stars: ✭ 23 (-62.3%)
Mutual labels:  botw
Hyrule-Compendium-API
An API serving data on all creatures, monsters, materials, equipment, and treasure in The Legend of Zelda: Breath of the Wild.
Stars: ✭ 82 (+34.43%)
Mutual labels:  botw
botw-editor
The Legend of Zelda: Breath of the Wild - Editor
Stars: ✭ 27 (-55.74%)
Mutual labels:  botw
botw-modding
The Legend of Zelda: Breath of the Wild - Modding Documentation and Tools
Stars: ✭ 51 (-16.39%)
Mutual labels:  botw
botw-unexplored
Easily view the unexplored korok seeds and locations in your BotW savefile on your Switch
Stars: ✭ 79 (+29.51%)
Mutual labels:  botw
TACTIC-Handler
PySide based TACTIC client for maya, nuke, 3dsmax, houdini, etc
Stars: ✭ 67 (+9.84%)
Mutual labels:  3ds-max

Automated SBFRES Extractor for Zelda BotW

Disclaimer

Avoid distributing the resulting models from implementing this tool, as they are copyrighted by Nintendo and you will be subject to such laws. Personal use ONLY!

Proof of Concept

Initial Setup

First, you'll need the models found by extracting your Wii U disc's content. This can be done with a number of existent tools, so avoid torrenting the disc image (support this awesome game peeps!).
Then, clone this repository in SourceTree or extract the downloaded ZIP archive. Then run cd /extracted/project/copy, and finally, python3 RunMe.py. This should take care of everything, and after about a day or so (it'll probably take that long), you can open the FBX files in fbxextraction/Database. For a more in-depth analysis of how it works, look at the next section.

Functionality

Note: this tool will only work on Windows because of limited platform support for certain tools.

For each section, you'll need Python 3 so I suggest installing that first.

PACK Extraction

Searches through the entirety of the game directories and finds PACK files, then extracts them to a directory in the same path.

Thanks to: NWPlayer123 for SARCExtract.py.

Additional requirements: Python 2.7.

SBFRES grouping

Super simple, just takes all discovered SBFRES files (including extracted ones) and moves them to a Compilation subdirectory.

Additional requirements: None.

Texture Extraction

A bit more complex: uses yaz0dec to extract the model and tex1 sbfres files, and then uses an assortment of libraries to extract and convert the textures to PNG format.

Thanks to: Random Talking Bush from the VG Resource for his QuickBMS scripts, NWPlayer123 for TexConv2, and the creators of ImageMagick.

Additional requirements: None (everything included in Libraries).

Model Extraction

Uses RTB's BFRES extraction MAXScript via 3DS Max to render the model and load the previously extracted textures, then uses some MAXScript I wrote to automate the process via a startup script argument.

Please note for this section: models may appear disfigured or malformed in the Windows viewer for some reason, but they seem to typically render fine in a game engine.

You'll probably have to coax the extraction through DgnObj items, since they're often forms this script can't handle (just close 3DSMax on error and the script will ignore this section and proceed onward).

Thanks to: Random Talking Bush for the extraction script.

Additional requirements: 3DS Max 2015/16.

Animation Extraction (WiP)

Extracts Maya animations (.anim files) in each animation sbfres via an automated fork of Smash Forge, alongside the corresponding .Animation.sbfres in one database. Then, takes the completed models from fbxextraction and loads them in Maya, applies an animation to them, and exports the skeleton to a different set of database folders. I couldn't figure out how to embed multiple tracks into a single FBX file that was readable by Unreal or Unity without doing frame splitting, and this was the next best thing.

Thanks to: KillzXGaming for his terrific work on Smash Forge that enabled animation extraction.

Additional requirements: Maya 2016.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].