prideslayer Posted May 25, 2013 Posted May 25, 2013 Speaking with astymma in PMs and catching up. Most of this is now fixed or at least no worse for wear, other than this last bit, right? Easy solution to that seems to me to be simply putting the actors back where they were before sexout kicked in.. maybe with +1Z? This wouldn't really hurt anything during the callback chains I don't think, and it might fix some issues where callbacks near a wall/door can start 'pushing' characters into/through the wall or other stationary object. I'm all ears about a better 'knockdown' effect. I've always hated the one that's there, though what was there before that was worse. Edit: reading more closely that long post about callback woes.. thought all that crap was straightened out before I departed! Ehm, yeah, sorry Callbacks usually work for me, but I had too much interaction with the walls when placing my scenes on a bed. Found myself caught between the second scene being messed up due to player-too-close-to-wall-after-knockdown syndrome (problem 1), or due to the sequencing of cbspells/dialog going nutty when I tried to use cbspells to move the actors to solve that (problem 2). So I put that on hold for the time being, commented it all out to make sure the story progresses (depends on the scene). I'm thinking putting the actors back where they were before would definitely be an improvement, although I quite like the idea of specifying markers to moveto, if only because my scenes sometimes happen when the player enters a trigger, and putting her back may be seen as as leaving the trigger box. Maybe placing them back where they were could be default, unless refs are specified to move to? In any case, just a moveto to their previous position may also suffer from problem 2, I think - it may just need a bit of a delay before the callbacks kick in. Good to see ya, btw. I'll try not to come up with too many things for you to do I see. Callbacks have always been a bitch, especially as they got more and more complex. I spent a lot of time with jaam debugging them in both the PG and Fiends tryouts as Loogie went absolutely balls to the wall with them. Which is good of course, nobody else was exercizing them hard enough to expose the bugs that reliably.. I can definitely add the moveto refs, but I'll have to think about how that's going to work, and are you going to want to set heading as well? Personally I don't see how moving them back to their positions would cause any trigger issues, unless they moved out of the trigger zone during sex and then the move back put them back inside. In any case, you should probably disable the trigger once they enter and not enable it again until they've left some larger trigger zone or met some other quest objective. I think the zones can overlap but if they can't, then you can still put other triggers on the doorways (for example) that enable the interior trigger -- which disables itself and won't be enabled again until they go through the doorway. Now.. the question / catch-22 .. if I do the moveto, be it back to the starting point or to the provided location, do I still do the KO? If so, when? Before the move, or after.. or if I don't do the KO well.. I believe I added a dontKO flag to the calls to make it easier to chain scenes without the actors getting knocked down between them. (If you or anybody else can't tell, I hate the damn knockdown thing anyway. Lets replace it! With.. something!)
prideslayer Posted May 25, 2013 Posted May 25, 2013 Issues with the spore plants notwithstanding, actors using the human skeleton are (or should be) easily resety by simply doing a "playidle sexoutreset". Now, I don't remember what the ID for that is to try it in the console, but typically when I'm playing (read: testing), I have KOs disabled in MCM, specifically to avoid all the ragdoll shotgun problems it brings. I've never had a problem with animations resetting properly after sex is done, with KOs disabled -- though I don't use pregnancy either. I wonder if something is just wrong with the pregnancy animations, or how they're being used. In any case, the KOs are not required for sex to work and reset properly, in general.
DoctaSax Posted May 25, 2013 Posted May 25, 2013 I can definitely add the moveto refs, but I'll have to think about how that's going to work, and are you going to want to set heading as well? Personally I don't see how moving them back to their positions would cause any trigger issues, unless they moved out of the trigger zone during sex and then the move back put them back inside. In any case, you should probably disable the trigger once they enter and not enable it again until they've left some larger trigger zone or met some other quest objective. I think the zones can overlap but if they can't, then you can still put other triggers on the doorways (for example) that enable the interior trigger -- which disables itself and won't be enabled again until they go through the doorway. Now.. the question / catch-22 .. if I do the moveto, be it back to the starting point or to the provided location, do I still do the KO? If so, when? Before the move, or after.. or if I don't do the KO well.. I believe I added a dontKO flag to the calls to make it easier to chain scenes without the actors getting knocked down between them. (If you or anybody else can't tell, I hate the damn knockdown thing anyway. Lets replace it! With.. something!) Eh, a variable gets reset in on an OnTriggerLeave block. Sure, I could attach it to an encompassing trigger box. But occasionally I try to do something fancy - parking them right next to the bed would just look better than zapping back to where the player entered the box. I don't think heading is needed, if you declare a headingmarker as the ref to move to. By all means, let's get rid of the KO if it can be done. As I understand it, the knockdown is there to sort of reset the animations of the 2 actors involved. Without it sorting through and deciding what animation it should be playing, the actors will continue to play the animations that they were playing last. This was the problem with the birth animation and knocking down the character or NPC reset their animation. So it's unfortunate, but it works well at what it is intended to fix. Glad to see pride is back too If it's just a matter of changing/stopping an ongoing anim, I've been doing that with "playidle SexoutNGReset" a lot. Unless a particular type of kf file is called for - I dunno, something that definitely resets all bones or nodes or whatever you guys have - the same can probably be done with whatever anim we want in its place. It'd probably have to be something quick though, so that it doesn't look too horrible no matter in which position the actors were in.
prideslayer Posted May 25, 2013 Posted May 25, 2013 Ok, adding a new ref for each actor to move to after sex is easy enough. If the var is valid and set, the actor moves to where it says to move to. If it's not set/0 then default (current) behavior. As it is, all actors move either to the player, or if the player is not involved, to actorB for sex. If the knockdown is disabled, that's where they will be after sex, collisions with one another, objects, and terrain notwithstanding. All those interested in testing before I make/release the changes, just disable the KOs in MCM, and play away. If having them disabled exposes any problems, we'll find and crush them, but I don't remember seeing any. If we really wanted things to be smooth, all the animations need to be reworked by someone with the time and talent to create "intros" and "outros" in each .kf file. This is a feature of the files that none of the sexout animations use, but plenty of the vanilla ones do. ------ offtopic In another thread I saw some discussion of the tokens and a debate about misc vs. armor. FWIW, I didn't decide on one or the other; the original sexout used misc, so I stuck with it. That said, my intention was originally to replace them all with NX, I just never finished the project. Of the 30-some-odd tokens in sexout, only a handful are actually 'used' by sexout; mostly, they are handed out because other mods still 'watch' for them rather than checking for NX vars. My intention was to deprecate them all in the 3.x branch, and 'remove' them in the 4.x branch.
Halstrom Posted May 25, 2013 Posted May 25, 2013 Issues with the spore plants notwithstanding, actors using the human skeleton are (or should be) easily resety by simply doing a "playidle sexoutreset". Now, I don't remember what the ID for that is to try it in the console, but typically when I'm playing (read: testing), I have KOs disabled in MCM, specifically to avoid all the ragdoll shotgun problems it brings. I've never had a problem with animations resetting properly after sex is done, with KOs disabled -- though I don't use pregnancy either. I wonder if something is just wrong with the pregnancy animations, or how they're being used. I hope not, the only time Pregnancy runs an animation is during birthing, which I have a check in so birthing doesn't start whilst actors are engaged in sex. I have 2 forms of birthing the on the floor animation and the inactive standing egg laying shrinking belly bodysuit (SELSBB) that needs some more work before I activate it scn SexoutP4SBirthingF ref rZActor ref rZPlayer ref rZCass ref rZVeronica ref rZSunny ref rZWendy ref rZMelissa ref rZLily ref rZJentai ref rZKirina int iKirinaInstalled ref rZWillow int iWillowInstalled ref rZBoone ref rZRaul ref rZArcade ref rZRex float fCurrHour float fLastUpdateHour float fHoursPassed float fCurrDay float fLastUpdateDay int iDaysPassed float fHourStep int iCount int iDoOnce int iDoOnce1 int iDoOnce2 int iDoOnce3 int iDoOnce4 int iDoOnce5 int iDoOnce6 int iDoOnce7 int iOkToRun int iDeadTimer int iRemoving int iDebug int iBirthTokenCount float fDistanceToPlayer int iBirthAnimation int iPlayedSound ref rOffSpringRemoved ref rOffSpringAdded ref rOffSpringPlaced int iSymbioteWorn int iPregCountChildAfAmM int iPregCountChildAfAMF int iPregCountChildCaucM int iPregCountChildCaucF int iPregCountChildAsianM int iPregCountChildAsianF int iPregCountChildHispM int iPregCountChildHispF int iPregCountChildFoxStarM int iPregCountChildFoxStarF int iPregCountChildFoxSilverM int iPregCountChildFoxSilverF int iPregCountChildFoxRedM int iPregCountChildFoxRedF int iPregCountChildGhoulM int iPregCountChildGhoulF int iPregCountChildFeralGhoulM int iPregCountChildFeralGhoulF int iPregCountChildSuperMutantM int iPregCountChildSuperMutantF int iPregCountChildAlien int iPregCountChildSporeCarrierM int iPregCountChildSporeHybridM int iPregCountChildSporeHybridF int iPregCountPupCentaur int iPregCountPupDog int iPregCountPupRat int iPregCountPupMoleRat int iPregCountPupCoyote int iPregCountPupBigHorner int iPregCountPupBrahmin int iPregCountPupNightStalker int iPregCountLarveBloatFly int iPregCountLarveCazador int iPregCountLarveSymbiote int iPregCountEggDeathClaw int iPregCountEggDeathClawDark int iPregCountEggDeathClawBlack int iPregCountEggSporePod int iPregCountEggLakeLurk int iPregCountEggMireLurk int iPregCountEggAnt int iPregCountEggAntWorker int iPregCountEggAntSoldier int iPregCountEggAntQueenF int iPregCountEggRadRoach int iPregCountEggRaven int iPregCountEggGecko int iPregCountEggScorpion int iPregCountEggMantis int iPregCountEggEyeBotMini int iPregCountEggEyeBotSmall int iPregCount Begin GameMode Set rZActor to GetContainer Set fCurrHour to GetCurrentTime Set fCurrDay to GameDaysPassed Set rZPlayer to SexoutSQVAR.rZPlayerREF Set rZCass to SexoutSQVAR.rZCassREF Set rZVeronica to SexoutSQVAR.rZVeronicaREF Set rZLily to SexoutSQVAR.rZLilyREF Set rZSunny to SexoutSQVAR.rZSunnyREF Set rZWillow to SexoutSQVAR.rZWillowREF Set rZKirina to SexoutSQVAR.rZKirinaREF Set rZJentai to SexoutSQVAR.rZJentaiREF Set iCount to iCount + 1 if rZActor && iCount > 5 && rZActor.GetInSameCell PlayerREF && SexoutP0QVAR.iPregMainRunning > 5 && iRemoving < 1 Set iCount to 0 Set fDistanceToPlayer to rZActor.GetDistance PlayerREF if rZActor == PlayerREF Set fDistanceToPlayer to 1 endif Set iDebug to 0 if SexoutP0QVAR.iDebug == 4 && fDistanceToPlayer < 900 Set iDebug to 4 elseif SexoutP0QVAR.iDebug == 6 && rZActor == PlayerREF Set iDebug to 4 elseif SexoutP0QVAR.iDebug == 7 Set iDebug to 4 endif ; *** Check OK to run Set iOkToRun to SexoutP0QVAR.iFertEnableFemale if rZActor.GetDead || rZActor.GetIsSex Female == 0 Set iOkToRun to 0 Set iDeadTimer to iDeadTimer + 1 if iDeadTimer > 9 Set iOkToRun to -1 endif else Set iDeadTimer to 0 if rZActor.GetItemCount 00SexoutActor > 0 Set iOkToRun to 0 endif endif if iOkToRun > 0 ; *** Count Pregnancy's Set iPregCountChildAfAmM to rZActor.GetItemCount SexoutP3GestatingChildAfAmM Set iPregCountChildAfAmF to rZActor.GetItemCount SexoutP3GestatingChildAfAmF Set iPregCountChildCaucM to rZActor.GetItemCount SexoutP3GestatingChildCaucM Set iPregCountChildCaucF to rZActor.GetItemCount SexoutP3GestatingChildCaucF Set iPregCountChildAsianM to rZActor.GetItemCount SexoutP3GestatingChildAsianM Set iPregCountChildAsianF to rZActor.GetItemCount SexoutP3GestatingChildAsianF Set iPregCountChildHispM to rZActor.GetItemCount SexoutP3GestatingChildHispM Set iPregCountChildHispF to rZActor.GetItemCount SexoutP3GestatingChildHispF Set iPregCountChildFoxStarM to rZActor.GetItemCount SexoutP3GestatingChildFoxStarM Set iPregCountChildFoxStarF to rZActor.GetItemCount SexoutP3GestatingChildFoxStarF ; Set iPregCountChildFoxStarM to rZActor.GetItemCount SexoutP3GestatingChildFoxSilverM ; Set iPregCountChildFoxStarF to rZActor.GetItemCount SexoutP3GestatingChildFoxSilverF ; Set iPregCountChildFoxStarM to rZActor.GetItemCount SexoutP3GestatingChildFoxRedM ; Set iPregCountChildFoxStarF to rZActor.GetItemCount SexoutP3GestatingChildFoxRedF Set iPregCountChildGhoulM to rZActor.GetItemCount SexoutP3GestatingChildGhoulM Set iPregCountChildGhoulF to rZActor.GetItemCount SexoutP3GestatingChildGhoulF Set iPregCountChildFeralGhoulM to rZActor.GetItemCount SexoutP3GestatingChildFeralGhoulM Set iPregCountChildFeralGhoulF to rZActor.GetItemCount SexoutP3GestatingChildFeralGhoulF Set iPregCountChildSuperMutantM to rZActor.GetItemCount SexoutP3GestatingChildSuperMutantM Set iPregCountChildSuperMutantF to rZActor.GetItemCount SexoutP3GestatingChildSuperMutantF Set iPregCountChildAlien to rZActor.GetItemCount SexoutP3GestatingChildAlien Set iPregCountChildSporeCarrierM to rZActor.GetItemCount SexoutP3GestatingChildSporeCarrierM Set iPregCountChildSporeHybridM to rZActor.GetItemCount SexoutP3GestatingChildSporeHybridM Set iPregCountChildSporeHybridF to rZActor.GetItemCount SexoutP3GestatingChildSporeHybridF Set iPregCountPupCentaur to rZActor.GetItemCount SexoutP3GestatingPupCentaur Set iPregCountPupDog to rZActor.GetItemCount SexoutP3GestatingPupDog Set iPregCountPupRat to rZActor.GetItemCount SexoutP3GestatingPupRat Set iPregCountPupMoleRat to rZActor.GetItemCount SexoutP3GestatingPupMoleRat Set iPregCountPupCoyote to rZActor.GetItemCount SexoutP3GestatingPupCoyote Set iPregCountPupBigHorner to rZActor.GetItemCount SexoutP3GestatingPupBigHorner Set iPregCountPupNightStalker to rZActor.GetItemCount SexoutP3GestatingPupNightStalker Set iPregCountPupBrahmin to rZActor.GetItemCount SexoutP3GestatingPupBrahmin Set iPregCountLarveBloatFly to rZActor.GetItemCount SexoutP3GestatingLarveBloatFly Set iPregCountLarveCazador to rZActor.GetItemCount SexoutP3GestatingLarveCazador Set iPregCountLarveSymbiote to rZActor.GetItemCount SexoutP3GestatingLarveSymbiote Set iPregCountEggDeathClaw to rZActor.GetItemCount SexoutP3GestatingEggDeathClaw Set iPregCountEggDeathClawDark to rZActor.GetItemCount SexoutP3GestatingEggDeathClawDark Set iPregCountEggDeathClawBlack to rZActor.GetItemCount SexoutP3GestatingEggDeathClawBlack Set iPregCountEggSporePod to rZActor.GetItemCount SexoutP3GestatingEggSporePod Set iPregCountEggLakeLurk to rZActor.GetItemCount SexoutP3GestatingEggLakeLurk Set iPregCountEggMireLurk to rZActor.GetItemCount SexoutP3GestatingEggMireLurk Set iPregCountEggAnt to rZActor.GetItemCount SexoutP3GestatingEggAnt Set iPregCountEggAntWorker to rZActor.GetItemCount SexoutP3GestatingEggAntWorker Set iPregCountEggAntSoldier to rZActor.GetItemCount SexoutP3GestatingEggAntSoldier Set iPregCountEggAntQueenF to rZActor.GetItemCount SexoutP3GestatingEggAntQueenF Set iPregCountEggRadRoach to rZActor.GetItemCount SexoutP3GestatingEggRadRoach Set iPregCountEggRaven to rZActor.GetItemCount SexoutP3GestatingEggRaven Set iPregCountEggGecko to rZActor.GetItemCount SexoutP3GestatingEggGecko Set iPregCountEggScorpion to rZActor.GetItemCount SexoutP3GestatingEggScorpion Set iPregCountEggMantis to rZActor.GetItemCount SexoutP3GestatingEggMantis Set iPregCountEggEyebotMini to rZActor.GetItemCount SexoutP3GestatingEggEyeBotMini Set iPregCountEggEyebotSmall to rZActor.GetItemCount SexoutP3GestatingEggEyeBotSmall Set iPregCount to iPregCountChildAfAmM + iPregCountChildAfAmF Set iPregCount to iPregCount + iPregCountChildCaucM Set iPregCount to iPregCount + iPregCountChildCaucF Set iPregCount to iPregCount + iPregCountChildAsianM Set iPregCount to iPregCount + iPregCountChildAsianF Set iPregCount to iPregCount + iPregCountChildHispM Set iPregCount to iPregCount + iPregCountChildHispF Set iPregCount to iPregCount + iPregCountChildFoxStarM Set iPregCount to iPregCount + iPregCountChildFoxStarF Set iPregCount to iPregCount + iPregCountChildFoxSilverM Set iPregCount to iPregCount + iPregCountChildFoxSilverF Set iPregCount to iPregCount + iPregCountChildFoxRedM Set iPregCount to iPregCount + iPregCountChildFoxRedF Set iPregCount to iPregCount + iPregCountChildGhoulM Set iPregCount to iPregCount + iPregCountChildGhoulF Set iPregCount to iPregCount + iPregCountChildFeralGhoulM Set iPregCount to iPregCount + iPregCountChildFeralGhoulF Set iPregCount to iPregCount + iPregCountChildSuperMutantM Set iPregCount to iPregCount + iPregCountChildSuperMutantF Set iPregCount to iPregCount + iPregCountChildAlien Set iPregCount to iPregCount + iPregCountChildSporeCarrierM Set iPregCount to iPregCount + iPregCountChildSporeHybridM Set iPregCount to iPregCount + iPregCountChildSporeHybridF Set iPregCount to iPregCount + iPregCountPupCentaur Set iPregCount to iPregCount + iPregCountPupDog Set iPregCount to iPregCount + iPregCountPupRat Set iPregCount to iPregCount + iPregCountPupMoleRat Set iPregCount to iPregCount + iPregCountPupCoyote Set iPregCount to iPregCount + iPregCountPupBigHorner Set iPregCount to iPregCount + iPregCountPupNightStalker Set iPregCount to iPregCount + iPregCountPupBrahmin Set iPregCount to iPregCount + iPregCountLarveBloatFly Set iPregCount to iPregCount + iPregCountLarveCazador Set iPregCount to iPregCount + iPregCountLarveSymbiote Set iPregCount to iPregCount + iPregCountEggDeathClaw Set iPregCount to iPregCount + iPregCountEggDeathClawDark Set iPregCount to iPregCount + iPregCountEggDeathClawBlack Set iPregCount to iPregCount + iPregCountEggSporePod Set iPregCount to iPregCount + iPregCountEggLakeLurk Set iPregCount to iPregCount + iPregCountEggMireLurk Set iPregCount to iPregCount + iPregCountEggAnt Set iPregCount to iPregCount + iPregCountEggAntWorker Set iPregCount to iPregCount + iPregCountEggAntSoldier Set iPregCount to iPregCount + iPregCountEggAntQueenF Set iPregCount to iPregCount + iPregCountEggRadRoach Set iPregCount to iPregCount + iPregCountEggRaven Set iPregCount to iPregCount + iPregCountEggGecko Set iPregCount to iPregCount + iPregCountEggScorpion Set iPregCount to iPregCount + iPregCountEggMantis Set iPregCount to iPregCount + iPregCountEggEyeBotMini Set iPregCount to iPregCount + iPregCountEggEyeBotSmall Set iBirthTokenCount to rZActor.GetItemCount SexoutP4BirthStageToken ; *** Birthing is Happening Get OffSpring Info Set iBirthAnimation to 1 Set iPlayedSound to 0 Set rOffSpringAdded to NVFakeGolfBall Set rOffSpringPlaced to NVFakeGolfBall if iPregCountChildAfAmM Set rOffSpringRemoved to SexoutP3GestatingChildAfAmM Set rOffSpringAdded to SexoutSP0BabyAAM Set iPlayedSound to 1 elseif iPregCountChildAfAmF Set rOffSpringRemoved to SexoutP3GestatingChildAfAmF Set rOffSpringAdded to SexoutSP0BabyAAF Set iPlayedSound to 1 elseif iPregCountChildCaucM Set rOffSpringRemoved to SexoutP3GestatingChildCaucM Set rOffSpringAdded to SexoutSP0BabyCM Set iPlayedSound to 1 elseif iPregCountChildCaucF Set rOffSpringRemoved to SexoutP3GestatingChildCaucF Set rOffSpringAdded to SexoutSP0BabyCF Set iPlayedSound to 1 elseif iPregCountChildAsianM Set rOffSpringRemoved to SexoutP3GestatingChildAsianM Set rOffSpringAdded to SexoutSP0BabyAM Set iPlayedSound to 1 elseif iPregCountChildAsianF Set rOffSpringRemoved to SexoutP3GestatingChildAsianF Set rOffSpringAdded to SexoutSP0BabyAF Set iPlayedSound to 1 elseif iPregCountChildHispM Set rOffSpringRemoved to SexoutP3GestatingChildHispM Set rOffSpringAdded to SexoutSP0BabyHM Set iPlayedSound to 1 elseif iPregCountChildHispF Set rOffSpringRemoved to SexoutP3GestatingChildHispF Set rOffSpringAdded to SexoutSP0BabyHF Set iPlayedSound to 1 elseif iPregCountChildFoxStarM Set rOffSpringRemoved to SexoutP3GestatingChildFoxStarM Set rOffSpringAdded to SexoutSP0BabyFoxStarF Set iPlayedSound to 1 elseif iPregCountChildFoxStarF Set rOffSpringRemoved to SexoutP3GestatingChildFoxStarF Set rOffSpringAdded to SexoutSP0BabyFoxStarF Set iPlayedSound to 1 ; elseif iPregCountChildFoxSilverM ; Set rOffSpringRemoved to SexoutP3GestatingChildFoxSilverM ; Set rOffSpringAdded to SexoutSP0BabyFoxSilverF ; Set iPlayedSound to 1 ; elseif iPregCountChildFoxSilverF ; Set rOffSpringRemoved to SexoutP3GestatingChildFoxSilverF ; Set rOffSpringAdded to SexoutSP0BabyFoxSilverF ; Set iPlayedSound to 1 ; elseif iPregCountChildFoxRedM ; Set rOffSpringRemoved to SexoutP3GestatingChildFoxRedM ; Set rOffSpringAdded to SexoutSP0BabyFoxRedF ; Set iPlayedSound to 1 ; elseif iPregCountChildFoxRedF ; Set rOffSpringRemoved to SexoutP3GestatingChildFoxRedF ; Set rOffSpringAdded to SexoutSP0BabyFoxRedF ; Set iPlayedSound to 1 elseif iPregCountChildGhoulM Set rOffSpringRemoved to SexoutP3GestatingChildGhoulM Set rOffSpringAdded to SexoutSP0BabyGM Set iPlayedSound to 2 elseif iPregCountChildGhoulF Set rOffSpringRemoved to SexoutP3GestatingChildGhoulF Set rOffSpringAdded to SexoutSP0BabyGF Set iPlayedSound to 2 elseif iPregCountChildFeralGhoulM Set rOffSpringRemoved to SexoutP3GestatingChildFeralGhoulM Set rOffSpringAdded to SexoutSP0BabyFGM Set iPlayedSound to 2 elseif iPregCountChildFeralGhoulF Set rOffSpringRemoved to SexoutP3GestatingChildFeralGhoulF Set rOffSpringAdded to SexoutSP0BabyFGF Set iPlayedSound to 2 elseif iPregCountChildSuperMutantM Set rOffSpringRemoved to SexoutP3GestatingChildSuperMutantM Set rOffSpringAdded to SexoutSP0BabySMM Set iPlayedSound to 3 elseif iPregCountChildSuperMutantF Set rOffSpringRemoved to SexoutP3GestatingChildSuperMutantF Set rOffSpringAdded to SexoutSP0BabySMF Set iPlayedSound to 3 elseif iPregCountChildAlien Set rOffSpringRemoved to SexoutP3GestatingChildAlien Set rOffSpringAdded to SexoutSP0BabyAlien elseif iPregCountChildSporeCarrierM Set rOffSpringRemoved to SexoutP3GestatingChildSporeCarrierM Set rOffSpringAdded to SexoutSP0BabySporeCarrierM Set iPlayedSound to 4 elseif iPregCountChildSporeHybridM Set rOffSpringRemoved to SexoutP3GestatingChildSporeHybridM Set rOffSpringAdded to SexoutSP0BabySporeHybridM Set iPlayedSound to 4 elseif iPregCountChildSporeHybridF Set rOffSpringRemoved to SexoutP3GestatingChildSporeHybridF Set rOffSpringAdded to SexoutSP0BabySporeHybridF Set iPlayedSound to 4 elseif iPregCountPupCentaur Set rOffSpringRemoved to SexoutP3GestatingPupCentaur Set rOffSpringAdded to SexoutSP0PupCentaur Set iPlayedSound to 8 elseif iPregCountPupRat Set rOffSpringRemoved to SexoutP3GestatingPupRat Set rOffSpringAdded to SexoutSP0PupRat Set iPlayedSound to 10 elseif iPregCountPupMoleRat Set rOffSpringRemoved to SexoutP3GestatingPupMoleRat Set rOffSpringAdded to SexoutSP0PupMoleRat Set iPlayedSound to 10 elseif iPregCountPupDog Set rOffSpringRemoved to SexoutP3GestatingPupDog Set rOffSpringAdded to SexoutSP0PupDog Set iPlayedSound to 7 elseif iPregCountPupCoyote Set rOffSpringRemoved to SexoutP3GestatingPupCoyote Set rOffSpringAdded to SexoutSP0PupCoyote Set iPlayedSound to 7 elseif iPregCountPupNightStalker Set rOffSpringRemoved to SexoutP3GestatingPupNightStalker Set rOffSpringAdded to SexoutSP0PupNightStalker elseif iPregCountPupBigHorner Set iPlayedSound to 9 Set rOffSpringRemoved to SexoutP3GestatingPupBigHorner Set rOffSpringAdded to SexoutSP0PupBigHorner elseif iPregCountPupBrahmin Set iPlayedSound to 9 Set rOffSpringRemoved to SexoutP3GestatingPupBrahmin Set rOffSpringAdded to SexoutSP0PupBrahmin elseif iPregCountLarveBloatFly Set rOffSpringRemoved to SexoutP3GestatingLarveBloatFly Set rOffSpringPlaced to SexoutSBloatFlyOffSpring elseif iPregCountLarveCazador Set rOffSpringRemoved to SexoutP3GestatingLarveCazador Set rOffSpringAdded to SexoutSP0LarveCazador elseif iPregCountLarveSymbiote Set rOffSpringRemoved to SexoutP3GestatingLarveSymbiote Set rOffSpringAdded to SexoutSKSTSymbiote1 Set iBirthAnimation to 9 elseif iPregCountEggDeathClaw Set rOffSpringRemoved to SexoutP3GestatingEggDeathClaw Set rOffSpringAdded to SexoutSEggDeathClaw ; Set iBirthAnimation to 9 Set iPlayedSound to 5 elseif iPregCountEggDeathClawDark Set rOffSpringRemoved to SexoutP3GestatingEggDeathClawDark Set rOffSpringAdded to SexoutSEggDeathClawD ; Set iBirthAnimation to 9 Set iPlayedSound to 5 elseif iPregCountEggDeathClawBlack Set rOffSpringRemoved to SexoutP3GestatingEggDeathClawBlack Set rOffSpringAdded to SexoutSEggDeathClawBlack ; Set iBirthAnimation to 9 Set iPlayedSound to 5 elseif iPregCountEggSporePod Set rOffSpringRemoved to SexoutP3GestatingEggSporePod Set rOffSpringAdded to SexoutSEggSporePod Set iPlayedSound to 5 elseif iPregCountEggLakeLurk Set rOffSpringRemoved to SexoutP3GestatingEggLakeLurk Set rOffSpringAdded to SexoutSEggLakeLurk ; Set iBirthAnimation to 9 Set iPlayedSound to 5 elseif iPregCountEggMireLurk Set rOffSpringRemoved to SexoutP3GestatingEggMireLurk Set rOffSpringAdded to SexoutSEggMireLurk ; Set iBirthAnimation to 9 Set iPlayedSound to 5 elseif iPregCountEggGecko Set rOffSpringRemoved to SexoutP3GestatingEggGecko Set rOffSpringAdded to SexoutSEggGecko ; Set iBirthAnimation to 9 Set iPlayedSound to 5 elseif iPregCountEggScorpion Set rOffSpringRemoved to SexoutP3GestatingEggScorpion Set rOffSpringPlaced to SexoutSScorpionOffSpring Set iPlayedSound to 5 elseif iPregCountEggAnt Set rOffSpringRemoved to SexoutP3GestatingEggAnt Set rOffSpringAdded to SexoutSEggAnt Set iPlayedSound to 5 elseif iPregCountEggAntWorker Set rOffSpringRemoved to SexoutP3GestatingEggAntWorker Set rOffSpringAdded to SexoutSEggAntWorker elseif iPregCountEggAntSoldier Set rOffSpringRemoved to SexoutP3GestatingEggAntSoldier Set rOffSpringAdded to SexoutSEggAntSoldier Set iPlayedSound to 5 elseif iPregCountEggAntQueenF Set rOffSpringRemoved to SexoutP3GestatingEggAntQueenF Set rOffSpringAdded to SexoutSEggAntQueen Set iPlayedSound to 5 elseif iPregCountEggRadRoach Set rOffSpringRemoved to SexoutP3GestatingEggRadRoach Set rOffSpringAdded to SexoutSEggRadRoach Set iPlayedSound to 5 elseif iPregCountEggRaven Set rOffSpringRemoved to SexoutP3GestatingEggRaven Set rOffSpringAdded to SexoutSEggRaven elseif iPregCountEggMantis Set rOffSpringRemoved to SexoutP3GestatingEggMantis Set rOffSpringAdded to SexoutSEggMantis ; Set iBirthAnimation to 9 Set iPlayedSound to 5 elseif iPregCountEggEyeBotMini Set rOffSpringRemoved to SexoutSEggEyeBotMini Set rOffSpringPlaced to SexoutSEyebotOffSpringMini Set iBirthAnimation to 9 Set iPlayedSound to 6 elseif iPregCountEggEyeBotSmall Set rOffSpringRemoved to SexoutSEggEyeBotSmall Set rOffSpringPlaced to SexoutSEyebotOffSpringSmall Set iBirthAnimation to 9 Set iPlayedSound to 6 elseif iPregCountEggRaven Set rOffSpringRemoved to SexoutP3GestatingEggRaven Set rOffSpringAdded to SexoutSEggRaven Set iBirthAnimation to 9 else if iBirthTokenCount < 1 DebugPrint "Preg4Birthing %n: Unknown Preg Birthing Error, PregCount %3.0f" rZActor iPregCount endif endif ; *** Start Birthing Stages if rZActor.IsSpellTarget SexoutP4EBirthingDue < 1 rZActor.CIOS SexoutP4EBirthingDue if iDebug == 4 DebugPrint "Preg4Birthing %n: BirthingDue Added!" rZActor endif endif if iBirthTokenCount == 1 && iDoOnce1 < 1 ; *** Wait till clothes removed if iDebug == 4 DebugPrint "Preg4Birth %n: BirthToken1Detected" rZActor endif Set iDoOnce1 to 1 ; *** Animation of Birthing in Progress elseif iBirthTokenCount == 2 && iDoOnce2 < 1 ; *** Drop to ground & Start Animation if iDebug == 4 DebugPrint "Preg4Birth %n: BirthToken2Detected" rZActor endif Set iDoOnce2 to 1 if iBirthAnimation == 1 if iDebug == 4 DebugPrint "Preg4Birth Animation 1 Start" endif if rZActor == PlayerREF DisablePlayerControls 1 1 1 0 0 1 1 con_tfc ; It won't play the animation unless TFC is toggled on a little after it's started playing. if 1 == IsPC1stPerson ; in first person, force to 3rd TapControl 13 endif endif rZActor.AddItem SexoutSP4TokenBirthAnimationF 1 1 rZActor.AddScriptPackage SexoutP4BirthingAnimation ; *** yes this is adding an AI script package to the player if iDebug == 4 DebugPrint "Preg4Birth %n: BirthAnimationAdded" rZActor endif elseif iBirthAnimation == 9 if iDebug == 4 DebugPrint "Preg4Birth Animation 9 Egg Start" endif rZActor.AddItem SexoutSNudeEggImpregT3P0B3 1 1 rZActor.EquipItem SexoutSNudeEggImpregT3P0B3 1 1 endif ; *** End Animation Options elseif iBirthTokenCount == 3 && iDoOnce3 < 1 ; *** OffSpring coming out loop if iDebug == 4 DebugPrint "Preg4Birth %n: BirthToken3Detected" rZActor endif Set iDoOnce3 to 1 Set iDoOnce4 to 0 elseif iBirthTokenCount == 4 && iDoOnce4 < 1 ; *** OffSpring coming out loop if iDebug == 4 DebugPrint "Preg4Birth %n: BirthToken4Detected" rZActor endif Set iDoOnce4 to 1 Set iDoOnce5 to 0 ; *** Birthing Complete Add OffSpring elseif iBirthTokenCount == 5 && iDoOnce5 < 1 ; *** OffSpring is Out if iDebug == 4 DebugPrint "Preg4Birth %n: BirthToken5Detected, PregCount %2.0f" rZActor iPregCount endif Set iDoOnce5 to 1 Set iDoOnce6 to 0 Set iDoOnce3 to 0 rZActor.RemoveItem rOffSpringRemoved 1 1 if iBirthAnimation == 1 if rOffSpringAdded != NVFakeGolfBall if iDebug == 4 DebugPrint "Preg4Birth %n: OffSpringAdded %n" rZActor rOffSpringAdded endif rZActor.AddItem rOffSpringAdded 1 1 if rOffSpringAdded == SexoutSKSTSymbiote1 && rZActor.GetEquipped SexoutSLOutfitSymbiote < 1 rZActor.EquipItem rOffSpringAdded 1 1 endif endif if rOffSpringPlaced != NVFakeGolfBall DebugPrint "Preg4Birth %n: OffSpringPlaced %n" rZActor rOffSpringPlaced rZActor.PlaceAtMe rOffSpringPlaced 1 0 0 endif elseif iBirthAnimation == 9 if rOffSpringAdded != NVFakeGolfBall if iDebug == 4 DebugPrint "Preg4Birth %n: OffSpringAdded %n" rZActor rOffSpringAdded endif rZActor.AddItem rOffSpringAdded 1 if rOffSpringAdded == SexoutSKSTSymbiote1 && rZActor.GetEquipped SexoutSLOutfitSymbiote < 1 rZActor.EquipItem rOffSpringAdded 1 1 rZActor.AddItem SexoutSP2VSemenSymbiote 5 1 Set iSymbioteWorn to 1 endif endif if rOffSpringPlaced != NVFakeGolfBall if iDebug == 4 DebugPrint "Preg4Birth %n: OffSpringPlaced %n" rZActor rOffSpringPlaced endif rZActor.PlaceAtMe rOffSpringPlaced 1,0,10 endif endif ; *** End Animation Options rZActor.AddItem SexoutP4BirthCountToken 1 1 ; *** To be deleted one day when Breeder is updated rZActor.AddItem SexoutP4TokenBirthCount 1 1 ; *** OffSpring Cry Sounds if SexoutSQVAR.iSexoutSounds > 0 if iPlayedSound < 1 elseif iPlayedSound == 1 rZActor.PlaySound3D QSTBabyCry elseif iPlayedSound == 2 rZActor.PlaySound3D NPCFeralGhoulSeizureLong elseif iPlayedSound == 3 rZActor.PlaySound3D NPCSuperMutantBreathOut elseif iPlayedSound == 4 rZActor.PlaySound3D NPCSporeCarrierScream elseif iPlayedSound == 5 rZActor.PlaySound3D SexoutThud elseif iPlayedSound == 6 rZActor.PlaySound3D NPCRobotEyebotMovementLPM elseif iPlayedSound == 7 rZActor.PlaySound3D NPCDogBarkSm elseif iPlayedSound == 8 rZActor.PlaySound3D NPCCentaurChaseVox elseif iPlayedSound == 9 rZActor.PlaySound3D NPCBigHornerReactSm elseif iPlayedSound == 10 rZActor.PlaySound3D NPCGiantRatIdleChirp endif endif ; *** Birth next Offspring if more than one if iPregCount < 2 || iSymbioteWorn || iPregCountEggSporePod > 1 rZActor.AddItem SexoutP4BirthStageToken 1 1 if iDebug == 4 DebugPrint "Preg4Birth %n: End of Birthing, PregCount %2.0f" rZActor iPregCount endif else rZActor.RemoveItem SexoutP4BirthStageToken 2 1 if iDebug == 4 DebugPrint "Preg4Birth %n: MultipleBirth Restarted, PregCount %2.0f" rZActor iPregCount endif endif ; *** End of birthing pause elseif iBirthTokenCount == 6 && iDoOnce6 < 1 if iDebug == 4 DebugPrint "Preg4Birth %n: BirthToken6Detected" rZActor endif Set iDoOnce6 to 1 Set iDoOnce7 to 0 ; *** Remove Animations, Pregnancy & Effects elseif iBirthTokenCount >= 7 && iDoOnce7 < 1 if iDebug == 4 DebugPrint "Preg4Birth %n: BirthToken7Detected" rZActor endif Set iDoOnce7 to 1 if iBirthAnimation == 1 if rZActor == PlayerREF EnablePlayerControls con_tfc else rZactor.pushactoraway rZactor 2 ; *** Prevents NPC's crab walking endif rZActor.RemoveItem SexoutSP4TokenBirthAnimationF 9 1 rZActor.RemoveScriptPackage if iDebug == 4 DebugPrint "Preg4Birth %n: BirthAnimationRemoved" rZActor endif elseif iBirthAnimation == 9 rZActor.UnEquipItem SexoutSNudeEggImpregT3P0B3 1 1 rZActor.RemoveItem SexoutSNudeEggImpregT3P0B3 1 1 endif ; *** End Animation Options if rZActor.IsSpellTarget SexoutP4EBirthExhaustion != 1 AddSpell SexoutP4EBirthExhaustion endif rZActor.RemoveItem SexoutP4BirthStageToken 9 1 if iDebug == 4 DebugPrint "Preg4Birth %n: PregComplete %2.0f" rZActor iPregCount endif rZActor.Dispel SexoutP4EBirthingDue if rZActor.GetEquipped SexoutSLOutfitSymbiote < 1 && iPregCountEggSporePod < 2 rZActor.RemoveItem SexoutP3PregnantTokenF 9 1 rZActor.AddItem SexoutP9TokenRemovePregnancy 1 1 DebugPrint "Preg4Birth %n: PregRemoval Token Added" rZActor endif Set iOkToRun to -1 endif ; *** End Birth Token Stages ; *** Actor not OK, Remove Fertility Token elseif iOkToRun < 0 DebugPrint "Preg4Birth %n: Invalid Actor" rZActor rZActor.Dispel SexoutP4EBirthingDue rZActor.RemoveItem SexoutSP4TokenBirthAnimationF 9 1 rZActor.AddItem SexoutP9TokenRemovePregnancy 1 1 Set iRemoving to 1 RemoveMe endif ; *** Ok to run? endif : *** iPregMainStarted End ------ offtopic In another thread I saw some discussion of the tokens and a debate about misc vs. armor. FWIW, I didn't decide on one or the other; the original sexout used misc, so I stuck with it. That said, my intention was originally to replace them all with NX, I just never finished the project. Of the 30-some-odd tokens in sexout, only a handful are actually 'used' by sexout; mostly, they are handed out because other mods still 'watch' for them rather than checking for NX vars. My intention was to deprecate them all in the 3.x branch, and 'remove' them in the 4.x branch. Well I started moving all my misc tokens to armor then found that if the tokens are added or removed at anytime, like during sex, NPC's seem to automatically requip the armor they think best, so I have left or rolled back all my counting ones as Misc.
prideslayer Posted May 25, 2013 Posted May 25, 2013 Well, if sex is working fine with KO disabled, and it always has for me, but pregnancy animations don't 'stop' if KO is disabled.. then it seems like that's the place to look for the problem. The KO has certainly never been 'required' for sexout to work properly. The first time I removed the effect, it did cause some problems with a few older mods like sewerslave, which were (unwittingly) relying on the player being made unconscious by the KO to progress, as they were just 'spamming' startConversation. SS was fixed though, and the CBDialog stuff was made much more robust as well to try and ensure that sexout would not progress until the conversation actually took place.
DoctaSax Posted May 25, 2013 Posted May 25, 2013 Ok, adding a new ref for each actor to move to after sex is easy enough. If the var is valid and set, the actor moves to where it says to move to. If it's not set/0 then default (current) behavior. As it is, all actors move either to the player, or if the player is not involved, to actorB for sex. If the knockdown is disabled, that's where they will be after sex, collisions with one another, objects, and terrain notwithstanding. All those interested in testing before I make/release the changes, just disable the KOs in MCM, and play away. If having them disabled exposes any problems, we'll find and crush them, but I don't remember seeing any. If we really wanted things to be smooth, all the animations need to be reworked by someone with the time and talent to create "intros" and "outros" in each .kf file. This is a feature of the files that none of the sexout animations use, but plenty of the vanilla ones do. Great, thanks And sure, we can never expect a completely smooth experience - the ko/getting stuck + cbs not working was just a bit overkill on the mechanics ruining the immersion there. In another thread I saw some discussion of the tokens and a debate about misc vs. armor. FWIW, I didn't decide on one or the other; the original sexout used misc, so I stuck with it. That said, my intention was originally to replace them all with NX, I just never finished the project. Of the 30-some-odd tokens in sexout, only a handful are actually 'used' by sexout; mostly, they are handed out because other mods still 'watch' for them rather than checking for NX vars. My intention was to deprecate them all in the 3.x branch, and 'remove' them in the 4.x branch.There's still some use for those tokens from time to time. Other than maintaining compatibility with older mods, there's no alternative atm for detecting some things in dialog/package/anim conditions, for instance. And a few aspects of the nx system are a little underdocumented when we get down to the finer stuff, so a getitemcount on the anim or actor tokens etc is still an easy way of telling what exactly's going on. Sexout Sound Replacer or Wear & Tear come to mind in needing that sort of information (who's doing/done what to who).
prideslayer Posted May 25, 2013 Posted May 25, 2013 Well, I'm more than willing to expand or clarify what's going on with NX, and how it's used within sexout. NX (as jaam pointed out) can also have new functions added that are conditionals and thus should show up in the geck. This is one of the things I intended to do myself -- replace all the animation token count checks in the idle anims with NX checks on the actor for the anim # and position (a/b/c) -- once I have a new version of NX. In any case, removing them isn't high on my priority list right now. They are working, and people just need to not pick them up or loot them and all should be well. Modders need to refrain from adding them to merchants leveled lists as well..
BruceWayne Posted May 25, 2013 Posted May 25, 2013 There goes my idea for a sexout token vendor... I'm not sure if this play into the whole KO-thing, but I've encountered a bug some while ago, where SO didn't clear out the animation tokens for successive sex scenes. The problem was described here: http://www.loverslab.com/topic/10778-sexout-picks-wrong-animations/ Jaam offered a temporary solution, by manually clearing out the tokens. While it works most of the time, the bug still happens on some occasions.
prideslayer Posted May 25, 2013 Posted May 25, 2013 Sent CK a request to unlock the old beta thread so I can update there. Have the 1305 and 1306 anims fixed (they were both referencing 1304 for some reason) and have added the ref -- NX only! Vars are Sexout:Start::refMoveToA (and B, and C). Forms (of course) so NX_SetEVFo. The move happens in cleanup, stage 30, which is the same point that the redress token is given (if appropriate), actor tokens are removed, etc. Basically the last stage in cleanup before callbacks are done. Bruce, I'll be taking a look at that issue as well, in that thread.
Halstrom Posted May 25, 2013 Posted May 25, 2013 Well, if sex is working fine with KO disabled, and it always has for me, but pregnancy animations don't 'stop' if KO is disabled.. then it seems like that's the place to look for the problem. The KO has certainly never been 'required' for sexout to work properly. The first time I removed the effect, it did cause some problems with a few older mods like sewerslave, which were (unwittingly) relying on the player being made unconscious by the KO to progress, as they were just 'spamming' startConversation. SS was fixed though, and the CBDialog stuff was made much more robust as well to try and ensure that sexout would not progress until the conversation actually took place. Hmm, I wasn't actually aware there was a problem with the birthing animations, I think the fix User29 suggested sorted it out, but maybe it's just a duct tape fix if I am calling the animation wrongly, it's an animation in SCR not in Sexout so not using the Sexout animation system. The other problem I was experiencing was if the player changed body outfits during sex or birthing the body became invisible, but for NPC's it worked fine, so I put a check in to prevent pregnant body swapping from occuring during sex or birthing.
DoctaSax Posted May 25, 2013 Posted May 25, 2013 Sent CK a request to unlock the old beta thread so I can update there. Have the 1305 and 1306 anims fixed (they were both referencing 1304 for some reason) and have added the ref -- NX only! Vars are Sexout:Start::refMoveToA (and B, and C). Forms (of course) so NX_SetEVFo. The move happens in cleanup, stage 30, which is the same point that the redress token is given (if appropriate), actor tokens are removed, etc. Basically the last stage in cleanup before callbacks are done. Bruce, I'll be taking a look at that issue as well, in that thread. Did some minor testing, on one specific scene. The refmoveto's worked well, and there's no negative impact I can see from setting KO off. That option, for consensual, did get removed from MCM, so atm I'm using DocMitchellRef.NX_SetEVFl "Sexout:Start::bEnableKOCons" 0 . They just sag down on top of each other now instead of flopping over forcefully, and it's already quite the improvement. Sag down, then move to the refs as they get up, then cbdialog, all as it should. Haven't tested for cbspells/items/packages or combos, or with differently placed anims though. Given that there's no mcm option to disable consensual ko, perhaps ko off should be default? Also, is it necessary to have the refMoves be nx-only? I want to change close to a hundred result scripts to declare refmoveto's, but they're still all old-version. Atm copy-pasting an extra 2 lines would suit a lot better than re-writing all of 'em - they're pretty long too with all the surface vars, specific anims and the occasional dontredress being called. I do plan on switching over completely later on in the year, when I'm back to writing.
prideslayer Posted May 25, 2013 Posted May 25, 2013 I'll add consensual KO settings in to the next beta, and default all four to off, for further (and easier) testing. There *used* to be a consensual option for that... I think anyway, pretty sure. As for the other, let me see if I can shoehorn three more quest vars into the NG quest script and the translation script. No promises.. besides, the idea is new NX only features encourage people to move to NX calls sooner rather than later. I thought you guys would all be done switching while I was away!
astymma Posted May 25, 2013 Author Posted May 25, 2013 /me accepts all the blame... no free time plus being a procrastinator is a bad combo lol Heck, I'm lucky I managed any releases at all
prideslayer Posted May 25, 2013 Posted May 25, 2013 Haha.. I'm just glad it was you that took it over and not some no-talent yabbo that breaks it more often than fixing it. Like me, for example.
DoctaSax Posted May 25, 2013 Posted May 25, 2013 As for the other, let me see if I can shoehorn three more quest vars into the NG quest script and the translation script. No promises.. besides, the idea is new NX only features encourage people to move to NX calls sooner rather than later. I thought you guys would all be done switching while I was away! Ha! Well, I do have some nx scenes. I've just been lagging in switching over the old stuff because I had a bad case of feature creep for a spell there
Halstrom Posted May 25, 2013 Posted May 25, 2013 Haha.. I'm just glad it was you that took it over and not some no-talent yabbo that breaks it more often than fixing it. Well, that's when he stepped in, when I threatened to have a go at it, and it's "yobbo", get your bonza Aussie slang right or some swaggie bogan will Bunyip kick a Woomera dry billabong hole in your esky & let your prawns, snags & tinnies go warmer than Ayer's rock at Xmas lunch
D_ManXX2 Posted May 28, 2013 Posted May 28, 2013 If i was going to make sex animations on chair, how would be the procedure to add the chair attached to character will it be used just like the props are when attaching the penis to creature ?? or do i need to look else where how to get IdleObject like was done in oblivion ?? Oblivion procedure, was just made new esp where idleObjects are set that is where the animation knows what type of object is added when animations play.
astymma Posted May 28, 2013 Author Posted May 28, 2013 I don't know about anyone else, but if there's one thing I hate it's furniture added to an animation. It would be much better if the animations were done as normal and then using the NX functionality I added to the positioning script in NG, you could then position the actors according to each furniture piece. SCR has four lists for beds, one for each 90 degree z angle, and it wouldn't be difficult to add more lists for chairs, pool tables, dining tables, desks, etc.. You'd just need to know which furniture item it was and have a list of offsets and rotations for each furniture type. As an example, let's say a dining chair was a chair with z needing to be lowered by 20 units and rotated by 90 degrees, y raised by 10 units and x lowered by 5 units. You would create a callback spell, add it to the list of spells cast by Sexout when an act starts and create another spell and add it to the Sexout list of spells to cast when it stops. The stop spell cancels what the start spell is doing. The start spell would have code like the following: float posX float posY float posZ float rotX float rotY float rotZ set posX to actor.NX_GetEVFl "Sexout:PosX" set posY to actor.NX_GetEVFl "Sexout:PosY" set posZ to actor.NX_GetEVFl "Sexout:PosZ" set rotX to actor.NX_GetEVFl "Sexout:RotX" set rotY to actor.NX_GetEVFl "Sexout:RotY" set rotZ to actor.NX_GetEVFl "Sexout:RotZ" set posX to posX - 5 set posY to posY + 10 set posZ to posZ - 20 set rotZ to rotZ + 90 actor.NX_SetEVFl "Sexout:PosX" posX 0 actor.NX_SetEVFl "Sexout:PosY" posY 0 actor.NX_SetEVFl "Sexout:PosZ" posZ 0 actor.NX_SetEVFl "Sexout:PosChanged" 1.00 0 actor.NX_SetEVFl "Sexout:RotX" rotX 0 actor.NX_SetEVFl "Sexout:RotY" rotY 0 actor.NX_SetEVFl "Sexout:RotZ" rotZ 0 actor.NX_SetEVFl "Sexout:RotChanged" 1.00 0 There's also Sexout's refSurface functionality which could also be used with any needed fine tuning positioning/rotation done the same way as above. EDIT: corrected a typo in the code
prideslayer Posted May 28, 2013 Posted May 28, 2013 Any 'item' can be used as a sex prop the same way the ZAZ animations work currently, but astymmas solution is nicer because it doesn't cause the prop to appear (perhaps colliding with other statics in the room) during the animation and then disappear afterwards. I intend to do some experimenting myself with that method, for spots where zaz animations are used in Legion and PG tryouts, as soon as I have the time.
D_ManXX2 Posted May 28, 2013 Posted May 28, 2013 True but i still need to import the chair in blender to make animation from, and then just export the animation only. that way Astyma would work right. Or do you know just use scripts to make them align with furniture ??
prideslayer Posted May 28, 2013 Posted May 28, 2013 If the chair is a vanilla asset you only need to load it into blender to get the animation positioned around it properly. The chair would not be exported from blender and then re-imported into the game, and it would not actually exist anywhere in the animation file -- it already exists in the game world. That is what astymma is talking about. The animation run without a surface reference should work fine and show the actor(s) animating without the chair. Then we tell them to use an existing chair in the world -- not a chair included in the animation. Edit: That's basically a 'yes' to your question. Just import the chair, make the animation, then export the animations without the chair.
astymma Posted May 28, 2013 Author Posted May 28, 2013 Yep, that was my point, create a generic "chair" animation for example and then it can be used in any chair if we know the position and rotation offsets for that chair.
BruceWayne Posted May 28, 2013 Posted May 28, 2013 *snip* Astymma, would it be possible to put these instructions into the API? I wasn't really aware that sexout itself supports this with inbuilt NX variables. I'd love to use beds or matresses in my scripts, instead of having to chase around to the nearest bed beforehand.
prideslayer Posted May 28, 2013 Posted May 28, 2013 DoctorSax wrote a tutorial here I believe it's up to date. I'll add a link to it from the API first post. Edit: Blah that one is for the old calling convention. Will need updated before I link it in the API thread.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.