Jump to content

SexLab Framework Development


Recommended Posts

2 hours ago, Nymra said:

I totally agree. I just dont know if then all SLAL pack ESPs would need to be updated.

Most of SLAL packs I use don't have ESPs, some have the animobj type esp. and I don't think they depend on SLAnimLoader.esp at all.

Link to comment
19 minutes ago, kplh said:

Most of SLAL packs I use don't have ESPs, some have the animobj type esp. and I don't think they depend on SLAnimLoader.esp at all.

afaik the AnimObj ESPs require SLAnim Loader as Master. 

it is quite easy to merge them with xedit, but its extra work and you have to update it for newer versions :(

Link to comment
4 hours ago, kplh said:

In my opinion SLAL should just be merged into SL Framework itself - SLAL is clearly the better way of loading animations, so might as well have it as default behavior. Would also save a plugin slot.

SexLab already has JSON animation loader built in. It's just none of the animation mods use it and continue to use SLAL instead for whatever reason. 

Link to comment
7 minutes ago, Ashal said:

SexLab already has JSON animation loader built in. It's just none of the animation mods use it and continue to use SLAL instead for whatever reason. 

uh!

Did not even know?!

Does it offer the same functionality as SLAL. Meaning the register and unregister (Toggle Animation in Sexlab is a bit unhandy in comparison) and especially updating JSON files is very nice for me at least since I built animations old school (2 HKX files that are not matched together). 

 

Link to comment
34 minutes ago, Ashal said:

SexLab already has JSON animation loader built in. It's just none of the animation mods use it and continue to use SLAL instead for whatever reason. 

huh! I did not know that... do animation pack devs know that?

Link to comment
5 hours ago, Nymra said:

I just dont know if then all SLAL pack ESPs would need to be updated. 

no, not at all.

2 hours ago, Nymra said:

afaik the AnimObj ESPs require SLAnim Loader as Master. 

no, they don't. there are no direct esp connections between SLAL and the packs, everything that needs to be done happens externally (JContainers and FNIS)

 

2 hours ago, Ashal said:

It's just none of the animation mods use it and continue to use SLAL instead for whatever reason.

because SLALs version is much easier to use than yours, the induced Python pyw program is a god send for us.

most of us are not programmers, making/editing json & fnis list files is NOT a fun pastime to us.

 

3 hours ago, kplh said:

huh! I did not know that... do animation pack devs know that?

yes, but it's a bitch to use when compared to SLAL, so we don't.

Link to comment
  • 2 weeks later...
25 minutes ago, Geralttop said:

Good afternoon, can someone tell me, I started animation with two actors, how can I invite 3, or just start from 3?

it depends on how you started the animation, if using matchmaker just hit a 3rd/4th/5th actor with the spell before the 7 second timer ends.

 

if some other mod is starting the animations then it depends on how that mod is setup, it may not have the ability to start animations with more than 2 actors.

 

 

if your using sexlab's debug spells then your a dumbass, that's not for end users to use.

Link to comment
On 8/16/2020 at 4:37 PM, Nymra said:

the problem is that the animations native to Sexlab are ALWAYS selected first by Sexlab when a new animation starts. 
And Sexlab only selects 125 animations in that list. 

So if you use Sexlab Tools to change a scene, Sexlab Native Animations always block a good part of that 125 animation slots, reducing variety of options drastically. 
This is not known by many and is the TRUE animation limit, not FNIS (now unlimited), not SLAL (now 1000). 

OsmelMCs sexlab utility makes the selection more random, but still prioritizes the Sexlab Native Animations.
I will make SLAL packs for those animations soon, making them available easily as any others. 

The thing is, to make things compatible and convenient there should be only one System to add Sexlab animations. Devious Devices, ZAP Framework and also Sexlab itself should contain no animations at all (and I will release patches that will remove those too). 

 

All that you need to do is to shuffle them and I already gave you working code that does this for you. Not sure why you didn't bother testing it, considering that the only thing needed for you to do was to recompile the script.

Also, FNIS is not unlimited, with or without patches.

Link to comment
6 minutes ago, Hawk9969 said:

All that you need to do is to shuffle them and I already gave you working code that does this for you. Not sure why you didn't bother testing it, considering that the only thing needed for you to do was to recompile the script.

Also, FNIS is not unlimited, with or without patches.

 I just described an old problem. OsmelMC basicaly did the same you did with the code (I think, at least it was about at the same time) and fixes the issue, I merely pointed out that this is the case and repeated the explanation because many ppl do not know that sexlab has (had) that limitation. I think osmels utility is a must have update because of that reason alone :)

 

Link to comment
On 8/16/2020 at 4:37 PM, Nymra said:

OsmelMCs sexlab utility makes the selection more random, but still prioritizes the Sexlab Native Animations.

I've also found some issues with his implementation of GetList back then, but I don't remember what it was as I don't run the mod myself. If you show me the code for his GetList function I can tell you what it was.

Link to comment
13 minutes ago, Hawk9969 said:

I've also found some issues with his implementation of GetList back then, but I don't remember what it was as I don't run the mod myself. If you show me the code for his GetList function I can tell you what it was.

for me the problem is fixed by removing the standard animations (which also solves some other problems). 
Reimplementing them via SLAL makes them work like all others in more than one way. 


I m not familiar with the code, better check back with osmelMC directly. 
 

Link to comment
15 minutes ago, Nymra said:

for me the problem is fixed by removing the standard animations (which also solves some other problems). 
Reimplementing them via SLAL makes them work like all others in more than one way. 

No and WHY?

The problem is not "solved" as it will now "prioritize" the first few animations that get registered by SLAL, and second, why do all this when you can simply shuffle the list? By shuffling, it will also have a different animation at index 0 each time, which means most mods will initialize a SexLab animation with a completely random animation as the first animation.

 

I've been running with a shuffled GetList and a modified SexLab Tools to sort animations in alphanumeric order for the menus for ages and I've absolutely no problem.

21 minutes ago, Nymra said:

I m not familiar with the code, better check back with osmelMC directly. 

Why should I? I don't even use his mod; I was just going to point it to you some of the issues with his implementation.

Link to comment
On 8/18/2020 at 11:44 AM, MadMansGun said:

because SLALs version is much easier to use than yours, the induced Python pyw program is a god send for us.

most of us are not programmers, making/editing json & fnis list files is NOT a fun pastime to us.

I disagree that SexLab's version is complicated. Copying and editing the example JSON file should be pretty self explanatory and is I think pretty well documented to the point that non-programmers should be able to handle it. Though I'm obviously biased here. It also allows for various animation configurations that SLAL doesn't with it's fairly "basic" approach.

 

I'd consider making a web based tool for creating the JSON and FNIS files sexlab's built in json loader uses. But at this point SLAL is so embedded that I'm not sure it'd be worth the effort. 

Link to comment
  • 1 month later...
On 9/1/2020 at 3:02 PM, Ashal said:

I disagree that SexLab's version is complicated. Copying and editing the example JSON file should be pretty self explanatory and is I think pretty well documented to the point that non-programmers should be able to handle it. Though I'm obviously biased here. It also allows for various animation configurations that SLAL doesn't with it's fairly "basic" approach.

 

I'd consider making a web based tool for creating the JSON and FNIS files sexlab's built in json loader uses. But at this point SLAL is so embedded that I'm not sure it'd be worth the effort. 

Is there more documentation on this subject than the example JSON file "SKSE\Plugins\SexLab\Animations\ArrokReverseCowgirl.json" ?
(ie. forgive my laziness, but i don't want to go through the SexLab's Papyrus source code to learn the proper formating for the JSON files and all its possibilities)

More precisely: How to deal with multiple animations?
The way the example is made, implies that it is one JSON file per animation (ie. the example with ArrokReverseCowgirl is one file, and if i'd wanted to add ArrokMissionary, it would be in another separate JSON file, ArrokAnalDoggy123 would be another separate file, and so on) - is that correct?
Is there a way to define more animations in one JSON file?
Do i put them into the same file exactly as the example, just comma separated, or do i need to enclose them in [] or in {}, or does the []/{} have to be named (as in "animations": [ {}, {}, ... ] ) ?

Link to comment
On 9/1/2020 at 3:02 PM, Ashal said:

It also allows for various animation configurations that SLAL doesn't with it's fairly "basic" approach.

would you be so kind to explain this further? I looked through the example JSON files but could not find anything that it can do that SLAL python cant. 
Just want to make sure I am not missing something.

 

Quote

    // Can also be forms in the format such as "416305|SexLab.esm" to define the base form ID (converted from HEX to DEC) and the mod it is located in.
    "sfx" : [ "squishing" ],

sorry for my ignorance but I am reading here that I can add CUSTOM SOUNDS from third party mods to an animation? 

like for example a set of whipping sounds that I register to mod "whip.esp" and then I include it by "formID|whip.esp" instead of say "Squishing"? 

 

Link to comment
On 10/2/2020 at 6:45 AM, Nymra said:

would you be so kind to explain this further? I looked through the example JSON files but could not find anything that it can do that SLAL python cant. 
Just want to make sure I am not missing something.

 

sorry for my ignorance but I am reading here that I can add CUSTOM SOUNDS from third party mods to an animation? 

like for example a set of whipping sounds that I register to mod "whip.esp" and then I include it by "formID|whip.esp" instead of say "Squishing"? 

 

Stage specific SFX, Timer, and Cum settings, plus categorical registrations (animations in the same category setting show up next to each other in the animations menu). And yes, custom sounds for SFX can be used as you described, so long as the formID resolves to a sound descriptor in the esp.

 

Those are all features that have been available to mods loading animations via the original method of papyrus scripting for a long while now, SLAL is just really out of date when it comes to animation options.

 

 

On 10/2/2020 at 6:26 AM, Roggvir said:

Is there more documentation on this subject than the example JSON file "SKSE\Plugins\SexLab\Animations\ArrokReverseCowgirl.json" ?
(ie. forgive my laziness, but i don't want to go through the SexLab's Papyrus source code to learn the proper formating for the JSON files and all its possibilities)

More precisely: How to deal with multiple animations?
The way the example is made, implies that it is one JSON file per animation (ie. the example with ArrokReverseCowgirl is one file, and if i'd wanted to add ArrokMissionary, it would be in another separate JSON file, ArrokAnalDoggy123 would be another separate file, and so on) - is that correct?
Is there a way to define more animations in one JSON file?
Do i put them into the same file exactly as the example, just comma separated, or do i need to enclose them in [] or in {}, or does the []/{} have to be named (as in "animations": [ {}, {}, ... ] ) ?

Each file is a single animation, as the filename is used as the animation's registry name. 

Link to comment
44 minutes ago, Ashal said:

Stage specific SFX

i think that can be done in/with FNIS.

https://www.loverslab.com/topic/43967-sound-not-playing-during-custom-animation/

but i have not tried it myself so don't know if it works, that guy seemed to have problems with the fnis version.

44 minutes ago, Ashal said:

Stage specific Timer

SLAL has that...unless your talking about a different timer then what i'm thinking of.

44 minutes ago, Ashal said:

Cum settings

Stage specific Cum? i have not tried that in SLAL so i don't know....SLAL's json can do things that the generator is not programed to do so i don't know it's true limits.

 

edit: no, looks like SLAL's json can't do that one.

 

44 minutes ago, Ashal said:

plus categorical registrations

the one thing SLAL truly sucks at for sure, Eg: i would love to turn off all animations for 1 or 2 races with just a click.

 

44 minutes ago, Ashal said:

Each file is a single animation, as the filename is used as the animation's registry name.

that sounds like it could be annoying to work with.

Link to comment
26 minutes ago, MadMansGun said:

i think that can be done in/with FNIS.

https://www.loverslab.com/topic/43967-sound-not-playing-during-custom-animation/

but i have not tried it myself so don't know if it works, that guy seemed to have problems with the fnis version.

The FNIS SFX and SexLab SFX are pretty functionally different. I don't see how this would be a con against SL's implementation. 

 

Quote

SLAL has that...unless your talking about a different timer then what i'm thinking of.

A stage lasting for a certain number of seconds before forcing itself to the next stage? It's been included for a long time, more than the other stuff mentioned. So wouldn't be surprised if it's included in SLAL among everything else.

 

Quote

that sounds like it could be annoying to work with.

Single files for each animation ensures there is no overlap. And  I'd argue it's less of a hassle to look for a single file to alter than it is to open one massive file and find to find the one animation you might want to alter.  Plus having multiple animations in a single file would be more error prone. One error in a single animation will prevent all animations in that single file from registering - Not so with SexLab's implementation. 

 

---

 

All SLAL has going for it IMO is legacy of use and the python generator. If I were to make the web based JSON & FNIS generator I mentioned for sexlab's json loader, I really just don't get why people would continue to use SLAL, except for the fact that it has the legacy advantage.

 

SLAL's legacy advantage is large, however. Which is why I'm unlikely to make the generator for sexlab's version unless I were to get the promise of use from a couple prominent SL animators. 

 

 

Link to comment
16 minutes ago, Ashal said:

The FNIS SFX and SexLab SFX are pretty functionally different. I don't see how this would be a con against SL's implementation.

like i say, i have not used it/them before so i don't know jack shit about it and there pro & cons.

 

27 minutes ago, Ashal said:

SLAL's legacy advantage is large, however. Which is why I'm unlikely to make the generator for sexlab's version unless I were to get the promise of use from a couple prominent SL animators. 

maybe start by making a "SLAL json to SL jsons converter", that way we can truly see what a fully loaded sexlab is like without SLAL.

Link to comment
  • 3 months later...

I've been told that the threadhook feature might be removed in the next version. Is there any reason for this? My mod is really dependent on it because it needs to make a bunch of script-heavy modifications to a sexlab thread before it starts. Events just aren't reliable enough because they're non-blocking.

Link to comment
18 minutes ago, shyguy570 said:

I've been told that the threadhook feature might be removed in the next version. Is there any reason for this? My mod is really dependent on it because it needs to make a bunch of script-heavy modifications to a sexlab thread before it starts. Events just aren't reliable enough because they're non-blocking.

 

I don't think I've ever given any sort of indication that I can remember that this is the case... 

 

I've talked about possibly adding a new synchronous hook system that would allow mods to delay the start/continuation of an animation until their hooks finish running, rather than running asynchronously through modevents like the current hook system. But I've never said I'd be removing the current hook system as a result. I've since reversed on this idea however, as it's a lot of work to add and I haven't heard much support for the idea.

 

More importantly, maintaining backwards compatibility with existing mods is to important to me to make a drastic change like removing the thread hook system. Doing something like that would be dumb, as a large amount of mods that are unlikely to be updated would be rendered unuseable.

Link to comment
26 minutes ago, Ashal said:

 

I don't think I've ever given any sort of indication that I can remember that this is the case... 

 

I've talked about possibly adding a new synchronous hook system that would allow mods to delay the start/continuation of an animation until their hooks finish running, rather than running asynchronously through modevents like the current hook system. But I've never said I'd be removing the current hook system as a result. I've since reversed on this idea however, as it's a lot of work to add and I haven't heard much support for the idea.

 

More importantly, maintaining backwards compatibility with existing mods is to important to me to make a drastic change like removing the thread hook system. Doing something like that would be dumb, as a large amount of mods that are unlikely to be updated would be rendered unuseable.


Osmelmc noted that the threadhook code was disabled in the github repo, which is what lead to that suspicion. Glad to hear it's not going away.

 

Link to comment
27 minutes ago, shyguy570 said:


Osmelmc noted that the threadhook code was disabled in the github repo, which is what lead to that suspicion. Glad to hear it's not going away.

 

 

the code that was disabled in the repo was the new hook system I mentioned, as I decided to not continue with it.

Link to comment
19 minutes ago, Ashal said:

 

the code that was disabled in the repo was the new hook system I mentioned, as I decided to not continue with it.

 

Hold on, are we talking about this code? This is what I was talking about in the first post.

 

function HookAnimationStarting()
	sslThreadHook[] ThreadHooks = Config.GetThreadHooks()
	Log("HookAnimationStarting() - "+ThreadHooks)
	int i
	while i < ThreadHooks.Length
		if ThreadHooks[i] && ThreadHooks[i].CanRunHook(Positions, Tags) && ThreadHooks[i].AnimationStarting(self)
			Log("Global Hook AnimationStarting("+self+") - "+ThreadHooks[i])
		else
			Log("HookAnimationStarting() - Skipping["+i+"]: "+ThreadHooks[i])
		endIf
		i += 1
	endWhile
endFunction

 

Osmelmc ended up carrying the disabling of this code into SLU+, which ended up breaking my mod because it uses this hook system.

 

Admittedly, my mod is likely the only one that actually uses it (because the implementation in 1.63 is somewhat broken if you try to use it as-is, I had to include a fix in my mod), but if this is what is being discontinued, then that is going to break my mod.

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