Jump to content

OSex+ The Greatest Virtual Sex Ever


Recommended Posts

 

I agree that with the papyrus side of papryus managing the expressions in that there is some ideal system that I can't wrap my head around. Most likely it would involve giving the actors an array or variable for each phoneme and modifier and updating what it's goal should be, the ticker could process this one at a time and go further if more commands are in line saving processing power by having it maintain a grand total instead of sometimes have it fighting over a phoneme or modifier. It's hard for me to figure out exactly how to go about it in Papyrus, I imagine I could do it but without dynamic properties it would need to be a beast system to get them all to fall into line without a lot of if checks, I'll most likely revisit it at some point.

 

I think the logic could be handled mostly in Flash where if-checks are generally light weight. There's some testing that needs to be done to better understand what works and what doesn't in order to know how a delegating system like that should be structured.
 

 

I see your point about frame rates and that being needed to read the node, way beyond me but it makes sense. I see your point and it made me curious are you referring to NiOverride. I have tried but can't make it play in with OSex because of it's requirement to know the base mod, I'm not sure how to get the information reliably everytime like "OSA.esp" and even if I'm inputting it correctly. (Mostly for the context of developers adding stuff outside of what I do.)

 

I could be missing something. But, I don't see where niOverride needs the base mod name. Are you referring to the "key" parameter in the node transform methods?

 

 

SoS animation spam is a good point also, maybe you'll have some ideas for me because I got forced to do that. The SoS animation is only applied if the 3D is loaded so if the player undressed their characters manually they wouldn't get the erection applied without having the animation event trigger again, this would also effect esg. I could tie it into the OSA undressing systems so at least that's covered but I think that's handled differently on different setups. My character's SoS is revealed on removing slot 45 but most have it attached to the body so revealed by 32 but technically 51 or 52  so it would be hard to know exactly when the SoS appeared in order to animate it. Resorted to just spamming it with the animation but most likely there's a better way, I just can't see it.

 

 

Could you run it once when the scene starts for cases where armor was already removed and then also run it after each armor item is removed by your mod? It would be run when non-body armor is removed. So, it would still be spamming. But, not nearly as often as on a loop.

 

 

 

Please yes on the ini parser, that would be a big help. I'll be leaving a majority of the deeper config outside skyrim in documents so that will help but do plan on a couple toggles for things in game. Got it on the split thank you that will work perfectly!

 

IniParser attached.
 
Usage:
 
var myParser = new IniParser();
ini = myParser.parse(iniText);
It's a very simple parser. It looks at each line of the text. If the line includes a "=" then it treats it like a data line to be parsed. It puts the variable value in a variable on the returned object named accordingly. All other lines without a "=" are ignored (useful for titles, comments, etc.).
 
Note that it renders all variables as strings. So, your code may need to cast the values as numbers in some circumstances. [WAIT! That sentence is wrong. Brain is falling asleep. If the value is in "double-quotes" it is cast as a string. Without quotes it gets cast as a number.]

 

------

 

Regarding FO4 mods: With getting busy and going on hiatus, I think I would become a very unpopular modder. So, what I post will probably be more of the modders resource variety. Hoping that they help others who can do a better job on the support side where a lot of the work really is. [ I do have some ideas for non-adult mods to try and make the game more replayable. But, I'm not sure if I can realistically pull it off. I've gone down that path before with overly ambitious projects and burnt out before finishing. Painful to go through. So, it kind of depends on if other mods come out that might get me half-way there. ]

IniParser.zip

Link to comment

I'm not having any luck with this new version, likely due to something I've screwed up. I can't even get past the loading screen, as the game crashes everytime I attempt to load a save. This also happened with the previous version and I just gave up, content with the "1.07B Alpha" which worked almost flawlessly. I have tried a clean save, updated PapyrysUtil, SKSE, XPMSE and FNIS with no luck.

 

It's gotta be a conflict of some kind, right? Or something to do with load order maybe?

 

The new version looks great and I can't wait to try it out.

Link to comment

I'm not having any luck with this new version, likely due to something I've screwed up. I can't even get past the loading screen, as the game crashes everytime I attempt to load a save. This also happened with the previous version and I just gave up, content with the "1.07B Alpha" which worked almost flawlessly. I have tried a clean save, updated PapyrysUtil, SKSE, XPMSE and FNIS with no luck.

 

It's gotta be a conflict of some kind, right? Or something to do with load order maybe?

 

The new version looks great and I can't wait to try it out.

 

Hi Dauvmire, 

Try this first to see if it's the issue, load screen sounds like a FNIS thing:

 

In this folder:

 

Data\meshes\actors\character\behaviors\

 

You'll see a bunch of behavior files. You'll want to make sure the old 0Sex one's are completely gone, I started grouping my animations differently in 1.08 so it has new behavior files but I think if the old ones are left around it will crash your game.

 

It's a bit tricky because they are similar in name so most likely uninstalling 1.08C then looking to see if anything: FNIS_0Sex or FNIS_0SA is in there, if it is delete it, reinstall OSex run FNIS and it will most likely work.

 

Here's the current packs you should have (But watch out because they are almost exactly the same as the old names I used to use just a few changes) Anything else in there that is from me besides these should be taken out:

 

FNIS_0Sex_0MF_D_Behavior    (Doggy Style)

FNIS_0Sex_0MF_K_Behavior    (Kneeling)

FNIS_0Sex_0MF_M_Behavior    (Missionary)

FNIS_0Sex_0MF_S_Behavior     (Standing)

FNIS_0Sex_0MF_U_Behavior    (Laying on the ground stuff)

FNIS_0Sex_BB_A_Behavior       (Bad boys of Skyrim)

FNIS_0Sex_EMF_A_Behavior     (Clothing / Stripping)

 

Let me know if this isn't the case and I'll see what else can be done, we can definitely get it working. It's more polished then 1.07B so definitely worth it even if you don't count the UI.

 

Also there are just enough animations available for Skyrim at the moment to break the game I believe so if you have everything possible / pose packs / sex lab / zaz / dance stuff it's possible to hit a certain number of animations where Skyrim breaks. Doubt this is the case but just to be sure it's possible the couple added animations tipped it over a breaking point.

 

Link to comment

Thanks for the help. Deleting "FNIS_0SA_System_Behavior" gets me past the loading screen, but now I'm experiencing some erratic animation glitches. Pressing "0" on the numpad often causes the two actors to merge together, or "embrace" from a considerable distance and animations will begin and then quickly end before completion. What did I do wrong?

 

The UI looks great, btw, from what little I saw.

Link to comment

Thanks for the help. Deleting "FNIS_0SA_System_Behavior" gets me past the loading screen, but now I'm experiencing some erratic animation glitches. Pressing "0" on the numpad often causes the two actors to merge together, or "embrace" from a considerable distance and animations will begin and then quickly end before completion. What did I do wrong?

 

The UI looks great, btw, from what little I saw.

What actors did you target for sex?

Link to comment

Thanks for the help. Deleting "FNIS_0SA_System_Behavior" gets me past the loading screen, but now I'm experiencing some erratic animation glitches. Pressing "0" on the numpad often causes the two actors to merge together, or "embrace" from a considerable distance and animations will begin and then quickly end before completion. What did I do wrong?

 

The UI looks great, btw, from what little I saw.

 

 Hi Dauvmire,

 

Sorry I left that one out you do need that one to get the animations started. "0SA_System" try putting it back in from the zip run FNIS again and see. Maybe shifting some things around wound up fixing the issue. Let me know what happens please either way.

Link to comment

 

I would need some help from someone with CK knowledge:  This will have to help me because since the start of this project I haven't found a way to remove animals for proper targets. As far as I can see they are considered an actor just like any character with no designation that they are an animal.

 

I could use flags like isplayablerace but that would block out custom npcs who are a custom race but not playable. There's no way to be sure custom npcs would have the correct keywords in place to pass a check like this also.

 

Would creatureFaction be a surefire way to rule this out? I would need some kind of work around in case people didn't want to make animations with creatures.

 

 

All humanoid, non-creature actors should have the keyword "ActorTypeNPC" if they are properly set up in the CK. If you're doing this on the Papyrus side, just use HasKeywordString("ActorTypeNPC") on the actor. And to rule out children: !theActor.IsChild().

 

Link to comment

Just installed 0Sex1.08D3, and I have been trying to update FNIS Behavior trough FNIS application, and I get this message, no matter how many times I've tried. 

 

Reading 0Sex_BB_A
ERROR(9): Index was outside the bounds of the array.

Just installed 0Sex1.08D3, and I have been trying to update FNIS Behavior trough FNIS application, and I get this message, no matter how many times I've tried. 

 

Reading 0Sex_BB_A
ERROR(9): Index was outside the bounds of the array.
 
post-977479-0-05861200-1461593727_thumb.png
Link to comment

 

Just installed 0Sex1.08D3, and I have been trying to update FNIS Behavior trough FNIS application, and I get this message, no matter how many times I've tried. 

 

Reading 0Sex_BB_A
ERROR(9): Index was outside the bounds of the array.

Just installed 0Sex1.08D3, and I have been trying to update FNIS Behavior trough FNIS application, and I get this message, no matter how many times I've tried. 

 

Reading 0Sex_BB_A
ERROR(9): Index was outside the bounds of the array.
 

 

 

Did you have any of previous versions before? If yes - you need to uninstall it properly: delete each related file, then run FNIS, then install new version and run FNIS again. This should help.

And make sure your FNIS is up to date, actually.

Link to comment

 

 

Just installed 0Sex1.08D3, and I have been trying to update FNIS Behavior trough FNIS application, and I get this message, no matter how many times I've tried. 

 

Reading 0Sex_BB_A
ERROR(9): Index was outside the bounds of the array.

Just installed 0Sex1.08D3, and I have been trying to update FNIS Behavior trough FNIS application, and I get this message, no matter how many times I've tried. 

 

Reading 0Sex_BB_A
ERROR(9): Index was outside the bounds of the array.
 

 

 

Did you have any of previous versions before? If yes - you need to uninstall it properly: delete each related file, then run FNIS, then install new version and run FNIS again. This should help.

And make sure your FNIS is up to date, actually.

 

 

You got it working?

Link to comment

 

 

 

Just installed 0Sex1.08D3, and I have been trying to update FNIS Behavior trough FNIS application, and I get this message, no matter how many times I've tried. 

 

Reading 0Sex_BB_A
ERROR(9): Index was outside the bounds of the array.

Just installed 0Sex1.08D3, and I have been trying to update FNIS Behavior trough FNIS application, and I get this message, no matter how many times I've tried. 

 

Reading 0Sex_BB_A
ERROR(9): Index was outside the bounds of the array.
 

 

 

Did you have any of previous versions before? If yes - you need to uninstall it properly: delete each related file, then run FNIS, then install new version and run FNIS again. This should help.

And make sure your FNIS is up to date, actually.

 

 

You got it working?

 

Nope, i has same problem with other mod earlier.

I'm on my job now, so i can't check anything, but i have some thoughts about it. I have another Windows installed on diffirent SSD. Gonna try there exactly same mod build i have now, and if not working - uninstall the game comletely and try with fresh client.

Not sure when i'll have time for all this. Tomorrow may be.

Link to comment

 

Thanks Pipdude for the parser awesome!

 

Yes I think the key section is the part of nioverride I have no idea what to do with it seems to want a mod name to be input into it might be something else though. The wall I see with flash controlling mfg is that you're still at the whim of Skyrim making movements once per frame and don't really know when it's going to be done. In just communicating with it it's possible as efficient as it can get for what it's doing but they areas it gets weird in would be if two parts of the mod want to both adjust sometimes or if papyrus gets bottle necked and doesn't get around to finishing something before the next order shows up. It could handle them one at a time but I think some of the effect is having multiple adjustments taking place at once. The flash approach would maybe make it not have to kick off the blending everytime with getting the current value of the MFG / PH which would take a lot of strain I imagine. I'll think about it and see what could be done. I think they are handled differently, they appear to be just a stored value, if i recall when I looked at the C+ so it might not be expensive and the many motions might be the biggest culprit which I don't see a way around.

 

Good idea on the erection. I could put it on a Event OnObjectUnequipped(Form Item, ObjectReference ShitIdontNeed) in Actra. and call it once at the start. Only issue is it would do many times on full strip upwards of 30  might not really matter though and maybe I could stop that with a bool.

 

 

 

 

Hi Lucas, the top 4 fnis entries are old and most likely messing you up. Check the behavior file in the zip and make sure those are the only 0S one's installed, there's some risidual oSex stuff from prior versions left in that folder.

 

CEO,

 

I've been trying to catch up on what I missed here the last few days and I think I saw something that surprised me.

 

You're trying to handle vocalization and accompanying phonemes outside Skyrim's own engine?

 

Hi Migal,

yea I've always done it like that so the phonemes and modifiers can blended by the script instead of snapping into place. Expressions I use Skyrim for. When sound packs are added to the mod each entry has a line where you input vowels which is the shape of the mouth that sound would visually make the most sense with ex: lshape="a0o0u0". Looks a little weird there but it's basically saying a o u lip shape the 0 is the power of the mouth shape from 0-2 so all 3 of those vowels at 0 power.

 

That ties into the lip shape class actors get which your post was referring too I think.

 

The movement is basically just this function:

 

 

 

Function blendPh(actor zAct, int zGoal, int zCur, int zMode, int zSpeed) global     
If zCur > zGoal
    While zCur > zGoal
    zCur -= zSpeed
    MfgConsoleFunc.SetPhoneme(zAct, zMode, papyrusUtil.ClampInt(zCur, 0, 100))
    EndWhile
ElseIf zCur < zGoal
    While zCur < zGoal
    zCur += zSpeed
    MfgConsoleFunc.SetPhoneme(zAct, zMode, papyrusUtil.ClampInt(zCur, 0, 100))
    EndWhile
EndIf   
EndFunction
 
zCur starts as a getPhoneme, zGoal is what the script wants it to be, speed is how much between each visual tick which I leave at 3.

Link to comment

 

 

Thanks Pipdude for the parser awesome!

 

Yes I think the key section is the part of nioverride I have no idea what to do with it seems to want a mod name to be input into it might be something else though. The wall I see with flash controlling mfg is that you're still at the whim of Skyrim making movements once per frame and don't really know when it's going to be done. In just communicating with it it's possible as efficient as it can get for what it's doing but they areas it gets weird in would be if two parts of the mod want to both adjust sometimes or if papyrus gets bottle necked and doesn't get around to finishing something before the next order shows up. It could handle them one at a time but I think some of the effect is having multiple adjustments taking place at once. The flash approach would maybe make it not have to kick off the blending everytime with getting the current value of the MFG / PH which would take a lot of strain I imagine. I'll think about it and see what could be done. I think they are handled differently, they appear to be just a stored value, if i recall when I looked at the C+ so it might not be expensive and the many motions might be the biggest culprit which I don't see a way around.

 

Good idea on the erection. I could put it on a Event OnObjectUnequipped(Form Item, ObjectReference ShitIdontNeed) in Actra. and call it once at the start. Only issue is it would do many times on full strip upwards of 30  might not really matter though and maybe I could stop that with a bool.

 

 

 

 

Hi Lucas, the top 4 fnis entries are old and most likely messing you up. Check the behavior file in the zip and make sure those are the only 0S one's installed, there's some risidual oSex stuff from prior versions left in that folder.

 

CEO,

 

I've been trying to catch up on what I missed here the last few days and I think I saw something that surprised me.

 

You're trying to handle vocalization and accompanying phonemes outside Skyrim's own engine?

 

Hi Migal,

yea I've always done it like that so the phonemes and modifiers can blended by the script instead of snapping into place. Expressions I use Skyrim for. When sound packs are added to the mod each entry has a line where you input vowels which is the shape of the mouth that sound would visually make the most sense with ex: lshape="a0o0u0". Looks a little weird there but it's basically saying a o u lip shape the 0 is the power of the mouth shape from 0-2 so all 3 of those vowels at 0 power.

 

That ties into the lip shape class actors get which your post was referring too I think.

 

The movement is basically just this function:

 

 

 

Function blendPh(actor zAct, int zGoal, int zCur, int zMode, int zSpeed) global     
If zCur > zGoal
    While zCur > zGoal
    zCur -= zSpeed
    MfgConsoleFunc.SetPhoneme(zAct, zMode, papyrusUtil.ClampInt(zCur, 0, 100))
    EndWhile
ElseIf zCur < zGoal
    While zCur < zGoal
    zCur += zSpeed
    MfgConsoleFunc.SetPhoneme(zAct, zMode, papyrusUtil.ClampInt(zCur, 0, 100))
    EndWhile
EndIf   
EndFunction
 
zCur starts as a getPhoneme, zGoal is what the script wants it to be, speed is how much between each visual tick which I leave at 3.

 

Thank you solved it, by deleting the 1.07 alphaC behavior files.

Link to comment

 

 

Yes I think the key section is the part of nioverride I have no idea what to do with it seems to want a mod name to be input into it might be something else though.

 

I believe that is just a string to differentiate your transforms from transforms that other mods might make. It is beneficial to put an esp there because it cleans up those transform entries if that esp gets removed. But, it's not entirely necessary. Most of the time, I've seen other modders using just random strings instead of their mod esp name.

 

 

The wall I see with flash controlling mfg is that you're still at the whim of Skyrim making movements once per frame and don't really know when it's going to be done. In just communicating with it it's possible as efficient as it can get for what it's doing but they areas it gets weird in would be if two parts of the mod want to both adjust sometimes or if papyrus gets bottle necked and doesn't get around to finishing something before the next order shows up. It could handle them one at a time but I think some of the effect is having multiple adjustments taking place at once. The flash approach would maybe make it not have to kick off the blending everytime with getting the current value of the MFG / PH which would take a lot of strain I imagine. I'll think about it and see what could be done. I think they are handled differently, they appear to be just a stored value, if i recall when I looked at the C+ so it might not be expensive and the many motions might be the biggest culprit which I don't see a way around.

 

I don't think that the difference between Flash timing and the game frame would be perceptible. And having it in Papyrus doesn't address the issue of multiple places requesting competing changes. It just adds having to run a bunch of "get" commands when you could track all of that yourself in flash.

 

I don't believe that bottlenecking would cause a problem because I don't think it "pauses" Flash in those cases. So, provided that all timing mechanisms are handled in Flash, stuttering moments from the game should catch up and still be lined up based on what the Flash is throwing out.

 

In Flash, you can make a system with a single point of requesting. So, if two places in a mod make an MFG request, that system (a class) would be aware of duplicates and do something logical with them (join them into one multi-node request to Papyrus, cancel one out, stagger them, whatever ends up making sense based on testing to prevent stuttering).

 

 

Good idea on the erection. I could put it on a Event OnObjectUnequipped(Form Item, ObjectReference ShitIdontNeed) in Actra. and call it once at the start. Only issue is it would do many times on full strip upwards of 30  might not really matter though and maybe I could stop that with a bool.

 

 

You could probably narrow it down to a few slots and only run it after those are unequipped.

Link to comment

 

Hi Migal,

yea I've always done it like that so the phonemes and modifiers can blended by the script instead of snapping into place. Expressions I use Skyrim for. When sound packs are added to the mod each entry has a line where you input vowels which is the shape of the mouth that sound would visually make the most sense with ex: lshape="a0o0u0". Looks a little weird there but it's basically saying a o u lip shape the 0 is the power of the mouth shape from 0-2 so all 3 of those vowels at 0 power.

 

That ties into the lip shape class actors get which your post was referring too I think.

 

The movement is basically just this function:

 

 

 

Function blendPh(actor zAct, int zGoal, int zCur, int zMode, int zSpeed) global     
If zCur > zGoal
    While zCur > zGoal
    zCur -= zSpeed
    MfgConsoleFunc.SetPhoneme(zAct, zMode, papyrusUtil.ClampInt(zCur, 0, 100))
    EndWhile
ElseIf zCur < zGoal
    While zCur < zGoal
    zCur += zSpeed
    MfgConsoleFunc.SetPhoneme(zAct, zMode, papyrusUtil.ClampInt(zCur, 0, 100))
    EndWhile
EndIf   
EndFunction
 
zCur starts as a getPhoneme, zGoal is what the script wants it to be, speed is how much between each visual tick which I leave at 3.

 

 

Holy moly that must have been a lot of work.

 

I was asking because I know how to use the CK to control vocalizations with phonemes and it works perfectly and automatically every time.  This would of course also allow vocalizations to include phrases such as "C'mon!"  I'm just wondering if it would help with any bottleneck in your papyrus<flash pipeline.

Link to comment

Strange, I installed the 1.08 demo 3, run fnis, but no mcm menu is shown. Everything works fine though, and when I force update mcmby using console command, it register osa too, but I couldn't find its menu.

 

The mod no longer includes an MCM menu.

Link to comment

Thank you so much for sharing another update, this crew is really amazing! What an impressive work, I have to say.

 

Just need a little help, if possible because pressing "0" on custom followers is not working anymore, actors stand over each other, no animations or controls are enabled.

 

Any tips would be very helpful thank you all once again!

Link to comment

I did the changes you told me to do for expressions but didnt see much change in game.

What i found out though is that its not during spank but during idle while she is waiting for spank when she opens her mouth bit to much (lower lip) but she also closes them soon after so there are no issues.

 

TESV_2016_04_25_22_40_18.png

 

It seems that on my first test it was stuck on this expression and spank only made her open mouth even more and that didnt look right. But later i couldnt reporduce it so it was probably something random and everything is fine just the way it is by default.

 

Link to comment

This might be a dumb question but where do I get the current demo/work in progress 1.08 version of this mod since they aren't on the frontpage (or am I just too blind to find them ? ^^)

 

Going few pages back never hurt anyone :P

Its on easy to remember page 111 click me

 

 

CEO, I was also playing with sounds the way you told me to this post but it didnt seem to change anything during spanking. It was still only breathing. Then i checked emo folder and there was this sharp.xml so that makes me wonder do i have to make changes in this one as well? Is one overriding another?

 

Pic shows intimate/emo/sharp.xml (unedited) and intimate/mien/emo_sharp.xml (edited like you mentioned, copy pasted voice block really, ill have to fix that "medum" )

 

432b4d00efe26e7e696eb02c0ced37c4.png

 

Link to comment

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

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