Pass material path as argument
giniedp opened this issue · 5 comments
When extracting models for New World, lots of models (and variations) have get their materials overridden by various sources. I need a parameter to pass to the cryengine-converter, to tell which material file it should use, instead of resolving from model file.
For that i already have a patch that i am currently using. Hope it could land in next version
Here is my patch: 38c15db
Looks good. I've added the code to my features branch and hope to have 1.6 out soonish. This may come in handy for fixing some of the more annoying MWO material bugs too. Thanks!
Quick questions about passing args for mtl files. I've run into some models (Archeage), where there are multiple material files. I've gone under the assumption that one model file == one material file, but that clearly isn't the case anymore. I've updated the code in 1.6 to output all the Library
, Single
and Basic
material file types (actual material files) to the console so it's easier to see when this happens.
Have you ever run into New World files that use multiple material files?
Would it be ok to accept a comma separated list of mtl file names that match the material files in the models? I'm going to create a dictionary with the node chunk id and the Material, so the proper material file can be referenced.
Ugh, this is going to be a lot of refactoring. But it's more correct, so gotta be done at some point. 😬
or maybe i lied.
There are ofc some character models that are consist of multiple model/material pairs. Those are usually coming from .cdf
files. In that case i parse the .cdf
file, extract model material pairs, run each pair through converter, and assemble all models into one.
Yah, the cdf files are collections of models and shouldn't be affected by this change. In fact the new material name that includes the material file name as part of it should work better in the case you are assembling a cdf that has duplicate material names from different material files.
I'm just annoyed that 8 years into this project I'm still finding weird edge cases that have been wrong all along but seemed to work good enough. 🤣
I still need to think of a way to help the user figure out whether to provide the material file in the first place. It'll be hard to do bulk extracts where you may or may not need to provide the mtl file when converting.