Jump to content

[WIP] Furniture Interaction Framework - for NPCs and Player


Roggvir

Recommended Posts

 

Hey Roggvir,this mod is dead?

Can you let us a download of your progress or maybe a video something,you promised progress few weeks but it was months since you last posted.

 

As i stated in my previous post, the mod is not dead - if i'd be to abandon it, i would at least release it as it is, so somebody else might take over (i want to make it available anyway soon, even unfinished, but right now its a real mess, so i want to do some cleanup first).

 

Regarding the video... as soon as i refresh my memory and probably fix some things here and there, i am gonna post something, but i cant say when (also, if you have any suggestion where should i upload the vid, that would be great, because i am not sure yet what would be the best place for that).

 

 

 

Ok thanks for your response,i think mod was dead because it was a long time since you last posted here as you used to do.

About video .... maybe you can try daily motion site,or idk ... its a suggestion.

If i were a good modder i could help you ... unfortunately im not a very good modder,i know only some basics about scrips and nothing about animations ...

 

Link to comment

Some news...

 

I am mostly finished with refreshing my memory about what i was doing and what needs to be done, and finally started doing something.

There is one issue with player being pushed away during some anims, no clue why, doesnt happen often, and NEVER for NPC - had this problem once before, though i cant remember what was causing it, so i'll need some time to find out again.

 

Nothing much new, except i also started working on a way to add voice to the actors.

I like to make things lore-friendly first, adding optional overrides second, so i am trying to reuse vanilla voices like some moans, grunts, breathing and such that is normaly used during combat and maybe few other things.

You may think it must sound weird, but some of those sounds actually fit ok (although maybe mostly for a slightly rough sex scenarios).

What i like about this, is the fact that the voices are consistent with how the NPCs talk in the game.

Of course, there will be an option to override those sounds, using custom ones, or those that come with SexLab (which itself is optional too).

I need to remove some sounds that do sound weird, but overall its already usable.

Also have to split the sounds into more categorized topic branches to allow better customization of sounds used during various parts of even a single interaction.

For each animation step, you can select a topic for any given actor and specify how fast to repeat the sounds or play them only once, allowing to make the dominating/controling actor to say something that fits the situation when the interaction starts, then something else as the interaction is progressing, including of course some grunts and moans, while the other actor may say other things from another topic, maybe begging for mercy, or cursing, whatever.

Allowing to specifically tweak the sounds/voices for every interaction.

And yes, it can also take into account whether an actor is wearing any gags, etc.

Link to comment

Some news...

 

I am mostly finished with refreshing my memory about what i was doing and what needs to be done, and finally started doing something.

There is one issue with player being pushed away during some anims, no clue why, doesnt happen often, and NEVER for NPC - had this problem once before, though i cant remember what was causing it, so i'll need some time to find out again.

 

Nothing much new, except i also started working on a way to add voice to the actors.

I like to make things lore-friendly first, adding optional overrides second, so i am trying to reuse vanilla voices like some moans, grunts, breathing and such that is normaly used during combat and maybe few other things.

You may think it must sound weird, but some of those sounds actually fit ok (although maybe mostly for a slightly rough sex scenarios).

What i like about this, is the fact that the voices are consistent with how the NPCs talk in the game.

Of course, there will be an option to override those sounds, using custom ones, or those that come with SexLab (which itself is optional too).

I need to remove some sounds that do sound weird, but overall its already usable.

Also have to split the sounds into more categorized topic branches to allow better customization of sounds used during various parts of even a single interaction.

For each animation step, you can select a topic for any given actor and specify how fast to repeat the sounds or play them only once, allowing to make the dominating/controling actor to say something that fits the situation when the interaction starts, then something else as the interaction is progressing, including of course some grunts and moans, while the other actor may say other things from another topic, maybe begging for mercy, or cursing, whatever.

Allowing to specifically tweak the sounds/voices for every interaction.

And yes, it can also take into account whether an actor is wearing any gags, etc.

 

Anything you have ready for beta testing? I have enough time to run any amount of stress tests on it to look for glitches and weirdness

 

Link to comment

How does this thread isn't crowded by perverts sexlab enthusiasm? Imagine banging on the glass wall with the boob pressed on it... /gasm

 

Anyway, wish i could help but i get dizzy just seeing your progress report. Don't give up on this tho me and my "bro" will be cheering for you!

 

 

Come on peeps! Get this thread the attention its deserve, make it crowded so he'll feel guilty to stop or abandon this /joke :D

 

I dont post because, I CANNOT POST!!!

 

The Hype is ..... Thousand types more than the Hype for The Witcher 3 Is... I can only watch while being on the verge of ... climaxing (lets just say Orgasm)

 

This Thread is like having a Chastity belt with a device straped on you and you cant do anything until your master releases you from that pain.

 

I really hope this work Roggvir , I really AM.

 

I might not be able to help in any way but Know that I definitely am looking forward to this and wish you all the luck I can(with leaves me for a little bit of luck for me xD)

 

Looking forward for one day seeing Animations that use the wall or table and having sex while your character(if female) is pressed on the wall.

Link to comment

Nice to see there are still some people here interested in the project, cudos to you for your incredible patience.

 

 

 

Anything you have ready for beta testing? I have enough time to run any amount of stress tests on it to look for glitches and weirdness
 

Saddly not. There are still few features not even in Beta stage, namely at elast these:

  • The new "voice module"
    It's not a "module", but i just dont know how to call it, so lets call it that.
    As a fresh new feature its not yet 100% clear whether it will stay the way it is now, or need to be reworked, or god forbid maybe even ditched completely (i dont think so, but... who knows).
     
  • The "Furniture Scanner" script
    This is the script used to search for usable furniture in vicinity of player, or an NPC who decided to run a "lets-have-fun" package, enabling various player dialog choices to send NPCs in(/to) the furniture and choosing a furniture to use by those package running NPCs.
    Its something that MUST be redone, because as the number of usable furniture grows, it makes the script less and less efficient to a point when it start lagging too much, forcing the player to wait for several seconds after entering a new cell before the enabled dialog choices reflect the furniture around, and again after something changes (some of the furniture gets occupied).
    Also, it contains a major design flaw as it is scanning only in the cell the player or NPC is in, which especially in exterior cells can cause problems for any furniture placed in any neighboring cells - the furniture can be right next to where player/NPC is standing, but that can be already another cell and then the script doesn't detect such furniture at all.
    Truth is, its enough for testing other features, but i'd rather have at least a clear idea of how to rework it before i release anything - as much as i really really appreciate any help, i dont want anyone to waste their time testing something that may radically change in the immediate future and render previous testing mostly useless.
    I am thinking that maybe i could write a plugin for SKSE that could do this in a much more efficient way - but so far i didnt even do any research on that subject, so it is no more than a wishful thinking right now.
    Or, maybe i chose a wrong approach to this problem, and i should rethink the way how its done.
    Its high on my priority list.
     
  • NPC "fun" package, or main NPC-controller script
    A script making random NPCs engage in random interactions.
    I am still not sure whether to make it package based, or use some Quest script as a main controller.
    It shouldn't be a rocket science, but i didn't yet spent much time on this

 

Let me put it this way:
If you are desperate to see how it works, i might be willing to upload it somewhere, but that would be the current WIP version still full of dirty code, not much optimized, etc. (in other words a horrible thing to look at).

Also, its still dependent on some older versions of ZaZ anim pack, as i dont want to update anything while i am working on it, to avoid possible confusion caused by new/changed features - this way i know what to expect and where to look for the cause when something breaks.

So, to finally see SOMETHING, it may be ok, but its not to be used for any (stress)testing, or not even as a preview of what is comming.

I am afraid that anyone who would see it as it is right now, would get disapointed and loose their remaining faith in the project, and i really dont want to loose those 3 or 4 people who stop by from time to time to cheer me up :-)
 

In any case, i really appreciate the help, and as soon as i have something worth testing, you will find about it here (or otherwise, as i wrote above).

Link to comment

Oh, one thing i forgot to mention:

 

If its not obvious, i do welcome any help from any modder at least a bit experienced with scripting (dont be shy) - if anyone wants to take a look whether it would be worth their time, dont hesitate to contact me.

I am open to the possibility of taking advantage of any kind of online code repository and make it into a team effort, even if occasional, depending on what anyones time or whim allows - no restrictions there (after all, i am a busy person too).

Even an insight from another person could be helpfull, any pointers or ideas, even if only to prevent me to fall into some kind of tunnel vision.

Link to comment

So, wait. I may have misunderstood this mod - you're not building this mod to work with the great furniture animations available from the NSAP (non-sexlab animation pack), just ZAZ ones?

 

My main focus is to make it work with ZAZ anims, BUT...

it is modular, and can work with ANY animations.

 

The type of animations doesn't matter, because the core works the same regardless.

Basically, there are two types of animations:

- those utilizing furniture (for example the pillory sex anims in case of ZaZ, or Arrok's ledge/bed anims, etc.)

- and those NOT utilizing furniture (for example the Arrok's missionary, or cowgirl anims, that can work on the empty ground same as on bed).

The core of this mod is made to support both types.

 

As soon as the core mod is finished, i will start adding modules for various kinds of interactions/animations (as will be able to do anyone else).

As long as any animation is "in the game" so it can be played via the SendAnimationEvent, anyone can create a module utilizing such animations.

It doesn't even matter if the animation is registered with SexLab, or if you do have SexLab at all (but if you do, it may use some of its features).

 

A module is basically a set of scripts where you define a number of interactions, which individual animations are these interactions using and how they are put together, and whether they are bound to some specific type of furniture or not, and also a player dialog for initiating these interactions via player dialog choices.

Even the ZaZ animations that are supported by default by this mod, are implemented as a module extending the core mod.

Creating such module is rather easy, you just follow a step-by-step guide to make your own custom module in 10 minutes - but you wont have to, because even if i wouldn't make a module utlizing NSAP, i am sure somebody else will.

 

That being said, i do plan to also release modules with support for some of the major animation packs, but the specifics are yet to be determined.

Link to comment

Looking forward to this, Would really hope it only needs sexlab.esm though.

 

Out of curiosity and maybe it's an old question, but what's the biggest challenge with this mod?  I ask because obviously beds work (some do anyway) and the throne anims work perfectly if you sit in a chair beforehand or interrupt the scene and then do it.

Link to comment

Looking forward to this, Would really hope it only needs sexlab.esm though.

 

Out of curiosity and maybe it's an old question, but what's the biggest challenge with this mod?  I ask because obviously beds work (some do anyway) and the throne anims work perfectly if you sit in a chair beforehand or interrupt the scene and then do it.

 

Not even sexlab.esm is needed. I want to make it compatible with SexLab, make it possible to use some of its features, but as purely optional thing.

(current version has only one dependency and that is vanilla Skyrim with SKSE, and i want it to stay that way)

 

Biggest challenge?

To overcome the limitations of my mind :)

Seriously the most challenging thing for me is to overcome my perfectionist ideals, and my idea of clean and efficient code.

I often get ideas regarding various features or how to implement them, but in the end i always find that the implementation in CK/Papyrus is either impossible, or would be so ugly and dirty and inefficient that i often ditch the whole idea - and its very hard for me not to abandon such ideas and finish them knowing that the implementation is messy and well... too imperfect, and keep on my mind that what seems horrible to me, might still be welcomed by others, because they desperately want it.

I wanted to abandon this mod on several occasions already - notably when i stumbled upon that SetScale bug (which translates into "using SetScale causes CTDs and unless Bethesda fixes this bug, there is no way around it"), that was the worst moment, at that moment i totally understood the meaning of "Your resistance is futile, you will be assimilated" :)

Papyrus and the whole CK is the most horrible modding/developing tool i ever had the pain to work with (there are worse, but this one makes you think that things can be done, while in fact they cannot - and thats cruel! :)).

Sorry, i know thats not what you were asking...

 

Regarding the coding alone, the biggest challenge is to find the most efficient ways how to do things, and find your way around the limitations of Papyrus/CK.

There are many limitations and problems, so its hard to name one thing.

For example, right now i am struggling with the way how to animate the actors while making them play sounds that are also properly timed - there is no way to tie sounds to an animation.

So i am trying to find a way how to define a sequence of animations, while assigning some sounds to be played by each actor repeatedly after some timeout which is specific to each type of animation.

Problem is that due to various scripting lags, it may get out of sync, and with some fast animations its almost impossible to make those sounds play in the correct moment.

So, now i am redesigning this system, trying to find the best way that not only works without bringing your computer to its knees, but also allows for flexible definitions of animation sets, and is easy to use (so ppl. can easily define these anim sets in their interaction modules).

 

If it would be simply about making one actor sit on a chair etc., with another to sit on top, making them play some animations, this mod would be already finished a long time ago.

But its not just a chair, but a bench, a bed, slab, table, etc., all of them coming in several forms and sizes, then various custom furniture like ZaZ and what not.

Also, there are quite many animations, and everyone preffers different ones, so some setting flexibility and modular apporach is a must.

It is also meant to be used/initiated not only by player, but also NPCs whom i want to engage in provided activities on their own (if there is an opportunity, which can be completely scripted via custom quests, or just by simply placing some actor in some position/role).

It is also supposed to help other modders to craft specific scenes - for example, take some slaver or prostitution mods that are already out there - if they would be utilizing my mod (after it is released), they could easily trigger any activity for any actor via a simple function call, allowing those creators to focus on other things than scripting, they could just place some furniture like pillories, cages, etc. at the main plazza in Whiterun, place some actors for slaves, make a simple "quest" where they assign specific actors to various aliases (if they desire so), and the mod automatically takes care of the rest making all the actors behave according to their roles, while still allowing the modders to hand-craft anything by calling simple functions (IF they desire so).

 

SexLab already allows many features like that, but not all of them, and not in the way i intend.

Take some furniture animations for example - as far as i know, when you initiate such interactions via SexLab, what happens is that it "simply" starts playing some animations mostly where you or the other actor stands with no regards for your surrounding, making chairs and pillories appear from thin air (they appear because those objects are part of the animation), and i find all that a lot immersion breaking.

     With this framework, you tell (via dialogs, or it can be scripted in a quest) an NPC to "use" a furniture already existing in the world, they will walk to it, enter ir, or sit down, or lie on it, and then you walk to them and again via dialog you choose what you want to do and start doing it :)

NPCs are doing it the same way as the player, except for them it is not controlled via a dialog choices, but scripted (either via custom scripts, maybe quests that somebody made, or automatcially controlled by the framework - its making random NPCs engage in random interactions, depending on what and who is available in their immediate surrounding, and depending on the overall situation so not in combat, etc.) - you can order your follower to enter a pillory, and then you can wait, or go exploring the world, and when you come back, you may see a random NPC taking advantage of your defenseless follower, simmilar happens with beds and other furniture too (you might get home from your travels, and find Lydia in her room on her bed having fun with one of the gate guards, or Brenuin, or Ysolda, or whoever was nearby and decided they want some fun - of course, it will be possible to control these things so you can prevent them from happening, but right now the possibility is there without any control).

There are no visual glitches like furniture appearing out of nowhere (for the animations where some furniture is part of it, it still does appear, but you wont see it happening, because it happens on the same exact place where the REAL furniture is, so to your eyes nothing changes in the world).

NPCs alse behave in a more immersive way - they walk around around and enter the furniture (if there are such enter/exit animations), not just blink and snap onto it.

 

...sorry for such a wall of text

Link to comment

 

 there is no way to tie sounds to an animation.

 

 

Animations contain notes, these can be tracked (somehow).

You can add a note to a frame of the animation and later make it so that a sound is played every time this Note ( frame ) is "active".

Thats the way footstep sounds are always synced with the animation.

Link to comment

 

 

 there is no way to tie sounds to an animation.

 

 

Animations contain notes, these can be tracked (somehow).

You can add a note to a frame of the animation and later make it so that a sound is played every time this Note ( frame ) is "active".

Thats the way footstep sounds are always synced with the animation.

 

 

Interesting, so the game then play these sounds automatically? without need for any scripting?

And would i need to put there specific individual sounds (bad), or is it possible to use some kind of group of sounds and the game will choose randomly from that list? (good)

 

If its possible, i dont understand why nobody did that yet (or did someone?)

Link to comment

Progress report...

 

  • Good news, the new voice "module" is looking good.
    Inside the "interaction" flow definition, you can set what kind of topics will be used for individual actors during any stage, and how fast should the voice repeat if at all.
    So, for example we can have a foreplay during which actorA says something, then actorB responds with something, and then while advancing to the next stage we change their topics to moans, and after they are done they can say something again, etc.
    Theoreticaly it is even possible to have a real dialogue going on during any of the stages at any time - the topics and repeat timers for individual actors can be changed at any time (ifl defined in the "interaction" flow).
    You can make the actors switch topics corresponding with situation changes - like making them using topics with "pleasure" voiceovers while they are enjoying themselves, and switch to "pain" topics when it starts to hurt, or vice versa.

    This flexibility has only one limitation - for each actor, you can switch topic only 128 times due to limitation of array lengths, but since we're not making an interview cutscenes here, it should be more than enough.

    Performance-wise its also not bad, although as the number of ongoing acts grows, it can introduce some script lag (especially if the repeat timers are very short), but during my testing it wasn't much perceiveable until i had 6 or 8 actors (4x 1on1) interacting.

    I am really pleased that i found a way how to do this (although i'd still prefer if it would be possible to use some hardcoded ingame mechanics - like the "hit" dialogue topics i am using during whipping scenes, when the game makes the actors cry and moan automatically because they got hit by a "weapon" while using a specially crafted dialogue topics i made for this purpose).
    Now i need to make some more topics with voices categorized into different sets like subs/doms/painful/consensual/nonconsensual/whatever to fit different situations/interactions.

     
  • Oh, and i do have some bad news too...
    I am having strange crashes when exiting an interior cell while there is some "interaction" going on, and even sometimes when i use F5 to save the game.
    But i do not think its because of my mod and the changes i made recently - i dont see any reason why anything i changed or added should cause these crashes, but i also was messing around with some files and settings, maybe even updated some skeleton? dont remember exactly :(, so it may be just that - i'll know more once i reinstall/verify the game files.
Link to comment

Progress report...

 

I isolated the cause of the recently introduced crashes when leaving a cell, or saving the game.

And i was wrong, it is because of the changes i made - the Say() i am using for those voices ...not sure if i can find a way around it.

First i thought maybe its because my subsequent calls to Say() are too fast, calling the next Say() before the last one even finished, but the issue persists even after forcing 5 second repeat timeouts (none of the used sounds is longer than 1.5 seconds, and only one is that long and it wasnt even used when majority of the crashes happened).

 

Its just the mater of saving game or leaving cell in the exact moment when "something" is happening - seems like right after the sound is played (but i am guessing here, its hard to say).

This is really bad, right now i dont even have a clue what to try to fix this.

Maybe i should focus again on finding a way how to make the game play those sounds without using Say(), like with the voices actors play when "hit", but i am currently out of ideas.

Link to comment

Progress report...

 

GOOD NEWS

So, i ditched the Say() command and i am using ProcessTrapHit() instead to create a "hit" event on the actor.

The hardcoded ingame mechanic then makes the actors moan/grunt/complain like when they get hit with a weapon (or trap :)).

 

Now i need to devise a way how to select particular voice topic, because i cant tell the game which one to use like i could with Say().

The obvious solution seems to be using keywords as dialog conditions, and instead of specifying a topic in the "interaction" flow definition settings, i will specify which keywords should be set on the actors.

...although i dont like that too much, it adds stuff that wasnt neccessary before, and i also need to move all the topic infos back into those special combat\hit categories, so maybe i'll think if i can find simpler way than juggling with keywords and adding conditions for dialogs.

Anyway, regardless of the way i choose, it will work.

Link to comment

Just wondering, would your framework be capable of scanning for furniture belonging to a npc and instructing it to use it with sexlab scripts.

Additionally can it scan for said furniture (preferably to those that is own by the targeted npc) that is not in the current cell. 

I was just wondering what is the possiblity that the mod sexlab sexlife can use your framework to direct npc-npc approaches to use furniture in their own home or in a nearby inn while they are wondering outside in the exterior. (etc at whiterun market, a script runs for nazeem and his wife to initiate a sex approach, after the ai - conversation kicks in and ends, your package kicks in to find a suitable private location such as the inn nazeem sleeps in to carry out sex)

Link to comment

Just wondering, would your framework be capable of scanning for furniture belonging to a npc and instructing it to use it with sexlab scripts.

 

Additionally can it scan for said furniture (preferably to those that is own by the targeted npc) that is not in the current cell. 

 

I was just wondering what is the possiblity that the mod sexlab sexlife can use your framework to direct npc-npc approaches to use furniture in their own home or in a nearby inn while they are wondering outside in the exterior. (etc at whiterun market, a script runs for nazeem and his wife to initiate a sex approach, after the ai - conversation kicks in and ends, your package kicks in to find a suitable private location such as the inn nazeem sleeps in to carry out sex)

 

Not planning on doing all that you describe right now, but it sounds doable.

My framework provides simple functions to initiate some action between specific or random NPCs, including functions for finding furniture (although not in other cells yet, and without caring for ownership - but i do want to try to implement those things).

Then you can either use my framework to run some of the interaction it provides, or you can use any other means (ie. sexlab sexlife) to do whatever they can with that located furniture and actors.

So, in general... yeah, possible, with a high chance of realization.

But no promisses, because i still have a lot to do before the mod reaches something i would consider final state.

is this a collab or are you working alone on this mod?

 

Alone, unfortunately.

...that is if you don't count the occasional tips, advices, or a little bit of brainstorming provided by various ppl (mostly Zaz and Xaz).

 

Link to comment

Dont know whats happening... actors gets pushed around during some animations, NPCs not so much, but player almost always, and when they do not get pushed around, then the anims are always at least slightly misaligned.

And not because of any changes in the code, no changes in npc/player positioning functions, no changes in the selection or load order of mods i am using.

Papyrus is really trying my patience right now.

If i could somehow see what is going on, what is pushing those actors, and why player is affected the most.

...having a really bad day, sorry :)

Link to comment

Dont know whats happening... actors gets pushed around during some animations, NPCs not so much, but player almost always, and when they do not get pushed around, then the anims are always at least slightly misaligned.

And not because of any changes in the code, no changes in npc/player positioning functions, no changes in the selection or load order of mods i am using.

Papyrus is really trying my patience right now.

If i could somehow see what is going on, what is pushing those actors, and why player is affected the most.

...having a really bad day, sorry :)

Oh no. Hang in there!

Link to comment

Dont know whats happening... actors gets pushed around during some animations, NPCs not so much, but player almost always, and when they do not get pushed around, then the anims are always at least slightly misaligned.

And not because of any changes in the code, no changes in npc/player positioning functions, no changes in the selection or load order of mods i am using.

Papyrus is really trying my patience right now.

If i could somehow see what is going on, what is pushing those actors, and why player is affected the most.

...having a really bad day, sorry :)

 

sorry i dont have expirience is papyrus and my english is awful!

sometimes for screenshots i use posing like haloposer ore aloeposer!

sitting/leaning poses are very hard for me  becausese the furniture like a chair seems to has a different position as the poseposition of the character!

when i want to sit on a chair my chara dont gets near by like a invisible wall!

when i get on the furniture and activate the pose its functionally!

(maybe)Seems that every furniture  has an Radius in  X and Y that blocks the charakter to come near but for me only Z ankle works!

i must jump on it to get the pose or animation!

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • 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