Jump to content

SexLab Framework Development


Recommended Posts

Posted

Hey guys, been wondering if there is an option to disable lip sync from sexlab, its realy bugy for me. After every moan mouth of the pc\npc closes and reopens only in next animation stage. So its choice between voiced moans and expersionless faces. Not to mention the falping mouth during moan. Figured out if i can get rid of lipsync maybe the mouth wont close when it shouldn't.

This is the support thread for the next version of Sexlab, not the current released version. The current released version does not have the option to disable lip sync.

 

The version being tested here does have that exact option but I highly recommend you do not use it yet. You missed all the markers telling you where to post this question which leads me to believe you would not be a good person for testing since you would not follow the directions.

Posted

Ok here's my idea: now it's possible to make 'race combo' animations, could be bossible to save adjustements independently for F-M, M-F, F-F (PC-NPC) and F-F (NPC-PC)? That would be very useful to characters with non vanilla height. For my characters is 0.90, I can ajust/save alignements from when my character is passive in a F-M animation, but it is not useful for contrary oposite animations, so actualy saving alignments both in the current way or by race isn't useful (Im completely ignoring 'even actors height' here on purpose, because this option would be much better).

Posted

Ok here's my idea: now it's possible to make 'race combo' animations, could be bossible to save adjustements independently for F-M, M-F, F-F (PC-NPC) and F-F (NPC-PC)? That would be very useful to characters with non vanilla height. For my characters is 0.90, I can ajust/save alignements from when my character is passive in a F-M animation, but it is not useful for contrary oposite animations, so actualy saving alignments both in the current way or by race isn't useful (Im completely ignoring 'even actors height' here on purpose, because this option would be much better).

I think it's one of those things that would be nice ot have and look pretty in game buuuuuuuut the easiest way to do what you described would be by obtaining both actors races as strings and then doing some magic with arrays which is less straightforward for papyrus than it should be so it could be bad for performance. I think sexlab is maybe getting a little heavy with conditions, checks, adjustments and stuffs. It can result in animation delays that take ages, unresponsiveness and other consequences of skyrim's scripting engine being powered by a potato ^^ My own mods suffer from the same issues even after all performance friendly streamlining and precautions I implement and I don't think there's lots you can do to speed up papyrus so sometimes you have to make your things less complex than you want.

 

I recently played a little Oblivion and I saw similar scripts being lightning fast compared to Skyrim, it's weird. I guess Oblivion is also a little more unstable with CTDs and stuffs but it still feels like a huuuge step back I don't know why Bethesda did that.

 

Ashal was even considering removing expressions for the same reason so I don't think alignment is very high on priority list.

Posted

I've updated the alpha test post with a new beta build, SexLab 1.45 Beta 1

http://www.loverslab.com/topic/18708-sexlab-framework-development-alpha-4-release-available-03292014/?p=702817

 

1.45 Beta 1 changelog over previous alpha

  • Fixed major bug that's existed since 1.20-ish that caused player to no longer be able to use weapons/spells or various other controls after being a part of a thread that fails to properly start.
  • Fixed bug causing female actors to put their clothes back on soon after stripping
  • Fixed bug causing long delays in animation start for some people
  • Fixed bug causing player voice to be stuck as random in the menu page.
  • Added back Import/Export settings in the Rebuild & Clean menu page
  • New hotkey for instantly ending an animation
  • Switched lip sync and expressions to be off by default
  • Added a script latency tester function, this can currently be tested by using either of the SexLab Debug spells.
  • Added modder capability for actors to have a custom non-registered voiceset given to them which will always be used during animation for that actor
  • Greatly slowed down the speed at which an actors enjoyment during animation increases and focuses it more on their partners specific skills
Posted

Current todo list before official 1.50 release:

  • Update animations with new ones animators have come out with
  • Add an actor manipulation utility spell to allow easy changing of an actors saved voice or stats
  • Add a "Diagnose" options to the MCM that checks SexLab's innards for possible issues and make recommendations
Posted

Beta 1 works mostly fine for me.

 

I'm still having a long delay before the scene starts ONLY when the player is involved. When a scene is triggered, the camera switches to 3rd person, then the player stands around doing nothing for about 5-6 seconds before he starts undressing. NPC partners start undressing immediately and are long done when the player is ready, sometimes repeating their undress animation. Then the scene plays normally. NPC-NPC scenes start without delay.

 

This also holds for solo animations. NPCs start instantly, Player waits a couple of seconds before doing anything. However, threads started through Matchmaker no longer time out now.

Posted

Beta 1 works mostly fine for me.

 

I'm still having a long delay before the scene starts ONLY when the player is involved. When a scene is triggered, the camera switches to 3rd person, then the player stands around doing nothing for about 5-6 seconds before he starts undressing. NPC partners start undressing immediately and are long done when the player is ready, sometimes repeating their undress animation. Then the scene plays normally. NPC-NPC scenes start without delay.

 

This also holds for solo animations. NPCs start instantly, Player waits a couple of seconds before doing anything. However, threads started through Matchmaker no longer time out now.

 

I have the exactly same situation here.

Posted

I believe i know the reason for this undress loop and delay.

 

I used beta 1 with sexlab submit, latest fnis and skse. Save used same as with alpha 3 and 4.

Foreplay animations are enabled. Girl on girl sex played.

 

It goes like this: I use sexlab submit to start consensual sex, sexlab kicks in, when its time to undress - strapon is equipped at the same time  undress animation starts to repeat itself instead of only playing once (i believe this is the conflict - one script saying undress, one script saying equip). Eventualy this is resolved so actor removes clothes and everything continues fine.

 

Thank you for end hotkey :D I believe lot of people will like this :)

 

I know i cant have everything the way i want but please reconsider using standby phases for preparation and some equip strapon or idle animations while waiting for both actors to be ready for next scene. I explained more here http://www.loverslab.com/topic/18708-sexlab-framework-development-beta-1-release-available-04032014/?p=734192.

 

Ashal you were talking about including this: "Animation start/end sequences in place of ragdolling and instantly standing up"

and what i wrote there (Stand by phases) is a way to make that happen. Imagine that you have 2 female actors already in sex scene on the ground. Next scene could be that they have sex using strapon while standing up. Before that happens there could be stand by phase where one actor is standing and playing equip strapon animation (same animation used for undress or maybe some better one) while actor waiting for it can play masturbation animation (in this case while standing) then move to standing sex with strapon equipped. Lots of transitions can be solved like that.

 

I know you have lots of exp with this and your own methods and i have 0 with papyrus and different methods and ideas but still i think we both expect result that is closest to realistic. That said why not at least include dress up animation at the end of sex - undress is already there so why not dress up?

Posted

Current todo list before official 1.50 release:

  • Update animations with new ones animators have come out with
  • Add an actor manipulation utility spell to allow easy changing of an actors saved voice or stats
  • Add a "Diagnose" options to the MCM that checks SexLab's innards for possible issues and make recommendations

Sexlab arouse detects who is under the crosshair whne you press "N". Then it creates a MCM Menu to configure that person's arousal. You might want to consider using that mechanism to configure NPCs instead of adding a spell.

Posted

I have no idea if that idea would work but it sounds like a very cool idea, assuming it works that way of course. :D

 

I know its doable (possible) in other programming languages... papyrus cant be that different, besides most of it already exists so i know it can be done for sure, only main loop would have to be changed to include standby phases and dress up animation in the end. :) Actualy i think stand by phases already exist as well but they are handled in a way that you do not even see what happens (there is no animation) its simple equip strapon and continue to next animation in a matter of second or 2.

 

Its great thing what this framework does (it tries to be fast and reliable) but when its about sex it shouldt be to fast or robotic. I like how this is progressing with new animations, but i think framework itself can do a bit more.

Posted

Oh I believe you, I was only saying I don't know enough to have any clue myself. I just have to take your word for it and I do. Least until Ashal comes along and says it can't be done for reason X. Then I will believe him for the same reason, cause I just don't know enough to know for myself.

 

If you know what I mean. :P

Posted

Beta 1 works mostly fine for me.

 

I'm still having a long delay before the scene starts ONLY when the player is involved. When a scene is triggered, the camera switches to 3rd person, then the player stands around doing nothing for about 5-6 seconds before he starts undressing. NPC partners start undressing immediately and are long done when the player is ready, sometimes repeating their undress animation. Then the scene plays normally. NPC-NPC scenes start without delay.

 

This also holds for solo animations. NPCs start instantly, Player waits a couple of seconds before doing anything. However, threads started through Matchmaker no longer time out now.

 

 

I have the exactly same situation here.

 

 

See underlined of download post notes:

 

 

 

EVEN MORE IMPORTANT NOTES: As this is an alpha/beta release, intended solely to get some feedback on issues that are a direct result of these changes. It is paramount that you report any issues specific to the alpha/beta that you have, with as much detail as possible. Meaning debug logs, description of the issue, what mod did you use to initiate the animation, if it's a new or existing save game, if you had previous version of sexlab installed on the save. This release has a debug dev mode forced on, which will cause any errors and various other notices to the console for quick reference without having to look at the debug log. Final release of the mod will have this console spam disabled and toggleable from the menu.

 

 

 

And to add to that, the debug spells you should have automatically added while running the beta will print out your games current estimated script latency, use that spell before starting an animation and report back what it gives you for currently script latency. If using ENB try both with and without ENB effects enabled, checking script latency before each attempt.

Posted

I believe i know the reason for this undress loop and delay.

 

I used beta 1 with sexlab submit, latest fnis and skse. Save used same as with alpha 3 and 4.

Foreplay animations are enabled. Girl on girl sex played.

 

It goes like this: I use sexlab submit to start consensual sex, sexlab kicks in, when its time to undress - strapon is equipped at the same time  undress animation starts to repeat itself instead of only playing once (i believe this is the conflict - one script saying undress, one script saying equip). Eventualy this is resolved so actor removes clothes and everything continues fine.

The undress animation loops because it's a looping animation. There is nothing else to it. If you have undress animation enabled then the strip functions tell the actor the play the undress animation, they will continue playing it until they are given a new animation to play. The only thing that has changed is that I've moved the stripping further up in the actor preparation function so it plays sooner in the process, this was done completely intentionally as I also removed the short delay between stripping each item and didn't want this to result in the character only playing a fraction of the animation before quickly jumping into their sex animation.

 

I know i cant have everything the way i want but please reconsider using standby phases for preparation and some equip strapon or idle animations while waiting for both actors to be ready for next scene. I explained more here http://www.loverslab.com/topic/18708-sexlab-framework-development-beta-1-release-available-04032014/?p=734192.

 

SexLab has since the very first release used "stand by phases" as you call them. It just doesn't make as much of a difference as you think, and is actually infact the very reason for occasional delays or humping air.

 

  • A mod tells SexLab to start an animation with Actor A and B
  • SexLab searches the animation thread pool for an unlocked thread
  • SexLab locks the chosen thread then Actor A and B are inserted into that thread, along with any other settings the modder may have passed to SexLab with the purposes of customizing the scene. 
  • After everything is setup how the modder wants, the "StartThread" signal is sent and the thread goes into a Prepare Phase
    • Actor A and B strip, lock movement, and gather any other information they might need for the upcoming animation.
    • Once an actor finishes their preparation, they enter an individual Ready Phase - this phase effectively serves no purpose other than for an actor to say "all done"
    • SexLab's animation thread waits for both actors to be in the Ready Phase before continuing
  • This is effectively your "Stand By Phase" - SexLab enters the Advancing Phase
    • IF the stage it is advancing to doesn't exists, and it is currently in foreplay mode
      • Set stage to 1
      • Apply full stripping to actors
      • Switch animation sets to the non foreplay selection
    • IF the stage it is advancing to doesn't exists and is is NOT currently in foreplay, break operation now and enter the Reset Phase
      • ​Tells actors to re-equip, removes strapon from inventory, unlock their movement, and stop animating 
      • Tells actors to update their stats in relation to whatever thread has done up to this point
      • Thread clears all it's variables and re-enters the selection pool for new scenes to start it
    • Advancing phase checks the stage the animation is on
    • Tells the actors to equip a strapon if they need one
    • Tells the actors to apply an SOS bend if they have one
    • Tells the actors to figure out how long they should be waiting between each moan
  • Once all actors have finished the advancing phase stuff, SexLab enters the Animating Phase
    • Thread decides what animation events it should be sending actors
    • Thread tells the actors to update their locations and move if they are not within 0.8 of their expected location
    • ​Thread sends the animation event to each actor so they start playing the stages animation
      • ​Due to script lag and the nature of Papyrus there is NO way to make this happen perfectly at the same time - which between the move and animation event playing on actor, results in the animation not being synced or an actor momentarily humping the air while the other actor catches up.
    • ​Thread decides at what time it should stop the stage
    • Thread enters update loop
    • Update loop checks if the stage should be over yet or not
      • ​NO - perform update loop again
      • YES - increase stage by 1 and enter Advancing Phase

  

 

 

Posted

 

Beta 1 works mostly fine for me.

 

I'm still having a long delay before the scene starts ONLY when the player is involved. When a scene is triggered, the camera switches to 3rd person, then the player stands around doing nothing for about 5-6 seconds before he starts undressing. NPC partners start undressing immediately and are long done when the player is ready, sometimes repeating their undress animation. Then the scene plays normally. NPC-NPC scenes start without delay.

 

This also holds for solo animations. NPCs start instantly, Player waits a couple of seconds before doing anything. However, threads started through Matchmaker no longer time out now.

 

 

I have the exactly same situation here.

 

 

See underlined of download post notes:

 

 

 

EVEN MORE IMPORTANT NOTES: As this is an alpha/beta release, intended solely to get some feedback on issues that are a direct result of these changes. It is paramount that you report any issues specific to the alpha/beta that you have, with as much detail as possible. Meaning debug logs, description of the issue, what mod did you use to initiate the animation, if it's a new or existing save game, if you had previous version of sexlab installed on the save. This release has a debug dev mode forced on, which will cause any errors and various other notices to the console for quick reference without having to look at the debug log. Final release of the mod will have this console spam disabled and toggleable from the menu.

 

 

 

And to add to that, the debug spells you should have automatically added while running the beta will print out your games current estimated script latency, use that spell before starting an animation and report back what it gives you for currently script latency. If using ENB try both with and without ENB effects enabled, checking script latency before each attempt.

 

 

My "testing environment" is as usual: fresh SexLab install on a save that has never seen any SexLab stuff before, using Matchmaker to start animations, no other SexLab plugin active. Non-default settings are: Auto stage advancement off, undress animations, orgasm effects, even actors height.

 

I'm using a personal light-weight ENB configuration, used the debug spell five times with ENB effects on and five times with effects off. No significant differences, measured script latency ranges from 65 to 95 ms, so average is in the 80's.

 

Log contains one PC-NPC scene (with delayed PC stripping) and one NPC-NPC scene which played normally. There's a lot of error messages at the end of the scenes. Messages from the second scene are partially buried in the flood of errors from the first scene's aftermath, so they are hard to find.

 

Posted

Tested on a new save. There was a little bit of jitter while the actors were readying for sex, which was a bit odd but I think that is expected. No slowdown or anything else suspicious that I noticed. Creature animation is indeed borked. It worked with a troll I spawned, as the logs indicated that is what it was trying to play, but with other animals it consisted of undressing for the whole sex act while the animal stood there. Interestingly, at least to me, the camera shake finish effect still occurred at the end.

Load order:

 

00 Skyrim.esm
01 Update.esm
02 Unofficial Skyrim Patch.esp [Version 2.0.3]
03 Dawnguard.esm
04 Unofficial Dawnguard Patch.esp [Version 2.0.3]
05 HearthFires.esm
06 Unofficial Hearthfire Patch.esp [Version 2.0.3]
07 Dragonborn.esm
08 Unofficial Dragonborn Patch.esp [Version 2.0.3]
09 Schlongs of Skyrim - Core.esm
0A SexLab.esm [Version 1.40]
0B Better Dynamic Snow.esp
0C Further Dark Dungeons for ENB.esp
0D Auto Unequip Ammo.esp
0E SexLabMatchMaker.esp [Version 5]
0F RaceMenu.esp
10 RaceMenuPlugin.esp
11 RaceMenuOverlays.esp
12 SkyUI.esp
13 ImmersiveFP.esp
14 Schlongs of Skyrim.esp
15 SOS - B3lisario UNP Addon.esp
16 SOS - VectorPlexus Muscular Addon.esp
17 SOS - VectorPlexus Regular Addon.esp
18 SOS - Smurf Average Addon.esp
19 SOS - Dawnguard Armors.esp
1A Tamriel Reloaded.esp
1B Mighty beasts.esp
1C Beards+Brows.esp
1D TheEyesOfBeauty.esp [Version 9]
1E The Eyes Of Beauty - Elves Edition.esp
1F Alternate Start - Live Another Life.esp [Version 2.3.6]
20 dD - Realistic Ragdoll Force - Reduced.esp
21 ethereal_elven_overhaul.esp
22 SOSRaceMenu.esp

 

log: https://dl.dropboxusercontent.com/u/75573263/Papyrus.0.log

Posted

Due to script lag and the nature of Papyrus there is NO way to make this happen perfectly at the same time - which between the move and animation event playing on actor, results in the animation not being synced or an actor momentarily humping the air while the other actor catches up.

Native functions! You already have two SKSE plugin dependencies, might as well use another for specialized purposes.

 

You could prep the data into arrays and call a native function that iterates over all the participants calling the native equivalents. This would fix the synchronization issue caused by script latency.

Posted

Here's a hotfix patch for Beta 1

  • Creatures should be fixed - I say should because I haven't tested the fix, but the fix was something very obvious so I'm fairly confident it is indeed fixed.
  • It also contains some more major changes to the startup process that may help the people complaining about slow startup of animations - or make them worse, I won't know until somebody tries it and reports back. I think they are noticeably faster, but I never thought it was that slow to begin with.
  • Couple other general optimizations

 

SexLab_v145_Beta_HOTFIX.zip

 

Requires an already installed v1.45 beta 1, available here: http://www.loverslab.com/topic/18708-sexlab-framework-development-beta-1-release-available-04032014/page-55?do=findComment&comment=702817

 

You may need to do a system rebuild from the MCM after applying this patch

Posted

 

Due to script lag and the nature of Papyrus there is NO way to make this happen perfectly at the same time - which between the move and animation event playing on actor, results in the animation not being synced or an actor momentarily humping the air while the other actor catches up.

Native functions! You already have two SKSE plugin dependencies, might as well use another for specialized purposes.

 

You could prep the data into arrays and call a native function that iterates over all the participants calling the native equivalents. This would fix the synchronization issue caused by script latency.

 

 

 

I'm no C programmer, so somebody else would have to step up to the plate to make some SKSE specialized native functions.

 

And if http://www.creationkit.com/Threading_Notes_(Papyrus) is to be believed, native functions are still subject to threading. Though I'm guessing a plugin binding the needed functions onto the specific scripts that use them might alleviate that.

Posted

Tried it again with the 1.45 hotfix, first continuing from a save made with 1.45, then on another fresh SL install including the hotfix, this time left all settings at default.

 

Only NPCs - everything runs perfectly. Player involved - according to the logs, player gets slotted after thread times out, nothing happens at all. At least the errors are gone.

 

Logs - 145 hotfix.7z

 

Have to go now, I won't be able to do any further testing until Monday.

Posted

That was colorful post so ill be blue :D

As i said you are expert here so you are free to ignore this but im gonna make few simple blue suggestions that i believe are possible.

 

 


The undress animation loops because it's a looping animation. There is nothing else to it. If you have undress animation enabled then the strip functions tell the actor the play the undress animation, they will continue playing it until they are given a new animation to play (idle animation to stop undressing if its undressed). The only thing that has changed is that I've moved the stripping further up in the actor preparation function so it plays sooner in the process, this was done completely intentionally as I also removed the short delay between stripping each item and didn't want this to result in the character only playing a fraction of the animation before quickly jumping into their sex animation.

 

SexLab has since the very first release used "stand by phases" as you call them. It just doesn't make as much of a difference as you think, and is actually infact the very reason for occasional delays or humping air.

 

Quoting myself here: "Actualy i think stand by phases already exist as well but they are handled in a way that you do not even see what happens (there is no animation) its simple equip strapon and continue to next animation in a matter of second or 2."

 

  • A mod tells SexLab to start an animation with Actor A and B
  • SexLab searches the animation thread pool for an unlocked thread
  • SexLab locks the chosen thread then Actor A and B are inserted into that thread, along with any other settings the modder may have passed to SexLab with the purposes of customizing the scene. 
  • After everything is setup how the modder wants, the "StartThread" signal is sent and the thread goes into a Prepare Phase
    • Actor A and B strip (here undress animation already exists if enabled), lock movement, and gather any other information they might need for the upcoming animation.
    • Once an actor finishes their preparation, they enter an individual Ready Phase - this phase effectively serves no purpose other than for an actor to say "all done"
    • SexLab's animation thread waits for both actors to be in the Ready Phase before continuing
  • This is effectively your "Stand By Phase" - SexLab enters the Advancing Phase
    • IF the stage it is advancing to doesn't exists, and it is currently in foreplay mode
      • Set stage to 1
      • Apply full stripping to actors (play undress animation here if enabled)
      • Switch animation sets to the non foreplay selection
    • IF the stage it is advancing to doesn't exists and is is NOT currently in foreplay, break operation now and enter the Reset Phase
      • ​Tells actors to re-equip, removes strapon from inventory (play undress animation here if enabled), unlock their movement, and stop animating 
      • Tells actors to update their stats in relation to whatever thread has done up to this point
      • Thread clears all it's variables and re-enters the selection pool for new scenes to start it
    • Advancing phase checks the stage the animation is on
    • Tells the actors to equip a strapon if they need one (play undress animation here if enabled or idle/masturbation animation if they dont need one to avoid air humping)
    • Tells the actors to apply an SOS bend if they have one
    • Tells the actors to figure out how long they should be waiting between each moan
  • Once all actors have finished the advancing phase stuff, SexLab enters the Animating Phase
    • Thread decides what animation events it should be sending actors
    • Thread tells the actors to update their locations and move if they are not within 0.8 of their expected location
    • ​Thread sends the animation event to each actor so they start playing the stages animation
      • ​Due to script lag and the nature of Papyrus there is NO way to make this happen perfectly at the same time - which between the move and animation event playing on actor, results in the animation not being synced or an actor momentarily humping the air while the other actor catches up.
    • ​Thread decides at what time it should stop the stage
    • Thread enters update loop
    • Update loop checks if the stage should be over yet or not
      • ​NO - perform update loop again
      • YES - increase stage by 1 and enter Advancing Phase

  

 

 

Notice: from Stand By or Advancing Phase if you call for undress animation (or idle/masturbation) it will start Animating Phase but it will also return back when update loop says YES so everything works as usual but more things happen.
 

Posted

Just tried hotfix. Seems like i only bring bad news :D

Sexlab beta 1 with hotfix (loaded same save as for testing alphas and rebuilt it) , sexlab submit, foreplay and undressing enabled. camera shaking in the end enabled. female on female cum enabled. Girl on girl sex played.

 

It takes about 10 seconds to start sexlab. Actors strip fast and undress animation is only played once as it should. Problem is weapons are not unequipped (foreplay and regular both) even though in mcm settings for weapon it says it should unequip them. (by default settings). After final stage sex ends very fast and there is no camera shaking (orgasm) effect. Cum textures are applied. Had a bug happen once with end key where actors were done and equipped their armor but they continued to play sex animation and were stuck in it. my pc was released after pressing jump key (spacebar) other actor was released after initiating sex again.

 

Posted

Using SexLab 1.45 Beta 1 without the hotfix, the animations were like watching a movie.  Transitions were crisp yet fluid. The animations running without the hotfix were initiated by Dangerously Nude, Romance and Defeat.  When I first start the game with the hotfix, I forgot to run FNIS, exited game ran it -  it made a difference. This happened after running FNIS: hotfix animations transitions were like a blur (standing to the ground without really seeing it).  For both with and without the fix, animations are lined up, have a nice movement speed they are more natural.  With the hotfix:  went through Fort Dustad for Defeat/animation testing, lots of animations going on. All thread info was displayed in the console and matched what was going on at the time.  After escaping the bandits chased my charater into frostbite spiders, interesting the bandits lost.  No creature animations were called for in the console because my character died, although conditions should have called for Defeat knock down. I didn't run into creatures while running without the fix.   It appears that the nonfix 1.45 beta works better overall even when using the "O" hotkey to change animations. I'm still in game and will continue with the hotfix.  Later I'll go back to the non hotfix.

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