Jump to content

SexLab Framework Development


Recommended Posts

Yes, there is the Immersive First Person  mod. I seriously doubt it is a piece of cake to integrate something like this in SexLab. Besides, it would be totally redudant, as that mod already does that. The only things something like this in SexLab would do are" Incompatibility with IFP, more bugs, less mental capacity for primary SexLab goal...you get the Picture. Of course, I am not Ashal, but it would contradict everything I know about him (from these forums), would he choose to do something like that. IFP even does have a SexLab profile, so why reinventing a Wheel?

 

 

 

Would it be possible to add a camera panning up/down for non-tfc mode? I'm currently using a mod that does it but thought it could be something to integrate into SL. Reason being the camera is often too high when theres action on the ground, just being able to pan the camera down a bit helps a lot. You can ofc use free camera but in the past it had some problems with sos iirc so I tend to avoid it.


If you don't enable the free camera then you are stuck with the default game camera which cannot be changed. That is why there is a free camera option in the first place.

 

 

Actually, as I did write, I am already using a mod which does exactly that (http://www.loverslab.com/topic/46036-regarding-sexlab-and-cameras/?p=1151365 ) so i don't quite get why you say "it cannot be changed". I thought it would be rather easy to include something similar and seemingly minor to SL itself. Well, guess I'll just keep using the mod which does the impossible then! ;)

 

 

Link to comment

 

Yes, there is the Immersive First Person  mod. I seriously doubt it is a piece of cake to integrate something like this in SexLab. Besides, it would be totally redudant, as that mod already does that. The only things something like this in SexLab would do are" Incompatibility with IFP, more bugs, less mental capacity for primary SexLab goal...you get the Picture. Of course, I am not Ashal, but it would contradict everything I know about him (from these forums), would he choose to do something like that. IFP even does have a SexLab profile, so why reinventing a Wheel?

 

 

 

 

 

 

Would it be possible to add a camera panning up/down for non-tfc mode? I'm currently using a mod that does it but thought it could be something to integrate into SL. Reason being the camera is often too high when theres action on the ground, just being able to pan the camera down a bit helps a lot. You can ofc use free camera but in the past it had some problems with sos iirc so I tend to avoid it.

If you don't enable the free camera then you are stuck with the default game camera which cannot be changed. That is why there is a free camera option in the first place.

 

 

Actually, as I did write, I am already using a mod which does exactly that (http://www.loverslab.com/topic/46036-regarding-sexlab-and-cameras/?p=1151365 ) so i don't quite get why you say "it cannot be changed". I thought it would be rather easy to include something similar and seemingly minor to SL itself. Well, guess I'll just keep using the mod which does the impossible then! ;)

 

 

 

 

This had nothing to do with first person camera or with Immersive First Person. It was about having camera offset on y-axis behind a button for third person camera. But as the mod behind the link works just fine, I can cope with that.

Link to comment

Woohoo we're getting there, The strip item editor now works for me :P

 

The only 2 outstanding issues I have now are

 

1) creature animations other than dog/wolf/horse not firing "failed to find valid animations" <----Is this even caused by SexLab or an issue with MNC?

2) The 'visible arousal' In Creature Framework rc10 no longer works, But worked fine with SL 1.59c. (It does work if I target the creature and press N) It's just not firing automatically for some reason.

 

So it appears all of my issues are MNC related, Everything else in 1.6b2b seems to be working fine. :cool:

By my understanding, there are now creature animations included in SexLab if you downloaded the optional creature module.  The fact that SexLab isn't finding those animations shows that there's likely a problem with either SexLab or SexLab's creature component.  I'm having the problem too.  I haven't tried all creatures, but I know, on top of the ones you listed, trolls, skeevers, bears, werewolves, werebears, reiklings, horses, and lurkers work and I know Vampire Lords, giants, draugr, gargoyles, spiders, ashmen, falmer, and sabre cats do not, at least not for me.  This happens regardless of whether I start the animation through Matchmaker, Defeat, or Hentai Creatures.

Link to comment

Would it be possible to add a camera panning up/down for non-tfc mode? I'm currently using a mod that does it but thought it could be something to integrate into SL. Reason being the camera is often too high when theres action on the ground, just being able to pan the camera down a bit helps a lot. You can ofc use free camera but in the past it had some problems with sos iirc so I tend to avoid it.

 

Whats the camera mod Because I had troubles before too.

 

Link to comment

Found a minor bug present in 1.60 Beta 2b: Animations that aren't enabled for Foreplay by default will not export their foreplay toggle to SexlabConfig.json when exporting.

 

For example, toggle Zyn Missionary as a foreplay animation, then export the config. The JSON file will have "ZynMissionary,1,0,0" even though it should have "ZynMissionary,1,1,0".

Oddly enough, if you take a foreplay-default animation like Arrok Boobjob and disable the foreplay toggle, the exported JSON does reflect that change correctly. Seems it's only when you toggle anims that aren't usually foreplay that they don't get exported as expected.

 

 

This bug is an oldie, by the way. I initially uncovered it in 1.59c before testing with the latest beta, so it's not something that broke during 1.60 development, bug was already there.

Link to comment

I noticed that "Animation start/end sequences in place of ragdolling and instantly standing up" has been removed from dev list.  Is is possible to just add a flag to prevent Debug.SendAnimationEvent( theActor, "IdleForceDefaultState") from being called?

 

This would make it a lot easier on those of us trying to make the sex scenes more realistic.

Link to comment

I noticed that "Animation start/end sequences in place of ragdolling and instantly standing up" has been removed from dev list.  Is is possible to just add a flag to prevent Debug.SendAnimationEvent( theActor, "IdleForceDefaultState") from being called?

 

This would make it a lot easier on those of us trying to make the sex scenes more realistic.

 

The ragdoll option serves that purpose to an extent, though it has it's own set of problems. The only other option would be the actors stuck looping the animations forever. The animation has to be stopped somehow, either by ragdolling or by having the animation replaced by a non-looping one, if not actors would hover around forever looping their last sex animation as they went about their day.  The start/end sequence animation were intended to be a happy middle ground between the two, but ended up being much to work to implement cleanly, for both myself and any animators.

Link to comment

 

I noticed that "Animation start/end sequences in place of ragdolling and instantly standing up" has been removed from dev list.  Is is possible to just add a flag to prevent Debug.SendAnimationEvent( theActor, "IdleForceDefaultState") from being called?

 

This would make it a lot easier on those of us trying to make the sex scenes more realistic.

 

The ragdoll option serves that purpose to an extent, though it has it's own set of problems. The only other option would be the actors stuck looping the animations forever. The animation has to be stopped somehow, either by ragdolling or by having the animation replaced by a non-looping one, if not actors would hover around forever looping their last sex animation as they went about their day.  The start/end sequence animation were intended to be a happy middle ground between the two, but ended up being much to work to implement cleanly, for both myself and any animators.

 

 

How about letting us then pass in the the animation that ends the sex scene as part of the actor record.  For example, there is currently a

   Model.SetStrip(thePlayer, stripCloths)

How about a:

   Model.SetAnimationEnd(thePlayer, endAnimation)

Then,

function StopAnimating(bool Quick = false, String endingAnimation="IdleForceDefaultState")
    if !ActorRef
        return
    endIf
    ; Disable free camera, if in it
    if IsPlayer && Game.GetCameraState() == 3
        Config.ToggleFreeCamera()
    endIf
    if IsCreature
        ; Reset creature idle
        Debug.SendAnimationEvent(ActorRef, "Reset")
        Debug.SendAnimationEvent(ActorRef, "ReturnToDefault")
        Debug.SendAnimationEvent(ActorRef, "FNISDefault")
        Debug.SendAnimationEvent(ActorRef, "IdleReturnToDefault")
        Debug.SendAnimationEvent(ActorRef, "ForceFurnExit")
        ActorRef.Moveto(ActorRef)
        ActorRef.PushActorAway(ActorRef, 0.75)
    else
        ; Reset NPC/PC Idle Quickly
        Debug.SendAnimationEvent(ActorRef, endingAnimation)
        ; Ragdoll NPC/PC if enabled and not in TFC
        if !Quick && DoRagdoll && (!IsPlayer || (IsPlayer && Game.GetCameraState() != 3))
            ActorRef.Moveto(ActorRef)
            ActorRef.PushActorAway(ActorRef, 0.1)
        endIf
    endIf
endFunction

It would then be up to the mod author to call SendAnimationEvent("IdleForceDefaultState") when they are ready.

 

If you want, you can make this an undocumented function and I will test the hell out of it.

 

 

 

 

 

Link to comment

 

 

I noticed that "Animation start/end sequences in place of ragdolling and instantly standing up" has been removed from dev list.  Is is possible to just add a flag to prevent Debug.SendAnimationEvent( theActor, "IdleForceDefaultState") from being called?

 

This would make it a lot easier on those of us trying to make the sex scenes more realistic.

 

The ragdoll option serves that purpose to an extent, though it has it's own set of problems. The only other option would be the actors stuck looping the animations forever. The animation has to be stopped somehow, either by ragdolling or by having the animation replaced by a non-looping one, if not actors would hover around forever looping their last sex animation as they went about their day.  The start/end sequence animation were intended to be a happy middle ground between the two, but ended up being much to work to implement cleanly, for both myself and any animators.

 

 

How about letting us then pass in the the animation that ends the sex scene as part of the actor record.  For example, there is currently a

 

It would then be up to the mod author to call SendAnimationEvent("IdleForceDefaultState") when they are ready.

 

If you want, you can make this an undocumented function and I will test the hell out of it.

 

 

 

Oh sorry, you mean as a modder function, I thought you meant as a user option to toggle in the MCM.

 

A modder function for setting an end event I'm fine with adding, it stops being SexLab's responsibility to stop the actor's animation at that point. I'll add a model function for both start & end animevents.

Link to comment

 

 

How about letting us then pass in the the animation that ends the sex scene as part of the actor record.  For example, there is currently a

   Model.SetStrip(thePlayer, stripCloths)

How about a:

   Model.SetAnimationEnd(thePlayer, endAnimation)

It would then be up to the mod author to call SendAnimationEvent("IdleForceDefaultState") when they are ready.

 

If you want, you can make this an undocumented function and I will test the hell out of it.

 

 

 

Oh sorry, you mean as a modder function, I thought you meant as a user option to toggle in the MCM.

 

A modder function for setting an end event I'm fine with adding, it stops being SexLab's responsibility to stop the actor's animation at that point. I'll add a model function for both start & end animevents.

 

 

I really like this API extension. Right now with this version of SexLab about all the sex scenes for my main mod play in a broken way because of the animation resetting.

 

Thank you for the proposal, and thank you @Ashal for doing it.

 

Link to comment

 

ok i have a problem ._. i have scholongs but since i install 1.60 2b all the females characters have scholings ._. wtf i try to reinstall and nothing u.u

 

 

If you have unp SOS "ADD_ON" check the distribution in the SOS MCM menu.

 

If equiptable check stap on in sex lab.  

 

I just downloaded v.60 BETA 2b, so I will install then come back with more information.

 

 

thanks bro it works :D thanks a lot, si really weird take the armor of bandit female and see a penis, and me is like wtf ._., but now when i get lesbian action one of the them dont undress, just fuck with clothes ._. or both, any ideas?

Link to comment

I don't know if this is intentional - but sslThreadLibrary::CheckActor does not work with creatures

return (CheckGender != 2 && IsGender != 2 && (CheckGender == -1 || IsGender == CheckGender) && ActorLib.IsValidActor(CheckRef))

If IsGender is 2 (Creature) and CheckGender is 2 or -1 this function returns always false

 

Correct is

return (CheckGender == -1 || IsGender == CheckGender) && ActorLib.IsValidActor(CheckRef) 

That's why FindAvailableActor() never find a creature

Link to comment

And an issue is that FindAvailableActor() does not check SleepState - that could lead to problems.
And another issue is that FindAvailableActor() could find wounded actors - that definitely leads to problems.
 
My proposal:

 

 

bool function IsActorWounded(Actor act) Global
   ;Package curActorPackage = act.GetCurrentPackage()
   ; CWFortSoldierWoundedPackage = 0xfd82c
   ;return curActorPackage == none || curActorPackage.GetFormID() != 0xfd82c
   ; package seems to be problematic - check for bandages
   ; ClothesArmBandages == 0x4f006 , ClothesHeadBandages == 0x4f000
   return act.IsEquipped(Game.GetForm(0x4f006)) || act.IsEquipped(Game.GetForm(0x4f000))
endfunction

Actor function FindAvailableActor(ObjectReference CenterRef, float Radius = 5000.0, int FindGender = -1, Actor IgnoreRef1 = none, Actor IgnoreRef2 = none, Actor IgnoreRef3 = none, Actor IgnoreRef4 = none, keyword excludeKeyword = none, Faction excludeFaction = none) global
    if CenterRef == none || FindGender > 2 || FindGender < -1 || Radius < 0.1
        return none ; Invalid args
    endIf
    sslThreadLibrary ThreadLib = SexLabUtil.GetAPI().ThreadLib
    ; Create suppression list
    form[] Suppressed = new form[25]
    Suppressed[24] = CenterRef
    Suppressed[23] = IgnoreRef1
    Suppressed[22] = IgnoreRef2
    Suppressed[21] = IgnoreRef3
    Suppressed[20] = IgnoreRef4
    ; Attempt 20 times before giving up.
    int i = 20
    while i
        i -= 1
        Actor FoundRef = Game.FindRandomActorFromRef(CenterRef, Radius)
        if FoundRef == none || (Suppressed.Find(FoundRef) == -1 && ThreadLib.CheckActor(FoundRef, FindGender) && !IsActorWounded(FoundRef) && FoundRef.GetSleepState() == 0 && (excludeKeyword == none || !FoundRef.HasKeyword(excludeKeyword)) && (excludeFaction == none || !FoundRef.IsInFaction(excludeFaction)))   
            return FoundRef ; None means no actor in radius, give up now
        endIf
        Suppressed[i] = FoundRef
    endWhile
    ; No actor found in attempts
    return none
endFunction 

 

 

Link to comment

 

 

ok i have a problem ._. i have scholongs but since i install 1.60 2b all the females characters have scholings ._. wtf i try to reinstall and nothing u.u

 

 

If you have unp SOS "ADD_ON" check the distribution in the SOS MCM menu.

 

If equiptable check stap on in sex lab.  

 

I just downloaded v.60 BETA 2b, so I will install then come back with more information.

 

 

thanks bro it works :D thanks a lot, si really weird take the armor of bandit female and see a penis, and me is like wtf ._., but now when i get lesbian action one of the them dont undress, just fuck with clothes ._. or both, any ideas?

 

Did you check the sexlab MCM?

one of the problems might be the slots options.

just check them and post what they say.

 

 

Link to comment

 

The new update fixed a lot of problems, but introduced a new one.

 

In the previous versions, I had a problem where mouths would get stuck open like the characters were about to swallow a rabbit whole, and I had to use mfg reset to close them. In the new version, SexLab constantly updates the expression, forcing the mouths open.

 

Furthermore, it happens with all animations and all stages -- as if "openmouth = true" were active for all stages. Having expressions disabled does nothing.

 

This is a major issue, it takes me out of the game. It's like all of the characters have a severe jaw disorder.

 

Does anyone know what might cause this?

Should I post screenshots or a log? Or is the problem clear?

 

Yeah, I have same problem. :(

Plus, after sex scenes female npc's are "stucked" in place (walking, runing), any ideas how to fix that without "resurrect"  console command ?

 

Same here, i think that is supposed to happen, its a 2011 game what would you expect?

Link to comment

So you were referring to the attached file, not the hyperlink in the post. Well, sorry for responding to what seems not to be the question at all. :blush:

 

 

 

 

This had nothing to do with first person camera or with Immersive First Person. It was about having camera offset on y-axis behind a button for third person camera. But as the mod behind the link works just fine, I can cope with that.

 

 

Link to comment

Hello

 

I am using 1.6 Alpha 3.

 

I for some reason cant make use of the "Strip Item Editor" to set which armor should remain dressed. I cant click on the items. I only have "- - -" and nothing is clickable or changeble.

 

Any ideas what I am doing wrong?

Link to comment

I don't know if this is intentional - but sslThreadLibrary::CheckActor does not work with creatures

return (CheckGender != 2 && IsGender != 2 && (CheckGender == -1 || IsGender == CheckGender) && ActorLib.IsValidActor(CheckRef))

If IsGender is 2 (Creature) and CheckGender is 2 or -1 this function returns always false

 

 

Than it's working as intended. -1 means any gender, but it purposefully doesn't allow creatures in that "any." If a modder wants creatures, they KNOW they want creatures, so they'd purposefully set CheckGender to 2. While people who just want humanoid NPC's and don't care if they are male or female, can set it to -1 and safely assume they didn't get a creature back.

 

Since you've made me look at it though, it does look like it needs to be updated to work with the new creature genders option, which makes female creatures gender return as 3 instead of 2.

Link to comment

And an issue is that FindAvailableActor() does not check SleepState - that could lead to problems.

And another issue is that FindAvailableActor() could find wounded actors - that definitely leads to problems.

 

My proposal:

 

 

bool function IsActorWounded(Actor act) Global
   ;Package curActorPackage = act.GetCurrentPackage()
   ; CWFortSoldierWoundedPackage = 0xfd82c
   ;return curActorPackage == none || curActorPackage.GetFormID() != 0xfd82c
   ; package seems to be problematic - check for bandages
   ; ClothesArmBandages == 0x4f006 , ClothesHeadBandages == 0x4f000
   return act.IsEquipped(Game.GetForm(0x4f006)) || act.IsEquipped(Game.GetForm(0x4f000))
endfunction

Actor function FindAvailableActor(ObjectReference CenterRef, float Radius = 5000.0, int FindGender = -1, Actor IgnoreRef1 = none, Actor IgnoreRef2 = none, Actor IgnoreRef3 = none, Actor IgnoreRef4 = none, keyword excludeKeyword = none, Faction excludeFaction = none) global
    if CenterRef == none || FindGender > 2 || FindGender < -1 || Radius < 0.1
        return none ; Invalid args
    endIf
    sslThreadLibrary ThreadLib = SexLabUtil.GetAPI().ThreadLib
    ; Create suppression list
    form[] Suppressed = new form[25]
    Suppressed[24] = CenterRef
    Suppressed[23] = IgnoreRef1
    Suppressed[22] = IgnoreRef2
    Suppressed[21] = IgnoreRef3
    Suppressed[20] = IgnoreRef4
    ; Attempt 20 times before giving up.
    int i = 20
    while i
        i -= 1
        Actor FoundRef = Game.FindRandomActorFromRef(CenterRef, Radius)
        if FoundRef == none || (Suppressed.Find(FoundRef) == -1 && ThreadLib.CheckActor(FoundRef, FindGender) && !IsActorWounded(FoundRef) && FoundRef.GetSleepState() == 0 && (excludeKeyword == none || !FoundRef.HasKeyword(excludeKeyword)) && (excludeFaction == none || !FoundRef.IsInFaction(excludeFaction)))   
            return FoundRef ; None means no actor in radius, give up now
        endIf
        Suppressed[i] = FoundRef
    endWhile
    ; No actor found in attempts
    return none
endFunction 

 

 

 

 

Sleeping hasn't been a problem as far as I know, I'd have to test it and if it is I'd prefer to just add some function into the animation setup process to wake an actor up, and if they were sleeping maybe have it default to using their bed as the animation center.

 

Wounded I'd have to double check as well, and if it as problematic as you say would probably be better placed as an additional check in the overall actor validation functions ValidateActor() / IsActorValid().

Link to comment

 

 

 

 

 

I noticed that "Animation start/end sequences in place of ragdolling and instantly standing up" has been removed from dev list.  Is is possible to just add a flag to prevent Debug.SendAnimationEvent( theActor, "IdleForceDefaultState") from being called?

 

This would make it a lot easier on those of us trying to make the sex scenes more realistic.

 

The ragdoll option serves that purpose to an extent, though it has it's own set of problems. The only other option would be the actors stuck looping the animations forever. The animation has to be stopped somehow, either by ragdolling or by having the animation replaced by a non-looping one, if not actors would hover around forever looping their last sex animation as they went about their day.  The start/end sequence animation were intended to be a happy middle ground between the two, but ended up being much to work to implement cleanly, for both myself and any animators.

 

 

How about letting us then pass in the the animation that ends the sex scene as part of the actor record.  For example, there is currently a

 

It would then be up to the mod author to call SendAnimationEvent("IdleForceDefaultState") when they are ready.

 

If you want, you can make this an undocumented function and I will test the hell out of it.

 

 

 

 

Oh sorry, you mean as a modder function, I thought you meant as a user option to toggle in the MCM.

 

A modder function for setting an end event I'm fine with adding, it stops being SexLab's responsibility to stop the actor's animation at that point. I'll add a model function for both start & end animevents.

 

 

Thank you very much.  That is perfect.

 

Link to comment

 

I don't know if this is intentional - but sslThreadLibrary::CheckActor does not work with creatures

return (CheckGender != 2 && IsGender != 2 && (CheckGender == -1 || IsGender == CheckGender) && ActorLib.IsValidActor(CheckRef))

If IsGender is 2 (Creature) and CheckGender is 2 or -1 this function returns always false

 

 

Than it's working as intended. -1 means any gender, but it purposefully doesn't allow creatures in that "any." If a modder wants creatures, they KNOW they want creatures, so they'd purposefully set CheckGender to 2. While people who just want humanoid NPC's and don't care if they are male or female, can set it to -1 and safely assume they didn't get a creature back.

 

Since you've made me look at it though, it does look like it needs to be updated to work with the new creature genders option, which makes female creatures gender return as 3 instead of 2.

 

Maybe I have a knot in my brain - but if CheckGender is 2 I get this condition:

 

(2 != 2 && IsGender != 2 && (2 == -1 || IsGender == 2) 

Translated:

(false && IsGender != 2 && (false || IsGender == 2)

 

Now lets check with IsGender == 2:

 

(2 != 2 && 2!= 2 && (2 == -1 || 2== 2)

Translated:

(false && false && (false || true)

 

How can this condition ever be true for Gender == 2? false && true is always false

Link to comment

 

 

I don't know if this is intentional - but sslThreadLibrary::CheckActor does not work with creatures

return (CheckGender != 2 && IsGender != 2 && (CheckGender == -1 || IsGender == CheckGender) && ActorLib.IsValidActor(CheckRef))

If IsGender is 2 (Creature) and CheckGender is 2 or -1 this function returns always false

 

 

Than it's working as intended. -1 means any gender, but it purposefully doesn't allow creatures in that "any." If a modder wants creatures, they KNOW they want creatures, so they'd purposefully set CheckGender to 2. While people who just want humanoid NPC's and don't care if they are male or female, can set it to -1 and safely assume they didn't get a creature back.

 

Since you've made me look at it though, it does look like it needs to be updated to work with the new creature genders option, which makes female creatures gender return as 3 instead of 2.

 

Maybe I have a knot in my brain - but if CheckGender is 2 I get this condition:

 

(2 != 2 && IsGender != 2 && (2 == -1 || IsGender == 2) 

Translated:

(false && IsGender != 2 && (false || IsGender == 2)

 

Now lets check with IsGender == 2:

 

(2 != 2 && 2!= 2 && (2 == -1 || 2== 2)

Translated:

(false && false && (false || true)

 

How can this condition ever be true for Gender == 2? false && true is always false

 

 

If "CheckGender" is equal to 2, then immediately the final value is "False".

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