Jump to content

Skyrim SexLab - Sex Animation Framework v1.62 - UPDATED Jun 3rd 2016


Recommended Posts

Posted

 

SexLab v1.32b hotfix released, changelog is as follows: 

  • Fixed scaling bug that made characters super small / invisible

SexLab v1.32  changelog:

  • Added: Option to disable orgasm camera shake + sounds
  • Added: Ability to export/import configuration + animation adjustments to an external file so it can be carried over between different characters or restored later
  • Added: Tons of new API functions for modders
  • Removed: TFC exiting during orgasm, now only does it when animation is actually ending
  • Fixed: player as werewolf not animating properly
  • Fixed: Animation sticking after animation ends
  • Fixed: Camera going into the ground awkwardly when ragdolling
  • Fixed: Greatly reduced actor release wait time that was added in 1.31 to help with mod compatibility
  • Fixed: SortActors() not properly sorting when more than 2 actors present
  • Fixed: Will now first check if the closest bed is valid before resorting to random selection
  • Fixed: Moving scene locations with the hotkey will now rescan for a nearby bed and prompt the player to use it
  • Fixed: Other shit I don't remember
  • Updated: packaged PapyrusUtil plugin to 1.5

 

 

Thx for fix the scaling bug.

 

But now, my stats/sexual experience reseted

Posted

Lol NMM is great, I was installing this and it asked if I wanted to overwrite papyrusitil.pex I click no and then it finishes installing and I wondered why it only asked about papyrusutil I have others too. I go and see it just overwrite the other files without asking. I had changes made in there ! :P

Posted

Lol NMM is great, I was installing this and it asked if I wanted to overwrite papyrusitil.pex I click no and then it finishes installing and I wondered why it only asked about papyrusutil I have others too. I go and see it just overwrite the other files without asking. I had changes made in there ! :P

 

NMM being terrible? Say it ain't so!

 

*cough*

Posted

Yeah but it's a new program to learn again and have to reinstall game and can't conveniently download mods with NMM anymore from nexus. :(

 

It downloads mods from nexus fine, using the download manager links. I have a heavily modded game and it only took me an afternoon of tinkering around to get everything converted over from NMM to MO.

Posted

Hmm yeah I'm switching, I tried to import NMM from MO but it broke about quarter of the way there and said a bunch of errors. I'll just reinstall Skyrim and add mods manually.

Posted

 

Yeah but it's a new program to learn again and have to reinstall game and can't conveniently download mods with NMM anymore from nexus. :(

 

It downloads mods from nexus fine, using the download manager links. I have a heavily modded game and it only took me an afternoon of tinkering around to get everything converted over from NMM to MO.

 

 

I forget exactly where it does, but nmm archives the mods you've already downloaded somewhere on your drives. Move them to a safe place, then when you're setting up MO just tell it to use that directory as it's download directory and poof! they're all available for doubleclick install into MO.

 

Even a day or two of time investment in learning and setting up MO will save you so many headaches. 

Posted

MO looks pretty good, I'm just installing mods one by one from the NMM mods directory. It doesn't seem to support mods that place stuff outside of Data folder though.

Posted

AAAAAAAAAAAAAARRRRRRRRRRRRRRRGGGGGGGGGGGGGGHHHHHHHHHHHHH !!!

 

Upgraded to 1.32b version and ALL my stats are gone!!!

And I reached the rank as my Avatar's description!

 

At least you'll have something to do :P

Posted

AAAAAAAAAAAAAARRRRRRRRRRRRRRRGGGGGGGGGGGGGGHHHHHHHHHHHHH !!!

 

Upgraded to 1.32b version and ALL my stats are gone!!!

And I reached the rank as my Avatar's description!

 

Lol ND. Sorry for laughing. It isn't in bad sense. Just sympathizing with you. That happened to my queen too.  But that's a game living. I guess. :)

Posted

Hey Ashal,

 

the new update can in some cases cause issues with characters not properly aligning and throwing your "in wrong state" error messages.

 

The problem is that the failsafe in sslThreadController.ActorAction(...) is not taking into account the potential delay of characters unequipping items while wearing a lot of separate parts.

Also the ActorWait construction in that function is introducing an unnecessary double loop that repeatedly checks actorslots it has already checked.

 

I tested with a modified wait function that rolled your inner and outer loops into one:

 

bool function ActorWait2(string waitfor, float failsafe)
    int i = 0
    while i < ActorCount
        if ActorAlias[i].GetState() != waitfor
            Utility.Wait(0.50)   ; increased wait time a little bit to prevent a lot of unnecessary looping - in most situations the user will never notice anyway
        else
            i += 1
        endIf
        if (failsafe < Utility.GetCurrentRealTime())
            return true
        endif
    endWhile
    return true
endFunction

Using this and increasing the failsafe time a little bit to account for the undress animation fixed my problem.

 

Also note that similar code seems to exist in sslThreadModel.Changeactors.

Posted

You could probably change the amount somehow though so you could set it back to what you had or approximately if you don't remember.

 

where are the values stored? in which file they go? Can we tweak them to reimport later?

Thanks

Posted

Hey Ashal,

 

the new update can in some cases cause issues with characters not properly aligning and throwing your "in wrong state" error messages.

 

The problem is that the failsafe in sslThreadController.ActorAction(...) is not taking into account the potential delay of characters unequipping items while wearing a lot of separate parts.

Also the ActorWait construction in that function is introducing an unnecessary double loop that repeatedly checks actorslots it has already checked.

 

I tested with a modified wait function that rolled your inner and outer loops into one:

bool function ActorWait2(string waitfor, float failsafe)
    int i = 0
    while i < ActorCount
        if ActorAlias[i].GetState() != waitfor
            Utility.Wait(0.50)   ; increased wait time a little bit to prevent a lot of unnecessary looping - in most situations the user will never notice anyway
        else
            i += 1
        endIf
        if (failsafe < Utility.GetCurrentRealTime())
            return true
        endif
    endWhile
    return true
endFunction

Using this and increasing the failsafe time a little bit to account for the undress animation fixed my problem.

 

Also note that similar code seems to exist in sslThreadModel.Changeactors.

Maybe this explain why, this 1.32b version, my papyrus log bloated up more than 1.5 Mb instead of normal 100 Kb.

Posted

 

Hey Ashal,

 

the new update can in some cases cause issues with characters not properly aligning and throwing your "in wrong state" error messages.

 

The problem is that the failsafe in sslThreadController.ActorAction(...) is not taking into account the potential delay of characters unequipping items while wearing a lot of separate parts.

Also the ActorWait construction in that function is introducing an unnecessary double loop that repeatedly checks actorslots it has already checked.

 

I tested with a modified wait function that rolled your inner and outer loops into one:

bool function ActorWait2(string waitfor, float failsafe)
    int i = 0
    while i < ActorCount
        if ActorAlias[i].GetState() != waitfor
            Utility.Wait(0.50)   ; increased wait time a little bit to prevent a lot of unnecessary looping - in most situations the user will never notice anyway
        else
            i += 1
        endIf
        if (failsafe < Utility.GetCurrentRealTime())
            return true
        endif
    endWhile
    return true
endFunction

Using this and increasing the failsafe time a little bit to account for the undress animation fixed my problem.

 

Also note that similar code seems to exist in sslThreadModel.Changeactors.

Maybe this explain why, this 1.32b version, my papyrus log bloated up more than 1.5 Mb instead of normal 100 Kb.

 

 

Could very well be the case. As a temporary measure you could try disabling the undress animation if it is enabled.

 

Posted

Wait a second I looked at how you export import settings and something is weird, when you import animation from file you then delete the data in the file. Why do this?

Posted

Hey Ashal,

 

the new update can in some cases cause issues with characters not properly aligning and throwing your "in wrong state" error messages.

 

The problem is that the failsafe in sslThreadController.ActorAction(...) is not taking into account the potential delay of characters unequipping items while wearing a lot of separate parts.

Also the ActorWait construction in that function is introducing an unnecessary double loop that repeatedly checks actorslots it has already checked.

 

I tested with a modified wait function that rolled your inner and outer loops into one:

bool function ActorWait2(string waitfor, float failsafe)
    int i = 0
    while i < ActorCount
        if ActorAlias[i].GetState() != waitfor
            Utility.Wait(0.50)   ; increased wait time a little bit to prevent a lot of unnecessary looping - in most situations the user will never notice anyway
        else
            i += 1
        endIf
        if (failsafe < Utility.GetCurrentRealTime())
            return true
        endif
    endWhile
    return true
endFunction

Using this and increasing the failsafe time a little bit to account for the undress animation fixed my problem.

 

Also note that similar code seems to exist in sslThreadModel.Changeactors.

 

Your modified waittime loop does absolutely nothing. If an actor has an item in every single slot and every single slot needs to be stippled, which is not only insanely unlikely, but likely idiotic on the users part, it would take a 6.902 seconds seconds to complete at max, out of 15 seconds with the current wait loop failsafe, this is more than enough time to account to script lag and then some. And mind you that's only if the Undress animation is enabled, which isn't by default, with it disabled the time it takes to strip 33 slots is exponentially faster. It also does a lot of unnecessary checks. The point of the current wait loop is that if any  is false than all are false as a byproduct, yours needlessly checks all loops regardless if it's already found a false or not. 

 

ChangeActors() does nothing of the sort, it waits a maximum of 20 seconds for a state change to go from "" to "Ready" nothing more and absolutely nothing less. Absolutely  nothing else is necessary, and that in itself is likely excessive caution. By all accounts that's more time than it is given to do the exact same thing via AddActor() on a normal thread.

Posted

Wait a second I looked at how you export import settings and something is weird, when you import animation from file you then delete the data in the file. Why do this?

 

What's weird about that? Once it's imported it's useless and can be deleted. Amy further need for it's use can be exported again.

Posted

Well I mean, I just want to export once and then every time I create a new character I just click import to get the settings, no need to export again. Right now the data could even be lost if I say export, then import on another character then delete all saves and now there is no data anymore. It does no harm to have it in the file forever.

Posted

Well I mean, I just want to export once and then every time I create a new character I just click import to get the settings, no need to export again. Right now the data could even be lost if I say export, then import on another character then delete all saves and now there is no data anymore. It does no harm to have it in the file forever.

 

So click export again after importing.

 

I'd argue people with more than 1 character to export to is insanely rare as is, so it's more or less a non-issue. And for those people clicking export again after, clicking import to re save the settings is a trivial matter. I'd rather the smaller less potentially corrupted save file than the  larger save file just to save myself the trouble of clicking export again.

Posted

I know what the loops do. My wait loop merges your loop in ActorAction with the one in ActorWait. (It also needlessly returns a bool, but hey it was a quick hack). I just called it in ActorAction instead of the wait loop. I also stretched the failsafe up to 60 seconds (hey it's a failsafe and the wait doesn't take that long anyway).

 

The double loop isn't strictly wrong, it's just costly. Which means Skyrim will have to spend a little more time running the double loop instead of actually performing the state change your waiting for. That's also why I increased the wait time to 0.5 seconds. That way Skyrim will have more time during the wait to do what you are waiting for.

 

I just did a quick count and it takes considerably more than 7 seconds to go from selecting the dialogue option that starts the process to the fully undressed state.

This has little to do with script lag, just having a character with boots, gauntlets, ring, amulet, armor, backback, cloak, weapons and a circlet and a decorative dagger triggers the undress anim a number of times. And while it seems to stay under the 15 second failsafe, it still breaks.

 

 

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