Jump to content

Recommended Posts

After getting Sexlab sslAnimationSlots 2000 LE & updating FNIS XXL to account for all the animations i got by updating my current packs, I have been able to register nearly 700 animations but a new issue came out of it. Depending on how sex is started, my animation options are limited by being the same choices every time a mod starts sex.

 

Before all it took was sex with another npc to change up my options for that sex encounter. Now depending on how the sex starts, my animation options are always the same no matter who I do it with or how long in between each time sex starts or where.

 

For example, say I have 10 animations named "A" through "J". Before increasing my animation limit, each time sex was started by any mod, my options would either be all A through J or it would mix em up between each NPC next in line like leaving out C & F. This would be how it is no matter what mod started sex.

 

Now however, if I have sex through SexLab Defeat, only animations A through D show up no matter what NPC gets chosen from Defeat or how long the Defeat event goes on for or where it happens. Then SexLab Matchmaker only chooses animations C through H no matter who I hit the spells with, SD+ only picks animations B through F,  & Maria Eden picks only A, C, E, I, J & so on.  Basically these mods are now only picking the same set of animations every time & even Defeat is ignoring what animations I have disabled for aggressive animations. 

 

I dont use filters or anything that restricts animation choices through any mods other than the built in one from Cursed Loot (which I hate btw) & the toggle page for SexLab's MCM where I leave certain stuff disabled for the Aggressive & Foreplay sections, though I always have done that & the Foreplay section seems to be fine because its kept small. Does going over the 500 animation limit fuck up what animations mods can pick or something? Is there anyways to force it to change up my choices more often? I have SexLab Tools but it doesnt seem to change my available sets either.

Link to comment

I think that some of the default functions in Sexlab for choosing animations have a hard limit, maybe of 128 animations. So the modder supplies some tags, and the function returns an array of up to 128(?) animations. I think the code probably traverses the animations from first to last since it would have no reason to randomize.

 

So I think this will depend on the mod and how it requests animations. If defeat just requests any aggressive animation, it will play animations chosen from some list of 128 (?). If Maria Eden requests aggressive and vaginal tags, it will be a different list of 128.

 

So even if you have 2000 animation slots, it does not mean that the functions used by different modders can take advantage of all the animations. It depends on how exactly they get the animation to play.

Link to comment

Actually you are totally right in your observation, that mod does make your animation selections less random :S

 

Here is the GetByTags function from normal sexlab:

sslBaseAnimation[] function GetByTags(int ActorCount, string Tags, string TagsSuppressed = "", bool RequireAll = true)
	Log("GetByTags(ActorCount="+ActorCount+", Tags="+Tags+", TagsSuppressed="+TagsSuppressed+", RequireAll="+RequireAll+")")
	bool[] Valid      = Utility.CreateBoolArray(Slotted)
	string[] Suppress = StringSplit(TagsSuppressed)
	string[] Search   = StringSplit(Tags)
	int i = Slotted
	while i
		i -= 1
		if Objects[i]
			sslBaseAnimation Slot = Objects[i] as sslBaseAnimation
			Valid[i] = Slot.Enabled && ActorCount == Slot.PositionCount && Slot.TagSearch(Search, Suppress, RequireAll)
		endIF
	endWhile
	return GetList(valid)
endFunction

 

 

Here is from the mod patched for 2000 animations:

 

sslBaseAnimation[] function GetByTags(int ActorCount, string Tags, string TagsSuppressed = "", bool RequireAll = true)
	; Log("GetByTags(ActorCount="+ActorCount+", Tags="+Tags+", TagsSuppressed="+TagsSuppressed+", RequireAll="+RequireAll+")")
	; Check Cache
	string CacheName = ActorCount+":"+Tags+":"+TagsSuppressed+":"+RequireAll
	sslBaseAnimation[] Output = CheckCache(CacheName)
	if Output
		return Output
	endIf
	; Search
	bool[] Valid      = Utility.CreateBoolArray(Slotted)
	string[] Suppress = StringSplit(TagsSuppressed)
	string[] Search   = StringSplit(Tags)
	int i = Slotted
	while i
		i -= 1
		if Objects[i]
			sslBaseAnimation Slot = Objects[i] as sslBaseAnimation
			Valid[i] = Slot.Enabled && ActorCount == Slot.PositionCount && Slot.TagSearch(Search, Suppress, RequireAll)
		endIf
	endWhile
	Output = GetList(valid)
	CacheAnims(CacheName, Output)
	return Output
endFunction

 

The "GetList" function randomizes the selection. In the original sexlab, if too many valid animations are returned, a smaller number is random selected. In the new one, this random selection is only done once. So basically the first time any mod asks for a set of animations with some tags, with the 2000 animation patch that set of animations is frozen. I don't see anything to periodically clear the cache so maybe it is frozen forever

 

 

EDIT: Now that I think about it, I knew I must have more animations installed than I was seeing...damn...

Link to comment
51 minutes ago, DayTri said:

Actually you are totally right in your observation, that mod does make your animation selections less random :S

 

Here is the GetByTags function from normal sexlab:



sslBaseAnimation[] function GetByTags(int ActorCount, string Tags, string TagsSuppressed = "", bool RequireAll = true)
	Log("GetByTags(ActorCount="+ActorCount+", Tags="+Tags+", TagsSuppressed="+TagsSuppressed+", RequireAll="+RequireAll+")")
	bool[] Valid      = Utility.CreateBoolArray(Slotted)
	string[] Suppress = StringSplit(TagsSuppressed)
	string[] Search   = StringSplit(Tags)
	int i = Slotted
	while i
		i -= 1
		if Objects[i]
			sslBaseAnimation Slot = Objects[i] as sslBaseAnimation
			Valid[i] = Slot.Enabled && ActorCount == Slot.PositionCount && Slot.TagSearch(Search, Suppress, RequireAll)
		endIF
	endWhile
	return GetList(valid)
endFunction

 

 

Here is from the mod patched for 2000 animations:

 



sslBaseAnimation[] function GetByTags(int ActorCount, string Tags, string TagsSuppressed = "", bool RequireAll = true)
	; Log("GetByTags(ActorCount="+ActorCount+", Tags="+Tags+", TagsSuppressed="+TagsSuppressed+", RequireAll="+RequireAll+")")
	; Check Cache
	string CacheName = ActorCount+":"+Tags+":"+TagsSuppressed+":"+RequireAll
	sslBaseAnimation[] Output = CheckCache(CacheName)
	if Output
		return Output
	endIf
	; Search
	bool[] Valid      = Utility.CreateBoolArray(Slotted)
	string[] Suppress = StringSplit(TagsSuppressed)
	string[] Search   = StringSplit(Tags)
	int i = Slotted
	while i
		i -= 1
		if Objects[i]
			sslBaseAnimation Slot = Objects[i] as sslBaseAnimation
			Valid[i] = Slot.Enabled && ActorCount == Slot.PositionCount && Slot.TagSearch(Search, Suppress, RequireAll)
		endIf
	endWhile
	Output = GetList(valid)
	CacheAnims(CacheName, Output)
	return Output
endFunction

 

The "GetList" function randomizes the selection. In the original sexlab, if too many valid animations are returned, a smaller number is random selected. In the new one, this random selection is only done once. So basically the first time any mod asks for a set of animations with some tags, with the 2000 animation patch that set of animations is frozen. I don't see anything to periodically clear the cache so maybe it is frozen forever

 

 

EDIT: Now that I think about it, I knew I must have more animations installed than I was seeing...damn...

fuck if thats the case, gonna share dis on that mod's page, maybe the author will have a solution.

 

EDIT: Oh u already did lmao, thanks for that

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