focustense / easymod

Modding for the modern age.
43 stars 2 forks source link

Feature Suggestion: EasyArmour #144

Open scorpiosixnine opened 2 years ago

scorpiosixnine commented 2 years ago

TL;DR: Basically the same idea, but for installing armour and/or clothing packs.

It's a similar problem to NPC appearances, in that there are some mods than can happily co-exist, and some that overwrite each other. There are some that change vanilla items, some that add new ones, some that push them into the levelled lists, some that don't, some that provide crafting options, some that drop them into specific places or vendors, etc, etc, etc.

As a first pass, it would be great if one could just get a nice UI overview, in the same way that EasyNPC provides, so that you could see that you've got three alternatives for Forsworn Armour installed, but you're only actually going to get one of them at runtime. This could work with existing mods, analysing them and building a new packed mod, like you do in EasyNPC.

More ambitiously though, it would be brilliant if you could abstract the replacement process a little, so that mod authors could provide packs of clothing, marked up with metadata indicating potential roles for it ("this is chest armour, which _could- replace Forsworn Armour piece XYZ").

You could then put the choice in the hands of the user as to which armours go into the game, and whether they replace something or go in as new items, are craftable, go into lists, etc, etc.

focustense commented 2 years ago

This has been my "next big project after EasyNPC" since I started on EasyNPC, although my own vision of it is somewhat different.

My use case is driven partly by the fact that I have about 500 really sweet looking outfits and armors for BHUNP, 3BA and so on, and... no way to deploy them effectively in a real game. Leveled lists are dumb, I don't want to see random bandits wearing armors that look like they cost the entire annual GDP of Solitude, or ugly farmers made up like prostitutes. But it makes sense for Taarie to be dressed to the nines, the Companions to each have super cool looking unique armor, and Haelga to be all tarted up.

So this project requires very detailed information not only about the outfits themselves (and of course, many of these "outfits" are themselves mix-and-match, with not every piece matching with every other piece and no obvious way to match them other than looking at them visually) but also about the NPCs who might use them. It goes way beyond identifying a "chest piece" - which is actually already in the slot info in the ESP. The metadata required is all about fashion: does it look cheap or expensive, modest or racy, professional or amateur, is it for mages or rogues or warriors, and so on. There's no way to collect all that automatically, it has to be crowdsourced, and to avoid the problems with a tool like LOOT, the tagging system would need to have its own trust and reputation mechanic.

I could of course build just a really simple metadata system, but that variation of the project doesn't really hold my interest, because I don't see it as being a game-changer, it's not that different from just messing with leveled lists and loot. Being able to distribute thousands of different outfits, not randomly, but coherently based on an NPC's looks and personality - that really is a game-changer IMO.

While EasyNPC is, by necessity, all about choosing individual appearances for individual NPCs, I think a "fashion" tool should actually try to get away from that micromanagement, instead only having you decide which outfits you want distributed and based on some simple-ish rules, and let you be pleasantly surprised in-game. It would also hopefully be able to sort out any weird incompatibilities between armor meshes and body meshes, which human operators couldn't be expected to do reliably, as they don't even know which NPC mods mess with the body type.

Happy to see that there's support for the general concept outside of my own imagination. Timeline for it is, I'm sorry to say, on the order of months or even a year or more - but someday!

scorpiosixnine commented 2 years ago

Yes, it's a big project, and I get where you're coming from with your take. I have a similar problem with a load of mods that have potentially some nice outfits in them, but also a load of crap, lots of things tagged wrongly with the wrong keywords, bad slot data, and/or armour when it should be clothing (or vice versa). And then, as you say, no real way to deploy them in-game other than AddMenuItem or adding them in the console.

I think that there are a number of different problems that such a tool could solve, and I can completely see the point of what you want with regard to fashion data, npcs, and so on, but I think you could start with something a lot simpler and it would still be immensely useful.

The more I think about it in fact, the more I think that first and foremost what is needed is just a better way to distribute armour/clothing, such that:

Similar to my suggestion about EasyNPC becoming the mechanism for publishing stuff, I think a clothing tool with a similar purpose would be a game changer if all it did was allow you to install outfits, view previews of them, and select the ones you wanted in-game.

I think you'd get buy-in from outfit makers if it gave them an easier way to package outfits without needing to make a mod.

Doubly-so if this became an easy way for other people to port outfits after gaining the appropriate permission from the original author(s). There are a ton of people out there who would do the work I think if the steps were clear and relatively easy to understand. Right now there are so many badly ported versions of the same stuff. Fixing each one is a lot of work, even if you could figure out who did what, where, to what. A way to split them into much smaller chunks would make it a lot easier for people to tackle it piecemeal.

I actually see this as analogous to a package manager (npm, apt, etc), and for distribution I would actually consider using git/github.

It would make it really easy for people to collaborate on the work, and also make it relatively simple to implement a dependency system with tags and repo urls, such that outfits could share textures etc.

If the first version of a tool just allowed you somehow discover these items, pick the ones you wanted, and build them into a single unified .esp/.esl/.bsa, that would be a start I could live with.

It would then be possible to build on additional functionality (maybe as plugin modules to the tool itself) which did things simple things like dumping them all in a chest somewhere, adding them to level lists, adding crafting recipes, and so on; but which also did the richer stuff that you're talking about, such as allowing you to deploy them onto specific NPCs or classes of NPCs.

The sky is the limit with how sophisticated it could get, ultimately, but first of all a could of good computer science principles need applying to the shambolic mess that is the source material: decoupling and indirection! Find a way to decouple the outfit data for any given outfit from other outfits, and from the ultimate in-game delivery mechanism. Provide a tool which indirects the actual installation and deployment process...

scorpiosixnine commented 2 years ago

Is there anywhere that this sort of discussion can take place amongst enough of the right people who would need to buy in to it? It feels like the nexus forums for any given mod aren't the right place, and in any case the audience reading them isn't the right audience. A github issue has the right audience potentially, but it's still isolated to people who are interested in a specific mod or project. Is there a forum/discord somewhere that's more general?