Jump to content

Recommended Posts

Posted
44 minutes ago, ram_os said:

I think I may have found the issue with the NPCs in the new version of this mod. After adding bones, the order of the NiNodes changes. The NPC's NiNode ends up at the end of the hierarchy (after BSFaceGenNiNodeSkinned), which results in the face not appearing. Changing the order in NifSkope fixes the NPC issue. Honestly, I didn’t think this could matter.

Im looking in to, the transfer thing is secondary for me, so was added later as a simple test i did and worked fine, but yeah, now may need to udpate the video too, the order on the nif, matters if there is textures sets and so on apllied, and can be a bit of problem now : (

Posted
5 hours ago, Predator-RJ said:

Hi, i dont, know nothing about coding or the game scripts XD ( i make outfits, models, animations, animated models and smp things), althoug a lot of people alredy said that it would be easy and so on, and still no one found or made somthing, because like i said before, and will explain again here:

The reset needs to be after the mouth is complete "OPEN" with bigahh, or ahh phoneme, animations use one or other or both(or more), and this part is trick since animations have diferente timings, and stages, people said to put a delay, there is animations that are fast, and there ones that the mouth is only supposed to open on stage 2 or 3 that is like minutes after, so anything made has to be constantly looking for the "phoneme" call, and on top of that wait like 2s after the phoneme is called, to make sure the mouth is open since the game can be slow, and then do de reset smp. 

 

Could just check the mouth on the game tick. Never used Sexlab's API before but I'm sure it wouldn't be difficult to verify whether an actual animation is playing and whether it involves BJ's

 

I will write something later if I end up testing/using this mod.

Posted

Hey so mod works fine save for the active smp collisions. With creatures in particular I do have  ABC for creatures and smp physics though is there some setting to enable collision i dont exactly know how collisions work is it just that both parts have smp physics and the  they'll collide is there more i have to do.

Posted (edited)

Made a SKSE plugin to automatically execute "smp reset" when the mouth is open. Contains lots of debug, and will need a lot of tweaking I'm sure. So expect something to pop up in your ~ console every 1 second. It's for figuring out proper thresholds, bugs, and whatnot


Source is a bit messy, but here it is:

https://pastebin.com/mKTPQ7VQ

 

Lastest: https://pastebin.com/bHnxFkcj

 

Source contains a lot of unused code due to me testing a plethora of different methods. Figured I'd just leave it in case someone needs it in the future. 

 

Todo:

  • Use Sexlab API  to determine whether the player is currently involved in a 2+ person animation (Can also determine using Skyrim code too). I got no experience with Sexlab API, so I don't even know if they expose anything.
  • Tweaks. I did basic testing and assumptions for values/expressions.

 

This is required: https://www.nexusmods.com/skyrimspecialedition/mods/32444

 

Should work with all versions? Only tested with SE

 

MIT license as always. Take, modify, redistribute the code. I don't care about anything not even credit.

 

Changelog:

v.1.1.3:

  • Instead of calling "smp reset", force skyrim to re-skin. Seems to work? Not tested on VR version...

v1.1:

  • Disabled console debug logging
  • Only activates during active sexlab animations now

 

Installation:

Put MouthOpenThing.dll into your skse plugin folder "\Data\SKSE\Plugins"

 

MouthOpenThing.zip

 

 

MouthOpenThing 1.1.3.zip

Edited by asdt123123
Update
Posted
47 minutes ago, asdt123123 said:

Made a SKSE plugin to automatically execute "smp reset" when the mouth is open. Contains lots of debug, and will need a lot of tweaking I'm sure. So expect something to pop up in your ~ console every 1 second. It's for figuring out proper thresholds, bugs, and whatnot


Source is a bit messy, but here it is:

https://pastebin.com/fcWrekg8

 

Todo:

  • Use Sexlab API  to determine whether the player is currently involved in a 2+ person animation (Can also determine using Skyrim code too). I got no experience with Sexlab API, so I don't even know if they expose anything.
  • Tweaks. I did basic testing and assumptions for values/expressions.

 

This is required: https://www.nexusmods.com/skyrimspecialedition/mods/32444

 

Should work with all versions? Only tested with SE

 

MIT license as always. Take, modify, redistribute the code. I don't care about anything not even credit.

 

MouthOpenThing.zip 308.1 kB · 1 download

My god, this is working "flawlessly" every time and i on the latest AE version 1170, Thank you very much for the plugin!!! adding this to main page NOW, again thanks!

ps: i see the console is getting a lot of debug, but it works!

Posted
10 hours ago, AureumCustos said:

Hey so mod works fine save for the active smp collisions. With creatures in particular I do have  ABC for creatures and smp physics though is there some setting to enable collision i dont exactly know how collisions work is it just that both parts have smp physics and the  they'll collide is there more i have to do.

Hi, ABC works fine, it is what everyone uses, me too (althoug i edited some collisions that had too much margin to my likeness), and for humans a good combo is "TNG + HIMBO", himbo you need the SMP addon on the downloads on the HImbo page, and then in body slide Build the correct SMP collision, then you can download my patch here in this mod page, and all should work pretty well ; )

Posted
59 minutes ago, Predator-RJ said:

My god, this is working "flawlessly" every time and i on the latest AE version 1170, Thank you very much for the plugin!!! adding this to main page NOW, again thanks!

ps: i see the console is getting a lot of debug, but it works!

what is the difference with the mfg + smp + open wider combo?

Posted
1 minute ago, Fraying9981 said:

what is the difference with the mfg + smp + open wider combo?

Hi, MFG is a base mod to other mods, so leave it on your game, now about the plugin, this one worked every time, as the SL triger one dont work all the times, so disabled the SL triggers, and try the plugin ; )

Posted
1 hour ago, Predator-RJ said:

Hi, MFG is a base mod to other mods, so leave it on your game, now about the plugin, this one worked every time, as the SL triger one dont work all the times, so disabled the SL triggers, and try the plugin ; )

thanks. i was referring to the mfg.json + smp.json + openwider.json combo

so i understand I dont need these json triggers anymore. I will try the plugin

 

Posted
2 hours ago, Predator-RJ said:

My god, this is working "flawlessly" every time and i on the latest AE version 1170, Thank you very much for the plugin!!! adding this to main page NOW, again thanks!

ps: i see the console is getting a lot of debug, but it works!

Should "smp reset" be ran again AFTER the animation is concluded and the mouth is closed? I'll post another update later today that only works during active animations aswell.

Posted
1 hour ago, asdt123123 said:

Should "smp reset" be ran again AFTER the animation is concluded and the mouth is closed? I'll post another update later today that only works during active animations aswell.

Hi, hmmm i dont think is "needeed" because well after the animation is over, there isnt much going on, but if you can add that would be a good addition just to kind of "finalize and reset" as it was before, with the smp vertex postion for the closed mouth, so i think would be a good thing in the end ! and again very nice person, thanks for the plugin!

Posted (edited)

So the mod works and everything, but it doesn't look as good as in the gifs/images. Is there any optimisation I need to do? The lower lip seems to be colliding too far away from the TNG shaft so it looks like its hanging down instead of sucking among other issues. I have tried changing TNG sizes and the SexLab OpenMouth expression but nothing helps. See attached images.
 

Spoiler

 

image.jpeg.05b7899c7fb8ec3a24f1de0976939e8a.jpegimage.jpeg.81189f09c8578c6d4b1b73ba187216a8.jpegimage.jpeg.42d5cef657ee828135fe604eb1d1234b.jpeg

 

 

Any advice helpful 🙏

Edited by blabber98
Posted
20 hours ago, asdt123123 said:

Put MouthOpenThing.dll into your skse plugin folder "\Data\SKSE\Plugins"

 

If you put the file in its appropriate folder structure before making the ZIP, then people can just add it to their mod manager and not have to worry about manually placing files.

 

IE: Find some other random folder (or make a new, empty one) then make a "Data\SKSE\Plugins" folder structure, then place a copy of the DLL in the new plugins folder, then go back up to the Data folder you just made and ZIP from there.

Posted
6 hours ago, blabber98 said:

So the mod works and everything, but it doesn't look as good as in the gifs/images. Is there any optimisation I need to do? The lower lip seems to be colliding too far away from the TNG shaft so it looks like its hanging down instead of sucking among other issues. I have tried changing TNG sizes and the SexLab OpenMouth expression but nothing helps. See attached images.
 

  Reveal hidden contents

 

image.jpeg.05b7899c7fb8ec3a24f1de0976939e8a.jpegimage.jpeg.81189f09c8578c6d4b1b73ba187216a8.jpegimage.jpeg.42d5cef657ee828135fe604eb1d1234b.jpeg

 

 

Any advice helpful 🙏

Hi, there is, like i said in the decription SMP has a bug with vertex positions, and need a reset when the mouth is open, now there is a plugin avaliable that does it automatically made by "asdt123123", on the msgs above, so better use that ; )

Posted (edited)
On 4/20/2025 at 12:38 PM, asdt123123 said:

Made a SKSE plugin to automatically execute "smp reset" when the mouth is open. Contains lots of debug, and will need a lot of tweaking I'm sure. So expect something to pop up in your ~ console every 1 second. It's for figuring out proper thresholds, bugs, and whatnot


Source is a bit messy, but here it is:

https://pastebin.com/mKTPQ7VQ

 

Todo:

  • Use Sexlab API  to determine whether the player is currently involved in a 2+ person animation (Can also determine using Skyrim code too). I got no experience with Sexlab API, so I don't even know if they expose anything.
  • Tweaks. I did basic testing and assumptions for values/expressions.

 

This is required: https://www.nexusmods.com/skyrimspecialedition/mods/32444

 

Should work with all versions? Only tested with SE

 

MIT license as always. Take, modify, redistribute the code. I don't care about anything not even credit.

 

Changelog:

v1.1:

  • Disabled console debug logging
  • Only activates during active sexlab animations now

 

Installation:

Put MouthOpenThing.dll into your skse plugin folder "\Data\SKSE\Plugins"

 

MouthOpenThing.zip 308.1 kB · 111 downloads

MouthOpenThing v1.1.zip 312.08 kB · 92 downloads

Hey, thanks for the update! but for me, is somewhat like the sl trigger one now, it works "sometimes", like if the animation loads fast, and the first stage has the mouth open, it will probably work, if not, it wont work, :(

 

-the first 1.0, works everytime

Edited by Predator-RJ
Posted
54 minutes ago, Predator-RJ said:

Hi, there is, like i said in the decription SMP has a bug with vertex positions, and need a reset when the mouth is open, now there is a plugin avaliable that does it automatically made by "asdt123123", on the msgs above, so better use that ; )

Ah fair enough, didn't know this is what that issue looked like, and the SMP reset command fixes the issue (should have tried this). I DID have asdt123123's .dll installed in my plugins folder when taking the screenshots though, which is why I expected the issue to be something else.

Posted (edited)

Seeing the RaceMenu sliders, I was wondering, if anyone here knows if it would be possible to adjust the morphs with a papyrus script?

 

I was thinking the slider / morphs would make a decent addon for Bimbos of Skyrim, but despite having to look into it a bit for one of my scripts, I'm rather clueless about the RaceMenu internal stuff.

 

Perhaps I'm missing some existing and obvious function, but the ones I tried so far did not yield any proper result:

ActorBase.SetFaceMorph does not seem to pick up custom (face)morphs (or its at an index higher than what I checked, and I thought checking the indexes 1- 1000 would be rather generous), NiOverride.SetMorphValue however only works for body morphs.


If theres no function yet, does anyone have an idea whether this could be solved with a SKSE plugin, or would this require editing RaceMenu itself as it is accessing its internal data (I guess)?

Edited by HannoJojo
Posted
29 minutes ago, blabber98 said:

Ah fair enough, didn't know this is what that issue looked like, and the SMP reset command fixes the issue (should have tried this). I DID have asdt123123's .dll installed in my plugins folder when taking the screenshots though, which is why I expected the issue to be something else.

No problem, the 1.0 one works everytime for me, the new 1.1 only sometimes, so if you added the 1.1, try the 1.0 ;) 

Posted
2 hours ago, Predator-RJ said:

Hey, thanks for the update! but for me, is somewhat like the sl trigger one now, it works "sometimes", like if the animation loads fast, and the first stage has the mouth open, it will probably work, if not, it wont work, :(

 

-the first 1.0, works everytime

Try the re-uploaded version.

Posted
28 minutes ago, asdt123123 said:

Try the re-uploaded version.

Hi, thanks again! tried it with a lot of anims, as far i can tell, it is the same, fast anims it will work, now some that are longer, and kind of "slow" to start, and the actors align more then 1 time(creature, or more then 2 actor anims), it will not work mostly, for me it looks like it activated "too soon" the reset command, where the actor was still "idle" standing, and not on the first stage position i think (with this im starting to think that, it has to active the smp reset, when the actor is with the mouth open, and in position, not standing idle waitning to star the anim) , hard to point out exactly ...

Posted (edited)
4 hours ago, Predator-RJ said:

Hi, thanks again! tried it with a lot of anims, as far i can tell, it is the same, fast anims it will work, now some that are longer, and kind of "slow" to start, and the actors align more then 1 time(creature, or more then 2 actor anims), it will not work mostly, for me it looks like it activated "too soon" the reset command, where the actor was still "idle" standing, and not on the first stage position i think (with this im starting to think that, it has to active the smp reset, when the actor is with the mouth open, and in position, not standing idle waitning to star the anim) , hard to point out exactly ...

Very weird. All the new version does is check if they're currently in an animation and if their mouth is open. Maybe the animatingfaction is delayed or inaccurate. But I guess if 1.0 works without issues, then no need to verify we're in an animation

 

Edit:

For anyone interested in the problem: FaceGen morphs (expressions, phonemes) are continuous adjustments to vertex positions based on morph targets and sliders. They don't seem to trigger the game's SkinAllGeometry function again after the head is initially loaded and skinned. The bone influences remain the same; only the vertex base positions are being interpolated.

 

Which is why the fix is to call that "smp reset" command after the mouth is open. Actually you have to execute that command every time the mouth expression is adjusted if you want accurate collision. Problem is, the command is a bit heavy and is visually unappealing.

 

I've tried to force an update by flagging things dirty, but it doesn't help.

 

Calling reloadMeshes is an alternative fix: https://github.com/DaymareOn/hdtSMP64/blob/test/hdtSMP64/ActorManager.cpp#L189

Same thing they do for when race menu is closed or "smp reset" is executed

 

Or you could call this event  https://github.com/DaymareOn/hdtSMP64/blob/test/hdtSMP64/ActorManager.cpp#L189 through  hdt::g_skinAllHeadGeometryEventDispatcher.dispatch(event);

Edited by asdt123123
Posted

I know we've discussed this earlier in this thread, and we found some workarounds, but I really want to take a closer look at applying this to all female NPCs.  Specifically wenches.  I've already looked at the video in the download section on how to add it to specific characters, and am able to do it.  But doing this for the 399 wench faces would be insanely time consuming if done 1 by 1.

 

So the question becomes: How can we convert large batches of facegens to this head?  

 

I'm strictly talking about NPCs that already are using high poly heads, but they don't have the bones/weights.  

I feel like there is some way to do it: Regenerating the facegen in the CK a specific way? Tweaking something in the High Poly Head.esp itself? A script in SSEEdit to apply the new head to NPCs of your choice.

 

I feel like there's a way to do it, I just don't know how to implement it.  Does anyone else have any ideas?

Posted
23 hours ago, asdt123123 said:

Very weird. All the new version does is check if they're currently in an animation and if their mouth is open. Maybe the animatingfaction is delayed or inaccurate. But I guess if 1.0 works without issues, then no need to verify we're in an animation

 

Edit:

For anyone interested in the problem: FaceGen morphs (expressions, phonemes) are continuous adjustments to vertex positions based on morph targets and sliders. They don't seem to trigger the game's SkinAllGeometry function again after the head is initially loaded and skinned. The bone influences remain the same; only the vertex base positions are being interpolated.

 

Which is why the fix is to call that "smp reset" command after the mouth is open. Actually you have to execute that command every time the mouth expression is adjusted if you want accurate collision. Problem is, the command is a bit heavy and is visually unappealing.

 

I've tried to force an update by flagging things dirty, but it doesn't help.

 

Calling reloadMeshes is an alternative fix: https://github.com/DaymareOn/hdtSMP64/blob/test/hdtSMP64/ActorManager.cpp#L189

Same thing they do for when race menu is closed or "smp reset" is executed

 

Or you could call this event  https://github.com/DaymareOn/hdtSMP64/blob/test/hdtSMP64/ActorManager.cpp#L189 through  hdt::g_skinAllHeadGeometryEventDispatcher.dispatch(event);

Hi, thanks, i will foward this on the FSMP server, and talk with day, to see if something can be updated

but i may ask then, why the 1.0 one works fine, it is doing the reset multiple times then? the only big "problem" with the 1.0, was the console hit, cant use or see list of stuff there since the continuos debug

Posted (edited)
4 hours ago, Predator-RJ said:

Hi, thanks, i will foward this on the FSMP server, and talk with day, to see if something can be updated

but i may ask then, why the 1.0 one works fine, it is doing the reset multiple times then? the only big "problem" with the 1.0, was the console hit, cant use or see list of stuff there since the continuos debug

Not sure? My guess is the sexlab animation faction is a bit delayed? Maybe it doesn't always apply? Reason I added the animation check is to prevent SMP RESET from getting called during maybe like a combat shout or when the player's mouth is open due to some other issue. I'll re-upload the old version without spamming debug later

 

Edit: Ok I uploaded a new version that doesn't use "smp reset" at all. It'll attempt to get Skyrim to re-skin the face, which will get SMP to update it. In my limited testing, it seems to work perfectly with zero visual cue that it happened.

 

That way it's far more lightweight, can't cause other issues as easily, and would open this fix up to being a lot more aggressive to insure the mouth is always the proper shape (Future update if needed). 

 

Btw you can see logs at:\My Games\Skyrim Special Edition\SKSE\MouthTrigger.log

 

Here's that actual bit of code in case others can think of potential issues it may cause:

 

                RE::NiUpdateData updateData;
                updateData.time = 0.0f;
                updateData.flags = RE::NiUpdateData::Flag::kDirty;

                //Potentially helps propagate transforms?
                faceNode->UpdateWorldData(&updateData);
				
                // This is what actually seems to force an update
                faceNode->FixSkinInstances(playerSkeleton, true);

 

Edited by asdt123123
Posted (edited)
3 hours ago, asdt123123 said:

Not sure? My guess is the sexlab animation faction is a bit delayed? Maybe it doesn't always apply? Reason I added the animation check is to prevent SMP RESET from getting called during maybe like a combat shout or when the player's mouth is open due to some other issue. I'll re-upload the old version without spamming debug later

 

Edit: Ok I uploaded a new version that doesn't use "smp reset" at all. It'll attempt to get Skyrim to re-skin the face, which will get SMP to update it. In my limited testing, it seems to work perfectly with zero visual cue that it happened.

 

That way it's far more lightweight, can't cause other issues as easily, and would open this fix up to being a lot more aggressive to insure the mouth is always the proper shape (Future update if needed). 

 

Btw you can see logs at:\My Games\Skyrim Special Edition\SKSE\MouthTrigger.log

 

Here's that actual bit of code in case others can think of potential issues it may cause:

 

                RE::NiUpdateData updateData;
                updateData.time = 0.0f;
                updateData.flags = RE::NiUpdateData::Flag::kDirty;

                //Potentially helps propagate transforms?
                faceNode->UpdateWorldData(&updateData);
				
                // This is what actually seems to force an update
                faceNode->FixSkinInstances(playerSkeleton, true);

 

Hi, yes it does work!!! you possible found the "fix" for SMP (if can be applied to the body too), since it is not only this mod, body collisions also suffer from the same thing, if you load the game, and in the game some other mod like ABBA morphs the character or Npcs, the collisions meshes for SMP will be like the head was, with incorrect positions, so i dont know, you can talk with daydreaming on the FSMP server, he is busy with IRL stuff usually, so might take some time until he responds, but he is very nice to talk with, i posted there a pic from here with your previous comment. (FSMP page, discord invite is in the midle - https://www.nexusmods.com/skyrimspecialedition/mods/57339)... i posted your comment in the Dev channel.

 

i tested some animations in my game and it mostly worked like 85%, so many thanks for this my friend !!! again some creature animations you have to change to stage 1 then 2 then back to 1, and it will work, so Sexlab delay problem i will assume as you explained, but will note one thing, i dont have the LOG, in the Skse folder, all logs are there, even MFG, but the one from the "mouththing" was not there, checked multiple times 🤔...

Edited by Predator-RJ
gramar mistakes, English is not my native language.

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
×
×
  • Create New...