New AE Build Part 6: All The Differences Between Us
When I wrapped up yesterday, I had intended this session to cover a review of my various SKSE enhancements and patches, including a discussion of which one's I'm adding immediately and which ones are going to wait until later. However, after reviewing them I realized that I just didn't have anything interesting to blog about on that score, so I went ahead and took care of those off the record. Today we'll get back to the NPCs - and in particular, building our EasyNPC population. If you followed the mod diary, you know that over the course of that run I built up an elaborate hybrid setup with many different NPC mods, picking and choosing the characters I liked the best. This time around, we're going to use the EasyNPC tool, which will reduce the number of files in play and generally save me a lot of grunt work. There will still be some 'hobby time' later on, but the actual process of choosing and applying faces will be much more automated.
First things first, we need to download the Easy NPC tool itself, along with its 'mug shot' gallery. I'll skip the Bijin gallery since I am deliberately excluding that mod series from this build. I've used Bijin many times in the past, so it's kind of 'tired' visually for me, and behind the scenes it uses an technical approach that, while interesting, greatly increases my workload if I want to avoid body seams. So that's right out. Similarly, I'll be skipping the Interesting NPCs module, since currently my plan is to skip that mod (again, done to death). Though... on that second part my wife may overrule me in the end, since she really likes the voice acting and character lore in that one. If I end up cloning this build to her computer, then 3DNPC might make a last-minute comeback ?
Next up, I sorted through my already-downloaded NPC overhauls and grabbed the ones I want to consider. Now for the time-consuming part: I need to go through each of these to make sure they are up to date and to check for any external dependencies like hair packs.
EasyNPC itself lived up to its name: it was surprisingly easy to set up and use. The biggest barrier to entry was repeatedly having to reload it as I discovered more options in the mug shot gallery that I wanted to have access to. With that finally done, next I need to go through and choose the NPC faces I want in my game.
In general I'm looking for a variety of different looks and trying to avoid "supermodel" looks when it's feasible*. I'm giving preferential weight to natural african hair for Redguard characters and tended to avoid beards on non-destitute characters who are "culturally imperial." I'm also deliberately ignoring "consistent older people," because I'm going to patch its textures onto more current mods' faces and then use the NPC facegen patcher to backport the textures into the facegen later on.
*I made a few exceptions. Erikur, for example, being a bit of a degenerate, got some luxurious 'boy band' hair.
...and now it's a couple hours later and we're done picking our faces. The EasyNPC application handles the process of assembling and packing the files, after which I just load it directly into MO2 and disable the feeder mods.
While I was in the process of doing this, I had some time to think about the other activity I planned to do today, which was adding mods that increased the number of template options. I've decided to put this on hold for now and give those template-expanders much more thought and review. Some of them will make it into the game eventually, but others are going to get left out. Even though these won't really put a lot of load on the game, I'm kind of coming around to the idea that they need to provide a tangible benefit to the game above and beyond just having more pretty faces. So, for example, fleshing out a LVLN tree that had very few options makes sense, same with adding actors who have more diversity in abilities (Deadly Wenches and Inova, for example). For now, we'll put that part of the project on hold and instead turn to our race customizations.
So how are we going to go about customizing the different races? Basically, I want to have some visual differences that will make them stand out more than just skin tone. Some of that is already getting accomplished through the NPC overhauls, which make the NPCs a bit less bland, but we have some further options beyond that.
The first one we'll grab is Bosmers Have Antlers, which I used on my previous playthrough. It's a SPID plugin so the required work is pretty minimal. Next we'll do Elven Ears For Bretons, another SPID mod. As part of the face generation process I already installed HHBB and Project JKJ which will handle the Argonians and Khajiit. Next, I want to make the elves a bit more predatory and creepy, so I'll be giving them these teeth that a Loverslab forum user shared with me (sorry, I can't redistribute this one - no permissions and I forgot who gave it to me).
Now I only have a single texture, but there are separate male and female mouth meshes. Fortunately, as you can see below they both use the same texture. So we'll create a texture set with the new texture path and map it to new headparts - which in turn we'll hook up to the mer-races.
Let's take a moment to see how it looks in the character creation menu. Yeah, perfectly non-creepy guy right there
Now the only thing I'm a little concerned about is propagating the teeth out to NPCs, since the texture paths are stored in the facegen. The good news is that EasyNPC forwards the face parts to the individual NPC_ records, so bulk patching those records shouldn't be a problem. However, if it's pulling those from the facegen rather than the race record, we might have some minor issues. Let's rerun EasyNPC and see if it grabs the new 'pointy' mouthpart from the edited race record.
So it looks like A) EasyNPC reads the head parts from the nif. This is a clever way to avoid black face syndrome, but doesn't help me here. Also, B) as expected it does not patch the nifs at all. This means we will need to use a texture patcher to manage the texture paths, which may be a little complicated because of the difference in the headpart names.
Before we get distracted on other topics, let's grab NPC Facegen Patcher and make sure it can even handle this change. This tool was designed for use with skin mods, and I'm a little iffy if it'll even look at the face parts. Only one way to find out, though!
So you can see in the first example, it captured the racial skin tones correctly (make no mistake, this is super helpful!) but it did not capture the mouth part textures, probably because the mouth part is "different." This means I'll probably have to create a custom script to just patch those teeth records, which is a little annoying. I'll research that and loop back later.
The next order of business is Redguards and Dunmer. I'd like to use DW's Palms and Soles as the basis for getting realistic non-melanized locations on those two groups. The basic mod comes with UNP racemenu overlays (female only) but I want to see if I can do better than that. So let's start by grabbing our UNP Redguard skins from D&D and assess how easy it would be to merge with the DW overlays.
This looks promising, the overlays are aligned to the UNP body and they are the same resolution. It's pretty likely we can just bake in the overlays to the main bod texture. The hands needed slightly more work because of a difference in texture size, but GIMP was up to the task.
Now let's see how it goes with the Dark Elf textures... yup, no problems there with geometry. However, the color gradient is too sharp on this skin and it didn't look great in-game. I might revisit mer skins in the future, but for now I'll stick with Redguards.
Unfortunately, I also don't have a good asset for male characters yet either, so we'll have to keep that one on the shelf - at least for now.
So we've brought some unique characteristics to Redguards, Bosmer, Bretons, Khajiit, and Argonians. That leaves Dunmer, Altmer, Imperials, and Nord. The predatory teeth, while shared with other elves, will be the Altmer's discerning characteristic - so no need for further work there (well, that, and eventually Thalmor will be visually distinct from other people in Skyrim, and most Thalmor are also Altmer). For the Nord? Well... "Skyrim belongs to the Nords..." or maybe more accurately, Skyrim was made for the Nords. For a people with supernatural resistance to cold, the temperature in the frozen north should be positively balmy. So how about we give the Nords some suitably lightweight outfits.
Characters with the Nord Race (and NordVampire) will wear much lighter outfits than everyone else, and we'll accomplish this by giving them an alternate ARMA record. First, let's build our outfits. This'll only apply to 'regular' outfits - not to armor, and not to unique/foreign culture/special reward items (though ancient nord gets a pass).
First we'll lean on Kreiste's Skimpy Outfits for the men. This mod is a 100% replacer and so doesn't have its own plugin. We will add another layer to the mesh folders so they don't overwrite the normal outfits.
Next, let's build the female counterparts. We will use minidress collection for BHUNP for the clothing, and once those are created we can research the best sourcing for the small number of armor items. The soft armor will probably come from Spice Gear, for thematic consistency, and the rigid armor may come from a bikini armor mod of some flavor - still figure that out as I type this.
KSO was an attractive choice for a few reasons. First, it uses all native DDS files, which means it'll get a visual upgrade later one when I rope in better clothing and armor textures. Second, it has an underwear option. Under other technical conditions I might have leaned into the NSFW aspect and done a revealing outfit, but since these will be alternate visuals for vanilla armor (which won't work right with SOS_Revealing added) I need these ones to cover up. That also influenced my choice of Minidress Collection compared to, say, ShinShi. However, the minidress collection does ship with some custom textures that overwrite the vanilla versions, so we are going to need to do a little extra work here - that's a bit annoying.
This mod does however contain a plugin file, so at least we won't be creating that from scratch. I believe Spice Gear is the same way. Oh, interesting. Spice Gear now has a patch with proper rigid armor weighting. So we don't need to drill down for an alternate on things like, say, dragonbone armor. We'll do that next then. All the assets generated without any issues, so the next thing to do is to get everything working in xEdit.
We'll start by deleting all the armor entries from the stock plugin, just leaving ARMA. After some consideration, I've decided to not mess around with any glove or shoe replacers - just the body. This will narrow the scope of work without (hopefully) making any significant visual difference.
OK, this is a small complication. It appears that only the items that needed ARMA changes got entries to start with, so we are going to need to pick through the vanilla ARMAs and copy over the ones we need.
After we check the conflicts to make sure there's nothing that would break the new assets, we want to copy these all as new records with a different editor ID.
On the new "Nord" versions we want to change the basic race to Nord and then add NordVampire and ManakinRace as alternates. We'll remove the rest.
After repeating this process for each armor item, we'll go back to the vanilla versions. First we need to go back to these and make sure they reflect our intended conflict winners - not the compatibility settings we went to in order to generate the variants. Then we'll remove NordRace, NordRaceVampire, and ManakinRace from their additional races list.
With that patchup complete, finally we need to dump all the Armor records to the patch, make sure they are current, and then adding the new ARMA record. We'll also remove anything that has a populated TNAM entry from the patch since those don't need the ARMA changes.
Last but not least we need to do the most grindy part - updating the mesh paths for the Nord ARMAs. This means adding \KSO\ to all the male meshes and \MD\ to all the female ones.
At this point, the basic installation of the alternate armor is done. I have a few additional refinements I'd like to make eventually, mostly involving distribution of specific outfits, but that can wait for now. Let's give this a quick test in-game to make sure its working.
Looks like we've achieved at least initial operating capability. Minidresses (only) comes packed with custom textures, but I'm not sure how critical they are. I'll be monitoring for purple textures and will patch the nifs as required in the future, but so far it looks like we're doing OK!
So, let's recap. Here's what we've customized so far.
- All races - unique skin textures and normal maps from D&D - facegen patched
- Mer-Races have a unique texture for their teeth - patched using nif texture replacement script after generating the facegen patch listed above
- 80% of Bosmer have antlers
- 80% of Bretons have elven ears
- Redguards have less pigmentation on their palms and feet
- Nords wear much lighter clothing despite the cold
- Khajiit have many different body types and appearances in line with lore
- Argonians have more diverse hear appearances and 'hair' styles
Imperials and Altmer are the "baseline" Men and Mer in this vision of the world, and don't need any special customizations - they're the "vanilla" that everyone is compared to. They will get some cultural edits later on, but that's currently premature. That just leaves the Dunmer. Eventually I do want them to have similar pigment variations to Redguards, and they will also get more cultural type distinctions in the final form of this build.
Now that we've completed these objectives in the editors, let's take a walk around the game world to see how things work. Fairly early on we found Faendal with some broken facegen.
A review of his assets reveals that he doesn't seem to have been picked up by the facegen patcher, so the textures for his body and his face are using different diffuse maps.
Further testing reveals the root of the problem: the NPC facegen patcher isn't picking up every character. When I tell it to patch Faendal specifically, it doesn't output anything.
After taking a closer look at the script and at the file setup, I have a theory about what's going wrong here. EasyNPC adds a custom skin to many actors. Sometimes, that custom skin is just a placeholder for generic naked body. However, the facegen patcher excludes any NPC with a custom skin.
Now some of these characters we actually do want to skip, like the characters from Project JKJ, but for the generics we do want to patch them, so I temporarily commented out the WNAM exclusion and reran the patcher for only the actors with the generic worn armor.
With that done, I removed the commented-out lines and re-saved the facegen script so that I don't accidentally blow up the legitimately masked skins in a future session. Let's see how Faendal's looking now.
Looking at Faendal, I think we can now say with some confidence that the issue isn't just his face textures; on top of that he appears to have black face bug. Let's do a walk around to make sure there aren't other impacted NPCs, but then we need to drill down into him a little further. Even on first glance I have my suspicions about the problem, since the mesh has hair and the in-game face doesn't.
I'm still seeing a lot of skin/face mismatches out here even after running the patcher. We've also got black face bug on Irileth. So we've got a lot of work to still do.
Well I figured out the black face bug issue - EasyNPC forwarded the new mouth part I made, and now its mismatching against the node name in nifskope. So I know how to fix that now, but it'll be time consuming
As for the mismatches, it does appear that D&D is providing both the body and the face diffuse maps and the skin tones do look right, at least by eyeball, but they clearly aren't matching up. This is especially noticeable on, for example, Ria's neck. Ultimately, I might have to give up on using D&D, but I'd hate to do that as it would unwind a while series of other customizations I've made that depend on it.
So I'm going to wrap things up for today and continue working on this in the days ahead. We've definitely got some solid wins, like the clothing mod, but there are other areas that'll be trickier.
Edited by gregaaz
10 Comments
Recommended Comments