Releases: SilentNightSound/GI-Model-Importer
V7.0 GIMI Tools
Version 7.0 of GIMI (Genshin Impact Model Importer) released! This has been a long time coming! Tons of new features, see below:
Main Features:
Support for animations! V7 now has built-in support for mods that use animations. Creating animation mods is still fairly complicated, please refer to the AGMG discord for details.
Support for mods based on remaining HP%! You can now create mods that toggle based on character's HP values, or that toggle based on accumulated damage! I also added a new command you can use to pull arbitrary information from the buffers so you can also use other things like energy% for toggles as well!
Much better outline calculations! Big thanks to @HummyR who added an option called "outline optimization" which will fix most of the split edges and broken outline issues.
The for playing version no longer has errors show up! No long lists of compatibility errors anymore!
Increased vertex limit in the plugin to several billion! (limit is around 400k in practice). V6 had a limit of 64k in comparison.
Full Changelog:
Loader Changes:
- Loader has clearer instruction and error messages
- Default target has been set to GenshinImpact.exe, no need to change it anymore
- More formats for the path accepted now
Blender Plugin Changes:
- Increased the vertex limit from 64k to several billion (limit is around 400k in practice)
- Added a toggle to only export visible objects (thank you to @HazrateGolabi!)
- Added a toggle to only export selected objects
- Added an export feature to ignore shadow ramps, metal maps and diffuse guides when exporting (these can lead to subtle issues in mods, so I recommend keeping this set to not export)
- Plugin will automatically null empty components instead of giving an error - you can fully delete all the faces in an object now!
- The intermediate buffer files will be automatically deleted so they no longer clutter up the original data folder
- Partial path match causing issues on export now fixed - the program defaults to using the foldername
- Removed the original tangent feature - it wasn't being used, had a super limited scope and was fairly glitchy
- Generate script is now deprecated, please use the blender plugin instead
- Better error messages for several common errors
- The ability to export credits which will popup when the mod is loaded (see next section for details)
- The export plugin now has much, much better outline calculations (thanks to @HummyR!). When exporting, there is an option called "Outline Optimization" which will fix most of the split edges and broken outline issues.
Ini Changes
- Added the ability to toggle all mods on and off by pressing F6 (note: may not work on card/pure texture mods)
- Support for animation built-in to the ini, no need to manually add the shader files or pose buffer commands
- Help message now loads on startup for all versions, and a more complex help message loads after pressing F1 (thank you Takoyaki for showing the proof of concept! :kleeheart: )
- Support for a credit popup in the bottom left corner when loading a mod (thanks again to Takoyaki)
- Dev version has been updated to have shader dumping set as the default
- For playing version set to hunting mode 2 as the default to fix compatability issues with shaders
- I have added a version number that can be referenced anywhere with $version. With this, in the future any features can be selectively turned on and off depending on what version the user is using
- The help menu has been updated to included additional information about buffer hunting, as well as some tips on how to fix broken mods
- I removed uninstall.bat from the folder after I accidentally clicked it and it wiped my ShaderFixes folder (ahhhhhhhh)
Dll changes
- Error messages are now suppressed in the for-playing version, no more annoying orange text clutter!
- store command has been added to retrieve values from buffers - I have included a file which grabs the health value and included it in the release by default for use by modders
Merge Script
- Fixed most common issues with the merge script, including failing on null overrides, in mods with conditionals, with transparency, with reflection fixes, with dash fixes
- Script now comes with a built in auto-reflection fix (thank you to @HummyR and Xodd4869 !)
- Script was made to be compatible with new credit feature, will show the correct credit corresponding to the current toggle
Damage Script
- Script to automate the creation of damage mods (mods that auto-toggle based on current health/damage sustained)
- Three versions - one that toggles based on current health (default), one based on accumulated damage (use -acc flag), and one based on only large hits to HP counting (use -hit flag). The latter 2 are still a bit buggy due to issues isolating the health value from other bars like the party load - if someone can improve the targeting so only the health is targeted, the bugs should go away
- Substantial optimization to damage mods
Animations
- Animation section now public to all modders! This includes guides and tools for getting started with animations
- For 3dmigoto animations, I have included a script which automates the ini creation portion of the process
For anyone who just wants to play mods, grab 3dmigoto-GIMI-for-playing-mods.zip. For anyone looking to develop, get the 3dmigoto-GIMI-for-development.zip and blender_3dmigoto_gimi.py to start.
V6.0 GIMI Tools
Version 6.0 of GIMI (Genshin Impact Model Importer) released!
Features:
-
Vertex limits automatically raised for objects! V6.0 adds a new override type called VertexLimitRaise which tells the program which objects to increase the vertex limits for - the plugin and generate scripts handle this automatically, so you don't need to worry about setting it yourself as long as you are using the most up-to-date tools.
- Note that limits can only be raised when that object is first loaded in-game, so you may have to unload and reload an object for the new limits to apply (e.g. swapping a character in and out of the party, or teleporting away and back). Worst case, just restart the game after adding a new mod to the Mod folder for any new limits to apply.
-
Blender plugin now supports versions 2.93+! Based off the update done by MicroKnightmare from the DOA modding forum, and merged with the current script. The plugin should now work for any Blender version up to current.
-
Better defaults for scripts! The blender plugin now automatically handles several common mistakes such as misnaming the export file and forgetting to name uv coordinates correctly.
-
Fixed issues with the 3dmigoto loader failing to inject into games. Some people were reporting that the window was closing before the dll was injected, so I have increased the time delay to a few seconds which should hopefully fix the issue. Also improved the logging messages.
-
Several bug fixes in the collect, generate and blender plugin scripts. Most notably, the overlapping face hash issue has been resolved so you should no longer get warnings when changing face textures for any models generated with the new scripts.
-
Collect script now able to dump objects with mismatched vertex counts, as well as partial support for those weird objects which have 4D normals. Also more detailed logging messages and better error handling. If you are still having issues, try using --force on different listed relevant draw ids to see if any have better properties for scraping.
-
Partial support for new version models. The collect script can now dump models that have normal maps by using the -has_normalmap flag. Still looking into ways to automatically identify texture maps.
For anyone who just wants to play mods, grab 3dmigoto-GIMI-for-playing-mods.zip. For anyone looking to develop, get the 3dmigoto-GIMI-for-development.zip and blender_3dmigoto_gimi.py to start.
V5.0 Collection and Import Tools
Version 5 of the model importer released! Lots of changes in this one, though it should still be backwards compatible with previous versions
-
Support for weapons! There are two types of weapon models - those with vertex groups (e.g. catalysts, bows, some fancy swords with tassels, etc.) and those without (e.g. swords, polearms, greatswords, etc.). The former behave like characters and can be modded the same way; the latter are just objects and you can basically replace them with anything you want.
-
Support for modding character face textures! Just change the dds file in the folder to the new face. Only textures supported, the face model itself is shared between multiple characters so it can't be changed for one character without breaking all the others
-
Hash data is now stored inside model folder as hash.json, instead of in a single shared hash_info.json. No need to worry about updating hash_info anymore!
-
Better outlines! While I still don't know how to recreate the game's tangents, this version should be much better looking for custom mods. Thanks to LanYi#4175 for troubleshooting this issue with me.
-
Can now edit character shadow ramps and metal maps
-
Rewrote collect script again - it can now rip characters that are split into multiple parts, and is generalized to characters that have N objects (if characters are drawn using multiple vbs you can list them all in the -vb flag). It can also now rip textures only - just prefix the hash with an "X" and it will skip the model collection. Also supports custom names for model objects which can be specified with the -c flag.
-
Moved model data to a separate repo (https://github.com/SilentNightSound/GI-Model-Importer-Assets), added some weapons and updated character data folder to include all textures. Also raised the vertex limit for a large number of additional objects
-
Turned off the ability to dump shaders in 3dmigoto - it can result in some subtle glitches, and was causing issues for people. If you need to dump them for whatever reason, just turn them back on in the .ini file
-
Turned off the "unable to verify if 3dmigoto loaded" message in the loader .exe. Also makes sure it closes after loading since that can lead to computer slowdown otherwise
V4.1 Collection and Import Tools
Releasing the July 1 version 4.1 of the tool on this page in preperation for the v5 release. Including all the information from the previous version changelog as well
Version 4.1 (July 1, 2022)
- Improved the collect script to now try and identify the correct objects and corresponding draw calls without needing to be explicitely told
- Fixed a bug for models with a stride of 92 but no extra component
Version 4 (June 30, 2022)
- Added a method of using the original model tangents when exporting to partially fix outline issues. I was unable to figure out how genshin calculate the tangents, but if the new model is similar enough to the old one we can just re-use the tangents and the result looks much closer to the original. Can use either by adding the flag --original_tangents on the generate.py or by clicking the "Use original tangents" button when exporting in the genshin plugin
- Added a script that lets you forcibly set the vertex COLOR values to specific values. This helps fix the black outline issue that some models can end up. Use with python genshin_set_color.py -n CharTexcoord.buf --stride X -r R -g G -b B -a A where X is the stride for the texcoord (found in the .ini, probably either 12 or 20) and RGBA are the values you want to set (values between 0 and 255, do not need to specify all values - if only one value is specified, sets that one only and leaves the rest the same. Most of the time you will want to only modify the A value and set it lower/to 0 to fix border issues). This will generate a new file called CharTexcoordModified.buf which you can rename to replace the original (or change the name in the .ini)
- Added support for four object characters (e.g. Rosaria, Xiao, Yelan) to the collect and plugin/generate scripts, and added them to the characterdata folder. The second object is just named Extra2 on those models, but behaves the same way as the regular Extra
- Updated the 3dmigoto .dll to raise the limit on the buffers even more since some people were reporting models were still hitting it. Also raised the limit for the four object characters
Planned:
- QoL features for the blender plugin (transfer custom properties, fill in missing vertex groups)
- Weapon and face support
- Disabling transparency filter for characters
Version 3 (June 24, 2022)
Features:
- Updated and organized github pages and guides
- Split 3dmigoto plugin into development and release versions depending on use case
- Updated scripts for increased compatability with some models
Version 2 (June 22, 2022)
Features:
- Raised vertex limit to 64k for all characters
- Finished dumping all character data to the folder with a few exceptions
- Fixed support for characters with three components
- Fixed texture bleed issue between components
- Added one-click export to the blender plugin
Issues:
- Outlines are broken on models after import
- Characters with four components not supported
- Some shading issues
Version 1 Initial Release (June 18, 2022)
Features:
- Functional model exporter/importer using 3dmigoto for genshin impact
- Able to remove and modify mesh data, including vertices, edges and textures
- Added guides on how to use the program and modify data
Issues:
- Limited characters currently supported
- Restricted to the original number of edges and vertices
- Textures can bleed between different components (e.g. head/body)
- Third component on some characters unsupported