Jump to content

New AE Build Part 6: All The Differences Between Us


gregaaz

405 views

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.

 

image.png.479f2fc7b4be53595d4b2a355bf73f84.png

 

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.

 

image.png.cb075cac6758b69b44c0d5783831f70f.png

 

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.

 

image.png.643d8d1956f4792a75e28fbe06bc7739.png

 

...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. 

 

image.png.8cbbe933ee3f0b1aa8b078ffa8ec9d92.png

 

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).

 

image.png.0e8fe1a19035ab887c38c2c433189938.png

 

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.

 

image.png.1a3caeb19500133099cad8ac8e7a4659.png

 

image.png.71abd4a199e012c937e5114d8919dee5.png

image.png.9b21155cf269ede4026c4ec0010b1068.png

 

image.png.9e6cdc499af9aaac4a1d5501d83e889c.png

 

Let's take a moment to see how it looks in the character creation menu. Yeah, perfectly non-creepy guy right there :D 

 

image.png.e931a083814e8224ca189a70db23f7c2.png

 

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.

 

image.png.5a327eaa715b375b7b383d7f218520b2.png

image.png.5ce4c52d1fab63808dd63cb790f1701d.png

 

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!

 

image.png.b6a714bd59a41b0b3bd1a9325730439a.png

image.png.92dca511b767ddd18b75b055e2afedec.png

 

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.

 

image.png.2452aa1cb6cc9cedfffa7c4f65346f35.png

 

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.

 

image.png.682bde8e1f762a3521070db88765e686.png

 

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.

 

ScreenShot2250.png.28bc2ff8a66561c113cd5fa9cb42da99.pngScreenShot2249.png.724b9a56901ba80cfd783acf9289fd32.pngScreenShot2248.png.53ea1b3eec46eaef56d2c8d75c1666b9.png

 

 

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.

 

image.png.3a536d4bfe899fc46890441d843f1149.png

 

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.

 

image.png.edc884ec00430403264fb24e3df303ff.png

 

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.

 

image.png.32b0edce1edb9717b4fa4e35e2c2673a.png

 

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. 

 

image.png.01dbeb708432090e517815fb251b45a9.png

 

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.

 

image.png.142c9a1d2ddab3e5e26ee63b8ab48a68.png

 

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.

 

image.png.af74f877267a1de1a758354a4cb16ef9.png

 

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.

 

image.png.1197f9b7a605dc6b4127d37a5fa9aa0a.png

 

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.

 

image.png.cdad2f73a77e5c44b920cba12ae69262.png

 

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. 

 

image.png.b863336f942fb2dd0ef2ac1e5eca8d20.png

 

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.

 

ScreenShot2253.png.a7694fc468704fe9c06c6502a5dcb29b.png

ScreenShot2254.png.d816765119ce58982ce35be8d73ffd64.pngScreenShot2252.png.6867fa13a3bb05e672b29f5ead4eed49.png

ScreenShot2251.png.ebada3a3423018cc21ad3ae0e3dfac91.png

 

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. 

 

image.png.f56a9f0c90229661ffd6561dc24f130f.png

 

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.

 

image.png.47730b787f5c5003adb1a4f75db71605.png

 

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. 

 

image.png.1aa24882888c6f87e75a91dca5bbbcbc.png

 

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.

 

image.png.38d00c33df326748e02d0bb619ea2f11.png

 

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.

 

image.png.b22f967f038918596da05f8d50963564.png

 

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.

 

image.png.6c789d5e370bcb3e2987a6e25907adb7.png

 

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.

 

image.png.c6a04c937d6e324676ef6a4db8f2e87d.png

 

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.

 

image.png.8b603073e52963b8cc3d9cba477bcc4f.png

 

ScreenShot2274.png.e4e49147d1d8181f242c83d8af41af98.pngScreenShot2273.png.1146ada4dc47ac825d20d95b17877c4e.pngScreenShot2272.png.e340d942ba66fd0a7e8c74f15e66c3b0.pngScreenShot2271.png.0cc060f411ab7e2091abc007a28d4717.pngScreenShot2270.png.d22baf27256f7892d5a2bdb2aaf986d2.pngScreenShot2269.png.fd44eb310c31330b147b15457055b0a5.pngScreenShot2268.png.76f5509768d612ce31dc7cba5518f3dc.pngScreenShot2267.png.a00d3aaf49226414a81373a3576453c6.pngScreenShot2266.png.5bbfb02d608323fd28ed2fc0fc80894d.pngScreenShot2265.png.f5254d74a33ecd741d54f92b7bc56e5a.pngScreenShot2264.png.ea9ab1380f6781da559ab9f2febafa7a.pngScreenShot2263.png.abbeb454cf25df236af735bd188552be.pngScreenShot2262.png.76d5f9935bae2ad33e9545efaa7aee68.pngScreenShot2261.png.57f04883a2d067770829979370a989c9.pngScreenShot2260.png.395a9e529319ae02092a590b46d526e5.png

 

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. 

 

image.png.abfcabe6165eb22cb5db7bf1c529c0e8.png

 

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

image.png.2628cc1af85fa80d6b6b4c53f66829f8.png

 

Regenerating EasyNPC without the problematic edits to the race record fixed the Elf blackface problem. Varying degrees of head/body color mismatch are still present, so that'll be the next thing to address.

Link to comment

And exactly this scene with the Bosmer I need for my story in the first chapter


Yours looks way better than mine

?

 

Link to comment

And now I know why I never really tried to play around with those race specific mods. Nice results if it works, true. Still way more hassle than it's worth for my taste. ^^

Link to comment
4 hours ago, Miauzi said:

otherwise it looks like this:

Kapitel01_06.png.f9b7db0d363d6125e8e746f9f375d17e.png

 

 

Nothing wrong with sticking close to the canonical look. If I remember correctly, the face on mine is from Pandorable's and the antlers are from the Bosmer Have Antlers SPID mod. I haven't customized him any further than that at this stage, though later on when I get to more granular clothing and gear tweaking I might fine tune him a little further.

Link to comment
7 hours ago, Talesien said:

And now I know why I never really tried to play around with those race specific mods. Nice results if it works, true. Still way more hassle than it's worth for my taste. ^^

 

Yeah, working with customized vanilla races is something that I avoided in the past too, and while I appreciate the artistic doors it opens, the experience so far is kind of validating my previous decision to not use them. The crazy triple-checking of character details that Skyrim does makes for a lot of work to get these working right. FO4 kind of spoiled me with the way it generates Facegen on the fly, even if that has some pitfalls of its own, tied up with FO4's memory handling problems.

Link to comment
Vor 56 Minuten sagte gregaaz:

 

Es ist nichts Falsches daran, sich eng an den kanonischen Look zu halten. Wenn ich mich richtig erinnere, ist das Gesicht auf meinem von Pandorable's und das Geweih vom Bosmer Have Antlers SPID-Mod. Ich habe ihn zu diesem Zeitpunkt nicht weiter angepasst, aber später, wenn ich zu detaillierteren Kleidungs- und Ausrüstungsanpassungen komme, könnte ich ihn etwas weiter verfeinern.

 

Sorry - misunderstanding:

My "Farendal" looks like this - UNFORTUNATELY ... because I do NOT have your skills to improve its appearance

?

 

this is a screenshot from last night - when I was taking the pictures for my chapter in Riverwood and uploading them here on LL


I'd like to give it the look you gave yours

?

Link to comment

A little follow-up on yesterday, it appears that the issue here is that the NPC Facegen Patcher does not support the High Poly Head and fails to update its textures. I've reported this to the author and will be looking at a way to hack the script in the meanwhile to get the results I want.

 

Its a bit annoying though... I'm already up to having to run 6 scripts instead of 1 to work around the patcher's problems with EasyNPC. This might bring it up to 8 scripts ? Needless to say, after I get the vanilla NPCs working, I won't be doing any more NPC updates until much later in the build.

 

OK, that's what it looked like at first, but that was wrong. The actual issue was that some of the NPC mods (and ones with good reputation at that!) had defective texture paths in the nifs. These probably looked fine on the author's computer, because they relied on raw output from the author's SKSE chargen tool, but of course those raw assets weren't repackaged when the mod shipped - it went out with "real" facegen textures... which the nif doesn't line up with.

 

I've reported the bug and I'm researching how to fix the issue.

Edited by gregaaz
Link to comment
11 minutes ago, xtremer said:

Surprised you didn't give the redguards and dunmer darker skin. 

 

The Redguards and Dunmer do both have significantly darker skin than vanilla - its really noticeable on the actors who the patcher is struggling with because their faces are drastically lighter. I may still do some fine tuning but so far things are looking OK. 

 

As I'll be touching on today, the selection of faces is going to change a bit, because I realize that it doesn't make sense breaking my teeth on the defective NPC mods. There are enough choices out there that I don't absolutely have to use those specific options.

Link to comment

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use