Jump to content

SexoutNG - need input


astymma

Recommended Posts

 

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!)

Link to comment

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.

Link to comment

 

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 :P

 

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 :P - 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.

Link to comment

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.

Link to comment

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.

Link to comment

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.

Link to comment

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).
Link to comment

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.. ;)

Link to comment

There goes my idea for a sexout token vendor... :lol:

 

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. 

Link to comment

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.

Link to comment

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.

Link to comment

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.

Link to comment

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! ;)

Link to comment

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 :)

Link to comment

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   :)

Link to comment

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.

Link to comment

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

Link to comment

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.

Link to comment

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. :)

Link to comment

 

*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.

Link to comment

Archived

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use