Jump to content

What Areas Should be Looked at?  

1,040 members have voted

  1. 1. What Areas need to be looked at more?

    • Better Naked/Armor Slot handling/configuration (IE armors that do not use body slot that should prevent nudity)
      331
    • Creature Handling
      574
    • Nearby NPC arousal Updating over time (Or appearingly not updating)
      345
    • Other (Leave a Comment)
      75


Recommended Posts

On 2/8/2022 at 8:54 AM, DayTri said:

This looks amazing, great work.

 

I think the big thing missing from other arousal implementations is that actor arousal drops to 0 just after orgasm, it really doesn't make a lot of sense. Arousal should increase during sex and after orgasm, but quickly fall after sex, then start increasing more slowly as the actor is "frustrated" or something. This could be done by tracking a rate of change over time for arousal - sex should increase arousal but decrease the rate of change (making it negative). Exposure or time since orgasm should increase the rate of change. Maybe this is easier to do in a more efficient implementation.

 

FYI, if you look in the devious devices source files, you'll see that it actually directly manipulates the internal storageutil data for SLA in some cases because the API is too slow. Unfortunately that probably means your replacement is partially incompatible without a patch to this function in zadLibs.psc.

 

Function UpdateExposure(actor akRef, float val, bool skipMultiplier=false)
	If (akRef == None)
		Error("UpdateExposure passed none reference.")
		return
	EndIf
	float lastRank = Aroused.GetActorExposure(akRef)
	Log("UpdateExposure("+akRef+","+val+","+skipMultiplier+")")
	if skipMultiplier
		; This function is very slow, and sometimes hangs for multiple seconds (Seen 10+). Directly access internals as a work-around.
		; Aroused.SetActorExposure(akRef, (lastRank + val + 1) as Int)
		float newVal = lastRank + val
		if newVal > 100
			newVal = 100
		EndIf
		StorageUtil.SetFloatValue(akRef, "SLAroused.ActorExposure", newVal)
		StorageUtil.SetFloatValue(akRef, "SLAroused.ActorExposureDate", Utility.GetCurrentGameTime())
	Else
		float rate = Aroused.GetActorExposureRate(akRef)
		int newRank = (lastRank + (val as float) * rate) as int	
		Aroused.SetActorExposure(akRef, newRank)
	EndIf
EndFunction

 

 

 

I suggest modifying the TimeRate for that.

 

In general, not just in sex scenes, when an actor gets a high exposure then it decreases without orgasm, he gets frustrated. His TimeRate increases meaning he will be aroused faster later.

 

Here's what I did in GetActorArousal (days = time since last orgasm):

 

 If (newRank < Lastarousal) &&  days > 0.02 
       float result = ( Lastarousal - newrank )   as float   / 10
       UpdateActorFrustration(akref, result)
 Endif


And in ActorUpdateExposure :

 

valFix  = valfix * (GetActorExposureRate(akRef) + GetActorFrustration(akRef))

 

 

after an orgasm, Frustration and exposure = 0 or are reduced.

 

Hope this will be useful...

 

 

Link to comment
4 hours ago, fjob276 said:

Amazing, I've been waiting for this for a long time !

 

I've tried to compile the plugin to play around with but CommonLibSSE-po3 gives me some troubles...(First time i try to compile a github source code, too...)

 

If I understand the sources correctly, the NPC's are aroused by the naked player only ? The naked NPC's are not taken into account not even for the player ?

 

Would be great if the player and the NPC's had their exposure incremented for each naked or skimpy (with sexy keyword) actor nearby...Should be much easier to do than with Papyrus...

 

Another cool feature would the handling of SOS position (AKA erection). It would even be possible to go floppy-sos-like with Dynamic HDT-SMP but that would probably be going to far for this mod...

 

Ahh yeah to build the SSE version of dll, you need to clone the dev branch of Po3's commonlibsse fork (https://github.com/powerof3/CommonLibSSE/tree/dev) and place in folder "external/CommonLibSSE-po3" the main commonLibSSE no longer supports SSE, just AE so using po3 fork that still supports sse. Ill update .gitmodules so that none of this is necessary and performed by syncing the git submodules. If your getting errors building that let me know (I had to make a few tweaks just based off my compiler version to commonlibs usage of spdlog to get po3's commonlibsse to build)

 

Correct yeah, The nudity check is based off just the player. I think definitely can and should add support for NPCs to affect arousal to. There is a ton of capacity for additional functionality/complexity, so im not too concerned on that front. Focus for this initial release was to try and keep it relatively simple and stable. I think a lot of the design for how the nudity adjustments are made will be based off a new arousal mechanics design. Current main issues i can think of are:


1. As you said only nude player will increase surrounding arousal. I think if any player/npc is nude increases all surrounding (And then in the case of multiple, should the arousal gain stack, or more a yes/no "In presence of nude". Or should it be configurable? Those kind of questions all need to be thought about and considered.

 

2. Currently Nudity counts as lack of "Body" IsNaked(RE::Actor* actorRef) {   return actorRef->GetWornArmor(RE::BGSBipedObjectForm::BipedObjectSlot::kBody) == nullptr; } As you mentioned that needs to be more robust and handle things like "Erotic" keywords, and also armor sets that dont necessarily use body slot but still should count as non-naked (or the inverse). The "IsNaked" check needs to be more robust and account for those things.

 

Age old issue of as soon as you drill down into things complexity begins to balloon and either you need to make a set of assumptions/decisions on users behalf for how things should work (which is valid), or you have a super complicated/convoluted MCM to expose all the levers. In its current state I tried to keep things simple to "avoid" some of those issues, but am planning on tackling many of this complexity. I think my goal is to try and approach this kind of stuff a bit more holistically as part of a comprehensive "Behavior Overhaul" rather then have all this disparate functionality thats confusing for users to wrap head around.

 

 

In regards to SOS position, I definitely want to add support for managing sos state akin to what SLA supported to this mod. I haven't dug into it too much yet, but I'm thinking/hoping it should be relatively straightforward. [It would likely be a relatively simple implementation integrating with SOS, I think any complexity beyond that might make more sense as a separate mod]

Link to comment

That's a very good improvement. Thank you.
One request, on the keyword addition side, it would be nice if the player could choose from only what they are currently wearing, just like in traditional SLAX.
(Because with the current specification, if you have more than a certain number of items, the clothes you want to add keywords to will not be displayed.)

Link to comment
3 minutes ago, steck said:

That's a very good improvement. Thank you.
One request, on the keyword addition side, it would be nice if the player could choose from only what they are currently wearing, just like in traditional SLAX.
(Because with the current specification, if you have more than a certain number of items, the clothes you want to add keywords to will not be displayed.)

 

Yeah I agree, how i'm currently doing the listing is hot garbage.  As you said i think ill have it select from currently worn items so the list should never be too long.

Link to comment
9 minutes ago, ozooma10 said:

 

Yeah I agree, how i'm currently doing the listing is hot garbage.  As you said i think ill have it select from currently worn items so the list should never be too long.

 

Thanks for the quick reply. Looking forward to it.

Link to comment

I had to give you the excerpts from the log file for the simple reason that the stack dumps grew extremely fast. Three of the four were too large to fit into Notepad++, while the fourth was about 250MB.  Too large to upload.  I did a search for any errors from your mod scripts, but that was the only one I found.

Link to comment

Howdy Folks! I posted a braindump of ideas i have for a revamp of the underlying arousal system.

 

Its definately a mess of thoughts but hoping to get feedback/ideas from people to help refine it. Would greatly appreciate anyone who gives it a glance.

 

 

Link to comment
15 hours ago, ozooma10 said:

 

Ahh yeah to build the SSE version of dll, you need to clone the dev branch of Po3's commonlibsse fork (https://github.com/powerof3/CommonLibSSE/tree/dev) and place in folder "external/CommonLibSSE-po3" the main commonLibSSE no longer supports SSE, just AE so using po3 fork that still supports sse. Ill update .gitmodules so that none of this is necessary and performed by syncing the git submodules. If your getting errors building that let me know (I had to make a few tweaks just based off my compiler version to commonlibs usage of spdlog to get po3's commonlibsse to build)

 

 

 

 

Indeed, I now get this compilation error :

D:\src\OSLAroused-SKSE\build\vcpkg_installed\x64-windows-static-md\include\fmt\core.h(2675,12): error C2039: 'parse' is not a member of 'fmt::v8::detail::fallback_formatter<RE::FormType,Char,void>'

 with
          [
              Char=char
          ] (compiling D:\src\OSLAroused-SKSE\external\CommonLibSSE-po3\src\SKSE\RegistrationMap.cp
  p)

(and so on)

 

Also, there is a slight problem with cmakelists expecting the env variable SkyrimSE64Path, not Skyrim64Path for the SSE build

 

Thanks for your help and for this great project !

Link to comment
24 minutes ago, fjob276 said:

 

 

Indeed, I now get this compilation error :

D:\src\OSLAroused-SKSE\build\vcpkg_installed\x64-windows-static-md\include\fmt\core.h(2675,12): error C2039: 'parse' is not a member of 'fmt::v8::detail::fallback_formatter<RE::FormType,Char,void>'

 with
          [
              Char=char
          ] (compiling D:\src\OSLAroused-SKSE\external\CommonLibSSE-po3\src\SKSE\RegistrationMap.cp
  p)

(and so on)

 

Also, there is a slight problem with cmakelists expecting the env variable SkyrimSE64Path, not Skyrim64Path for the SSE build

 

Thanks for your help and for this great project !

 

Ahh yeah i had same issue, here a change to fix that error https://github.com/ozooma10/CommonLibSSE/commit/b9648a0771de2f17892dd1aa7a3921cd066bd19c

 

SkyrimSE64Path Yeah i added different variants since i run both builds locally. Just add env var for SkyrimSE64Path pointing at your sse game install location (Or update cmake to use skyrim64path)

Link to comment

There was/is a mod on LE called Arousal Enhancement. It was basically a patch for SLA. It increased your (and NPC's) arousal depending on what you were doing. If you started a sex scene with foreplay, then that would increase your arousal, etc. And your arousal state will alter during the stages of the animations.

So you might like to have a look at it for ideas.
 

 

Link to comment

Quick question: SL aroused SSE had the option of allowing arousal level to control SOS erection stages, and also the ability to start a masturbation animation by holding down the status key. Do these features exist in OSLaroused, or if not, will they be implemented in future versions? Thanks

Link to comment
18 minutes ago, Frosferes said:

Quick question: SL aroused SSE had the option of allowing arousal level to control SOS erection stages, and also the ability to start a masturbation animation by holding down the status key. Do these features exist in OSLaroused, or if not, will they be implemented in future versions? Thanks

 

Do not currently support either.

 

Working on both features for a future update.

Link to comment

Did you get around to have a look at Radiant Prostitution? It seems OSL-Aroused renders it pretty much unusable as all sex scenes end with:
Your client is done.
Your clients satisfaction is  0
You client did not cum.
Now it can happen occasionally, especially with low sexlab skills that the client remains unsatisfied, but I never had it happen four times in row (despite Skyrims sucky random nummer generator) and with a zero satisfaction. There is clearly something amiss.
So I went back to an older save and switched the baka version Aroused  with OSLA, tested and Radiant Prostitution behaved well if allowing its version of slaFrameworkScr to overwrite.
(That's actually the only script, when I originally indicated that two scripts are overwriten I didn't notice that, one of those two is just the source script.)

Link to comment
1 hour ago, jalog100 said:

is the feature of  required line of sight to change arousal implemented?

 

Way this works is actor either needs to be "Alerted" to target actor (naked player or actors in scene) OR within a certain range (ie when very close even if not alerted will still adjust arousal)

 

 

4 hours ago, Talesien said:

Did you get around to have a look at Radiant Prostitution? It seems OSL-Aroused renders it pretty much unusable as all sex scenes end with:
You client did not cum.
 

Yeah looks like radiant checks the internal storage rather than going through the arousal interface (which is never set).

 

Here is a patch that should fix it. (Just add to RadiantProstitution/scripts folder) [Ill add official version in fomod in a future release]

 

 

mf_handler.pex

Link to comment
5 hours ago, ozooma10 said:

Yeah looks like radiant checks the internal storage rather than going through the arousal interface (which is never set).

 

Here is a patch that should fix it. (Just add to RadiantProstitution/scripts folder) [Ill add official version in fomod in a future release]

Thank you. The patch does work, with one caveat. It works only on saves where Radiant Prostitution has not been used so far. It appears that the script is somehow baked into the save after that, at least that's the only explanation I've for the patch not working in those scenarious.

Link to comment
On 2/12/2022 at 5:38 PM, Talesien said:

Thank you. The patch does work, with one caveat. It works only on saves where Radiant Prostitution has not been used so far. It appears that the script is somehow baked into the save after that, at least that's the only explanation I've for the patch not working in those scenarious.

 

Leave the old script in there, start the game. AFTER the game is started, while it is running, copy and paste the new mf_handler.pex into the scripts folder and replace the original.  Open the console and type this then press enter:

 

reloadscript mf_handler

 

Wait for it to say revert time and then load your last save (DO NOT save after you use reloadscript!)  AFTER you reload the prior save *then* you can save and the new script will be in effect.  This allows a mod author to debug scripts while the game is running and should work just fine in this case as well.

Edited by Cecell
Link to comment
10 hours ago, Hylysi said:

My character currently has 107 arousal.

Arousal and exposure are supposed to cap at 100, shouldn't the OnActorArousalUpdated function check for that?

 

Hmm Basic calculation is Exposure + Timebased arousal (time from last orgasm).

 

exposure caps at 100, but that additive sum can go above 100.

 

Im deep in the throws of a complete rewrite of how arousal works internally, so all this will change in a future version.

 

 

9 hours ago, snottily said:

on SE, used as a drop-in replacement for SLA redux:

game says  OSLAroused installed, 1 new MCM menu etc.

which unfortunately is completely empty.

 

can't uninstall original version for clean save since a ton of my mods need the SLA master.

 

 

Make sure you remove the original SLA redux (OSL Aroused contains everything for mods requiring sla master).

 

Can you send papyrus log (after loading a save where it shows that installed... mcm menu, etc...)

Can you try RCtrl and see if the UI arousal bar shows up?

 

 

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