A program to generate Collada files of items from Destiny 2
This program is capable of generating a 3D model of any item available through Destiny 2's web/mobile api and exporting said model in Collada format, with all data intact. Items on this list will be checked off as they are implemented.
-
Core functions
- Export geometry
- Export mesh weights
- Export UV texture coordinates
- Export per-face vertex normals and tangents
- Export vertex colors
- Export dye slots for compatibility with D2 model rippers' shaders
-
API support
- Call files to convert from the API by item hash
- Convert files from the D1 API by item hash
-
Additional features
- Generate textures for items in .png format
- Generate a list of shader parameters for items, in an easy-to-understand layout
Destiny uses a lot of custom normals for models because geometry normals tend to get weird pucker marks when the mesh is brought down to game-quality. Blender doesn't natively support importing those custom normals though (at least, not for Collada files), so I made TiredHobgoblin/io_import_collada_normals to do that.
This tool requires GDI+ to function properly, which cannot be packaged with the Linux distribution of it. GDI+ can be installed on Linux by running the following commands:
sudo add-apt-repository ppa:quamotion/ppa
sudo apt-get update
sudo apt-get install -y libgdiplus
If the program exits without warning (command line closes on its own in the middle of converting), it's likely due to a bug or error. If this happens, create a new issue on the github repo, including the TGXM file or item hash that caused the crash. I'll push out an updated version of the program once the issue is fixed.
The DMR Discord server has tutorials for working with the models produced by this tool, as well as a drive full of models already prepared for use and help channels for any issues you might run into while working with this tool or Destiny models in general. No commitment required, all of the models and tutorials are free to access.
This program uses:
Large sections of code adapted from Lowlines' TGX loader for three.js, as well as their online manifest
Burtsev Alexey's .NET deep copy extension method
Alexandre Mutel's patch of the C# COLLADA specification classes