Jump to content

SexLab Framework Development


Recommended Posts

 

It would be nice to have multiple cum effects that are chosen from randomly and can stack. Go to an orgy and come out covered :P

 

Also if it is just a performance issue, an mcm option or something for higher res cum would be cool.

I suspect that if someone were the take the time to make several cum textures to use that Ashal would be happy to implement them. Seriously, if you have the skill and you want this, put the skill to use. Ashal is not going to be able to do it all himself and I'm thinking that textures etc like this are outside his skill set.

 

(Not really trying to demand you personally do it, just wanting to put the challenge out there. I know we have people with the skills using this mod).

 

 

I do not currently have the applicable skills. no. I appreciate challenging consumers to become creators though, and I do hope to mod at some point... my first focus is just on achieving a stable system with all the mods I want and learning the ropes a little. I did download nifskope and blender and am reading their pages now, so maybe if no one else has done it in like a year.

 

And the multiple res cum thing was a separate feature request, although when the textures are available I am sure people with lower end machines would appreciate it.

Link to comment

Ok, as I posted my issue in the wrong section me seems and I just don't want to post all stuff here again, so here is link:

 

http://www.loverslab.com/topic/19455-cum-effect-not-visible-or-just-lasts-a-few-seconds/?p=454030

 

 

Two issues:

 

1) The cum effect seems to behave randomly. Sometimes it's there and visible, at another time I have to dress/redress the actor again to make the cum effect visibble

 

2) Although I selected the MCM option for strapons, my female actors in a male role do not equip them during an animation. Maybe the problem relies on the fact that I use certain slots like labia rings and a panty. The labia piercings I set to "not unequip" during an animation in the MCM, the panties I set to "unequip".

 

I experienced this issues after installing the new SexLab version (after uninstalling the old version by making a clean save after correctly cleaning it by MCM). I have to say, the old version works flawlessly concerning cum effect and strapon use.

Link to comment

Male PC use female and or Lesbian Animation

 

I really just want to know how to make my male pc use the first stage of the "arrok lesbian" animation/ How can I make this happen in game? I do have  minimum CK xp if I have to go that rout.

 

 

I do apologize for making an entire thread for this question, but im sure there are other's who make want to know this for a different gain than me. My Character this play through is not a boy lover, but wants to eat pussy standing up (mainly for a story piece im working on). But im sure there are some gamers that are doing a boy loving play through or futa and need to know the work around. I also want my female followers to rape men (which I pretty much got figured out) but that lesbian animation make them eat the pussy too) I did notice the update in sexlab 1.12 that allows this to happen but how can we use it and make it work?. 

 

 

 

BTW... SexLab is awesome

Link to comment

Male PC use female and or Lesbian Animation

 

I really just want to know how to make my male pc use the first stage of the "arrok lesbian" animation/ How can I make this happen in game? I do have  minimum CK xp if I have to go that rout.

 

 

I do apologize for making an entire thread for this question, but im sure there are other's who make want to know this for a different gain than me. My Character this play through is not a boy lover, but wants to eat pussy standing up (mainly for a story piece im working on). But im sure there are some gamers that are doing a boy loving play through or futa and need to know the work around. I also want my female followers to rape men (which I pretty much got figured out) but that lesbian animation make them eat the pussy too) I did notice the update in sexlab 1.12 that allows this to happen but how can we use it and make it work?. 

 

 

 

BTW... SexLab is awesome

 

This is 100% on the mods you're using for SexLab. It's up to them to select the right animations, and SexLab itself has the tools for filtering out the selection of the lesbian animations when used and in fact actively uses it itself when the mod in question doesn't select animations itself to use and leaves the animation selection up to SexLab.

 

But if they do pass animations to sexlab to use, sexlab will play them, it does not validate them beyond checking if they have enough actors to play the animations given, it's not SexLab's place to question what the modder wants; just to facilitate it.

Link to comment

New development build available

 

Changes:

  • Possible fix for recent CTD issues people have had with v1.12
  • I've split up the preparing state into different states for each actor for several reasons
    • Lets all actors prepare + strip at the same time instead of taking turns as with previous versions
    • Greatly speeds up animation starting time
    • Lays the groundwork for planned v1.20 feature that makes actors walk to each other and begin instead of warping
  • Made CenterRef a property of sslThreadModel, so mods can check who the scene is centering on
  • If scaling is enabled and one of the actors is the CenterRef, the center coordinates of the scene will be recalculated, as the scaling may affect their Z axis alignment, which may result in slightly misaligned animations.
Link to comment

Because this last development build has a potential fix for a CTD issue people have been having, and because the prep state splitting is a fairly major change to animation startup, I've made a quick archive of the script files that have these changes so more people can easily test it.

 

v113test.zip

 

Just drop the scripts folder into your Skyrim's data folder, overwrite existing files, and go.

 

If you had CTD issues from v1.12, let me know if this resolves it for you or not. You'll have to reinstall v1.12 first if you rolled backed however.

 

If you notice anything peculiar related to animation startup, let me know as well.

Link to comment

 

 

 

 

It would be nice to have multiple cum effects that are chosen from randomly and can stack. Go to an orgy and come out covered :P

 

Also if it is just a performance issue, an mcm option or something for higher res cum would be cool.

I suspect that if someone were the take the time to make several cum textures to use that Ashal would be happy to implement them. Seriously, if you have the skill and you want this, put the skill to use. Ashal is not going to be able to do it all himself and I'm thinking that textures etc like this are outside his skill set.

 

(Not really trying to demand you personally do it, just wanting to put the challenge out there. I know we have people with the skills using this mod).

 

The higher res cum option sounds fairly simple at least. It would pretty much be the matter of getting the original (highest resolution) textures then running that through DDSopt into various lower resolutions. 5 minutes tops.

 

I posted the original 4k textures here just this week but that's NOT what I was proposing. I'm not talking about multiple resolutions of a single texture. I want to see multiple textures that can overlap and if you get enough of them quickly your character will show a lot of cum, not just the one single cum texture that is always applied right now.

 

 

Well, sorry if that made you misunderstand anything. I assumed that you directed that comment towards both of his propositions since you quoted his entire post. I specifically say "the higher res cum option" to begin my post and state how "at least" the resolution task would be simple to imply that proposal A (multiple cum layers) would in fact not be as simple. 

Link to comment

 

  • Made CenterRef a property of sslThreadModel, so mods can check who the scene is centering on

 

why not just go all the way and let mods pass their own center reference?

 

 

They already can. CenterOnObject() sets the coordinates of the CenerLoc property and the Objectreference of the CenterRef (now) property.

Link to comment

It can be called at any time in an active thread, if it wasn't called manually before startthread, than startthead will call it to set a default location. If it's called after startthead and the default second argument is left as true, then it will set it during animation and reposition the actors on that center object as well.

Link to comment
float[] function GetCoords(ObjectReference Object)
	float[] loc = new float[6]
	loc[0] = centerObj.GetPositionX()
	loc[1] = centerObj.GetPositionY()
	loc[2] = centerObj.GetPositionZ()
	loc[3] = centerObj.GetAngleX()
	loc[4] = centerObj.GetAngleY()
	loc[5] = centerObj.GetAngleZ()
	return loc
endFunction

looks like it should be

float[] function GetCoords(ObjectReference Object)
    float[] loc = new float[6]
    loc[0] = Object.GetPositionX()
    loc[1] = Object.GetPositionY()
    loc[2] = Object.GetPositionZ()
    loc[3] = Object.GetAngleX()
    loc[4] = Object.GetAngleY()
    loc[5] = Object.GetAngleZ()
    return loc
endFunction

though the one time it's used it passes centerObj so it doesn't make a difference at the moment.

Link to comment

Came up with a different method to do the stripping all at the same time that doesn't involve states, uses much less code, and lets it be used for more than 1 thing instead of just the actor prep, including potential 3rd party mod applications.
 
The new method looks like this:
 

sslThreadController function PrimeThread()
	; // Thread initialization stuff
	ActorChain("Prepare")
	return self
endFunction

event Prepare_Actor(string eventName, string actorSlot, float argNum, form sender)
	int slot = (actorSlot as int)
	if slot < ActorCount
		SetupActor(Positions[slot])
	endIf
	linkready[slot] = true
endEvent

event Prepare_Finish(string eventName, string argString, float argNum, form sender)
	; // Actor Scaling and other non actor dependent prepation
	; // Start the animation
	GotoState("BeginLoop")
endEvent

The idea is that the ActorChain() function sets up some callbacks with the given name <callback>_Actor and <callback>_Finish, it loops sends 5 mod events for <callback>_Actor, one for each potential actor, and then waits for all of them to set their linkready bool to true, once all 5 <callback>_Actor events give the ready signal, it sends the <callback>_Finish event.

 

The problem however, is that SendModEvent will send it's given event to all 15 threads, not just the one it's called on. Which means I need to figure out a way to easily validate on the events that the thread that sent the event is the thread is itself. Which I don't think would be to difficult, but I'm afraid that's turning what was a fairly simple and fast method using states into a slower more resource intensive method, just in the name of cleaner code.

 

Not sure what to think or of I should go forward with this method, would welcome some feedback or ideas on the method from other scripters.

 

For comparison sake, the previous method using states looks like this:
 

 

bool[] ready
sslThreadController function PrimeThread()
	; // Thread initialization stuff
	ready = new bool[5]
	GotoState("PrimeStep0")
	RegisterForSingleUpdate(0.01)
	return self
endFunction

bool function ReadyStep(int step)
	if GetState() == "PrimeStep"+step
		GoToState("PrimeStep"+(step + 1))
		RegisterForSingleUpdate(0.01)
		return true
	else
		return false
	endIf
endFunction

state PrimeStep0
	event OnUpdate()
		if !ReadyStep(0)
			return
		endIf
		SetupActor(Positions[0])
		ready[0] = true
	endEvent
endState
state PrimeStep1
	event OnUpdate()
		if !ReadyStep(1)
			return
		endIf
		if ActorCount > 1
			SetupActor(Positions[1])
		endIf
		ready[1] = true
	endEvent
endState
state PrimeStep2
	event OnUpdate()
		if !ReadyStep(2)
			return
		endIf
		if ActorCount > 2
			SetupActor(Positions[2])
		endIf
		ready[2] = true
	endEvent
endState
state PrimeStep3
	event OnUpdate()
		if !ReadyStep(3)
			return
		endIf
		if ActorCount > 3
			SetupActor(Positions[3])
		endIf
		ready[3] = true
	endEvent
endState
state PrimeStep4
	event OnUpdate()
		if !ReadyStep(4)
			return
		endIf
		if ActorCount > 4
			SetupActor(Positions[4])
		endIf
		ready[4] = true
	endEvent
endState

state PrimeStep5
	event OnUpdate()
		if GetState() != "PrimeStep5"
			return
		endIf
		; // Wait for ready signals from all actors
		while !ready[0] || !ready[1] || !ready[2] || !ready[3] || !ready[4]
			Debug.Trace(ready)
			Utility.Wait(0.1)
		endWhile
		; // Actor Scaling and other non actor dependent prepation
		; // Start the animation
		GotoState("BeginLoop")
	endEvent
endState

 

 

 

And the ActorChain() function used by the new method looks like this:

 

 

 

bool padlock
bool[] linkready

function ActorChain(string callback)
	while padlock
		Utility.Wait(0.1)
	endWhile
	padlock = true
	linkready = new bool[5]
	RegisterForModEvent("ChainLinkActor", callback+"_Actor")
	RegisterForModEvent("ChainLinkFinish", callback+"_Finish")
	; // Send 5 actor events
	int i
	while i < 5
		SendModEvent("ChainLinkActor", (i as string), 1)
		i += 1
	endWhile
	; // Wait for ready signals from all chain links
	while !linkready[0] || !linkready[1] || !linkready[2] || !linkready[3] || !linkready[4]
		Utility.Wait(0.1)
	endWhile
	; // Send ending chain event
	SendModEvent("ChainLinkFinish", "null", 1)
	; // Unlock chain
	UnregisterForModEvent("ChainLinkActor")
	UnregisterForModEvent("ChainLinkFinish")
	padlock = false
endFunction 

 

 

 

Link to comment

Nevermind, figured out a quick and easy solution. Appended to the Thread ID number to the end of the event name, and then on the callback it checks for the eventname argument to match the events expected name + thread ID before continuing. Also removed the _Finish event, and instead just made the ActorChain() function latent, so the finish code can just be placed after the ActorChain() call.

Link to comment

New development build uploaded

 

Changes

  • Added support for Skyrim Strap Ons
  • Changed previous state chaining method of preparation to use sendmodevent's instead
  • Also made end animation sequence use the sendmodevents method for resetting the actors
  • Fixed bug with forward/backward not working on animations with smaller offsets

 

Here is patch file for changes from v1.12 to v1.13 for anybody willing to help test

patch2_v113.zip

Link to comment

pre-scene is smooth as butter now and fast.

 

observing odd behavior now with 3p scenes. it looks as if they're centering before they undress, then center again to the normal location when the scene starts. 2p is working normally, i.e. they undress before they warp to their offsets. the centering location itself looks close to where the proper offsets should be, but the z is always screwed up somehow with actors either in the air or below the ground. happens to the player as well.

 

doesn't look like it impacts the rest of the scene, but it does look like actors are getting moved one more time than they should.

 

testing with a matchmaker at the bannered mare.

Link to comment

I wonder if it would be possible to add a toggle so the player voice could be made exclusive ?

So if you choose voice 2 for the player, then that would only be used by the player.

 

After installing the new scripts it looks much smoother when starting and finishing a scene.

Link to comment

I've already mentioned that but please, is it possible to store the settings and adjustments in an external file? It's really annoying to have te redo it everytime, especially if you have multiple saves : /

 

(Thanks for the return of tcl anyay, now at least I can align the animations :) )

Link to comment

Any way the toggle for altering the whole animation or stages could be made a keybind during the animation? Or is that not possible?

 

It's possible, and was originally the plan when I put the toggle in, a hotkey that works like the backwards hotkey, where pressing it with your adjustment hotkey makes it effect the stage, and adjusting without it adjusted animation.

 

But Laziness dictated it staying a toggle option. I'll likely upgrade it to a hotkey in 1.2, or maybe in 1.13 if I have the time.

Link to comment

Version 1.13:

Weird bug with 3P animations; all actors are teleported away and then get teleported back. They also randomly don't undress. If the player is involved in a 3P animation the player is usually teleported high into the air (with a loading screen during the teleportation) and then is teleported back; however sometimes the teleport back doesn't happens quickly enough so you hit the ground and die.

 

Suggestions:

- A function that returns the hook string that was used when the animation was started with the StartSex() function.

- An additional optional argument for the StartSex() function: int "sex type" or something similar; 1 = Foreplay, 2 = Sex, 3 = Aggressive Sex. If this argument is set SexLab starts an animation of said group even if the actor victim argument is set (in case of 1 and 2) or not (in case of 3).

What I try to achieve here is to be able to define a "victim" even during masturbation, foreplay or sex animations; this would be very helpful to e.g. let a spell like "Orgasm" from a Succubus be handled differently than a "meditation" through masturbation.

- A function that returns above int sex type.

Link to comment

I wonder if it would be possible to add a toggle so the player voice could be made exclusive ?

So if you choose voice 2 for the player, then that would only be used by the player.

 

You can do this now, just in a sort of roundabout way.

 

Select the voice for the player and afterwards Toggle the voice off in the Toggle Voices menu.

 

Your player setting will remain, and since it selects the players voice by name, it ignores if it's disabled or not.

 

Disabling the voice and then trying to select it from the player voice option however will not work, as the options goes through a list of enabled animations, selecting it before you disable it circumvents that.

 

One of things I'm looking to investigate for v1.2 is assigning voices to npcs as well.

 

I've already mentioned that but please, is it possible to store the settings and adjustments in an external file? It's really annoying to have te redo it everytime, especially if you have multiple saves : /

 

I'm not aware of any INI reading functions for Papyrus, other than the ones that will only read default Skyrim INI's. And even those you can't save ini changes within game, only temporarily alter, so you're adjustments would be lost every time your restart skyrim, resetting back to what you have in the INI everytime.

 

You shouldn't be redoing them in any case. It saves them to the scripts and will reuse them next time the animation is played. Unless you press the restore adjustments defaults hotkey (defaulted to the  "-" key).

 

I'd advise pressing realign actors (defaulted to the "[" key) before you start adjusting a stage; this ensures they are at their proper offset location. Sometimes after an animation, stage change, or animation start they'll be off some from what their expected offset is due to them needing to "settle" a little every time certain events take place.

 

Varying actors, races, and location will make your alignment slightly different every time however, potentially making previous adjustments not work as well. There is nothing that can be done about this, at least nothing practical.

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