Jump to content

SexLab Framework Development


Recommended Posts

Posted

Hello Ashal,

 

I experienced in the past the following annoying situations:

Starting an act on a bed with a non sleeping beloved person.

Some other NPC came in and started too sleep in that bed. (Hmpf, so we moved out. Some people are really reckless and do not have any ... ah maybe (s)he was simply very very tired.)

 

I think this can be prevented by setting the faction owner of the used bed to the, for example, sexlabAnimationfaction at the start of animation

and removing it at end of the animation.

But: Before doing that get the old owning faction, store it, and at end of the Animation restore it. (Else other functionality will suffer. Some beds are in the Playerbedownership faction for example)

Also to consider: If the end Animation is never reached, by what ever reason, the bed will be unusable by NPC if not restored. So this situation also shall be catched. (Maybe on entering a cell scan the beds for ownership and restoring their orignial via storageUtil. Sounds slow now. Any other idea wellcomed)

 

best regards

 

 

Posted

So I installed the 1.6 hotfix 2 FULL and ran the install button on the top right.  The issue i'm having is while animations work (tested with match maker) when i go to sexlab in the MCM the only setting I have there is install even after I have done so.  I've tried reinstalling I've tried re-downloading I've even had it setup so that it was the only mod installed.  This wouldn't be too bad except I can't turn on creature functions without the other settings tab (to my knowledge)

Posted

Found a small problem in the latest version.

 

During a first install on a new game (only Live Another Life and SexLab (+ RaceMenu and XPMSE)) the install MCM page of SexLab works fine.

You click on the INSTALL and the install starts.

BUT:

 

The creature animations are skipped (because of course you cannot enable them before the install)

And the script stops the computation until you exit the MCM menu. After you close the MCM menu the computation proceeds.

 

[09/19/2015 - 02:52:00PM] SEXLAB - Animations[107] ZynDoublePenetration - Zyn Double Penetration
[09/19/2015 - 02:52:00PM] SEXLAB - RegisterSlots() Creature: Creatures not enabled, skipping registration. <<<<<< This is the point where the init of Sexlab stops until you exit.
[09/19/2015 - 02:52:48PM] SEXLAB - Thread[0] Setup - [sslthreadcontroller <SexLabThread14 (0406C638)>]
 
And of course you get a couple of papyrus errors (from SkyUI) because the interface is no more visible, while SexLab MCM tries to update it.
[09/19/2015 - 02:52:55PM] [sslConfigMenu <SexLabConfigurationMenu (04079840)>] ERROR: Cannot use SetTextOptionValueST outside a valid option state
[09/19/2015 - 02:52:55PM] [sslConfigMenu <SexLabConfigurationMenu (04079840)>] ERROR: Cannot use SetOptionFlagsST outside a valid option state
 
 
Posted

Another small problem.

 

Getting the valid Races for an animation takes forever.

And I don't find a function to get the RaceType (that is way more useful.)

 

Any advice from anyone to understand what are the race types from an animation (or for the full set of Creature animations registered in SexLab) ?

 

Posted

The creature animations are skipped (because of course you cannot enable them before the install

Working as intended. The point is to not install creature animations until the user explicitly says they want them. They install automatically once creature animations are enabled.

 

And the script stops the computation until you exit the MCM menu. After you close the MCM menu the computation proceeds.

Also working as intended. And you aren't meant to be able to install while the MCM is still open, it very intentionally pauses until the menu is closed, I suppose it could do with a message telling people to close the MCM though.

 

 

Getting the valid Races for an animation takes forever.

Races are stored as strings, and Race.GetRace() is a slow function. Nothing I can do about it, and the list of races shouldn't really be necessary anyway, as RaceTypes are meant to replace them.

 

And I don't find a function to get the RaceType (that is way more useful.)

 

RaceType is a property, it doesn't need a function. string RaceType = Animation.RaceType

 

Any advice from anyone to understand what are the race types from an animation (or for the full set of Creature animations registered in SexLab) ?

RaceTypes are basically just a key to a list of relevant races editor ids. In 1.59c creature animations had their races defined in a set of papyrus string arrays, but that made it difficult to modify and expand for other mods that wanted to add new valid races for an animation as it meant having to loop through all creature animations and add them individually or replace the race array on an animation with a new one (which would override other mods trying to add new valid races to the same animation)

Posted

 

And I don't find a function to get the RaceType (that is way more useful.)

 

RaceType is a property, it doesn't need a function. string RaceType = Animation.RaceType

 

Any advice from anyone to understand what are the race types from an animation (or for the full set of Creature animations registered in SexLab) ?

RaceTypes are basically just a key to a list of relevant races editor ids. In 1.59c creature animations had their races defined in a set of papyrus string arrays, but that made it difficult to modify and expand for other mods that wanted to add new valid races for an animation as it meant having to loop through all creature animations and add them individually or replace the race array on an animation with a new one (which would override other mods trying to add new valid races to the same animation)

 

 

Thanks for the answers @Ashal.

Posted

In ref to post # 3281 ( Scaling Question )

 

Scaling is definitely a PITA when it comes to various critter types.  To animate them, you need to match the game scaling for a specific critter type to the skeleton imported into Max.  If you don't do this ( or know to do this ) ahead of time, all of your alignments will be out of whack once in game as the engine shrinks or enlarges them to match whatever variant of critter you're facing off against.  The even actor height flag is also a consideration when the actors height difference is substantial.

 

The various types of Spiders, Chaurus, Flying Chaurus, Dogs and Wolves are most of them that I can think of off the top of my head that give me headaches to animate with. 

 

Some critters I've never been able to sucessfully modify the scale of a skeleton for animation purposes,  specifically: Dragons.  

 

"Seems like the obvious simple solution would be to just not scale creatures by default. Unfortunately however, the method SexLab uses to hold actors in place without the need for animators to animate with an offset involves attaching them to an invisible "vehicle" which seems forces Skyrim internally to reset an actors scale"

 

Maybe I'm not reading that correctly but if the animators keep the root node placed at 0,0,0 for all actors in the scene, then animate and align as usual, you shouldn't need to use any offsets afaik.  Maybe I've been doing it wrong lol

 

Posted

"Seems like the obvious simple solution would be to just not scale creatures by default. Unfortunately however, the method SexLab uses to hold actors in place without the need for animators to animate with an offset involves attaching them to an invisible "vehicle" which seems forces Skyrim internally to reset an actors scale"

 

Maybe I'm not reading that correctly but if the animators keep the root node placed at 0,0,0 for all actors in the scene, then animate and align as usual, you shouldn't need to use any offsets afaik.  Maybe I've been doing it wrong lol

 

Sorry I worded that poorly. What I mean to say is that the thing in SexLab that specifically allows for 0,0,0 animations, is also a thing that causes Skyrim's engine to forcefully reset the scale of an actor in some way to a different scale I don't know the source of.

Posted

 

Sorry, I didn't get a quote trackback, so I missed this.

 

I know it is somewhat fashionable on the internet to make complaints and then when someone responds to those complaints to respond back in a passive-aggressive manner saying "you misunderstood" or "I didn't mean it like that"... but I honestly didn't mean to be an asshole. I do sincerely apologize for causing offense.

This is me apologizing, because a smiley-face just won't cut it. Sorry for being rude, that wasn't what I intended.

 

Meh I've just been cranky lately due to some irl shit and perhaps I'm getting into arguments to let off some steam. Sorry from me as well CC :-/

 

Off topic but this is what I love about Lovers Lab, people here stop to think, apologize, and become friends again more often than they escalate trivia into a shit storm.

Posted

Off topic but this is what I love about Lovers Lab, people here stop to think, apologize, and become friends again more often than they escalate trivia into a shit storm.

 

 

A soft answer turneth away wrath: but grievous words stir up anger. And the tongue of the oral masters makes both women and men into sex-starved slaves.

 

Or... something like that, anyway. I'm sure that's the original translation, or close to it. ;)

Posted

Sorry to say that but is there any other way to download it just like before? I was using NMM from a long time and i really don't want to reinstall all skyrim and mods.

 

This is the wrong forum for this topic, but to answer your question, you can use NMM just fine.  Just uninstall the old and install the new given the caveats on the home page.

Posted

I have no idea if SL 1.6x will bring up new rules for animation-tags (or if there are any at all).

So l found in NSAP's scripts such a thing like one tag FFM, another MFF. This would make sense if the animation is really gender-specific, and in case 1 the male is really the 3rd person, in the other one the 1st - else it confuses a modder having to walk through all possible combinations - or you got really aweful sandwichs...

Assume you got two tags "AlignMF", "AlignFM" - used together it would give the information: It's a pair, it's a mixed pair, it can be played both ways. Add C for Creatures and X for 'M or F but no C', i.e.

Is it worth to think about - or is there already a solution ?

 

Posted
Hi Ashal
 
First I'm grateful for your great work and I love SexLab Framework very much.
I have been enjoying playing SexLab and making add-on mods.
Could I ask some questions about SexLab 1.60 API ?
 
 
1. The UnregisterAnimation function of sslAnimationSlots.psc
 
This function is to unregister a animation and empty a slot object.
But sslAnimationSlots property "Slotted" doesn't seems to be changed after unregisterAnimation.
 
I tried the following test script.
SexLabFramework SexLab = SexLabUtil.GetAPI()
sslAnimationSlots AnimSlots = SexLab.AnimSlots
If AnimSlots
	debug.trace("[before] AnimSlots.Slotted = " + AnimSlots.Slotted)
	If AnimSlots.UnregisterAnimation("SexLabMissionary")
		debug.trace("[after] AnimSlots.Slotted = " + AnimSlots.Slotted)
	endIf
endIf
[before] Slotted and [after] Slotted are the same numbers in the Papyrus log.
Is this right specification?
I want to use this function in my mod, but I worry that I can't get the correct count of the animations.
 
 
 
2. Cheking for finishing the SexLab1.60 manual install
 
I tried the following test script before SexLab1.60 manual install.
If SexLabUtil.SexLabIsActive()
	SexLabFramework SexLab = SexLabUtil.GetAPI()
	debug.trace("SexLab =" + SexLab)
	debug.trace("SexLab.Enabled = " + SexLab.Enabled)
	If !SexLabUtil.SexLabIsReady()
		debug.trace("SexLab is not ready")
	else
		debug.trace("SexLab is ready")
	endIf
endIf
<Papyrus log>
[09/23/2015 - 10:21:42AM] SexLab =[sexlabframework <SexLabQuestFramework (05000D62)>]
[09/23/2015 - 10:21:42AM] SexLab.Enabled = TRUE
[09/23/2015 - 10:21:42AM] SexLab is ready

If I'm not mistaken, it seems SexLab is "Enabled" and "IsReady" even if it doesn't finish install.

I think it needs checking "IsInstalled" property of sslSystemAlias for finishing install.
What else can I do to check it?
 
Sorry for my poor English, but thanks for readin.
Posted

Hey Ashal,

 

I was wondering/thinking, is there a better way to not break the current idle before sex scene starts?

 

For example, I am using mod that replaces sneaking idle with "on your four" one, don't remember mods name and SLAC.

Sneaking is configured as invite in SLAC, so before the animation starts there is ClearEffects() call that changes sneaking and AddPackageOverride with "DoNothing" package.

 

With both commented, ActorRef.StartSneaking() AddPackageOverride, the whole process runs smoother. And since there are mods like MariaEden that changes current idle, is there a way to remember/not change idle before sex scene and restore it at the end?

 

Kudos on your great work!

Posted

Hey Ashal,

 

I was wondering/thinking, is there a better way to not break the current idle before sex scene starts?

 

For example, I am using mod that replaces sneaking idle with "on your four" one, don't remember mods name and SLAC.

Sneaking is configured as invite in SLAC, so before the animation starts there is ClearEffects() call that changes sneaking and AddPackageOverride with "DoNothing" package.

 

With both commented, ActorRef.StartSneaking() AddPackageOverride, the whole process runs smoother. And since there are mods like MariaEden that changes current idle, is there a way to remember/not change idle before sex scene and restore it at the end?

 

Kudos on your great work!

 

There are no APIs to understand the current idle for an actor.

Not from the vanilla Papyrus not from SKSE.

 

@b3lisario did something to track events from animations, but this will require the mods adding the idles (and the vanilla ones are a pain to change) to send events to track the current idle.

 

So too much work for a little benefit.

Posted

Sounds easy,

 

if we can't understand them, what about to not to brake them.

 

Just an idea.

 

What do you mean for "not breaking them"?

 

When you start an animation, you send an Animation Event to the Actor.

Whatever other animation was playing (idle or animation event) is removed instantly.

 

If for "non breaking" you mean: wait the previous animation to end, then my previous post is the answer. There is no way (yet) to do it.

Posted

Yes, there is.

 

As I wrote above, do not cancel sneaking and do not add "donot" packages, and it works for that case.

 

In general, looks that there is no API ;)

 

Thanks for the answer!

Posted

The "DoNothing" package is used to stop the actors.

And as soon the actual first stage is played (or the undress animation is played) the previous idle will break no matter what.

 

At this point only @Ashal can add something, if he wants.

Posted

The "DoNothing" package is used to stop the actors.

And as soon the actual first stage is played (or the undress animation is played) the previous idle will break no matter what.

 

 

I do not think that this is true.

 

I have tested it in scenario i've described in my first post and everything goes smooth with no animations break and when animation end the pc is returned to sneaking/"on all four" idle, ready for the next round.

 

Also, i think that there is visible decrease in lag time before the actual animation starts, I guess those package overrides are time consuming.

Posted

 

The "DoNothing" package is used to stop the actors.

And as soon the actual first stage is played (or the undress animation is played) the previous idle will break no matter what.

 

 

I do not think that this is true.

 

I have tested it in scenario i've described in my first post and everything goes smooth with no animations break and when animation end the pc is returned to sneaking/"on all four" idle, ready for the next round.

 

Also, i think that there is visible decrease in lag time before the actual animation starts, I guess those package overrides are time consuming.

 

Trust me, the package override is required.  It may not be in your testing, but put it out in the wild and you have your NPC doing stuff you did not expect.

Posted

Oddball thought:

 

The " even actors height " flag.   Is it possible to have it do a race check to auto-disable it during creature encounters ?   I'm no scripter / programmer by any sense of the word, but I would guess an if statement thrown in there to check both actors during scene setup should be fairly straightforward method to determine if it should trigger or not.  If a critter is involved, disable the function for the scene. 

 

 

While the humanoid sizes vary slightly,  humanoid on creature sizes can vary immensely.  Examples being bear, trolls, foxes, etc.

When the eah flag is set, the script will modify the sizes of the actors which can throw off animation alignments quite a bit if one actor is much bigger or smaller than the other. 

 

 

Just tell me to stfu if I'm not thinking clearly lol

 

 

 

 

Posted

Oddball thought:

 

The " even actors height " flag.   Is it possible to have it do a race check to auto-disable it during creature encounters ?   I'm no scripter / programmer by any sense of the word, but I would guess an if statement thrown in there to check both actors during scene setup should be fairly straightforward method to determine if it should trigger or not.  If a critter is involved, disable the function for the scene. 

 

 

While the humanoid sizes vary slightly,  humanoid on creature sizes can vary immensely.  Examples being bear, trolls, foxes, etc.

When the eah flag is set, the script will modify the sizes of the actors which can throw off animation alignments quite a bit if one actor is much bigger or smaller than the other. 

 

 

Just tell me to stfu if I'm not thinking clearly lol

 

Actually this can be a good solution to improve creatures animations while played together (same game play) with human animationsAnd can be done in two ways:

1) The mod that is calling the SL animation, knows is there is a creature or not. Then through a single line of code (three actually) the previous value can be saved, then the EAH can be disabled, and at the end of the anim restored with the original value. This does not require to alter SexLab.

2) [better in my opinion] SexLab knows if a critter is involved, and can simply disable the EAH function (or maybe @Ashal can split the EAH in "Even Humans Heights" and "Even Creatures Height".

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