/FinModelUtility

Model viewer and command-line tools for extracting models from various GCN/3DS/PC games en-masse.

Primary LanguageC#GNU General Public License v3.0GPL-3.0

Fin Model Utility

GitHub Unit tests Coverage Status

Overview

Model viewer and command-line tools for extracting models from games en-masse. Separate batch scripts are provided for each supported game in order to simplify the process.

image

Suggestions

If you'd like to vote on new games or features that should be supported, please fill out the following Google Form:

Suggesting Games/Features for Fin Model Utility

Credits

Supported formats/games

Not all of the models for each game are currently supported, and not every feature of each model will be accurately recreated in the output GLTF/FBX files. To flag any broken/missing models that you'd like to see fixed, please feel free to file feedback via the Issues tab above.

  • /a (Animated group models) (GCN)
    • Paper Mario: The Thousand Year Door (paper_mario_the_thousand_year_door.[ciso/gcm/iso/nkit.iso])
  • J3dGraph (.bmd/.bdl) (GCN)
    • Mario Kart: Double Dash (mario_kart_double_dash.[ciso/gcm/iso/nkit.iso])
    • Pikmin 2 (pikmin_2.[ciso/gcm/iso/nkit.iso])
    • Super Mario Sunshine (super_mario_sunshine.[ciso/gcm/iso/nkit.iso])
  • .cmb (3DS)
    • Luigi's Mansion 3D (luigis_mansion_3d.[3ds/cci/cia])
    • Majora's Mask 3D (majoras_mask_3d.[3ds/cci/cia])
    • Ocarina of Time 3D (ocarina_of_time_3d.[3ds/cci/cia])
  • .geo (PC)
    • Dead Space (Steam/Epic Games)
  • .glo (PC)
    • Glover (Steam)
  • HSD, aka HAL sysdolphin (.dat) (GCN)
    • Chibi-Robo! (chibi_robo.[ciso/gcm/iso/nkit.iso])
    • Super Smash Bros. Melee (super_smash_bros_melee.[ciso/gcm/iso/nkit.iso])
  • .mod (GCN)
    • Pikmin 1 (pikmin_1.[ciso/gcm/iso/nkit.iso])
  • .modl/.out (GCN/WII)
    • Battalion Wars 1 (battalion_wars_1.[ciso/gcm/iso/nkit.iso])
    • Battalion Wars 2 (battalion_wars_2.iso)
  • .vis/.xtd (PC)
    • Halo Wars (Steam)
  • VRML (.wrl)
  • .xc (3DS)
    • Professor Layton vs. Phoenix Wright (professor_layton_vs_phoenix_wright.[3ds/cci/cia])

Note:

  • For GameCube ROMs, files with .ciso, .gcm, .iso, or .nkit.iso extensions should work.
  • For 3DS ROMs, files with .3ds, .cci, or .cia extensions should work.

Usage guide

Download a release via the Releases tab (for stability), or via the green "Code" button above (for latest). Extract this somewhere on your machine.

Then, follow the steps below.

Viewing/extracting models from ROMs automatically

  1. Drop ROM(s) in the cli/roms/ directory. Make sure their names match the corresponding name above! ( Games with brackets should accept any of the listed extensions.)

Viewing/extracting models via the UI

  1. Double-click the launch_ui.bat file in the cli/ directory. This will first rip all of the files from the game, and then gather the currently supported models. This can take a while on the first execution, but future executions will reuse the exported files.
  2. The viewer will open with nothing initially selected. Navigate through the models in the left-hand column and select a model you wish to view/extract. Once selected, the model will be loaded/rendered with as close of a representation to the original game as possible.
  3. The model can be extracted by clicking the export icon in the top bar. It will automatically be placed relative to the cli/out/[game_name]/ directory, in a chain of folders matching the ROM's original file structure. The model may not look exactly as it appeared in the viewer, because some material features are not supported in common model formats.
  4. All of the models in a given directory can be extracted by clicking the export_all icon in the top bar. Current progress will be displayed in the status bar on the bottom while models are extracted in the background. To stop this operation, click the cancel icon on the right side of the status bar.

Extracting all files from a given game via a batch script

  1. Double-click the corresponding rip_[game_name].bat file in the cli/ directory. This will first rip all of the files from the game, and then the currently supported models. This can take a while on the first execution, but future executions will reuse the exported files.
  2. Extracted models will appear within the corresponding cli/out/[game_name]/ directory.

Converting models

The tool can also be used to convert models via the command-line like so:

  cli/tools/universal_asset_tool/universal_asset_tool.exe convert -i [input files] -o [output file]

Here's an example with some files from Pikmin 1:

  cli/tools/universal_asset_tool/universal_asset_tool.exe convert -i chappy.mod chappy.anm -o chappy.fbx

The best plugin will automatically be detected based on the list of input files. For a list of supported plugins, use the following command:

  cli/tools/universal_asset_tool/universal_asset_tool.exe list_plugins

Notes about exported models

  • Both GLTF (.glb) and FBX models will be created when exporting, since each format has slightly different compatibility. FBX is generally preferred due to supporting additional UV channels, but GLTF is better supported within model viewer programs such as Noesis.
  • The materials for some models are broken/incomplete due to the complexity of recreating fixed-function pipeline effects in a standalone model. These will need to be manually recreated in whichever program you import the model into.