Jump to content

SexLab Framework Development


Recommended Posts

 

The only difference between the two is likely the interface folder, assuming I didn't forget something else crucial. The patch vs git build being more "crash-y" I'd absolutely chalk up first and foremost to simple chance and confirmation bias. 99% of crashes from SexLab are going to be related to scripts, SKSE plugins, or OTHER mods overwriting SexLab's own scripts, skse plugins, or esm data. All things I'm 100% positive the patch includes the same versions as Git.

 

Not sure if this might affect something, but the patch version has psc files (in scripts/Source) with LF-style line changes and the GIT version uses CR+LF. Other than that and the missing interfaces folder, patch and git are the same. QuickSFV is an easy way, with its MD5 check, to quickly compare a bunch of files w/ subfolders to eachother.

 

Unlikely, as whats in the psc files makes no difference when it comes to playing the game, skyrim doesn't touch them, it's the compiled pex versions of the scripts Skyrim uses in-game, which isn't affected by line endings.

 

--

 

In anycase, current GIT build now has fixes for camera shake on orgasm and auto-TFC not working correctly. Also tweaked the language files so the HDT High Heels toggle isn't as HDT specific, now including wording for NiOverride heels as well.

 

Not yet sure if I'm going to release a beta 3 or not, only thing I really want to add that's missing right now is some Frostfall 3.0 support, which I "have" support for in beta 2, but it's commented out as it caused some issues with frostfall's handwarming animations. May just go forward with 1.61 official in a couple days, assuming nobody has any lingering bugs to report from beta 2.

Link to comment

I was wondering if its possible to separate humans and creature scale height toggle? Like 1 for humanoids and 1 for creatures.

Since lot of human animations align better(at least for me) if you use "Even actor heights" toggle but lot of creature animations looks better if they dont change height. So 2 toggles would be better if its not to much work :D

Or maybe its already possible and i missed something?

Anyways, thanks for your hard work.

Link to comment

I was wondering if its possible to separate humans and creature scale height toggle? Like 1 for humanoids and 1 for creatures.

Since lot of human animations align better(at least for me) if you use "Even actor heights" toggle but lot of creature animations looks better if they dont change height. So 2 toggles would be better if its not to much work :D

Or maybe its already possible and i missed something?

Anyways, thanks for your hard work.

As I've said countless times now- That won't solve the problem. So no.

Link to comment

Re: Disable Starting Teleport

 

When I ENABLE this feature, I have a lot of issues with "falling through the world".

NOT the old "launch into the sky" problem. Just slipping through the plane I'm on and falling through to the next level, be it terrain or a lower floor of the building I'm in.

Does not happen EVERY time animation starts, but in many of the cities it happens about 75% of the time. 

 

If I DISABLE that feature, I never fall through the world.

Link to comment

Re: Disable Starting Teleport

 

When I ENABLE this feature, I have a lot of issues with "falling through the world".

NOT the old "launch into the sky" problem. Just slipping through the plane I'm on and falling through to the next level, be it terrain or a lower floor of the building I'm in.

Does not happen EVERY time animation starts, but in many of the cities it happens about 75% of the time. 

 

If I DISABLE that feature, I never fall through the world.

Need debug log of a time when it happened.

Link to comment

I have troubles - but it is unclear if it is caused by 1.61 - the actor positioning is complete wrong for every animation and I have many freezes.

I am using latest versions of FNIS (6.2), NSAP (3.1) and More Nasty Critters (9.3) and MO.

I had no troubles with the same setup and SL 1.60.

 

I'll retry the latest 1.61 and collect some logs.

Link to comment

Hey there Ashal!

Merry Christmas to you and everyone else in here!

Tested the latest beta and the problem I was having with the 1.60.2 build is still around. Checked it with a fresh install too.

You might remember since you replied in this thread:

http://www.loverslab.com/topic/53418-question-about-facial-animations/

Sadly the problem remains with the latest update too and while i don't see anyone else caring about this (other than that few

people in the thread), it pretty much prevents me from doing any screenshooting done with sexlab. Since I don't want to come

off as an asshole who's demanding things left and right, this is my last go at this one before I abandon all hope.

Thanks for all your hard work and I wish you and everyone a happy new year!

Link to comment

I have freezes again - checked all logs, including SKSE but there is no indicator. These freezes are new - I try switching back to 1.60 to verify if it is caused by SL.

 

Background : I do not save & reload games - every game is fresh - I put all SKSE and SL Scripts into MO Overwrite - so they could never be overwrittem by any other mod.

 

I think it must be a SKSE plugin problem - it freezes in a very early state of animation. One possible hint: I use only NiO Heels and your NiO support is new...

I try to unequip the heels before starting SL action.

Link to comment

Happy new year, Ashal...

Sorry for my english...

I wanna ask how does the sound setting work, and each type of sound have 2 or 3 folders, how does that operaties.....(when to change, and how to change to another folder or another sound?)

 

And in the MCM sound setting, I've set the time interval of sound playing to 1 second, also I've change some sounds to last 5-8 seconds by "GoldWave", then the problems came. It looks like that when sound A have play for 1 second but not over, and sound B begin to play, and then sound C... is that I shall change the time interval to the biggest second to fit my sound playing? or it shall play one by one? And when I press space to goto next step of animation, perior step's sound is still playing then the next step's sound can start?

Link to comment

I do not know if someone has already said something about it, but wondered if there a way to prevent that after of animation, their conversation is not interrupted, because after finishing tha animation, the player and the npc stay close and the npc they begin to speak, sometimes to continue a quest dialogue, but they stopping and said, "Uh, what?, I mean use something like "No More Standing Too Close to NPCs" but sexlab version.

greetings to all, spend happy holidays

Link to comment

One possible hint: I use only NiO Heels and your NiO support is new...

Post a debug log from a test when you're wearing the heels. It may not be related to the crash or giving any specific crash related errors, but I'd like to see the NiO Heel removal/re-application debug messages, as I never really got a chance to test any NiO Heels.

Link to comment

Played again for one hour (plenty of sex acts) without issues and one freeze that is not related to sex. I assume that it is related to HDT effects - my char is using HDT for body and hairs.

At the very begining of NiO development I had several CTDs but no freezes.

Link to comment

I do have a bug to report for 1.61 b2:

 

Sorry to bother with this again but can you check your RemoveRegisteredAnimation function?

 

When I use this function to let's say disable Ap Leg Up Fuck it works fine and the animation disapear from the menu:

SEXLAB - UnregisterAnimation(): Animation[14] APLegUp

But when a sexlab scene start I get an error for each unregistered animation when an array of animation is called:

[12/27/2015 - 04:31:07PM] SEXLAB - GetByType(ActorCount=2, Males=-1, Females=-1, StageCount=-1, Aggressive=False)
[12/27/2015 - 04:31:07PM] Error: Cannot call Enabled() on a None object, aborting function call
stack:
	[SexLabQuestAnimations (0E0639DF)].sslanimationslots.GetByType() - "sslAnimationSlots.psc" Line 46
	[SexLabQuestFramework (0E000D62)].sexlabframework.GetAnimationsByType() - "SexLabFramework.psc" Line 684
	[POSSMainQst (89000D62)].POSSMainScr.QueueNextStep() - "POSSMainScr.psc" Line 1169
	[POSSMainQst (89000D62)].POSSMainScr.QueueMenu() - "POSSMainScr.psc" Line 811
	[POSSMainQst (89000D62)].POSSMainScr.OnKeyDown() - "POSSMainScr.psc" Line 224
[12/27/2015 - 04:31:07PM] warning: Assigning None to a non-object variable named "::temp19"
stack:
	[SexLabQuestAnimations (0E0639DF)].sslanimationslots.GetByType() - "sslAnimationSlots.psc" Line 46
	[SexLabQuestFramework (0E000D62)].sexlabframework.GetAnimationsByType() - "SexLabFramework.psc" Line 684
	[POSSMainQst (89000D62)].POSSMainScr.QueueNextStep() - "POSSMainScr.psc" Line 1169
	[POSSMainQst (89000D62)].POSSMainScr.QueueMenu() - "POSSMainScr.psc" Line 811
	[POSSMainQst (89000D62)].POSSMainScr.OnKeyDown() - "POSSMainScr.psc" Line 224

The disabled animations are ignored properly but It spams the log pretty bad when multiple animations are disabled.

Link to comment

Hi.

 

I am signalling a small error in the "documentation" of SL 1.61

 

In "SexLabFramework.psc", the function "GetGender(Actor a)" has still the comment:

* @return int - 0 for male, 1 for female, 3 for creature, 4 for female creature if creature genders are enabled and they are female - otherwise female creatures will default to 3 along with males.
 
But the actual values that are calculated are from 0 to 3.
0 = Male human
1 = Female human
2 = Creature (if creature genders are not used)
2 = Male Creature (if creature genders are used)
3 = Female Creature
 
These are the actual values that are returned by the sslActorLibrary.psc
 
 
It is only a "documentation" error. Not an error in the code.

 

Link to comment

I do have a bug to report for 1.61 b2:

 

Sorry to bother with this again but can you check your RemoveRegisteredAnimation function?

 

When I use this function to let's say disable Ap Leg Up Fuck it works fine and the animation disapear from the menu:

SEXLAB - UnregisterAnimation(): Animation[14] APLegUp
But when a sexlab scene start I get an error for each unregistered animation when an array of animation is called:

// snip
The disabled animations are ignored properly but It spams the log pretty bad when multiple animations are disabled.

 

 

This kinda error is the exact reason I didn't want to add an "unregister" function, so much so that I honestly can't even remember having added it until just now, could've sworn I refused the idea. Oh well though, functions there so why not, I'll fix it before the final 1.61 release in a few days.

 

If your main intention is just to remove the AP animations btw, should be noted that with 1.61 AP animations are disabled by default and only selected for animation if the user specifically decides to enable them, or a mod specifically calls for them by name.

 

 

 

I am signalling a small error in the "documentation" of SL 1.61

 

In "SexLabFramework.psc", the function "GetGender(Actor a)" has still the comment:

* @return int - 0 for male, 1 for female, 3 for creature, 4 for female creature if creature genders are enabled and they are female - otherwise female creatures will default to 3 along with males.

You mean to tell me there's a number between 1 and 3? Crazy talk, first I'm hearing of this supposed "2"

It'll be fixed in the next build...

Link to comment

 

This kinda error is the exact reason I didn't want to add an "unregister" function, so much so that I honestly can't even remember having added it until just now, could've sworn I refused the idea. Oh well though, functions there so why not, I'll fix it before the final 1.61 release in a few days.

 

If your main intention is just to remove the AP animations btw, should be noted that with 1.61 AP animations are disabled by default and only selected for animation if the user specifically decides to enable them, or a mod specifically calls for them by name.

 

Thank you, and no I'm asking this because my mod SL tools uses this function that I asked you to add earlier (yeah I'm the annoying one :D), the function offers the possibility to remove an animation or a set of animations by tag or by name for people who want a cleaner menu free from the animations they never use, but maybe I should just make a disable/enable function instead.

Link to comment

I often create 4 extra functions to extend SexLab.

 

1) String[] getAllTags()

2) bool raceHasAnimations(string RaceKey, int actorsCount=-1)

3) sslBaseAnimation[] MergeAnimLists(sslBaseAnimation[] l1, sslBaseAnimation[] l2)

4) String[] sortStrings(String[] list)

 

The first is to quickly get all the possible tags from all animations. Without actually getting the animations one by one (in a dozen different ways) and then constructing the tags array.

I use it for filtering.

 

The second function is just to check if there is at least one animation for the specified RaceKey, with also the actorsCount optional.

Using the standard function retrieves the actual animations, that consumes time, and it is not always what you are looking for.

(Ouch, this is number "2", the not-existing one...  :P )

 

The third function (but for this one I have to check the code in 1.61, I did not checked it yet) is to merge the animation list exactly as SexLab does. But by removing all the "None" animations in the list.

 

The last function is just a sort function to sort an array of string. (It is done in Papyrus, but probably it should go with a better sorting algorithm in a SKSE plugin.)

 

 

I can provide the code, if you are interested.

Link to comment

I get freezes over freezes again and the logs doesnt show anything - I have disabled most mods but it is still freezing - even without any sex scene.

 

I saw that you have updated PapyrusUtils (JsonUtil.JsonInFolder is new) . My mod MariaEden is using PapyrusUtils very very much.

Does SL 1.61 run well with PapyrusUtils from 1.60, so I can try if it is a PapyrusUtils problem?

 

Link to comment

snip

Oh sure I could use your GetAlltags to make a list of it for the player to choose from, I was just wondering if such a function existed actually.

 

About your raceHasAnimations function, I'm currently using a function for testing every combination of actor possible in Defeat:

 

An array with the player and the first NPC is created, then a while statement checks the aggressor array (5 actors) to find if there is existing 2p+ animation that can be played, for each iteration it tests the gender tag (with MakeGenderTag) of the player, the next actor in line and the previously registered actors in the previously created array if there are some and use GetAnimationsByTags to check if there is animation existing for this particular combination, 

if at least one animation is found the tested actor is then set as AddOne, AddTwo & AddThree for the next Sexlab scene.

I then use the obtained animation array for the next sexlab scene, this allow for up to 5p animations, including combinations of creatures & npcs animations such as male/dog/female.

 

 

 

Race NextRace = TheNext.GetLeveledActorBase().GetRace()
Actor[] TheActors = New Actor[5]
TheActors[0] = Player
TheActors[1] = TheNext
String GenderTag
Int i
While (i < 5)
	If (Aggressors[i] && (Aggressors[i] != TheNext) && CheckActor(Aggressors[i]) && (Aggressors[i].GetDistance(Player) < FarMaxDist))
		Bool AggressorCreature = Aggressors[i].HasKeywordString("ActorTypeCreature")
		If (!Aggressors[i].HasKeywordString("SexLabActive") && (Aggressors[i].GetFactionRank(RessConfig.DefeatFactions[1]) < 1) \
			&& MultipleCompatibility(NextRace, Aggressors[i], AggressorCreature) \
			&& RessConfig.IsSexualAssaulter(Aggressors[i], Player, True))
			If !AddThree
				Int Slot = TheActors.Find(None)
				TheActors[Slot] = Aggressors[i]
				Actor[] Positions = RessConfig.MakeActorArray(TheActors[0], TheActors[1], TheActors[2], TheActors[3], TheActors[4])
				GenderTag = SexLabUtil.MakeGenderTag(Positions)
				sslBaseAnimation[] Anims
				If AggressorCreature
					Anims = SexLab.GetCreatureAnimationsByRaceTags((Slot + 1), NextRace, GenderTag)
				Else
					If McmConfig.AnimMultipleAggPvic
						Anims = SexLab.GetAnimationsByTags((Slot + 1), GenderTag+",aggressive")
					Else
						Anims = SexLab.GetAnimationsByTags((Slot + 1), GenderTag)
					Endif
				Endif
				If (Anims.Length != 0)
					If !AddOne
						AddOne = Aggressors[i]
					Elseif !AddTwo
						AddTwo = Aggressors[i]
					Else
						AddThree = Aggressors[i]
					Endif
					Aggressors[i].SetFactionRank(RessConfig.DefeatFactions[1], 2) ; AggFaction
					Aggressors[i].EvaluatePackage()
					DefeatConfig.Log("Multiple actor set -> "+Aggressors[i])
					RessConfig.SetMultipleAnimation(Anims)
				Else
					TheActors[Slot] = None
				Endif
			Endif
		Endif
	Endif
	i += 1
EndWhile

 

 

 

It's working great with no very noticable performance impact or crash (even if while I'm looking at it I can optimize it a little more) but maybe it could be optimized with a function, a bool function that test an actor array or a gender tag and returns true if at least one enabled animation can be played between them without actually calling an animation array.

Link to comment

I tried with a recent git pull, it seems the NiO heels handling is working (didn't look at logs or tried edge cases).

 

When looking a the code, I was baffled at first by the lack of stage tracking, but then it dawned on me that you don't need to listen for SL events if you are inside SL (this is a lot more elegant than my hacky approach).

Link to comment

 

...snip...

 

 

You code is fine.

You rely on valid animations, and your "type of creatures" are under control.

 

In "Scent of Sex" there are up to three partners for each scene, and the can be selected with an extreme detail. (By defining Sex rules.)

 

The problem is that I have to assure that a rule created by an user, will have at least one animation. And it is not always the case.

 

So I wrote some "high-speed" functions.

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