Ashal Posted June 9, 2013 Posted June 9, 2013 float StageStop = GetCurrentRealTime() + 10 while StageStop > GetCurrentRealTime() Utility.wait(0.2) endwhile does the same with less effort from the processor Touché. Minimizing code has never been my strong suit. Though again, as noted on the creation kit wiki, Utility.Wait( NbLoops * LoopDuration ) will be inaccurate as it's dependent on frame rate and papyrus workload. So if accuracy with the timing is at all important, Utility.Wait() is an imperfect solution. If timing isn't important though than it's a perfectly fine solution to it.
fore Posted June 10, 2013 Author Posted June 10, 2013 Don't want to add to this timing discussion, since I'm still convinced that RegsiterForSingleUpdate() is the "right" way. With this busy loop you just add too much unnecessary load to the system. And you have one BIG disadvantage. While you are in this loop, you can't receive other events. So if you want to synchronize 2 characters in a quest script, wait() is a unusable solution. But I have another solution for thor to be activated on every cycle. Why not separate the loop into single acyclic animations? Like s -a AEenter AnimEnter.hkx + -a AELoop AnimLoop.hkx + AEendLoop AnimDummy.hkx + -a AEexit AnimExi.hkx Then you can register for "AEendloop", wake up after every turn, and make a new SAE("AEloop"). You might have to experiment a little bit with this wake-up time. I'm using a "LocalTime" of -0.3 in the triggerArray. A usual practicve in the behavior which probably means that this event fires 0.3 sec before the animation is done.
fore Posted July 2, 2013 Author Posted July 2, 2013 Short update on FNIS 4.0. 4.0 Beta 2 is released. See the initial post for more details. Took longer than planned, what a surprise I had planned to add AnimationDriven animations, but ran into a problem which I cannot solve right now. I just cannot figure out how to set the AnimDriven behavior variable inside the graph. It works when setting the variable by script, but I'm afraid this can have side effects. Instead I have released the orm offset animation. I think the demand for that was even higher. So here you are. There is also good news for "doggystyle" lovers. I have a dog running FNIS animations. So this is the start of CREATURE animations, guys. I have still one problem to solve: I don't know how to end these animations, even an acyclic animation ends with a stiff doggy. But that should be manageable, and the generator integration doesn't seem to be too hard.
Dude500X Posted July 3, 2013 Posted July 3, 2013 In relation to fnis to sexlab, could these new furniture based animation breakthroughs lead to things like blowjobs while sitting down on a chair etc?
fore Posted July 3, 2013 Author Posted July 3, 2013 In relation to fnis to sexlab, could these new furniture based animation breakthroughs lead to things like blowjobs while sitting down on a chair etc? Yes, exactly. And it even doesn't need a (visible) chair. I used the word, because it's the Bethesda term. By they also use it for many things where there is no "furniture" involved (mining, smithing, ...) The sweet thing about these animation is that they force the actors into the exact position, and keep them there without any collision effect. Although, before I promise too much, how precise 2 actors can be placed at one furniture object, and if this is sufficient for a close-up blowjob has still to be confirmed by an animator (I hope they start soon!). But in Oblivion it worked very well, and I'm sure, Skyrim will be as good. No more fiddling with positioning by scripts, and no more collision teleport.
Teechan Posted July 3, 2013 Posted July 3, 2013 So this is the start of CREATURE animations, guys So creature animations, once the other issues get sorted out, could eventually be called on creatures using "SAE"?
fore Posted July 3, 2013 Author Posted July 3, 2013 So this is the start of CREATURE animations, guys So creature animations, once the other issues get sorted out, could eventually be called on creatures using "SAE"? That's what my doggy is doing right now. And hopefully soon most other creatures. The problem I have mentioned does not exist. I just had to understand what's going on, and what seemed to be a problem even comes handy. You probably have noticed that dogs have a lot of movement. Up, down, wiggle, scratch. All of this stationary movement is implemented with behavior. Something you probably don't want to see in a sex scene. Now every FNIS animation will prevent this kind of movement, until a special event is raised (returnToDefault). It just took some time to understand, cause in that respect creatures differe from characters.
D_ManXX2 Posted July 16, 2013 Posted July 16, 2013 How does fnis for user make the change for creatures now ?? do they update the creature section just like what happens to npc when using fnis for users ?? fnis 3.5 works fine on my system, but after i update to 4.0 beta 3 i get an error code 13 and my game freezes when looking around or running,
fore Posted July 17, 2013 Author Posted July 17, 2013 How does fnis for user make the change for creatures now ?? do they update the creature section just like what happens to npc when using fnis for users ?? fnis 3.5 works fine on my system, but after i update to 4.0 beta 3 i get an error code 13 and my game freezes when looking around or running, As we have clarified in our pms, this is a bug in "Check Consistence" part. In the meantime I found that it is caused by SexAddicts. THere are a few doubled Animation Events. I have modified the generator to find these, but apparently I didn't do it all that well. So just skip the CC part.
oli3d Posted August 5, 2013 Posted August 5, 2013 Moin Fore... done a little mod to test your furniture anims. As you will see it uses ZaZ-Animations. in the CK i defined idleChairExitStart as standard exit anim.... but instead uses the idleshackledexit defined in my FNIS_$myanimations_List. i think the animations in FNIS_$myanimations_List overrides the animtion-exit event in the CK Animation tree. May be a usefull information .... Moin Oli
fore Posted August 5, 2013 Author Posted August 5, 2013 Moin Fore... done a little mod to test your furniture anims. As you will see it uses ZaZ-Animations. in the CK i defined idleChairExitStart as standard exit anim.... but instead uses the idleshackledexit defined in my FNIS_$myanimations_List. i think the animations in FNIS_$myanimations_List overrides the animtion-exit event in the CK Animation tree. May be a usefull information .... Moin Oli Hi Oli, I even take fellow Germans as feedback providers. Keep it comin' How do you define idleshackledexit? Since the current syntax doesn't provide means for defining furniture exits. But it is possible that you get the desired effect with other animEvents. This IdleChairExitStart is just one of 2 "standard" exit conditions (the other one is termination of the package. But that doesn't mean that other AEs will terminate the furniture as well. E.g. IdleForceDefaultState. I just can't foresee in these cases what will happen, and if there are side effects (which is not very likely).
oli3d Posted August 6, 2013 Posted August 6, 2013 Moin Fore... done a little mod to test your furniture anims. As you will see it uses ZaZ-Animations. in the CK i defined idleChairExitStart as standard exit anim.... but instead uses the idleshackledexit defined in my FNIS_$myanimations_List. i think the animations in FNIS_$myanimations_List overrides the animtion-exit event in the CK Animation tree. May be a usefull information .... Moin Oli Hi Oli, I even take fellow Germans as feedback providers. Keep it comin' How do you define idleshackledexit? Since the current syntax doesn't provide means for defining furniture exits. But it is possible that you get the desired effect with other animEvents. This IdleChairExitStart is just one of 2 "standard" exit conditions (the other one is termination of the package. But that doesn't mean that other AEs will terminate the furniture as well. E.g. IdleForceDefaultState. I just can't foresee in these cases what will happen, and if there are side effects (which is not very likely). How do you define idleshackledexit? -> is defined in FNIS_$myanimations_List, i copied the (extracted)hkx in my folder- i the CK IdleChairExitStart is the exit anim event. further information: IdleChairExitStart is used when i command my follower to follow before the idle ends. idleshackledexit is used when the idle has its normal end. "fu xcross01 ZazAPCAO025.hkx ZazAPCAO025.hkx idleshackledexit.hkx" <- definiton in my list moin Oli
fore Posted August 6, 2013 Author Posted August 6, 2013 How do you define idleshackledexit? -> is defined in FNIS_$myanimations_List, i copied the (extracted)hkx in my folder- i the CK IdleChairExitStart is the exit anim event. further information: IdleChairExitStart is used when i command my follower to follow before the idle ends. idleshackledexit is used when the idle has its normal end. "fu xcross01 ZazAPCAO025.hkx ZazAPCAO025.hkx idleshackledexit.hkx" <- definiton in my list moin Oli You are confusing me. IdleChairExitStart is an AnimEvent, as you said. And you should use that as AnimEvent parameter for your 3rd subidle definition in your CK definition. And if you do, and then send the IdleChairExitStart in your script, the exit animation is played. Which is IdleShackledExit.hkx according to your fu definition. So where is the problem? Do you see a different animation played? Maybe there is one issue which confuses you. If a furniture animation is run the first time (after load), the exit animation will NOT be played. From the 2nd time on it will. But this is not an FNIS bug. You will see the same when you use vanilla furniture idles. But noone (me included) ever realized. But with the use of FNIS furnitures I'm afraid many modders and users will stumble about it. And think it'S FNIS.
xaz Posted August 14, 2013 Posted August 14, 2013 I'm about to release a new version of Zaz with furniture support. Is there a good reason not to create furniture support for all the existing pillories? (Just copy paste, do some search/replace etc) Specifically, is there a practical limit on the amount of animations and so on you can load up in your system. Essentially, this'll double the size of the animation file, or at least make it a lot longer. Obviously, that means the new Zaz will depend on a beta of FNIS generators. On the plus side, it'll generate a lot more testing, and it seems pretty stable right now (as always, I might add). On the minus side, it'll generate some support issues for me as I try to push out the message that users must upgrade to a beta. I'm willing to do this, so just asking your opinion on the matter ....
oli3d Posted August 14, 2013 Posted August 14, 2013 I'm about to release a new version of Zaz with furniture support. Is there a good reason not to create furniture support for all the existing pillories? (Just copy paste, do some search/replace etc) Do it - and i can kick out my crappy nif edits Moin Oli
xaz Posted August 14, 2013 Posted August 14, 2013 I'm about to release a new version of Zaz with furniture support. Is there a good reason not to create furniture support for all the existing pillories? (Just copy paste, do some search/replace etc) Do it - and i can kick out my crappy nif edits Moin Oli Eeh... ahem ... the major nif edits will come at a later time. I've added furniture tags and stuff to all of them though, and fixed some apparent collision problems (among the ones that are easy to fix). Tbh, I just want to push this one out to "kick life" into ZAP again. Then I'll start working through the nifs and stuff.
fore Posted August 14, 2013 Author Posted August 14, 2013 I'm about to release a new version of Zaz with furniture support. Is there a good reason not to create furniture support for all the existing pillories? (Just copy paste, do some search/replace etc) Specifically, is there a practical limit on the amount of animations and so on you can load up in your system. Essentially, this'll double the size of the animation file, or at least make it a lot longer. Yes, actually there is a limit. I didn't talk about it yet, because I'm still hoping to find the reason why I can't seperate the furnitures into a custom file as well. But since you ask: it's about 270 furniture animations the way they are defined today. And without any offset animations. This is simply due to the node numbers I have available in mt_behavior.hkx (#5200 to #9999), and how many I need to define one furniture. Obviously, that means the new Zaz will depend on a beta of FNIS generators. On the plus side, it'll generate a lot more testing, and it seems pretty stable right now (as always, I might add). On the minus side, it'll generate some support issues for me as I try to push out the message that users must upgrade to a beta. I'm willing to do this, so just asking your opinion on the matter .... I'm sorry it's taking that long, but I only have a few hours per week for actually working on the mod. And everyone who knows programming also knows how much time this can take. Originally the main task for 4.0 were furnitures, but since people convinced me not to wait for creature animations any longer I have put that in between. In a few days I hope I can release the next beta with some streamlining of creatures (including custom creatures, creature AnimObjects, tail), and then I can go back to furnitures. See, I don't want to release furnitures without adding sequenced animation functionality. That wiil change the syntax, and that I REALLY wanted to avoid after releasing the final.
xaz Posted August 15, 2013 Posted August 15, 2013 I'm about to release a new version of Zaz with furniture support. Is there a good reason not to create furniture support for all the existing pillories? (Just copy paste, do some search/replace etc) Specifically, is there a practical limit on the amount of animations and so on you can load up in your system. Essentially, this'll double the size of the animation file, or at least make it a lot longer. Yes, actually there is a limit. I didn't talk about it yet, because I'm still hoping to find the reason why I can't seperate the furnitures into a custom file as well. But since you ask: it's about 270 furniture animations the way they are defined today. And without any offset animations. This is simply due to the node numbers I have available in mt_behavior.hkx (#5200 to #9999), and how many I need to define one furniture. In that case, I'll just stop right where I am now, and explain to modders how they can add their own furniture in the future using this system. Furniture where the head is stuck or similar isn't good for furniture anyway, and a lot of nifs in ZAP are designed like that. Obviously, that means the new Zaz will depend on a beta of FNIS generators. On the plus side, it'll generate a lot more testing, and it seems pretty stable right now (as always, I might add). On the minus side, it'll generate some support issues for me as I try to push out the message that users must upgrade to a beta. I'm willing to do this, so just asking your opinion on the matter .... I'm sorry it's taking that long, but I only have a few hours per week for actually working on the mod. And everyone who knows programming also knows how much time this can take. Originally the main task for 4.0 were furnitures, but since people convinced me not to wait for creature animations any longer I have put that in between. In a few days I hope I can release the next beta with some streamlining of creatures (including custom creatures, creature AnimObjects, tail), and then I can go back to furnitures. See, I don't want to release furnitures without adding sequenced animation functionality. That wiil change the syntax, and that I REALLY wanted to avoid after releasing the final. No problem with the mod taking long. I was mostly trying to get an answer on wether I should include full furniture support, or just a subset. I guess the subset is the right way to go at the moment. I still think it's a good idea to release now, even if I have to redo the syntax at some later time. Better get something out now, and show how other modders can benefit, than wait too long.
jbezorg Posted August 26, 2013 Posted August 26, 2013 Fore, Regarding AnimVar's, Is INT32 a signed int only? I'm wondering if it's possible to store a form id in a AnimVar.
fore Posted August 26, 2013 Author Posted August 26, 2013 I think it's signed. I just pass "INT32" to the behavior xml, and there is no other INT. But in an case you have to read it with Papyrus GetAnimationVariableInt(). And that's certainly signed.
jbezorg Posted August 28, 2013 Posted August 28, 2013 I think it's signed. I just pass "INT32" to the behavior xml, and there is no other INT. But in an case you have to read it with Papyrus GetAnimationVariableInt(). And that's certainly signed. The main page of the CK wiki mentions unsigned ints and that's the last I see of them. Anyone want to check my work around? See any flaws with these? I'll also try passing a form ID from a mod with a load order greater than 7F into an AnimVar and then back into Game.GetForm(). Should be fun. Kinda like Schrödinger's box. Put a cat's form ID into the AnimVar and we won't know if the cat still exists or was destroyed/transformed until we try to get it back out with Game.GetForm(). ; BIT UTILITIES =============================================================== ; Int function _setBitFlag(Int aiFlag, Int aiShift, Bool abSet) if abSet return Math.LogicalOr(aiFlag, Math.LeftShift(1, aiShift)) else return Math.LogicalAnd(aiFlag, Math.LogicalNot(Math.LeftShift(1, aiShift))) endIf endFunction Bool function _getBitFlag(Int aiFlag, Int aiShift) return Math.LogicalAnd(aiFlag, Math.LeftShift(1, aiShift)) as Bool endFunction ; unsigned 0 to 65,535 Int function _getUnsignedWord(Int aiDword, Bool abHighWord = false) if abHighWord return Math.RightShift(Math.LogicalAnd(0xFFFF0000, aiDword), 16) else return Math.LogicalAnd(0x0000FFFF, aiDword) endIf endFunction ; unsigned 0 to 65,535 Int function _setUnsignedWord(Int aiDword, Int aiValue, Bool abHighWord = false) Int iLWord = Math.LogicalAnd(0x0000FFFF, aiDword) Int iHWord = Math.LogicalAnd(0xFFFF0000, aiDword) ; if we are setting the high word we want to preserve the low word ; and vice-versa. Hence the logical or with the opposite word. if abHighWord return Math.LogicalOr(Math.LeftShift(aiValue, 16), iLWord) else return Math.LogicalOr(Math.LogicalAnd(0x0000FFFF, aiValue), iHWord) endIf endFunction
xaz Posted August 28, 2013 Posted August 28, 2013 I think it's signed. I just pass "INT32" to the behavior xml, and there is no other INT. But in an case you have to read it with Papyrus GetAnimationVariableInt(). And that's certainly signed. The main page of the CK wiki mentions unsigned ints and that's the last I see of them. Anyone want to check my work around? See any flaws with these? I'll also try passing a form ID from a mod with a load order greater than 7F into an AnimVar and then back into Game.GetForm(). Should be fun. Kinda like Schrödinger's box. Put a cat's form ID into the AnimVar and we won't know if the cat still exists or was destroyed/transformed until we try to get it back out with Game.GetForm(). ; BIT UTILITIES =============================================================== ; Int function _setBitFlag(Int aiFlag, Int aiShift, Bool abSet) if abSet return Math.LogicalOr(aiFlag, Math.LeftShift(1, aiShift)) else return Math.LogicalAnd(aiFlag, Math.LogicalNot(Math.LeftShift(1, aiShift))) endIf endFunction Bool function _getBitFlag(Int aiFlag, Int aiShift) return Math.LogicalAnd(aiFlag, Math.LeftShift(1, aiShift)) as Bool endFunction ; unsigned 0 to 65,535 Int function _getUnsignedWord(Int aiDword, Bool abHighWord = false) if abHighWord return Math.RightShift(Math.LogicalAnd(0xFFFF0000, aiDword), 16) else return Math.LogicalAnd(0x0000FFFF, aiDword) endIf endFunction ; unsigned 0 to 65,535 Int function _setUnsignedWord(Int aiDword, Int aiValue, Bool abHighWord = false) Int iLWord = Math.LogicalAnd(0x0000FFFF, aiDword) Int iHWord = Math.LogicalAnd(0xFFFF0000, aiDword) ; if we are setting the high word we want to preserve the low word ; and vice-versa. Hence the logical or with the opposite word. if abHighWord return Math.LogicalOr(Math.LeftShift(aiValue, 16), iLWord) else return Math.LogicalOr(Math.LogicalAnd(0x0000FFFF, aiValue), iHWord) endIf endFunction By all means, try it, but the documentation says it won't work: http://www.creationkit.com/GetForm_-_Game As the FormID is intended to be a 32-bit unsigned integer and Papyrus uses signed integers, this function is not reliable for forms from higher-ordered mods. Specifically, any FormID with the MSB set (load order 0x80 and above) will fail to return a valid object. For _getUnsignedWord, just be wary about if bit shifts are signed or unsigned. If sign is extended by the shift, you should "LogicalAnd" after the shift, not before. (Compare operators >> and >>> in Java, as an example of what I mean.)
fore Posted August 28, 2013 Author Posted August 28, 2013 Just a short update on FNIS 4.0. I have everything ready what I wanted to be in the next Beta (Beta4), including Support for tails and plants/activators Creature's AnimObjects Support for custom creatures (actually custom "behaviored objects", i.e. everything which uses behaviors) Fixed many bugs with the creatures and generator for the creatures Fixed and improved the "Consistence Check" But releases take more and more time, even betas. And I think, LL modders have enough problems to make users aware of an FNIS Beta. So I thinkk I ill skip this release, and start working on that missing piece which is the reason why 4.0 is still Beta: extend furniture animations. I now going to extend furnitures to the Sequenced Animations functionality (so you can define furnitures with as many animations and anima Objects as you like; simply say "fu" or "FU" instead of "sa" or "SA"). As soon as I have it ready I'll make a "restricted" Beta, to allow modders to switch to the new syntax before I release to final.
zax Posted August 28, 2013 Posted August 28, 2013 Lame question: how do I make custom furniture object with multiple furniture markers (each using different animations)?
fore Posted August 28, 2013 Author Posted August 28, 2013 Lame question: how do I make custom furniture object with multiple furniture markers (each using different animations)? Honestly, I have no idea. Although, why do you want to use a furniture object with 2 markers, instead of 2 different objects? I wouldn't know how to make an NPC access one out of many markers. With a sit target package you only can use the object, without any parameters. Maybe it'S possible to make a new sittarget procedure. But I have no idea. And I don't see a reson to do so. Use 2 markers. Then you automatically have 2 animations. Is there any particular reason that I don't see?
Recommended Posts
Archived
This topic is now archived and is closed to further replies.