Wolfguard21st Posted November 29, 2019 Posted November 29, 2019 Just took the book in the forbidden bookcase, but I'm missing some devices in the forge like the BB yoke, do I need to do the quest? or is there another tome
skoomaboi Posted November 29, 2019 Posted November 29, 2019 I'm having a problem regarding about npcs, when i put a armbinder on them, the animation works, but if we fast travel, the npc doesn't do the armbinder animation and their hands are invisible, is there a solution to this aside from reequipping it on the npc? I don't think this is a problem regarding me forgetting to run FNIS or fixing my load order with LOOT, if there isn't a solution, is there atleast a mod out there that allows me to manually refresh a npc's animation to potentially fix their animation not working?
worik Posted November 29, 2019 Posted November 29, 2019 Possible minor bug report While wearing a DD armbinder, the animation selection came up with a stupid and immersion breaking animation. Matching and immersive animations would have been available and possible. No further harm was done Current official DD versions, current version of Laura's Bondage Shop which provided the trigger for the scene. It appears the DD animation filter might be flawed in newer DD versions (> 4.2) ? Original reference post with more details and follow up posts:
DeWired Posted November 30, 2019 Posted November 30, 2019 On 11/29/2019 at 8:02 PM, worik said: Possible minor bug report While wearing a DD armbinder, the animation selection came up with a stupid and immersion breaking animation. Matching and immersive animations would have been available and possible. No further harm was done Current official DD versions, current version of Laura's Bondage Shop which provided the trigger for the scene. It appears the DD animation filter might be flawed in newer DD versions (> 4.2) ? Original reference post with more details and follow up posts: You know what? You are right. This is function definition to select valid animations sslBaseAnimation[] function SelectValidAnimations(sslThreadController Controller, int count, sslBaseAnimation previousAnim, bool usingArmbinder, bool usingYoke, bool HasBoundActors, bool forceaggressive, bool permitOral, bool permitVaginal, bool permitAnal, bool permitBoobs) And there are it's uses: sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, false, false, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) anims = SelectValidAnimations(Controller, i, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) Notice anything funny? Right, arguments are shuffled around, so usingArmbinder is always end up with "false". So - fix is needed. I'll try to do it tomorrow... 3
worik Posted November 30, 2019 Posted November 30, 2019 24 minutes ago, DeWired said: Notice anything funny? I am not that good at reading those scripts (yet) . Just for my personal understanding: Is it that the variable "UsingArmbinder" and all others are at the wrng positon because of e.g. this "false" in the wrong position here : 24 minutes ago, DeWired said: anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, UsingArmbinder, ... ? Using Armbinder should be the 4th variable, not the 5th , right? I'm still learning
UnEvenSteven Posted November 30, 2019 Posted November 30, 2019 24 minutes ago, DeWired said: You know what? You are right. This is function definition to select valid animations And there are it's uses: Notice anything funny? Right, arguments are shuffled around, so usingArmbinder is always end up with "false". So - fix is needed. I'll try to do it tomorrow... You may also want to take a look at the arguments for the Pet Suit as well, they haven't been working right either in 4.3a. The Yoke animations seem to work fine for me with 4.3a but wouldn't hurt to take a look if you don't mind. Thanks for looking in to this, DeWired.
pnutz78 Posted December 1, 2019 Posted December 1, 2019 Hi everyone, I recently noted an issue with armbinder and extreme hobble dress animations. Initially the devices get applied correctly: hobble dress pose and armbinder pose work- when I walk around and struggle restricted movement animations also work correctly, arms are in the armbinder. After about 20 seconds though my arms pop out of the armbinder (invisble hands) and instead the hoble dress pose and the restricted step animations disappear. I assume this is an issue with DDI- I am using version 4.3a btw. This behavior can be almost immediately triggered when I walk through a door and load new cells. Any guidance would be very much appreciated.
AtackHelicopter Posted December 1, 2019 Posted December 1, 2019 How soon bug fixes are coming for DD?
AtackHelicopter Posted December 1, 2019 Posted December 1, 2019 On 11/28/2019 at 11:04 PM, AtackHelicopter said: Hej, i've got a problem with gags. When i am equiping ANY gags they are working good at first 2-3 seconds, after mouth is closing... Unequip and equip works from time to time. Sometimes mouth just randomly closes itself after beeing open for more than 2 minuts while gagged... Tested both with or without gag fix plus new saves! All mods are updated to the last versions. Cbbe hdt body is used (if it does matter). Sorry for being ununderstandable, england is not my city... LOOt is used, reinstalled all mods- did not help Plz hjälp, somebody
DeWired Posted December 1, 2019 Posted December 1, 2019 On 12/1/2019 at 12:40 AM, UnEvenSteven said: You may also want to take a look at the arguments for the Pet Suit as well, they haven't been working right either in 4.3a. The Yoke animations seem to work fine for me with 4.3a but wouldn't hurt to take a look if you don't mind. Thanks for looking in to this, DeWired. First of all - I'm in no way a professional, I've learned about existence of Papyrus two month ago, and I still doesn't understand in full how DeviousDevices framework works. But I can spot things which are definitely wrong, such as this argument incostistency. So, take my words with a grain of salt, and apply your thinking too - you may spot something that I don't. As I understand it, current realization of animation filter have a chance (meaning it's not failproof) of working only in case of having Yoke - otherwise, it doesn't even catch a fact that some of actors are bound. As such, it's very much possible that petsuits are fixed by this too. Second - I did a patch, did some testing - so far, armbinder results in armbinder animations, petsuit results in petsuit animations, except for ones initiated by devices - plug inflation, for example. So, not a problem of SL animation filter, at least. Oh, just remembered - there was a problem with petsuit animation when chain harness was also equipped - I will look at keywords, maybe it counts as HeavyBondage. Tried to upload it, but it seems we have an intermittent upload problem. So, for now - just a diff, for @Kimy to look into. Spoiler --- zadBQ00.psc.orig 2019-12-01 13:12:35.119113100 +0300 +++ zadBQ00.psc 2019-12-01 13:23:54.314165100 +0300 @@ -921,7 +921,7 @@ int currentActorCount = originalActors.length ; Let's try and see if we can get valid animations right here - sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) if anims.length <= 0 ; we didn't get a valid animation. Let's move the belted actors to solos. @@ -947,7 +947,7 @@ EndIf Endif libs.Log("Total actors: " + originalActors.length + ". Participating Actors: " + actors.length + ". Animation: " + previousAnim.name) - anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + anims = SelectValidAnimations(Controller, actors.length, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) EndIf if anims.length <= 0 @@ -980,7 +980,7 @@ while i >= 2 && anims.length==0 i -= 1 libs.Log("Reduced number of actors to " + i) - anims = SelectValidAnimations(Controller, i, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + anims = SelectValidAnimations(Controller, i, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) ;anims = SelectValidAnimations(Controller, i, previousAnim, false, false, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) EndWhile if anims.length >=1 UPD. Upload works! ? DDi_animfilter_patch_01122019.zip 3
Zaflis Posted December 2, 2019 Posted December 2, 2019 13 hours ago, AtackHelicopter said: Plz hjälp, somebody Which mod manager are you using, and did you verify that the old DD4.3a PEX file is overwritten with the bugfix i linked on the previous page? MO2 would show you this: (I can't upload image to post at the moment for some reason, site issues?)
t.ara Posted December 2, 2019 Posted December 2, 2019 4 hours ago, Zaflis said: (I can't upload image to post at the moment for some reason, site issues?) hi, i have same prob., since 48 hours?.....
Lupine00 Posted December 2, 2019 Posted December 2, 2019 Found a bug with harnesses. Some harnesses act as belts and have DeviousBelt keyword. Some do not. However, all harnesses block piercing add/remove. So when naive modder checks for belt keyword to see if PC can fit or remove piercings, it gets a wrong answer. I believe that harnesses without belt keyword should not block piercing add/remove.
AtackHelicopter Posted December 2, 2019 Posted December 2, 2019 8 hours ago, Zaflis said: Which mod manager are you using, and did you verify that the old DD4.3a PEX file is overwritten with the bugfix i linked on the previous page? MO2 would show you this: (I can't upload image to post at the moment for some reason, site issues?) I did use vortex, now I reinstalled skyrim and will try the mod organizer 2. Now i understand why mo2 should be used, THX 1
DeWired Posted December 2, 2019 Posted December 2, 2019 7 hours ago, Lupine00 said: Found a bug with harnesses. Some harnesses act as belts and have DeviousBelt keyword. Some do not. However, all harnesses block piercing add/remove. So when naive modder checks for belt keyword to see if PC can fit or remove piercings, it gets a wrong answer. I believe that harnesses without belt keyword should not block piercing add/remove. Did a test patch - you can try it.. DDi vaginalPiercing patch 02122019.zip UPD. So, I was so excited about working uploads that I rushed all that without proper explanations. Let's rectify that... As I read the code about Vaginal Piercing equipping, I found out that there are three places to block interaction. In two of them, checks were done like "Has belt keyword?", if no - go ahead with equipping, if yes - "Has harness keyword?" - if yes, it's belt harness, if no - it's simple belt. It was done to print a different messages in case of belts and harnesses. But in one place belt/harness check was done independently - and it was causing aforementioned bug. So, I redone this part to work the same way as other parts of this same file (basically, I think now it works as intended by developers). But as always, it's for @Kimy to decide. Oh, and one more thing - I do believe, that current unpatched code doesn't block piercing removal from under non-belt harnesses. It's only putting in that was blocked. Actual patch in spoiler, but it's also included in archive. No testing was done at all. As usual, be advised to take precations, make savegame backups and all that. Spoiler --- zadPiercingVaginalScript.psc.orig 2019-12-02 16:43:28.339918900 +0300 +++ zadPiercingVaginalScript.psc 2019-12-02 16:45:38.722282400 +0300 @@ -13,23 +13,20 @@ libs.Log("Avoiding FTM duplication bug (Vaginal Piercings).") return 0 EndIf - if akActor.WornHasKeyword(libs.zad_DeviousHarness) - if akActor == libs.PlayerRef && !silent - libs.NotifyActor(strFailEquipHarness, akActor, true) - ElseIf !silent - libs.NotifyActor("The harness " + akActor.GetLeveledActorBase().GetName() + " is wearing prevents you from inserting this piercing.", akActor, true) - EndIf - if !silent - return 2 - Else - return 0 - EndIf - Endif + if akActor.WornHasKeyword(libs.zad_DeviousBelt) - if akActor == libs.PlayerRef && !silent - libs.NotifyActor(strFailEquipBelt, akActor, true) - ElseIf !silent - libs.NotifyActor("The belt " + akActor.GetLeveledActorBase().GetName() + " is wearing prevents you from inserting this piercing.", akActor, true) + if akActor.WornHasKeyword(libs.zad_DeviousHarness) + if akActor == libs.PlayerRef && !silent + libs.NotifyActor(strFailEquipHarness, akActor, true) + ElseIf !silent + libs.NotifyActor("The harness " + akActor.GetLeveledActorBase().GetName() + " is wearing prevents you from inserting this piercing.", akActor, true) + EndIf + Else + if akActor == libs.PlayerRef && !silent + libs.NotifyActor(strFailEquipBelt, akActor, true) + ElseIf !silent + libs.NotifyActor("The belt " + akActor.GetLeveledActorBase().GetName() + " is wearing prevents you from inserting this piercing.", akActor, true) + EndIf EndIf if !silent return 2
UnEvenSteven Posted December 3, 2019 Posted December 3, 2019 On 12/1/2019 at 1:39 PM, DeWired said: First of all - I'm in no way a professional, I've learned about existence of Papyrus two month ago, and I still doesn't understand in full how DeviousDevices framework works. But I can spot things which are definitely wrong, such as this argument incostistency. So, take my words with a grain of salt, and apply your thinking too - you may spot something that I don't. As I understand it, current realization of animation filter have a chance (meaning it's not failproof) of working only in case of having Yoke - otherwise, it doesn't even catch a fact that some of actors are bound. As such, it's very much possible that petsuits are fixed by this too. Second - I did a patch, did some testing - so far, armbinder results in armbinder animations, petsuit results in petsuit animations, except for ones initiated by devices - plug inflation, for example. So, not a problem of SL animation filter, at least. Oh, just remembered - there was a problem with petsuit animation when chain harness was also equipped - I will look at keywords, maybe it counts as HeavyBondage. Tried to upload it, but it seems we have an intermittent upload problem. So, for now - just a diff, for @Kimy to look into. UPD. Upload works! ? I've tested the script you uploaded with scenes triggered by Match Maker, Eager NPCs, SL Survival and Devious Followers. Arm/Elbow/Rope Binders seem to work correctly now, all the scenes were using proper bound animations for the various binders. Had to test quite a few times as the bound animations are selected at random but I suppose the way the bound anim filter is setup scenes can't be changed on-the-fly like regular SL scenes can. Couldn't get the Pet Suit animations to work with aforementioned mods, though. My character wasn't wearing any other devices during testing. Still thanks for taking the time to look in to this issue and for the script fix. 1
DeWired Posted December 3, 2019 Posted December 3, 2019 2 hours ago, UnEvenSteven said: I've tested the script you uploaded with scenes triggered by Match Maker, Eager NPCs, SL Survival and Devious Followers. Arm/Elbow/Rope Binders seem to work correctly now, all the scenes were using proper bound animations for the various binders. Had to test quite a few times as the bound animations are selected at random but I suppose the way the bound anim filter is setup scenes can't be changed on-the-fly like regular SL scenes can. Couldn't get the Pet Suit animations to work with aforementioned mods, though. My character wasn't wearing any other devices during testing. Still thanks for taking the time to look in to this issue and for the script fix. Post a papyrus.log of petsuit tests, I'll try to look into it.
UnEvenSteven Posted December 3, 2019 Posted December 3, 2019 11 hours ago, DeWired said: Post a papyrus.log of petsuit tests, I'll try to look into it. Kept it simple for the log, only tested with Match Maker followed by Eager NPCs while wearing a Pet Suit. I have earlier logs posted here and here if that'll help, the first being from framework version 4.3a and the second from 4.3. Papyrus.0.log
AtackHelicopter Posted December 3, 2019 Posted December 3, 2019 On 12/2/2019 at 4:38 AM, Zaflis said: Which mod manager are you using, and did you verify that the old DD4.3a PEX file is overwritten with the bugfix i linked on the previous page? MO2 would show you this: (I can't upload image to post at the moment for some reason, site issues?) For now i installed all dd's and it's works just fine without any fixes, i'll test with other mods added
DeWired Posted December 4, 2019 Posted December 4, 2019 14 hours ago, UnEvenSteven said: Kept it simple for the log, only tested with Match Maker followed by Eager NPCs while wearing a Pet Suit. I have earlier logs posted here and here if that'll help, the first being from framework version 4.3a and the second from 4.3. Papyrus.0.log 50.11 kB · 1 download Okay, this is slightly more difficult. As is, it's less of coding error and more of logic gap between Armbinders/Yoke counting as Binding, and PetSuit.. not counting as Binding. I did an untested patch for that - now, anything with a keyword "HeavyBondage" must actually trigger Binding part of filter, even if it's not an Armbinder or Yoke. As always, exercise caution with testing, backup saves and all that ?DDi animfilter patch 04122019.zip Patch in spoiler, also in archive. Spoiler --- zadBQ00.psc.orig 2019-12-01 13:12:35.119113100 +0300 +++ zadBQ00.psc 2019-12-04 09:27:26.236790600 +0300 @@ -840,6 +840,7 @@ ;string[] ExtraTags = new String[12] bool UsingArmbinder = False bool UsingYoke = False + bool UsingHeavyBondage = False bool HasBoundActors = False i = originalActors.Length While i > 0 @@ -850,9 +851,10 @@ PermitOral = PermitOral && !IsBlockedOral(originalActors[i]) UsingArmbinder = UsingArmbinder || HasArmbinder(originalActors[i]) UsingYoke = UsingYoke || HasYoke(originalActors[i]) + UsingHeavyBondage = UsingHeavyBondage || HasHeavyBondage(originalActors[i]) HasBoundActors = HasBoundActors || libs.IsBound(originalActors[i]) EndWhile - Bool NoBindings = !UsingArmbinder && !UsingYoke + Bool NoBindings = !UsingArmbinder && !UsingYoke && !UsingHeavyBondage Bool IsCreatureAnim = previousAnim.HasTag("Creature") ; This step is needed, in order to determine if the prior animation is valid (Prevent replacing valid bound anims). @@ -890,6 +892,7 @@ StoreHeavyBondage(originalActors) UsingArmbinder = False UsingYoke = False + UsingHeavyBondage = False NoBindings = True EndIf @@ -921,7 +924,7 @@ int currentActorCount = originalActors.length ; Let's try and see if we can get valid animations right here - sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) if anims.length <= 0 ; we didn't get a valid animation. Let's move the belted actors to solos. @@ -947,7 +950,7 @@ EndIf Endif libs.Log("Total actors: " + originalActors.length + ". Participating Actors: " + actors.length + ". Animation: " + previousAnim.name) - anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + anims = SelectValidAnimations(Controller, actors.length, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) EndIf if anims.length <= 0 @@ -971,6 +974,7 @@ StoreHeavyBondage(originalActors) UsingArmbinder = False UsingYoke = False + UsingHeavyBondage = False HasBoundActors = False NoBindings = True anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, false, false, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) @@ -980,7 +984,7 @@ while i >= 2 && anims.length==0 i -= 1 libs.Log("Reduced number of actors to " + i) - anims = SelectValidAnimations(Controller, i, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + anims = SelectValidAnimations(Controller, i, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) ;anims = SelectValidAnimations(Controller, i, previousAnim, false, false, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) EndWhile if anims.length >=1 @@ -1084,6 +1088,10 @@ Return (akActor != None) && (akActor.WornHasKeyword(libs.zad_DeviousPetSuit)) EndFunction +Bool Function HasHeavyBondage(Actor akActor) + Return (akActor != None) && (akActor.WornHasKeyword(libs.zad_DeviousHeavyBondage)) +EndFunction + sslBaseAnimation[] Function GetSoloAnimations(Actor akActor) sslBaseAnimation[] soloAnims Bool bHasBelt = HasBelt(akActor) 1
UnEvenSteven Posted December 4, 2019 Posted December 4, 2019 11 hours ago, DeWired said: Okay, this is slightly more difficult. As is, it's less of coding error and more of logic gap between Armbinders/Yoke counting as Binding, and PetSuit.. not counting as Binding. I did an untested patch for that - now, anything with a keyword "HeavyBondage" must actually trigger Binding part of filter, even if it's not an Armbinder or Yoke. As always, exercise caution with testing, backup saves and all that ? Patch in spoiler, also in archive. Tried the latest patch and the Pet Suit animations are working again when triggered by MM and SLEN and Arm/Elbow/Rope Binders and Yokes continue to work as well. However sex scenes with Straitjackets are now broken, it only chooses solo animations for the PC and NPCs. Normally straitjackets use regular SexLab animations (or from SLAL packs) and have no special sex animations. Straitjackets do contain the "HeavyBondage" so I'm guessing the changes in the recent patch are having sex scenes with straitjackets try and find specific sex animations that don't exist for them. Also the bound sex animations for any heavy bondage device seem to ignore certain devices my character was wearing. I would still get oral animations despite wearing a gag or vaginal animations with a chastity belt. I can't remember if device blocking worked correctly in 4.2 for bound animations, I did try with the zadBQ00.pex script from 4.3a and device blocking didn't work either. It may not be working correctly or the bound anim filter just wasn't coded to detect devices that would normally block certain positions. Here's a log again where I tried straitjackets and attempts to wear gags and belts with armbinders. Papyrus.0.log
balth Posted December 5, 2019 Posted December 5, 2019 On 12/1/2019 at 1:39 PM, DeWired said: First of all - I'm in no way a professional, I've learned about existence of Papyrus two month ago, and I still doesn't understand in full how DeviousDevices framework works. But I can spot things which are definitely wrong, such as this argument incostistency. So, take my words with a grain of salt, and apply your thinking too - you may spot something that I don't. As I understand it, current realization of animation filter have a chance (meaning it's not failproof) of working only in case of having Yoke - otherwise, it doesn't even catch a fact that some of actors are bound. As such, it's very much possible that petsuits are fixed by this too. Second - I did a patch, did some testing - so far, armbinder results in armbinder animations, petsuit results in petsuit animations, except for ones initiated by devices - plug inflation, for example. So, not a problem of SL animation filter, at least. Oh, just remembered - there was a problem with petsuit animation when chain harness was also equipped - I will look at keywords, maybe it counts as HeavyBondage. Tried to upload it, but it seems we have an intermittent upload problem. So, for now - just a diff, for @Kimy to look into. Reveal hidden contents --- zadBQ00.psc.orig 2019-12-01 13:12:35.119113100 +0300 +++ zadBQ00.psc 2019-12-01 13:23:54.314165100 +0300 @@ -921,7 +921,7 @@ int currentActorCount = originalActors.length ; Let's try and see if we can get valid animations right here - sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) if anims.length <= 0 ; we didn't get a valid animation. Let's move the belted actors to solos. @@ -947,7 +947,7 @@ EndIf Endif libs.Log("Total actors: " + originalActors.length + ". Participating Actors: " + actors.length + ". Animation: " + previousAnim.name) - anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + anims = SelectValidAnimations(Controller, actors.length, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) EndIf if anims.length <= 0 @@ -980,7 +980,7 @@ while i >= 2 && anims.length==0 i -= 1 libs.Log("Reduced number of actors to " + i) - anims = SelectValidAnimations(Controller, i, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + anims = SelectValidAnimations(Controller, i, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) ;anims = SelectValidAnimations(Controller, i, previousAnim, false, false, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) EndWhile if anims.length >=1 UPD. Upload works! ? DDi_animfilter_patch_01122019.zip 43.67 kB · 13 downloads You are a god damn hero. I mentioned this issue further up the thread, but there wasn't really much response so I figured I was fucking something up in my game somehow (and ended up doing a complete re-install of my game + mods which was a royal pain in the ass). Now, like Gandalf at Helmsdeep you come charging in with the sunrise and save the day. Cheers. 1
DeWired Posted December 5, 2019 Posted December 5, 2019 15 hours ago, UnEvenSteven said: Tried the latest patch and the Pet Suit animations are working again when triggered by MM and SLEN and Arm/Elbow/Rope Binders and Yokes continue to work as well. However sex scenes with Straitjackets are now broken, it only chooses solo animations for the PC and NPCs. Normally straitjackets use regular SexLab animations (or from SLAL packs) and have no special sex animations. Straitjackets do contain the "HeavyBondage" so I'm guessing the changes in the recent patch are having sex scenes with straitjackets try and find specific sex animations that don't exist for them. Also the bound sex animations for any heavy bondage device seem to ignore certain devices my character was wearing. I would still get oral animations despite wearing a gag or vaginal animations with a chastity belt. I can't remember if device blocking worked correctly in 4.2 for bound animations, I did try with the zadBQ00.pex script from 4.3a and device blocking didn't work either. It may not be working correctly or the bound anim filter just wasn't coded to detect devices that would normally block certain positions. Here's a log again where I tried straitjackets and attempts to wear gags and belts with armbinders. Papyrus.0.log 181.72 kB · 2 downloads Okay... That's what I've talked about - you noticing things that I don't ? I've read now that straitjackets works almost as no-bound. So, next version marks them as not-bondage. DDi animfilter 05122019.zip Spoiler --- zadBQ00.psc.orig 2019-12-01 13:12:35.119113100 +0300 +++ zadBQ00.psc 2019-12-05 11:58:37.056824000 +0300 @@ -840,6 +840,8 @@ ;string[] ExtraTags = new String[12] bool UsingArmbinder = False bool UsingYoke = False + bool UsingHeavyBondage = False + bool UsingStraitJacket = False bool HasBoundActors = False i = originalActors.Length While i > 0 @@ -850,9 +852,11 @@ PermitOral = PermitOral && !IsBlockedOral(originalActors[i]) UsingArmbinder = UsingArmbinder || HasArmbinder(originalActors[i]) UsingYoke = UsingYoke || HasYoke(originalActors[i]) - HasBoundActors = HasBoundActors || libs.IsBound(originalActors[i]) + UsingStraitJacket = HasStraitJacket(originalActors[i]) + UsingHeavyBondage = UsingHeavyBondage || (HasHeavyBondage(originalActors[i]) && !UsingStraitJacket) ; DeWired: I've read, straitjackets work almost as non-bound + HasBoundActors = HasBoundActors || (libs.IsBound(originalActors[i]) && !UsingStraitJacket) ; DeWired: I've read, straitjackets work almost as non-bound EndWhile - Bool NoBindings = !UsingArmbinder && !UsingYoke + Bool NoBindings = !UsingHeavyBondage Bool IsCreatureAnim = previousAnim.HasTag("Creature") ; This step is needed, in order to determine if the prior animation is valid (Prevent replacing valid bound anims). @@ -890,6 +894,7 @@ StoreHeavyBondage(originalActors) UsingArmbinder = False UsingYoke = False + UsingHeavyBondage = False NoBindings = True EndIf @@ -921,7 +926,7 @@ int currentActorCount = originalActors.length ; Let's try and see if we can get valid animations right here - sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + sslBaseAnimation[] anims = SelectValidAnimations(Controller, originalActors.length, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) if anims.length <= 0 ; we didn't get a valid animation. Let's move the belted actors to solos. @@ -947,7 +952,7 @@ EndIf Endif libs.Log("Total actors: " + originalActors.length + ". Participating Actors: " + actors.length + ". Animation: " + previousAnim.name) - anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + anims = SelectValidAnimations(Controller, actors.length, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) EndIf if anims.length <= 0 @@ -971,6 +976,7 @@ StoreHeavyBondage(originalActors) UsingArmbinder = False UsingYoke = False + UsingHeavyBondage = False HasBoundActors = False NoBindings = True anims = SelectValidAnimations(Controller, actors.length, previousAnim, false, false, false, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) @@ -980,7 +986,7 @@ while i >= 2 && anims.length==0 i -= 1 libs.Log("Reduced number of actors to " + i) - anims = SelectValidAnimations(Controller, i, previousAnim, false, UsingArmbinder, UsingYoke, HasBoundActors, PermitOral, PermitVaginal, PermitAnal, permitBoobs) + anims = SelectValidAnimations(Controller, i, previousAnim, UsingArmbinder, UsingYoke, HasBoundActors, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) ;anims = SelectValidAnimations(Controller, i, previousAnim, false, false, false, PermitOral, PermitVaginal, PermitAnal, permitBoobs) EndWhile if anims.length >=1 @@ -1084,6 +1090,14 @@ Return (akActor != None) && (akActor.WornHasKeyword(libs.zad_DeviousPetSuit)) EndFunction +Bool Function HasHeavyBondage(Actor akActor) + Return (akActor != None) && (akActor.WornHasKeyword(libs.zad_DeviousHeavyBondage)) +EndFunction + +Bool Function HasStraitJacket(Actor akActor) + Return (akActor != None) && (akActor.WornHasKeyword(libs.zad_DeviousStraitJacket)) +EndFunction + sslBaseAnimation[] Function GetSoloAnimations(Actor akActor) sslBaseAnimation[] soloAnims Bool bHasBelt = HasBelt(akActor) And then you mentioned belts. This is hard, because it requires heavy reworking of filter - there aren't bound animation filtering right now, it's all or nothing. So, I've tried to do it - but 1. I don't remember half of mentioned animations, and don't know which devices they will be compatible with. 2. As such, filtering is done by the way of liberal assumptions. If you get bound animation which doesn't correspond to your additional devices (belt, gag), it is 'not a bug, but a feature'. All can be corrected, of course (or, I think so), but dwindling available animation count is inevitable. Also - I don't think this is a fix, but a change in code, it most probably will not be in main library. If developers do this, they will probably do it their way (and better). So... DDi animfilter heavy 05122019.zip I'm not even going to include patch for this in post - it weights 15kb. If someone need it - it's in archive. P.S. There's a meme about all that - "we need to go deeper..." ? 7
UnEvenSteven Posted December 5, 2019 Posted December 5, 2019 5 hours ago, DeWired said: Okay... That's what I've talked about - you noticing things that I don't ? I've read now that straitjackets works almost as no-bound. So, next version marks them as not-bondage. And then you mentioned belts. This is hard, because it requires heavy reworking of filter - there aren't bound animation filtering right now, it's all or nothing. So, I've tried to do it - but 1. I don't remember half of mentioned animations, and don't know which devices they will be compatible with. 2. As such, filtering is done by the way of liberal assumptions. If you get bound animation which doesn't correspond to your additional devices (belt, gag), it is 'not a bug, but a feature'. All can be corrected, of course (or, I think so), but dwindling available animation count is inevitable. Also - I don't think this is a fix, but a change in code, it most probably will not be in main library. If developers do this, they will probably do it their way (and better). So... I'm not even going to include patch for this in post - it weights 15kb. If someone need it - it's in archive. P.S. There's a meme about all that - "we need to go deeper..." ? Tested the first script, straitjackets are working correctly again and other heavy bondage restraints still work correctly with the bound anim filter. Excellent work, Dewired! ?As @balth put it you're a hero. During this latest test I had completely forgotten there were animations for hand cuffs and manacles. The hand cuffs from DDX are front cuffs and the manacles are rear cuffs, the front versions have their own animations and rear cuffs seem to use armbinder animations. Don't worry, the bound anim filter works correctly for these due to your fixes even though I forgot to mention them. Also tested the script with the device filter for bound anims, seemed to work well. Equipped my character with ball gag and couldn't get any oral animations with binders, yoke or the pet suit. Tried a ring gag instead and oral animations returned as expected. Then used an open chastity belt, with no gag, and would either get oral or anal animations. While wearing an open belt and ball gag it appeared that only anal animations were selected. The pet suit was the easiest to test here as it only has four animations, oral, missionary, doggy and anal doggy but still seemed to work correctly with other heavy restraints. I suppose one oddity was when I tried a closed belt and an oral-blocking gag, the anim filter selected either a kissing animation or one of the bound sex animations. I didn't test this extensively but does the script just default to certain animations as a fall-back when...um...no holes are available? I don't see it as much of an issue really, I believe most modern DD-based mods aren't using closed belts on the PC. Once again thank you for your work on this, DeWired. 1
DeWired Posted December 5, 2019 Posted December 5, 2019 4 hours ago, UnEvenSteven said: Tested the first script, straitjackets are working correctly again and other heavy bondage restraints still work correctly with the bound anim filter. Excellent work, Dewired! ?As @balth put it you're a hero. During this latest test I had completely forgotten there were animations for hand cuffs and manacles. The hand cuffs from DDX are front cuffs and the manacles are rear cuffs, the front versions have their own animations and rear cuffs seem to use armbinder animations. Don't worry, the bound anim filter works correctly for these due to your fixes even though I forgot to mention them. Also tested the script with the device filter for bound anims, seemed to work well. Equipped my character with ball gag and couldn't get any oral animations with binders, yoke or the pet suit. Tried a ring gag instead and oral animations returned as expected. Then used an open chastity belt, with no gag, and would either get oral or anal animations. While wearing an open belt and ball gag it appeared that only anal animations were selected. The pet suit was the easiest to test here as it only has four animations, oral, missionary, doggy and anal doggy but still seemed to work correctly with other heavy restraints. I suppose one oddity was when I tried a closed belt and an oral-blocking gag, the anim filter selected either a kissing animation or one of the bound sex animations. I didn't test this extensively but does the script just default to certain animations as a fall-back when...um...no holes are available? I don't see it as much of an issue really, I believe most modern DD-based mods aren't using closed belts on the PC. Once again thank you for your work on this, DeWired. Well, I deliberately avoided filtering out kissing animation, as gagged kiss is a thing ? As such, it has very high chance to appear when all holes are plugged. Also, I consider getting to animation filter in full chastity "event of low probability" ? So, some animations that I quessed as anal, are made available regardless of belt keywords. Technically, they can be considered (probably) non-penetrating petting ?
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now