Jump to content

Pregnancy Normalmap Swapper


Recommended Posts

Posted
9 hours ago, leakim said:

 

 

This DOES work out of the box with FHU Baka Edition...

 

At least in the way I use it, it simply uses SLIF "DEFAULT MODUS" to scale the belly. (In order for it to do this you must disable the checkbox "Body Morph" indicating that you "use LE", even if you're on SE!). All this really means is that it uses "DEFAULT MODUS" in SLIF. In order for that to work properly you must configure SLIF so it knows which nodes to scale. This is not configured by default in SLIF. The upside of this is that it allows to scale other nodes as well when applied.

 

Just saying that all the mods that I use that scales the belly uses SLIF "DEFAULT MODUS" and they all work perfectly with this mod. Even the Mysterious Potion from Sexlab Survival works. It's absolutely perfect!

 

  Hide contents

image.thumb.jpeg.048ebdfbe00a57f87f8739e76bdda8b6.jpeg

image.thumb.jpeg.2b6f784ab42184ca639a2e85d6d793c1.jpeg

 

 


Thanks for the info. I was indeed able to get SLIF to recognize it using your method.
By the way, this is off topic, but is it correct that this solution is to use Node instead of Morph?
In my case, I don't really want to use Node because the scaling with Node looks pretty terrible.
Or does SLIF have a feature that converts certain Nodes to Morphs?

Spoiler


image.jpeg.6f6b25efe1ecd51afb89b1e78662bad5.jpeg20220820092325_1.jpg.9fb43f241b37c922a5abd195a6dc28b9.jpg

 

 

 

7 hours ago, leakim said:

 

Looking at the source of this mod I think that any mod scales the "PregnancyBelly" node will theoretically work. But the mod event that @handroid mentioned would still need to be sent out.

 

Perhaps a nice addition to this mod would be a button you can press where it would simply recalculate the normal maps when pressed. In this way it would probably work with anything. Right now you can use ALT+LEFT/RIGHT to scale belly to "debug" the plugin. Could add an additional option to that combo to simply reapply texture.

 

It is not that difficult to implement and we would like to include it in the next update.
If it were possible, a ModEvent would be fired when NiOverride.UpdateModelWeight() is executed, so that it could be applied automatically only when necessary without any modification to other mods (ideal indeed), but unfortunately I do not know of any such I don't know of any ModEvent.

 

Posted (edited)
23 hours ago, handroid said:

The hair, armor, etc. corresponding to HDT will flip for a moment, just as when normal armor is put on and taken off.
It is not the "boobs break dancing" event that we often saw in the LE version of HDT, but rather a momentary one.

 

 

DUDE!!!!!! I'm using another normal related and I never understand from where that stupid bug come!! the breast was like reseting or flipping everytime. You saved me! lol

Edited by urbon
Posted

Brilliant mod!  When I saw dw's normal maps, I immediately thought this would be a perfect integration opportunity with a SLIF patch.  This mod delivers on that, and much more!

 

I do have a question.  For me, using PNS v1.1 on SE:

- the correct partitioned normal map is loaded on save load

- as soon as any SexLab animation starts, the normal map override effect seems to disappear.  In fact the override seems to disappear immediately after the starting teleport for the scene. 

- after the animation ends, the normal map remains the p0 one (at least visually) until unless 1) I force it to change again by swapping armor, or 2) if something in the animation triggers a PNS change, such as the belly being inflated across a partition boundary, for example.

- In the logs, PNS consistently states there is no need to update (except the one instance immediately after the game loads)

[PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.437499, P=2.624994
[PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/female/femalebody_1_msn_p2.dds
[PNS] @Controller @UpdateSkinTexture: No need to update.

 

Did I screw up something during the installation steps?  Any idea how to debug this?  Have some minor experience with papyrus compilation so happy to insert debug statements and such. Thank you and appreciate any insight!

Posted (edited)
6 hours ago, handroid said:


Thanks for the info. I was indeed able to get SLIF to recognize it using your method.
By the way, this is off topic, but is it correct that this solution is to use Node instead of Morph?
In my case, I don't really want to use Node because the scaling with Node looks pretty terrible.
Or does SLIF have a feature that converts certain Nodes to Morphs?

  Reveal hidden contents

 

 

image.jpeg.6f6b25efe1ecd51afb89b1e78662bad5.jpeg20220820092325_1.jpg.9fb43f241b37c922a5abd195a6dc28b9.jpg

 

 

 

Yes, you can make SLIF use morphs when in "DEFAULT MODUS". But it is not setup to do so by default. But if you're at all serious about your morphs and use SLIF you should definitely set it up to use morphs. This will allow you to control exactly which nodes should be morphed and by how much for breasts, belly and butt. This is extremely useful if you use a non-standard preset, where applying default morphs supplied by other mods would look stupid.

 

Mods that use SLIF in "MORPH MODUS" (bad, IMO!) gets to decide both the scale and which nodes they control, leaving no control for the player, except if the mods themselves have implemented control over this in their respective MCMs. Use SLIF "DEFAULT MODUS" and you get around ALL of this crap.

 

So, how to configure? Well you will need to either use the MCM to modify the values in the "Bodymorphs" tab or modify a bodymorphs lists JSON file manually. The latter is probably easier.

 

You can use my files as a starting point, which are for CBBE 3BA. These are designed for the "Slim" preset.

 

In the "Bodymorphs" tab you must:

  1. Select a preset for your body type in "Current Bodymorphs list" (you can use my files below).
  2. Set all percentages in the "NiOverride" category to zero! (this is hugely important, otherwise it will apply both node and morph scaling at the same time)
  3. Modify "Percentages" and the "Reverse Scaling" category in order to achieve the morph you want.
    1. This leaves one problem: How much scale to apply to which nodes? What I usually do is the following: Go into RaceMenu and modify morphs for various nodes until you get a "maximum" value for either "butt", "belly" or "breats". Note downs the values, reset them, and apply the same values at some scale to the nodes present in the "Percentages" category. A faster approach than setting the scales directly in the SLIF MCM, however, is simply use a mod that uses SLIF in "DEFAULT MODUS" to modify one of "butt", "belly" or "breasts" categories. Save the game and exit to main menu, then modify the bodymorph file in notepad or similar program, then re-enter the game and see if the values are scaled/proportioned properly compared to what you defined in RaceMenu. This is much faster primarily because modifying the scales/reverse scaling in the SLIF MCM does not update the morphs unless you either use the "Update Actor" function or save and re-load.

 

NOTE: If you use CBBE 3BA and just use my files below, you can basically skip both step 2 and 3 and just modify my values as you see fit once you've confirmed it works.

 

Here's some screenshots:

 

Spoiler

image.thumb.png.460f94ad3982e28f2993eb3d51e2bb0f.png

 

image.thumb.png.73c37e60653265c4f7bea65362d9c290.png

 

 

Here's my files:

  • Replace SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\NiOverride.json with this (just just sets all NiOverride scales to 0, as shown in screenshot): NiOverride.json
  • Place this file in SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\lists 004_Custom_3BA_Lists.json
  • Place thie file in SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\bodymorphs 004_Custom_3BA_Bodymorphs.json

 

These files generally expect mods to scale "belly" and "breasts" up to about 5 to 6 as max. And "butt" should probably not go far beyond 3 to 4. For me these files are still of a bit of a "work-in-progress" as I have not played particularly much with CBBE 3BA since I recently changed from BHUNP to CBBE 3BA bodytype.

 

I also have some self-made files for BHUNP, although they only include the nodes that I myself use and NOT all the available ones.

 

NOTE: This may sound like a lot of work, but this is really only something you must do one time, for your game. Configuration is stored across different games in json files and are loaded each time you load a game. It is not stored in the savegame files!

 

Reference for important values in "Bodymorphs" file sections:

 

Spoiler

image.png.e609b5f6816433afeb17a6503c2a10da.png

 

Edited by leakim
Posted (edited)
54 minutes ago, valentinian said:

Brilliant mod!  When I saw dw's normal maps, I immediately thought this would be a perfect integration opportunity with a SLIF patch.  This mod delivers on that, and much more!

 

I do have a question.  For me, using PNS v1.1 on SE:

- the correct partitioned normal map is loaded on save load

- as soon as any SexLab animation starts, the normal map override effect seems to disappear.  In fact the override seems to disappear immediately after the starting teleport for the scene. 

- after the animation ends, the normal map remains the p0 one (at least visually) until unless 1) I force it to change again by swapping armor, or 2) if something in the animation triggers a PNS change, such as the belly being inflated across a partition boundary, for example.

- In the logs, PNS consistently states there is no need to update (except the one instance immediately after the game loads)

[PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.437499, P=2.624994
[PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/female/femalebody_1_msn_p2.dds
[PNS] @Controller @UpdateSkinTexture: No need to update.

 

Did I screw up something during the installation steps?  Any idea how to debug this?  Have some minor experience with papyrus compilation so happy to insert debug statements and such. Thank you and appreciate any insight!

 

This happens for me as well. However, in my case, loading a savegame does not produce the correct normalmap either. However, I think I can add a bit of information for @handroid that might be useful in solving this:

 

The normalmap is reset whenever a NiNodeUpdate occurs. This happens for many reasons in Skyrim, but one of times it happens is during the start of a sexlab scene.

 

As a test, I tried doing other things that I know produce a NiNodeUpdate and every time it occurred the normalmap was reset! For example:

  • YPS Fashion has an option to perform a NiNodeUpdate when it monitors the hair of the PC. Enabling this resets the normalmap.
  • Changing the Devious Device Hider slot in the Devious Devices MCM produces a NiNodeUpdate. Changing this resets the normalmap.

 

Maybe you need to "RegisterForNiNodeUpdate" in your mod and update the normal map at this time as well.

Edited by leakim
Posted (edited)
1 hour ago, leakim said:

The normalmap is reset whenever a NiNodeUpdate occurs. This happens for many reasons in Skyrim, but one of times it happens is during the start of a sexlab scene.

 

Maybe you need to "RegisterForNiNodeUpdate" in your mod and update the normal map at this time as well.

 

Thank you!  I had a feeling something about the start of an animation was resetting the normal map -- had no idea about NiNodeUpdate. I was actually thinking of hooking into the end animation event and resetting from there.

 

A quick hack implementing RegisterForNiNodeUpdate, then forcing a texture update in OnNiNodeUpdate, resolves the problem.  I don't know if this has other consequences, but I'll leave that to the mod author's capable hands.  In the mean time, the hack lets me continue my game without having to fiddle with armor after every animation scene.

 

Appreciate the help!

Edited by valentinian
Posted (edited)
10 hours ago, handroid said:

 

Must admit that I am sometimes getting this weird glow effect and sometimes it seems the normals for the hands of the character gets messed up.

 

I really do not believe I did anything wrong during the setup.

 

Saving and then reloading resolves the issue, however.

 

Currently I am not able to reproduce it in a consistent fashion, but I may be able to find out more as I use the mod.

 

Edited by leakim
Posted

ok so with use.txt, would I, or would I not use this on textures for characters say like argonians? because I've modified a whole overlay for them to use

Posted

Not sure if this has been talked about already, but it appears that Skill Based Muscle overwrites any effects produced by this mod, unless skill caps have not been met to start the normal map swap by SBM.

 

In testing, I set my SBM sliders to not enable until past level 100, so my PC would be using only the normals supplied with my skin texture. I used FHU and SGO to test normal swapping through this mod, and it worked fine. I set my SGO and FHU back to zero pregnancy slider levels (just through the debug tool in those two mods), reset my normals to swap in SBM to a lower level, to where they would be active on the next scan. I then tried out inflation through FHU and SGO again, and while I did see the normal swap over to the 100% pregnancy normal, I was maxed out on both gems and in FHU, instead of seeing any sort of scaling normal map swap effect.

 

Basically, the pregnancy normal map doesn't show up for me until I max out/exceed the belly slider.

 

I am not using SLIF currently. This mod is set as higher priority in the MO2 left pane, and loads after Skill Based Muscle in esp load order pane.

Posted

Just wanted to link a thread below that seems to be dealing with the same issue as this mod does regarding the glowy hands effect. It seems when naked the pregnant normal maps get applied to the hands and feet which causes the bug, it also messes with beast tails in the same way.

 

 

Spoiler

 

 

Posted

Hi. ver 1.2.0 is released.

 

On 8/20/2022 at 4:13 PM, leakim said:

 

Yes, you can make SLIF use morphs when in "DEFAULT MODUS". But it is not setup to do so by default. But if you're at all serious about your morphs and use SLIF you should definitely set it up to use morphs. This will allow you to control exactly which nodes should be morphed and by how much for breasts, belly and butt. This is extremely useful if you use a non-standard preset, where applying default morphs supplied by other mods would look stupid.

 

Mods that use SLIF in "MORPH MODUS" (bad, IMO!) gets to decide both the scale and which nodes they control, leaving no control for the player, except if the mods themselves have implemented control over this in their respective MCMs. Use SLIF "DEFAULT MODUS" and you get around ALL of this crap.

 

So, how to configure? Well you will need to either use the MCM to modify the values in the "Bodymorphs" tab or modify a bodymorphs lists JSON file manually. The latter is probably easier.

 

You can use my files as a starting point, which are for CBBE 3BA. These are designed for the "Slim" preset.

 

In the "Bodymorphs" tab you must:

  1. Select a preset for your body type in "Current Bodymorphs list" (you can use my files below).
  2. Set all percentages in the "NiOverride" category to zero! (this is hugely important, otherwise it will apply both node and morph scaling at the same time)
  3. Modify "Percentages" and the "Reverse Scaling" category in order to achieve the morph you want.
    1. This leaves one problem: How much scale to apply to which nodes? What I usually do is the following: Go into RaceMenu and modify morphs for various nodes until you get a "maximum" value for either "butt", "belly" or "breats". Note downs the values, reset them, and apply the same values at some scale to the nodes present in the "Percentages" category. A faster approach than setting the scales directly in the SLIF MCM, however, is simply use a mod that uses SLIF in "DEFAULT MODUS" to modify one of "butt", "belly" or "breasts" categories. Save the game and exit to main menu, then modify the bodymorph file in notepad or similar program, then re-enter the game and see if the values are scaled/proportioned properly compared to what you defined in RaceMenu. This is much faster primarily because modifying the scales/reverse scaling in the SLIF MCM does not update the morphs unless you either use the "Update Actor" function or save and re-load.

 

NOTE: If you use CBBE 3BA and just use my files below, you can basically skip both step 2 and 3 and just modify my values as you see fit once you've confirmed it works.

 

Here's some screenshots:

 

  Reveal hidden contents

image.thumb.png.460f94ad3982e28f2993eb3d51e2bb0f.png

 

image.thumb.png.73c37e60653265c4f7bea65362d9c290.png

 

 

Here's my files:

  • Replace SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\NiOverride.json with this (just just sets all NiOverride scales to 0, as shown in screenshot): NiOverride.json
  • Place this file in SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\lists 004_Custom_3BA_Lists.json
  • Place thie file in SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\bodymorphs 004_Custom_3BA_Bodymorphs.json

 

These files generally expect mods to scale "belly" and "breasts" up to about 5 to 6 as max. And "butt" should probably not go far beyond 3 to 4. For me these files are still of a bit of a "work-in-progress" as I have not played particularly much with CBBE 3BA since I recently changed from BHUNP to CBBE 3BA bodytype.

 

I also have some self-made files for BHUNP, although they only include the nodes that I myself use and NOT all the available ones.

 

NOTE: This may sound like a lot of work, but this is really only something you must do one time, for your game. Configuration is stored across different games in json files and are loaded each time you load a game. It is not stored in the savegame files!

 

Reference for important values in "Bodymorphs" file sections:

 

  Reveal hidden contents

image.png.e609b5f6816433afeb17a6503c2a10da.png

 

 

On 8/20/2022 at 5:50 PM, valentinian said:

 

Thank you!  I had a feeling something about the start of an animation was resetting the normal map -- had no idea about NiNodeUpdate. I was actually thinking of hooking into the end animation event and resetting from there.

 

A quick hack implementing RegisterForNiNodeUpdate, then forcing a texture update in OnNiNodeUpdate, resolves the problem.  I don't know if this has other consequences, but I'll leave that to the mod author's capable hands.  In the mean time, the hack lets me continue my game without having to fiddle with armor after every animation scene.

 

Appreciate the help!

 

Probably these bug is fixed. Thank you for your information.

 

On 8/21/2022 at 12:13 AM, Cyphin said:

ok so with use.txt, would I, or would I not use this on textures for characters say like argonians? because I've modified a whole overlay for them to use

Because the structure of the normal map is different for beast races, please create separate folders.

 

 

On 8/21/2022 at 11:51 AM, Maverick939 said:

Does this work with Hentai Pregnancy, and if it does is it without needing to modify the config? 

I don't know because I don't use that mod.
If it supports SLIF, it will work. If not, it won't work perfectly and you'll have to work on individual patches.
 

 

16 hours ago, applesandmayo said:

Not sure if this has been talked about already, but it appears that Skill Based Muscle overwrites any effects produced by this mod, unless skill caps have not been met to start the normal map swap by SBM.

 

In testing, I set my SBM sliders to not enable until past level 100, so my PC would be using only the normals supplied with my skin texture. I used FHU and SGO to test normal swapping through this mod, and it worked fine. I set my SGO and FHU back to zero pregnancy slider levels (just through the debug tool in those two mods), reset my normals to swap in SBM to a lower level, to where they would be active on the next scan. I then tried out inflation through FHU and SGO again, and while I did see the normal swap over to the 100% pregnancy normal, I was maxed out on both gems and in FHU, instead of seeing any sort of scaling normal map swap effect.

 

Basically, the pregnancy normal map doesn't show up for me until I max out/exceed the belly slider.

 

I am not using SLIF currently. This mod is set as higher priority in the MO2 left pane, and loads after Skill Based Muscle in esp load order pane.

 

It is not compatible with that mod at this time.
Also, since both are mods that run almost in script, load order is not relevant.
I checked the SBM source code and it seems that they update the normal map quite frequently. There are also updates at times when my mod does not need them, so adding processing to make it compatible with SBM would be a very redundant process.
SBM is a very attractive mod and I may create a patch for it once the updates settle down and I get permission. Well, not now.
 

 

13 hours ago, Debaster said:

Just wanted to link a thread below that seems to be dealing with the same issue as this mod does regarding the glowy hands effect. It seems when naked the pregnant normal maps get applied to the hands and feet which causes the bug, it also messes with beast tails in the same way.

 

 

  Reveal hidden contents

 

 

Thank you for your information.

I thought I was using a separate file for the tail textures.
It turns out that they are actually embedded in the same file and are separate from the human races. (Just a lack of confirmation. My apologies.)
This seems to cause the hands and tail to glow when using the normal map of the human races on the beast races.
In ver 1.2.0, the DISTR was changed to exclude NPCs from beast races.

 

Posted (edited)

In addition, there are potential risks with the version to date.
Currently UpdateSkinTexture() is single-threaded, so if multiple Actors request normal map updates at nearly the same time, another process may start while the first one is incomplete, which could lead to unexpected results.
If such a situation occurs, please report it to me and i will correct it.
(I don't want to actively do this as it requires a major function move.)
 

Edited by handroid
Posted
On 8/20/2022 at 4:13 PM, leakim said:

 

Yes, you can make SLIF use morphs when in "DEFAULT MODUS". But it is not setup to do so by default. But if you're at all serious about your morphs and use SLIF you should definitely set it up to use morphs. This will allow you to control exactly which nodes should be morphed and by how much for breasts, belly and butt. This is extremely useful if you use a non-standard preset, where applying default morphs supplied by other mods would look stupid.

 

Mods that use SLIF in "MORPH MODUS" (bad, IMO!) gets to decide both the scale and which nodes they control, leaving no control for the player, except if the mods themselves have implemented control over this in their respective MCMs. Use SLIF "DEFAULT MODUS" and you get around ALL of this crap.

 

So, how to configure? Well you will need to either use the MCM to modify the values in the "Bodymorphs" tab or modify a bodymorphs lists JSON file manually. The latter is probably easier.

 

You can use my files as a starting point, which are for CBBE 3BA. These are designed for the "Slim" preset.

 

In the "Bodymorphs" tab you must:

  1. Select a preset for your body type in "Current Bodymorphs list" (you can use my files below).
  2. Set all percentages in the "NiOverride" category to zero! (this is hugely important, otherwise it will apply both node and morph scaling at the same time)
  3. Modify "Percentages" and the "Reverse Scaling" category in order to achieve the morph you want.
    1. This leaves one problem: How much scale to apply to which nodes? What I usually do is the following: Go into RaceMenu and modify morphs for various nodes until you get a "maximum" value for either "butt", "belly" or "breats". Note downs the values, reset them, and apply the same values at some scale to the nodes present in the "Percentages" category. A faster approach than setting the scales directly in the SLIF MCM, however, is simply use a mod that uses SLIF in "DEFAULT MODUS" to modify one of "butt", "belly" or "breasts" categories. Save the game and exit to main menu, then modify the bodymorph file in notepad or similar program, then re-enter the game and see if the values are scaled/proportioned properly compared to what you defined in RaceMenu. This is much faster primarily because modifying the scales/reverse scaling in the SLIF MCM does not update the morphs unless you either use the "Update Actor" function or save and re-load.

 

NOTE: If you use CBBE 3BA and just use my files below, you can basically skip both step 2 and 3 and just modify my values as you see fit once you've confirmed it works.

 

Here's some screenshots:

 

  Reveal hidden contents

image.thumb.png.460f94ad3982e28f2993eb3d51e2bb0f.png

 

image.thumb.png.73c37e60653265c4f7bea65362d9c290.png

 

 

Here's my files:

  • Replace SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\NiOverride.json with this (just just sets all NiOverride scales to 0, as shown in screenshot): NiOverride.json
  • Place this file in SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\lists 004_Custom_3BA_Lists.json
  • Place thie file in SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\bodymorphs 004_Custom_3BA_Bodymorphs.json

 

These files generally expect mods to scale "belly" and "breasts" up to about 5 to 6 as max. And "butt" should probably not go far beyond 3 to 4. For me these files are still of a bit of a "work-in-progress" as I have not played particularly much with CBBE 3BA since I recently changed from BHUNP to CBBE 3BA bodytype.

 

I also have some self-made files for BHUNP, although they only include the nodes that I myself use and NOT all the available ones.

 

NOTE: This may sound like a lot of work, but this is really only something you must do one time, for your game. Configuration is stored across different games in json files and are loaded each time you load a game. It is not stored in the savegame files!

 

Reference for important values in "Bodymorphs" file sections:

 

  Reveal hidden contents

image.png.e609b5f6816433afeb17a6503c2a10da.png

 

 

Oh thx!

It seems that SLIF was a much more capable mod than I had imagined.

I still don't fully understand it, but I was able to confirm that it works anyway.

I appreciate the specific files and explanations.

Posted

Yeah, just tested in my game with Hentai Pregnancy, but even without any pregnancy or use of the mod in process a bug still occured. For some reason, the skin of my follower became a different kind of texture, hands and feet excluded, even with 0 use of any pregnancy mods in the moment. It was a level 1 game saved just after choosing a start with alternate start so i don't know what could make that bug occur. Even tried triggering a pregnancy/belly expansion but the skin still keep miscolored anyway.

Posted (edited)
On 8/20/2022 at 4:08 AM, leakim said:

 

Must admit that I am sometimes getting this weird glow effect and sometimes it seems the normals for the hands of the character gets messed up.

 

I really do not believe I did anything wrong during the setup.

 

Saving and then reloading resolves the issue, however.

 

Currently I am not able to reproduce it in a consistent fashion, but I may be able to find out more as I use the mod.

 

 

I'm getting the same intermittent glowing issue as @leakim describes.  However, I have confirmed that the set-up was followed correctly and in small interior cells I have adjusted the Preg-Belly slider with the debug hotkeys and confirmed that each normal gets applied correctly during the tests. 

The intermittent glowing seems glowing acts kind of like the oldrim ram texture glitch (where skyrim would sometimes run out of ram and textures would go black), so I'm wondering if its my hardware that is at fault.  I'm using dws pregnant normal maps for Fair Skin. My next troubleshooting step will be to run the normals through Cathedral Assets Optimizer and possibly re-size them to see if that helps. 

I'm not able to do so until tonight though, so if anyone else tries optimizing their textures, please let me know if it helps.

thanks!

Edit: spelling

Edited by Phosphoribosyl
Posted
5 hours ago, Phosphoribosyl said:

 

I'm getting the same intermittent glowing issue as @leakim describes.  However, I have confirmed that the set-up was followed correctly and in small interior cells I have adjusted the Preg-Belly slider with the debug hotkeys and confirmed that each normal gets applied correctly during the tests. 

The intermittent glowing seems glowing acts kind of like the oldrim ram texture glitch (where skyrim would sometimes run out of ram and textures would go black), so I'm wondering if its my hardware that is at fault.  I'm using dws pregnant normal maps for Fair Skin. My next troubleshooting step will be to run the normals through Cathedral Assets Optimizer and possibly re-size them to see if that helps. 

I'm not able to do so until tonight though, so if anyone else tries optimizing their textures, please let me know if it helps.

thanks!

Edit: spelling

 

Am I correct in understanding that the "glowing issue" you point out is identical to this video?
If it is the same, it is most likely due to the fact that the normal map texture we tried to apply did not exist.
In Ver. 1.2.0, I secretly added a process to output whether the normal map texture you tried to apply exists or not in PapyrusLog. (I just forgot to mention it in my update content.)
This log may be helpful.
image.png.b231aa688722b30c867507e874e32fec.png

 

And "normals for the hands of the character gets messed up" is probably the phenomenon familiarly known as "pizza hands".
This is a problem that occurs when a normal map is exchanged with nothing equipped in slot 33.
Originally, PNS equips a dummy armor for a moment right after the normal map is exchanged, but if this phenomenon occurs, this process must have failed for some reason.
In 1.2.0, this process has been modified somewhat, so perhaps it has been improved.
 

Spoiler

In 1.1.0 and earlier
1.update normal map
2. equip dummy
3.unequip dummy


In 1.2.0, 
1.equip dummy
2.update normal map
3.unequip dummy


 

Posted (edited)
21 hours ago, handroid said:

 

Am I correct in understanding that the "glowing issue" you point out is identical to this video?
If it is the same, it is most likely due to the fact that the normal map texture we tried to apply did not exist.
In Ver. 1.2.0, I secretly added a process to output whether the normal map texture you tried to apply exists or not in PapyrusLog. (I just forgot to mention it in my update content.)
This log may be helpful.

 

"Glowing issue" looked identical to the video that you posted.  Ver 1.2.0 seems to work better, some hiccups getting it to work on existing char, but latest papyrus log shows all 'exists?=True'

portion of log:

Spoiler

[08/23/2022 - 10:41:57PM] [PNS] @PAS: morph += -0.010000
[08/23/2022 - 10:41:57PM] [PNS] @PAS: current morphVal = 0.670000
[08/23/2022 - 10:41:58PM] [PNS] @MEF<Lucia> @OnUpdateRequested: Got Request
[08/23/2022 - 10:41:58PM] [PNS] @Controller @UpdateSkinTexture: weightCount=1
[08/23/2022 - 10:41:58PM] [PNS] @Controller @UpdateSkinTexture: actWeight=1.250000
[08/23/2022 - 10:41:58PM] [PNS] @Controller @UpdateSkinTexture: weightIndex=1
[08/23/2022 - 10:41:58PM] [PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.670000, P=4.019998
[08/23/2022 - 10:41:58PM] [PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/Female/Femalebody_1_msn_p4.dds, exists?=TRUE
[08/23/2022 - 10:41:58PM] [PNS] @Controller @UpdateSkinTexture: No need to update.
[08/23/2022 - 10:41:58PM] [PNS] @MEF<Lucia> @UpdateSkinTextureSafe: <ABORT> already running

 

I was also getting a bug where body morphs would only update when equipping or un-equipping armor, but i've had that happen before installing this mod.  Two of my tests tonight had two different results on the same save, One test had smooth morph change while using your debug hotkeys, next test had to un-equip every time to see morph change. (Normal swapping was working properly on each test though.)

I'll keep playing with 1.2 and see if any more issues crop up.

thanks!

 

 

EDIT:

Further tests proved glitch not fixed on existing save. symptoms similar to the comment described below.

Edited by Phosphoribosyl
Posted (edited)

Hm. Is this safe to upgrade mid-game or does every update require a new game?

 

Version 1.2 seems broken for me (on my existing game). Whenever I equip/unequip armor the glowing effect occurs. And yes it can find the textures. And this did not happen on version 1.1.

 

	Line 350: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: bDebugMode=TRUE
	Line 351: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iEnablePlayer=1
	Line 352: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iPartitions=6
	Line 353: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: sMorphName=PregnancyBelly
	Line 354: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iMorphMode=0
	Line 360: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: fMorphMin=0.000000
	Line 363: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: fMorphMax=1.000000
	Line 365: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: IgnoreMorphKeys=["RaceMenuMorphsCBBE.esp"]
	Line 368: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iForceUpdateKey=28
	Line 371: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iForceUpdateKeyLShift=1
	Line 372: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iForceUpdateKeyLCtrl=0
	Line 373: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iForceUpdateKeyLAlt=1
	Line 723: [08/24/2022 - 05:12:32PM] [PNS] @MEF<Mona> @OnUpdateRequested: Got Request
	Line 724: [08/24/2022 - 05:12:32PM] [PNS] @Controller @UpdateSkinTexture: Actor=[Actor < (00000014)>], dir=data/textures/PNS/_Default, doReset=False, forceUpdate=False
	Line 728: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: weightCount=1
	Line 729: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: actWeight=0.000000
	Line 730: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: weightIndex=1
	Line 733: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.010000, P=0.060000
	Line 734: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/female/femalebody_1_msn_p0.dds, exists?=TRUE
	Line 1079: [08/24/2022 - 05:12:34PM] [PNS] @MEF<Mona> @OnUpdateRequested: Got Request
	Line 1080: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: Actor=[Actor < (00000014)>], dir=data/textures/PNS/_Default, doReset=False, forceUpdate=False
	Line 1081: [08/24/2022 - 05:12:34PM] [PNS] @MEF<Mona> @OnUpdateRequested: Got Request
	Line 1082: [08/24/2022 - 05:12:34PM] [PNS] @MEF<Mona> @UpdateSkinTextureSafe: <ABORT> already running
	Line 1083: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: weightCount=1
	Line 1084: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: actWeight=0.000000
	Line 1085: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: weightIndex=1
	Line 1099: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.010000, P=0.060000
	Line 1101: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/female/femalebody_1_msn_p0.dds, exists?=TRUE
	Line 1180: [08/24/2022 - 05:12:46PM] [PNS] @Controller @UpdateSkinTexture: Actor=[Actor < (00000014)>], dir=data/textures/PNS/_Default, doReset=False, forceUpdate=False
	Line 1181: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: weightCount=1
	Line 1182: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: actWeight=0.000000
	Line 1183: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: weightIndex=1
	Line 1185: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.010000, P=0.060000
	Line 1186: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/female/femalebody_1_msn_p0.dds, exists?=TRUE

 

UPDATE:

 

Forcing a NiNodeUpdate fixes the problem until the next time I equip/unequip armor.

 

UPDATE 2:

 

Equipping something into "hands" slot and then unequipping it again, followed by whatever triggers a "retexture" equipping/unqequipping armor seems to fix the glowing issue.

 

However, normalmap swapping now only appears to happen when equipping/uneqipping armor. It does not even happen during inflation events.

 

Maybe I will try this on a new game as well to see if I can reproduce it.

 

UPDATE 3:

 

Alright, got it "working" in my existing save, but probably cancelled out your supposed fix to "pizza hands" ^^.

 

Had to do the following:

  • Load into the game with `"EnablePlayer": 0` and save. Then exit game, re-enable player (`"EnablePlayer": 1`). This is required to ensure RegisterForNiNoceUpdate is called in the `OnEffectStart` of `PNSMEF.psc`.
  • Had to change the `SwapSkinTexture` method significantly, probably cancelling out your pizza hands fix, as shown below (most code just commented out, and re-introduced "FixHands" from previous version.

 

;Slot33になにも装備していない状態でAddSkinOverrideString()を実行すると手のノーマルマップがおかしくなるのでダミーを装備して修正する
Function SwapSkinTexture(Actor act, string fileName)
   ;if !act.GetEquippedArmorInSlot(33)
      Log("@SwapSkinTexture: Start")
      ; DummyHandのモデルを対象ActorのNakedHandsのものに上書きする
      ;Race r = act.GetLeveledActorBase().GetRace()
      ;Armor skin = r.GetSkin()
      ;int aaNum = skin.GetNumArmorAddons()
      ;int i = 0
      ;while i < aaNum
      ;   ArmorAddon thisAA = skin.GetNthArmorAddon(i)
      ;   if thisAA.GetSlotMask() == 8
      ;      bool isFemale = act.GetLeveledActorBase().GetSex() == 1
      ;      string modelPath = thisAA.GetModelPath(false, isFemale)
      ;      Log("@SwapSkinTexture: AA=" + thisAA + ", model=" + modelPath)
      ;      DummyHandsAA.SetModelPath(modelPath, false, isFemale)
      ;      i = aaNum
      ;   endif
      ;   i += 1
      ;endwhile
      ;MiscUtil.SetFreeCameraState(false)   ; FlyCam中はEquipItem系が動作しないので無効化する
      ;act.EquipItem(DummyHands, true, true)  ; FlyCam中は装備できない
      NiOverride.AddSkinOverrideString(act, true, false, 4, 9, 1, fileName, true)
      FixHands(act)
      ;act.RemoveItem(DummyHands, 1, 1)
   ;endif
EndFunction

 

The outer if-statement `if !act.GetEquippedArmorInSlot(33)` seems a bit suspicious, does it not? If you do not have something equipped in slot 33 then nothing happens? No texture swap?

Edited by leakim
Posted (edited)

1.2.1 is released.

This update is only one modification, but it is an important modification to the identity of this mod.

 

8 hours ago, leakim said:

Hm. Is this safe to upgrade mid-game or does every update require a new game?

 

Version 1.2 seems broken for me (on my existing game). Whenever I equip/unequip armor the glowing effect occurs. And yes it can find the textures. And this did not happen on version 1.1.

 

	Line 350: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: bDebugMode=TRUE
	Line 351: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iEnablePlayer=1
	Line 352: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iPartitions=6
	Line 353: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: sMorphName=PregnancyBelly
	Line 354: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iMorphMode=0
	Line 360: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: fMorphMin=0.000000
	Line 363: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: fMorphMax=1.000000
	Line 365: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: IgnoreMorphKeys=["RaceMenuMorphsCBBE.esp"]
	Line 368: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iForceUpdateKey=28
	Line 371: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iForceUpdateKeyLShift=1
	Line 372: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iForceUpdateKeyLCtrl=0
	Line 373: [08/24/2022 - 05:12:30PM] [PNS] @Controller @Init: iForceUpdateKeyLAlt=1
	Line 723: [08/24/2022 - 05:12:32PM] [PNS] @MEF<Mona> @OnUpdateRequested: Got Request
	Line 724: [08/24/2022 - 05:12:32PM] [PNS] @Controller @UpdateSkinTexture: Actor=[Actor < (00000014)>], dir=data/textures/PNS/_Default, doReset=False, forceUpdate=False
	Line 728: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: weightCount=1
	Line 729: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: actWeight=0.000000
	Line 730: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: weightIndex=1
	Line 733: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.010000, P=0.060000
	Line 734: [08/24/2022 - 05:12:33PM] [PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/female/femalebody_1_msn_p0.dds, exists?=TRUE
	Line 1079: [08/24/2022 - 05:12:34PM] [PNS] @MEF<Mona> @OnUpdateRequested: Got Request
	Line 1080: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: Actor=[Actor < (00000014)>], dir=data/textures/PNS/_Default, doReset=False, forceUpdate=False
	Line 1081: [08/24/2022 - 05:12:34PM] [PNS] @MEF<Mona> @OnUpdateRequested: Got Request
	Line 1082: [08/24/2022 - 05:12:34PM] [PNS] @MEF<Mona> @UpdateSkinTextureSafe: <ABORT> already running
	Line 1083: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: weightCount=1
	Line 1084: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: actWeight=0.000000
	Line 1085: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: weightIndex=1
	Line 1099: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.010000, P=0.060000
	Line 1101: [08/24/2022 - 05:12:34PM] [PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/female/femalebody_1_msn_p0.dds, exists?=TRUE
	Line 1180: [08/24/2022 - 05:12:46PM] [PNS] @Controller @UpdateSkinTexture: Actor=[Actor < (00000014)>], dir=data/textures/PNS/_Default, doReset=False, forceUpdate=False
	Line 1181: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: weightCount=1
	Line 1182: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: actWeight=0.000000
	Line 1183: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: weightIndex=1
	Line 1185: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: Name=PregnancyBelly, Val=0.010000, P=0.060000
	Line 1186: [08/24/2022 - 05:12:47PM] [PNS] @Controller @UpdateSkinTexture: fileName=data/textures/PNS/_Default/female/femalebody_1_msn_p0.dds, exists?=TRUE

 

UPDATE:

 

Forcing a NiNodeUpdate fixes the problem until the next time I equip/unequip armor.

 

UPDATE 2:

 

Equipping something into "hands" slot and then unequipping it again, followed by whatever triggers a "retexture" equipping/unqequipping armor seems to fix the glowing issue.

 

However, normalmap swapping now only appears to happen when equipping/uneqipping armor. It does not even happen during inflation events.

 

Maybe I will try this on a new game as well to see if I can reproduce it.

 

UPDATE 3:

 

Alright, got it "working" in my existing save, but probably cancelled out your supposed fix to "pizza hands" ^^.

 

Had to do the following:

  • Load into the game with `"EnablePlayer": 0` and save. Then exit game, re-enable player (`"EnablePlayer": 1`). This is required to ensure RegisterForNiNoceUpdate is called in the `OnEffectStart` of `PNSMEF.psc`.
  • Had to change the `SwapSkinTexture` method significantly, probably cancelling out your pizza hands fix, as shown below (most code just commented out, and re-introduced "FixHands" from previous version.

 

;Slot33になにも装備していない状態でAddSkinOverrideString()を実行すると手のノーマルマップがおかしくなるのでダミーを装備して修正する
Function SwapSkinTexture(Actor act, string fileName)
   ;if !act.GetEquippedArmorInSlot(33)
      Log("@SwapSkinTexture: Start")
      ; DummyHandのモデルを対象ActorのNakedHandsのものに上書きする
      ;Race r = act.GetLeveledActorBase().GetRace()
      ;Armor skin = r.GetSkin()
      ;int aaNum = skin.GetNumArmorAddons()
      ;int i = 0
      ;while i < aaNum
      ;   ArmorAddon thisAA = skin.GetNthArmorAddon(i)
      ;   if thisAA.GetSlotMask() == 8
      ;      bool isFemale = act.GetLeveledActorBase().GetSex() == 1
      ;      string modelPath = thisAA.GetModelPath(false, isFemale)
      ;      Log("@SwapSkinTexture: AA=" + thisAA + ", model=" + modelPath)
      ;      DummyHandsAA.SetModelPath(modelPath, false, isFemale)
      ;      i = aaNum
      ;   endif
      ;   i += 1
      ;endwhile
      ;MiscUtil.SetFreeCameraState(false)   ; FlyCam中はEquipItem系が動作しないので無効化する
      ;act.EquipItem(DummyHands, true, true)  ; FlyCam中は装備できない
      NiOverride.AddSkinOverrideString(act, true, false, 4, 9, 1, fileName, true)
      FixHands(act)
      ;act.RemoveItem(DummyHands, 1, 1)
   ;endif
EndFunction

 

The outer if-statement `if !act.GetEquippedArmorInSlot(33)` seems a bit suspicious, does it not? If you do not have something equipped in slot 33 then nothing happens? No texture swap?

 

Thx for report.

This bug was really due to a silly mistake.
It seems that for the sake of a small improvement, I neglected to check an important part of this mod. Anyway, I fixed it and at least it should now work as before.

 

 

BTW, no new game is required to update to 1.2.0, 1.2.1.
However, due to the change in the default effect target, if you update with the newly excluded beast racers owning this mod's spell, it may not be disabled correctly and leave a wreckage.
For this reason, it is necessary to move to a cell without npc beforehand and remove the spell before updating.

Edited by handroid
BTW
Posted (edited)
45 minutes ago, handroid said:

1.2.1 is released.

This update is only one modification, but it is an important modification to the identity of this mod.

 

 

Thx for report.

This bug was really due to a silly mistake.
It seems that for the sake of a small improvement, I neglected to check an important part of this mod. Anyway, I fixed it and at least it should now work as before.

 

 

BTW, no new game is required to update to 1.2.0, 1.2.1.
However, due to the change in the default effect target, if you update with the newly excluded beast racers owning this mod's spell, it may not be disabled correctly and leave a wreckage.
For this reason, it is necessary to move to a cell without npc beforehand and remove the spell before updating.

any npc in general, or are npcs such as males who have no such normalmaps fine to be around when updating
edit* another note, do the files HAVE to be named something like femalebody_msn_1_p0 or is femalebody_msn_p0 also ok

Edited by Cyphin

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...