Jump to content

[WIP] Furniture Interaction Framework - for NPCs and Player


Roggvir

Recommended Posts

Progress report...

 

Things done...

  • Rework old interactions
     
  • Implement some unusual kinds of interaction
    Added caning in pillory, works nice, cane leave marks on the body, actor reacts to the hits with its default voiced "ouch", "is that all you've got", "aaah", etc.
    I prefer that, rather than having the actor unnaturaly silent, but i suspect there will be problem when using any of the gags available out there - not sure if there is a way to prevent the actor from using these automated voiced responses when hit while being gagged.

 

Currently working on...

  • Misalignment fix
    Sometimes the interacting actors (not the one sitting in furniture) get misaligned a bit and i dont know why.
    Even though i am SetPosition-ing to correct coordinates, i am also usign SetVehicle to attach the actor to marker which seems to be on correct position, but still have various weird glitches like that.
    I really really hope this all hapens because i am doing something wrong, instead because of ...well, "Skyrim magic" (i guess i am starting to remember why i 'hate' modding Skyrim :)).
     
  • Reworking the way NPCs paths to destination
    Of course i am not working on a "pathfinding", as the title might suggest. I am just changing the way i use travel procedures and other things, so it will make NPC walk to the furniture and then i hope to use PathToReference() to makeNPC walk to a position marker i can then assign them to, instead of making the NPC walk to the furniture and then moving them into that marker position (of course i will still have to use move or translation, but it should look much better if the NPC would be already almost at the position instead of 1-2m away).
    Best solution seems to be, to prepare the position marker and somehow assign it to the NPC before it starts its travel/activate package, but i am not yet 100% sure how to do that (its complicated).
Link to comment

Progress report...

  • Unplanned rewrite of actor alias scripts - DONE
    It started as a minor polishing, but ended up in complete rewrite, and now it is better than before.
     
  • Realtime animation sets - DONE
    Since i am not using SexLab to animate the actors, i dont need to register my animations with it.
    So, i am building an animation set every time an interaction is going to run, and it allows for some simple yet nice features like added randomization.
    Not only i can randomize the animation set while building it (using random number of animations, or randomly chosen animations), but i can also set some simple "command" for any animation stage, allowing me to jump to certain animation in the set, or random one, or make last X anims repeat Y times, etc.
    So, every interaction is different - if you put several NPCs next to each other and make them start same interactions at the same time, they wont animate the same way.
    TODO: add means of using hotkeys to go forward / backward in currently played animation set.
     
  • Smoother transition from travel to interaction - WIP
    The idea is to make the NPC walk to furniture using travel procedure of its AI package at first, but when it gets close to the funriture, script will take over and make it walk few more steps into the exact spot where they need to be for the animation - possibly removing any "blinking" into the position, or at least minimizing it.
    Still a work in progress, but it seems it will work quite well.
     
  • Fix broken animation sequencing on first loading of a save - WIP
    I think its because the saved and loaded value of animation timeout, of the currently played animation.
    Because when we saved the game, we were playing for XX minutes, thus the saved value of current anim timeout is (XX minutes + anim timeout), but we just started Skyrim again and loaded the save, thus playing for no more than maybe few seconds - a looong way to go to that XX minutes timeout.
    So, i just need to readjust timeouts of all animations in progress on every game load, not a big deal.
     
  • Misalignment fix - WIP
    It seems it happens with player much more often than with NPCs. Still no clue what could be causing this, maybe some collision problems?
    Also, sometimes when positioning player for pillorysex anim, the player is suddenly thrown dozens of meters into the air, only to fall back down and end up on a position usually 2m off where he should be.
    Could have maybe something to do with the dynamic markers i am using to SetVehicle() actors to.
    Well, it wasn't happening before i started using markers, so... it has to be connected (but lots of the code also changed since then, so it may be just that).
Link to comment

Hey, I'm glad to see someone had the same idea that I had when I started playing the Player Succubus Quest mod. In the mod it allows you to "feed" of sleeping NPCs (kinda of like the way vampires do, but with sex) but unfortunately, the animation can't just have the sleeping male NPC roll over and allow you Succubus to give him a blow job while he lay in the bed. He has to get up and stand there and it kinda ruined the whole "while he's sleeping" thing.

 

Hopefully this framework will allow for animation like that.

 

Keep up the good work!

Link to comment

Hey, I'm glad to see someone had the same idea that I had when I started playing the Player Succubus Quest mod. In the mod it allows you to "feed" of sleeping NPCs (kinda of like the way vampires do, but with sex) but unfortunately, the animation can't just have the sleeping male NPC roll over and allow you Succubus to give him a blow job while he lay in the bed. He has to get up and stand there and it kinda ruined the whole "while he's sleeping" thing.

 

Hopefully this framework will allow for animation like that.

 

Keep up the good work!

 

I don't really know (because with Skyrim you never know anything, until you try), but it sounds possible..ish

I presume that sleeping character can still play animations - after all, thats what he is doing when he is "sleeping".

Yeah, the more i think about it, the more i believe it possible.

 

Currently trying to improve the pathing script (works nice, except when i am sending NPC to reference, i cannot set completion radius, so they sometimes still try to walk like into the furniture before they stop - i think i might have a way to work around that),

but once i get back to working on interactions again, i think it would be time to try also some casual furniture like beds and chairs, so i might as well try this too.

 

Link to comment

i am just a user with very Little knowledge of the ck and no knowledge in programming and Scripting at all. but i have a very sensitive mood about what is worth to spend time for and what not. and i can say, that very little to nothing in LL works in a 220 hours full skyrim gameplay.  getting something or anything to work is a huge sucess. make it in a way it can easily be used without sucking game resources would be a wonder.

 

about zaz furnitures : they are my favorite since their first publishing on Nexus years ago. but there was never one mod that uses them.

prison overhaul struggled around with the pillory for two years, actually stuck with the whip damage

sanguine debuggery takes them in and out of the mod

mias lair has four of them in the dungeon, one never used, other three mostly incorrect postition to player

wolfsclub, if anything can be seen on screen at all, pushes player out of x cross with every hit of the whip

Display model works perfect on followers and npcs, but there is no Action with it

 

if your aim is to debug the furnitures and makes them easy to use in ck, that is a perfect goal

if your knowledge is so high that you can do that i call you strongly to add a bdsm matchmaker to your Framework, so that it can be used right away.

my attempts to get the zaz Team to do such a minimod to activate their devices was repeatedly without sucess. they dont do it.

 

i tell you :  if you dont do a mini mod that brings your framework into the game, your work is wasted because nobody will use it or use it correctly.

i am watching bdsm mods about two years now. i know what i am talking about. there is not one usable bdsm mod involving the player !

Link to comment

Well, i wouldn't say i am not struggling at times, and i wont deny that i often get soooo pissed off by how difficult everything is in CK/papyrus (last time was yesterday :-)), but it really seem doable.

As for ZaZ team, i was lately discussing some things with Zaz, and he was very kind, went a long way trying to help me with some of the issues i was facing, and i believe he is trying to fix and improve whatever he can.

From what i understood, most of the furniture was made to be used mostly just as a prop in animations, not as a real furniture - and i think that may be the core of many of those problems you mentioned (that, and i do think in some cases its also the scripting that should take the blame - although, i wouldn't really dare to "blame" anyone, knowing how difficult everything is with Papyrus and CK).

I didnt yet tested all furniture, but i dont expect many problems - those i had were mostly caused by having the sit marker inside or behind the collision geometry, which then either prevents NPCs to find a path to such object, or makes them do that annoying walk-on-the-spot dance - and i think Zaz found solution, although i am afraid i remember him saying it may require him to rework many animations, so i am not sure.

Anyway, in the worst case, i am able to work around these issues, it just wont be that smooth and pretty as i hoped :(

Let's just hope Zaz wont give up on us :)

 

As for the mini mod...

I do plan to include a minimod with the framework. It is actually part of the framework from the start - it will provide the "default" interactions with the "default" furniture, and serve as an example on how to create plugins adding support for other furniture and more interactions.

I just make it so ppl can disable it, or some of its parts (dialogues, etc.) if they dont want it.

 

What do you mean by "bdsm matchmaker to your Framework" ?

Is that some existing mod i should support? or are you describing some functionality my mod should provide?

Link to comment

Progress report...

 

  • Smoother transition from travel to interaction - DONE
    Works good, although still needs some work to make it perfect - the problem is that i can't specify the radius of the destination location, because in case of object reference (the furniutre) being the destination, the radius is calculated or set automatically, and its often quite small, so the destination coordinates are still too close to the center of furniture.
    So, i will get back to this later and try to find a way to make it perfect, but for now it works well enough.
     
  • Fix broken animation sequencing on first loading of a save - WIP
    Didnt even touched this issue yet, because i was preoccupied with other problems (this one is easy, so it can wait :)).
     
  • Misalignment fix - DONE
    It seems i figured it out, the game seem to be a bit picky when it comes to the order of some functions, or how fast you call them.
    Adding 0.2sec delay, and repeating some of them, seems to fix the problem.
     
  • CTD and Pure vritual function call errors - FIXED WIP
    A rather tricky issue that manifested two days ago. It seemed to happen almost randomly, and it took me quite some time to narrow it down and find the culprit - it was the SetScale() function itself.
    It seems it has something to do with calling Debug.SendAnimationEvent() which i am using to animate the actors, and when animation ends and i call SetScale() to reset actors to their original scale, the game crashes.
    I made a test, where i set the interactions to restart themselves at the end, effectively looping them indefinitely while counting how many were run, and the best result i got was 9 interactions before the game crashed.
    Then i commented out the SetScale() call, and suddenly no crashes - i left the game run for hour, making it perform several hundreds of interactions without a crash.
    With uncommenting that line again - crash on 6th interaction.
    Long story short: problem solved by adding Debug.SendAnimationEvent(actor, "IdleForceDefaultState") just before using SetScale().
    Thank you Papyrus, for another nice night spent by trying to fix one of your 'quirks'.
    EDIT: Issue appeared again, aparently just reseting anim with IdleForceDefaultState is not the solution.
    Does anybody know what is wrong with the SetScale() ???
Link to comment

There is definitely something wrong with SetScale()

Using vanilla game, no mods, no SKSE, just official DLCs and nothing else, plus a simple quest utilizing the following script

Scriptname RoggScaleTest extends Quest

event OnInit()
	RegisterForSingleUpdate(1)
endEvent

event OnUpdate()
	float i = 0.9
	while i < 1.1
		Game.GetPlayer().SetScale(i)
		i += 0.01
		Utility.Wait(0.1)
	endWhile
	RegisterForSingleUpdate(1)
endEvent

Start the game, switch to third person view (this is important, it seems the error happens only in third person view), and wait for the crash (it happens in seconds, if not immediately).

Link to comment

Aight , After Really Messing around in Quite a Bit in Blender , Max and the CK ,right  Editing the Furniture Nif , Animations and some Ck Bits , Furniture works as it should perfectly , it works so well that I can use the default follower commands to make the hop on into the exact position without additional scripts there is no sliding at all , they dont bump into the collisions like they did before , the pathing is smooth and they will play the the enter animations and get on to the furniture like they should 

 

The thing is NPCs  are  a bit finicky about the space and collision , The will walk all the way up to 0,0,0 of the furnture's nif to get in position and start the animations , they will turn auto and get in position and trigger the enter animations leading up to the loop and exit with the designated exit animations

 

What does this mean for ZAP , it means that the Nifs and Animations need to be altered to make sure all furniture work that way , there are more than 20 furnitures and quite a lot of animations that need to be changed for this  work . Its not tedious work , but exporting and converting is a bummer with a small nif fixes involved , that being said I have begun to work on the furniture by moving them out of 0,0,0 and a little behind or forward 

 

Its a slow process but can be done I do have some time this weekend so will get to work on it and lets see how many I can fix 

 

Cheers

Link to comment

 

 

Aight , After Really Messing around in Quite a Bit in Blender , Max and the CK ,right  Editing the Furniture Nif , Animations and some Ck Bits , Furniture works as it should perfectly , it works so well that I can use the default follower commands to make the hop on into the exact position without additional scripts there is no sliding at all , they dont bump into the collisions like they did before , the pathing is smooth and they will play the the enter animations and get on to the furniture like they should 

 

The thing is NPCs  are  a bit finicky about the space and collision , The will walk all the way up to 0,0,0 of the furnture's nif to get in position and start the animations , they will turn auto and get in position and trigger the enter animations leading up to the loop and exit with the designated exit animations

 

What does this mean for ZAP , it means that the Nifs and Animations need to be altered to make sure all furniture work that way , there are more than 20 furnitures and quite a lot of animations that need to be changed for this  work . Its not tedious work , but exporting and converting is a bummer with a small nif fixes involved , that being said I have begun to work on the furniture by moving them out of 0,0,0 and a little behind or forward 

 

Its a slow process but can be done I do have some time this weekend so will get to work on it and lets see how many I can fix 

 

Cheers

 

 

That's wonderful news!
 

Link to comment

Regarding my problems with SetScale, obviously it is a well known fact that this function causes crashes when called subsequently with a very little delay.

So, i guess i cannot use my test to find the solution.

 

But during normal circumstances, there is always at least 30 seconds before i call SetScale again (first call is at interaction start, second is after interaction ends, and the shortest interaction i have, takes 30 seconds).

Also, it never crashes on the call at the interaction start (even when repeating interaction, thus making the first call ...well, not the first anymore).

If it crashes, then it is allways during the call after interaction end.

Plus, it seems i have to be in third person view for the crash to happen - but i should test this more thoroughly, it could be still just a coincidence.

 

I must be doing something wrong, noone else has this problem.

Link to comment

Progress report...

 

  • Fix broken animation sequencing on first loading of a save - WIP
    Still avoiding this, saving it for later, using "more important" things as an excuse :).
     
  • CTD and Pure vritual function call errors - FIXED ?
    I restructured some bits of the code around the SetScale() and now the problem is gone.
    And if it is really gone, i dont know what fixed it.
    Anyway, since i am unable to replicate it now, i consider it fixed.
     
  • Animated reaction to hits for whipping/caning interactions - NEW
    Now it is possible to define set of "on-hit" animations for individual furniture.
    When actor in furniture is hit, he'll play random animation from this set for a very short time.
    Much better than before, when it felt like hiting a concrete statue.
    (Now if only we had more and proper animations made for this purpose)
     
  • Repurposing vanilla voices to fit various interactions - WIP (active)
    The game contains many useful sounds, originally used for things like breathing, grunting when hit during combat, whining during bleedout, taunts, etc., and i am trying to use them as sounds for/during interactions.
    Just finished a proof of concept for caning interaction, using various vanilla combat/bleedout/flee screams, grunts and pleas, and it sounds surprisingly well.
    I like it, because the voices are consistent with how the NPCs and followers normally talks in the game, and the game takes care of playing these sounds automatically, because i put them into a high priority "Hit" category of Combat section of a new dialogue addon so it overrides default combat voices for any actor currently in furniture.
    Of course, its that easy only because "caning interaction" is based on game's native combat mechanics.
    I still need to figure out how to make this work for any sex anims, but i think i'll find some way (maybe using combat again, but with continuously damaging spells that have no visual effects? or something else, whatever. And of course sounds on a different dialog according to the type of interaction).
    I can even make different sound sets (dialogues) depending on various conditions - wearing a gag? no problem, the character will be limited to some inarticulate sounds. And if somebody doesn't like it, he can just remove the particular dialogue addon, or switch it for a different version.
    Currently working on how to use this approach with some kind of breathing sounds for normal and rough sex interactions.

 

I feel like i finally made some real progress :)

Link to comment

Progress report...

 

  • Fix broken animation sequencing on first loading of a save - WIP (on hold)
     
  • Repurposing vanilla voices to fit various interactions - WIP (on hold)
     
  • SetScale problems are back :( - WIP (on hold)
    Had several of these crashes since my lasst post - so far it happened only for player, and only in third person view, so maybe i will be able to somehow minimize the risk by forcing first person (if thats possible) durign the run of the scaling function, or just by not scaling the actor if it is player.
    Still, its incredibly annoying, so i am taking a short break and going to the woods to scream my lungs off about how i hate Papyrus.
     
  • Support for HDT High Heels - WIP (active)
    Original scripts, made by the creator of HDT High Heels, are switching the effect off/on when the character sits/leaves furniture, but that doesn't work here, because animating the actors breaks the "sitting" state of the one in furniture (making the orignal script's OnGetUp event handler switch the effect back ON).
    So, i need some way to manualy disable/enable the effect whenever i want, regardless of sitting state, or anything else.
    I was thinking of removing the spell and adding it back, but problem is with the "adding back" part
    I have no way of telling if i actually should add it back! What if player removes the shoes, or something makes the actor to take them off?
    Then i would be adding the spell back even if the character is not wearing any kind of high heels anymore.
    The only thing that i could MAYBE use to detect if the actor is wearing any high heels, would be to somehow detect if the worn shoes/whatever has the original "hdtHighHeelShoes.psc" script attached - i thought maybe doing something like:
    form shoes = actor.GetWornForm(0x00000080) as form
    hdtHighHeelShoes shoesScript = shoes as hdtHighHeelShoes
    if shoesScript
       ...
    endif
    
    ...but of course it doesn't work. I wish they would use some keyword on the shoes form, to mark them as "high heels", but unfortunately this doesnt seem to be a common practice.
    Any ideas? ...isn't there any scripting guru reading this? :)

EDIT: obviously, removed shoes are no problem, but if they get replaced by some normal shoes - then i am unable to tell whether to add the spell back.

 

Link to comment

Progress report...

  • Fix broken animation sequencing on first loading of a save - WIP (on hold)
     
  • Repurposing vanilla voices to fit various interactions - WIP (on hold)
     
  • SetScale problems are back :( - WIP (on hold)
     
  • Support for HDT High Heels - DONE
    Unfortunately, i had to make a replacement for the original hdtHighHeelEffect script, there just wasn't any other way to do it.
    Now i just hope that HydrogensaysHDT, the maker of HdtHighHeels, won't have anything against it (or even better - if he would implement his own, more efficient solution).
    I sent him a message, hopefully he's still around.
     
  • Handling NPC outfits - WIP (active)
    In order to allow the player to remove individual armor items from NPC, i have to transform the outfit an NPC is wearing into individual items, then remove the outfit and equip those items.
    I made it so it happens automatically once the actor "sits" in the furniture.
    So far so good, except for a minor visual annoyance consisting of the NPC being naked for a split second, until the individual items are equipped after the outfit was removed. I am trying to find a way to prevent that from happening, but i fear it is not possible.
    EDIT: i could do it right before opening the inventory menu, it wont remove the visual "glitch", but that way it should be the least disturbing.
Link to comment

Hey ,

I have moved/remade about 60% of the animations in Blender , all that remains is the baking and exporting of said animations and finally the CK changes if all goes well a beta will be ready by this weekend for most modders to test and adjust the Furniture positions

 

While in there some of the furniture nifs got some Fixes to their uv maps and look a bit better 

 

Cheers 

 

PS

 

    SetScale problems are back  :( - WIP (on hold)

 

 

Whats the issue ?

I think there is a way to scale actors when entering certain types of furniture , the function is called Racetoscale or sumthing 

there are a few Furniture that apply this 

Check out the PrisonerCarriage Furniture ( the one used for Fast Travel out side cities ) I think the driver uses that , I may implement it if works as intended for All ZaZ Furniture Items 

 

 

Link to comment

Hey ,

I have moved/remade about 60% of the animations in Blender , all that remains is the baking and exporting of said animations and finally the CK changes if all goes well a beta will be ready by this weekend for most modders to test and adjust the Furniture positions

 

While in there some of the furniture nifs got some Fixes to their uv maps and look a bit better 

 

Cheers 

 

Brilliant! I really needed to hear some good news :)

Thank you, i am looking forward to it.

Link to comment
    SetScale problems are back  :( - WIP (on hold)

 

 

Whats the issue ?

I think there is a way to scale actors when entering certain types of furniture , the function is called Racetoscale or sumthing 

there are a few Furniture that apply this 

Check out the PrisonerCarriage Furniture ( the one used for Fast Travel out side cities ) I think the driver uses that , I may implement it if works as intended for All ZaZ Furniture Items 

 

The issue is that using SetScale (on player, and maybe only in thirdperson view) sometimes causes CTD due to "pure virtual function call error".

I need to test it more thoroughly to make sure if it really happens only for player, and only in thirdperson view - then i could probably make my way around it by temporarily forcing first person before calling SetScale on player (could be annoying for the player, but better than CTD).

 

Anyway, thanks for the tip, i will surely check out that function, maybe it will help.

Link to comment
Whats the issue ?

I think there is a way to scale actors when entering certain types of furniture , the function is called Racetoscale or sumthing 

there are a few Furniture that apply this 

Check out the PrisonerCarriage Furniture ( the one used for Fast Travel out side cities ) I think the driver uses that , I may implement it if works as intended for All ZaZ Furniture Items 

 

I couldn't find any such function in the CarriageSystemScript.psc, nor any other scripts (although i didnt exported ALL of them)  - would be nice if you could point me in the right direction.

 

But i also found, that many scripts are using SetScale(), even butterflies and moths and other critters probably too.

If those CTDs i am experiencing, would be just due to buggy SetScale(), they would have to happen a lot also whenever you are running around catching butterflies.

So, it must be a combination of SetScale() with something else done on the same actor.

      I went through my scripts, looking for anything worth noticing, and one thing caught my eye - when i am normalizing actor's scale, i do that in a function in the acotr alias script, right before i start animating the actor, which is done on the thread script via SendAnimationEvent(), and it could be possible that sometimes the thread might be already calling SendAnimationEvent() while the the actor alias script is just calling SetScale(), or vice versa, and MAYBE the game doesnt like that for some reason.

...of course, i might be completely wrong, but it seem to be worth looking into it - i will do some tests later and see what i can see.

 

EDIT: Aaaand yes, i was wrong, it has NOTHING to do with SendAnimationEvent() - i commented out all calls to it, and it still crashes on the SetScale()

I even added 0.2 sec pauses before and after every GetScale() and SetScale() - lets make that 2seconds, just to see if it makes any difference.

Link to comment

 

Whats the issue ?

I think there is a way to scale actors when entering certain types of furniture , the function is called Racetoscale or sumthing 

there are a few Furniture that apply this 

Check out the PrisonerCarriage Furniture ( the one used for Fast Travel out side cities ) I think the driver uses that , I may implement it if works as intended for All ZaZ Furniture Items 

 

I couldn't find any such function in the CarriageSystemScript.psc, nor any other scripts (although i didnt exported ALL of them)  - would be nice if you could point me in the right direction.

 

But i also found, that many scripts are using SetScale(), even butterflies and moths and other critters probably too.

If those CTDs i am experiencing, would be just due to buggy SetScale(), they would have to happen a lot also whenever you are running around catching butterflies.

So, it must be a combination of SetScale() with something else done on the same actor.

      I went through my scripts, looking for anything worth noticing, and one thing caught my eye - when i am normalizing actor's scale, i do that in a function in the acotr alias script, right before i start animating the actor, which is done on the thread script via SendAnimationEvent(), and it could be possible that sometimes the thread might be already calling SendAnimationEvent() while the the actor alias script is just calling SetScale(), or vice versa, and MAYBE the game doesnt like that for some reason.

...of course, i might be completely wrong, but it seem to be worth looking into it - i will do some tests later and see what i can see.

 

EDIT: Aaaand yes, i was wrong, it has NOTHING to do with SendAnimationEvent() - i commented out all calls to it, and it still crashes on the SetScale()

I even added 0.2 sec pauses before and after every GetScale() and SetScale() - lets make that 2seconds, just to see if it makes any difference.

 

Best would be to wait it out and see if the engine can handle the racetoscale function ,

its called set racetoscale 

 

I think they are used in the crafting stations as well  

Link to comment

 

 

Whats the issue ?

I think there is a way to scale actors when entering certain types of furniture , the function is called Racetoscale or sumthing 

there are a few Furniture that apply this 

Check out the PrisonerCarriage Furniture ( the one used for Fast Travel out side cities ) I think the driver uses that , I may implement it if works as intended for All ZaZ Furniture Items 

 

I couldn't find any such function in the CarriageSystemScript.psc, nor any other scripts (although i didnt exported ALL of them)  - would be nice if you could point me in the right direction.

 

But i also found, that many scripts are using SetScale(), even butterflies and moths and other critters probably too.

If those CTDs i am experiencing, would be just due to buggy SetScale(), they would have to happen a lot also whenever you are running around catching butterflies.

So, it must be a combination of SetScale() with something else done on the same actor.

      I went through my scripts, looking for anything worth noticing, and one thing caught my eye - when i am normalizing actor's scale, i do that in a function in the acotr alias script, right before i start animating the actor, which is done on the thread script via SendAnimationEvent(), and it could be possible that sometimes the thread might be already calling SendAnimationEvent() while the the actor alias script is just calling SetScale(), or vice versa, and MAYBE the game doesnt like that for some reason.

...of course, i might be completely wrong, but it seem to be worth looking into it - i will do some tests later and see what i can see.

 

EDIT: Aaaand yes, i was wrong, it has NOTHING to do with SendAnimationEvent() - i commented out all calls to it, and it still crashes on the SetScale()

I even added 0.2 sec pauses before and after every GetScale() and SetScale() - lets make that 2seconds, just to see if it makes any difference.

 

 

Best would be to wait it out and see if the engine can handle the racetoscale function ,

its called set racetoscale 

 

I think they are used in the crafting stations as well  

 

 

Aha, its a keyword "RaceToScale", when added to a furniture (or animation too?), the game somehow scales the actor (i presume) - the question is HOW, if its something hardcoded and not available through a function i could use, then its no use to me i think.

It also isn't anything that would be causing my problem, because the crash happens when scaling the other actor, not the one in furniture (the one in furniture is scaled too, but just once prior entering the furniture, and then once when being released, which at least during my tests doesnt happen too often - probably too few occurences to make the 'bug' manifest),

and as i commented out all SAE calls, it cannot interfere IF it would be set on the animation (asuming the standing idle anim doesn't have this keyword).

 

In the meantime, i tried another test, raising the delays between subsequent Get/SetScale() to "ridiculous" 2 seconds - didnt helped at all, still crash after several interactions (ie. dozens of calls to Get/SetScale).

I will try to find if some other function i use can be the cause of the crash (things like SetRestrained, SetVehicle, SetDontMove, etc. - maybe SetScale doesnt like the actor to be in some of these states, or on the contrary, setting some of these states might help).

Link to comment

I hope i wont jinx it, but i think i might be on to something...

It seems that the problem with SetScale is somehow related to either 3D data, or collision geometry, or some physics state, or animations state, hard to say, but it sounds logical (still, its a bug nonetheless).

So i am trying to call various functions just before every SetScale, currently i am testing the following sequence:

actorB.PushActorAway(actorB, 1.0)
Utility.Wait(0.1)
actorB.SetScale(f)

...and apart from the fact that its really funny to watch how actorB is thrown on his ass again and again, i am now at iteration #104, and still no crash.

Lets see how it goes, i am going to let it run for at least 30 minutes... wish me luck.

Link to comment

OK, by now it run iteration # 221, without crashing.

I need to run some more control tests to make 1000000% sure this wasn't just a coincidence.

And if it wasn't, then i need to find a low enough number for the PushActorAway impulse so it wont really move the actor, yet still worked to reset whatever it is resetting and still prevent SetScale() from crashing.

(and i hope, maybe someone will find a better way than using PushActorAway, but back to testing...)

 

EDIT: unfortunately, even setting the force to 0.000001 or 0.0 still knocks the actor on his ass.

So, what else could be used to "fix" SetScale? what does PushActorAway do to help prevent the crash? i am afraid nobody knows :(

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