jmquigs / ModelMod

A system for modifying art in games.
GNU Lesser General Public License v2.1
79 stars 11 forks source link

Question / Appreciation Post #28

Open arsipsik opened 1 year ago

arsipsik commented 1 year ago

Sorry for submitting this as an issue. Just didn't find any other way to post my thoughts.

Hey @jmquigs! I wanted to send my appreciation for this! I've always wanted to mod Guild Wars 2 like I have FFXIV. While modding this way is a bit more limited, i've been able to make a few mods that i'm happy with.

Any chance someone has fixed the binormals/tangents issue? That's the only thing that I think is keeping the mods from looking absolutely perfect.

And to share some of what i was able to make:

gw041 gw043 gw044

jmquigs commented 8 months ago

@Frosferes2 maybe try the DX legacy end user runtime: https://www.microsoft.com/en-us/download/details.aspx?id=35

Games that use libs like d3dx are supposed to bundle that with their own installer, but MM does not use an installer so if they are missing they need to be installed separately.

Frosferes2 commented 8 months ago

@jmquigs Thanks, that worked, my mods are now loading again. I now have Visual Studio running on my machine, so I just have to learn how to use it properly and I can have a go at the vertex normal issue.

Whilst I'm here, can I just ask why the weight blend indices are encoded in a format that MM can't interpret? Is this part of the code unfinished? I ask because I will want to use mod weight mode in future, as several of my mods are somewhat extensive remodels that proximity weights don't work very well for. I want to know if this is a fix I would be capable of implementing or not.

jmquigs commented 8 months ago

@Frosferes2 I'm not sure what you mean about the weight blend indices. Can you explain more?

I can say that personally, I never use anything other than ref weighting. Mod weighting requires skill with blender that I don't have. Unfortunately this is an area where MM's approach to weights (weighting without a full skeleton) is not ideal, because there can be dozens of weights (corresponding to bones) used by the game for each mesh and they vary depending on what mesh is being rendered.

Frosferes2 commented 8 months ago

@jmquigs I'm referring to this comment I made the other day: https://github.com/jmquigs/ModelMod/pull/36#issuecomment-1781260069 This error seems to occur any time mod weight mode is used. Notice the blend index format is different from any other data format here. I'm not familiar enough with the ModDBInterop script yet to tell you more than that though.

GW2's playable race character models are very low poly and have low res textures. They've been unchanged since the game was first released after all. I've been using Blender to remesh and smoothen out a couple of character models so they don't look as blocky, and using AI upscaling to improve the detail of the extracted textures. The higher poly models don't play well with automatic weights, as you might expect.

The index groups thing isn't too big of a deal in all honesty. It wouldn't be too difficult to make a Blender script to symmetrise the names, and later reset them for exporting. I could also produce a replica skeleton for more accurate weight painting if I really wanted. But for the time being I'm focused on getting the stuff I export into the game looking like how they're supposed to.

jmquigs commented 8 months ago

Oh, that is probably coming from here. https://github.com/jmquigs/ModelMod/blob/49f01fd5cc7139526769d789b1bb637ba6c0dd46/MMManaged/ModDBInterop.fs#L463

What it means is that the code doesn't know how to write the blend indices to the d3d vertex stream in the format the game expects (in this case R8G8B8A8_UInt). There are lot of possible formats and when I first made this code I only tested the formats I had on hand (rather than putting code in there for formats I had no way to test). Its quite possible that the existing function writeBI() might work for this case, since the name of the format suggests its just 8 bits each for 4 blend weights, represented as unsigned ints, which the same as what those other formats are. The ordering of the indices may matter however (it could be reversed, although the name of the format follows standard RGBA conventions so this isn't likely)

RenegadeWraith commented 3 months ago

Any update on dx11 snapshotting?

arb1911 commented 3 months ago

Any update on dx11 snapshotting?

Yeah, I miss this feature greatly.

I hope it will come back.

Vergilldc commented 2 months ago

dx11 snapshotting would be fantastic indeed. Support for latest Blender versions would be the cherry on top but that's not that important now. :)