Jump to content

Designating positions in animations


PaulGreen

Recommended Posts

1 hour ago, MadMansGun said:

 

 

   It looks like this is a bug in the original script, there was previously just no way to trip it it was probably just less likely to be tripped:


 

Spoiler

    def _parse_fnis_lines(self, lines):
        stages = {}
        untitled = set()
        title = None
        cur_stage = []

 

        def stage_finished():
            if not cur_stage:
                return
            if title:
                stages[title] = cur_stage   <---------  Problem here
            else:
                untitled.add(tuple(cur_stage))

 

        for line in lines:
            l = line.strip()
            if not l:
                stage_finished()
                title = None
                continue
            if l.startswith("'"):
                title = l[1:].strip()
                continue

            if l.startswith("s"):
                stage_finished()
                cur_stage = [l]
            if l.startswith("+"):
                assert(cur_stage)
                cur_stage.append(l)

 

        stage_finished()
        return stages, untitled

 

 

   This parsed by stage section,  each  s + + + +  up until the next ' s '.  So, the werewolf example above has two stages,  two  "s" sections, but this line basically says,   ( stage["NameOfAnimation"] = this stage )  but this will overwrite every previous parsed stage with the  current stage.  In short, the code that checks this only ever actually looked at the last stage of an animation for changes.

 

  It should be something like:
 

Spoiler

 

        def stage_finished():
            if not cur_stage:
                return
            if title:
                if not title in stages:
                    stages[title] = cur_stage
                else:
                    stages[title] += cur_stage
            else:
                untitled.add(tuple(cur_stage))

 

 

 

 

 

   Here is a fixed version.

 

 

 

 

SLAnimGenerateForMNCv11-MyEdit.pyw

Link to comment
  • 2 weeks later...
On 10/7/2018 at 7:05 PM, PaulGreen said:

.

full list of problem races i know of that don't end there animations:
Chickens
Rabbits
Slaughterfishes
Spiders (all of them, "Estrus Chaurus Spider Addon" has a script that tries to fix it but i don't know how viable it is)
Mudcrabs (+ it's idle animations are known to override SexLab animations)

 

but IceWraiths have a more serious problem, the only node that will animate is the com node, i don't know if this is a Skyrim problem or a FNIS

problem but we (me and the other animators) can't even get them to use renamed copies of there own stock animations. (at this time the only way to make animations for them is to make fake IceWraiths out of AnimObjects)

Link to comment
8 hours ago, MadMansGun said:

so far "Debug.SendAnimationEvent(ActorRef, "ReturnDefaultState")" has not worked for me.

 

Where did you add this?

 

It has worked for me. I added this line to sexlab script, then recompiled the script and put the .pex into place. Rabbit, chicken now return from animation correctly for me. I don't know about other creatures yet.

 

 

It can also be tested manually:

   In game, face creature that is stuck performing last-stage animation, bring up console, click it to activate it's form,  then send the command

SAE "ReturnDefaultState"

 

It should stop playing animation and begin acting normally.

 

 

Edit:  This should also work for slaughterfish

 

Link to comment
On 10/25/2018 at 3:40 PM, MadMansGun said:

Spiders

 

   This may be where I was confused from before..

 

   Spiders are indeed a capitalizaiton problem, a bug in FNIS.   In FNIS mod,  go to    Data\Meshes\actors\frostbitespider\behaviors    and open the file  frostbitespiderbehavior_TEMPLATE.txt

 

   Search for line

                <hkcstring>ReturnToDefault</hkcstring>

   near the top.  Change this to

                <hkcstring>returnToDefault</hkcstring>

 

   Now, re-run FNIS behavior for users and check spider animations.

 

 

   Mudcrabs  may be the same thing for returning from animations. Go to Data\Meshes\actors\mudcrab\behaviors  and do same as above for mudcrabbehavior_TEMPLATE.txt

 

 

   For idles breaking animations, I don't know.. I have no mudcrab animations. Where is a thing that has animations for mudcrabs?

 

 

 

 

   Anyone know how to report bugs in FNIS?
 

 

 

Link to comment
2 hours ago, PaulGreen said:

Where did you add this?

 

It has worked for me. I added this line to sexlab script, then recompiled the script and put the .pex into place. Rabbit, chicken now return from animation correctly for me. I don't know about other creatures yet.

 

It can also be tested manually:

   In game, face creature that is stuck performing last-stage animation, bring up console, click it to activate it's form,  then send the command


SAE "ReturnDefaultState"

t should stop playing animation and begin acting normally.

Edit:  This should also work for slaughterfish

sslActorAlias.psc

sslActorAlias.pex

 

SAE "ReturnDefaultState" gave me a error message:

"the event was not processed by the graph"

 

57 minutes ago, PaulGreen said:

 

   This may be where I was confused from before..

 

   Spiders are indeed a capitalizaiton problem, a bug in FNIS.   In FNIS mod,  go to    Data\Meshes\actors\frostbitespider\behaviors    and open the file  frostbitespiderbehavior_TEMPLATE.txt

 

   Search for line

                <hkcstring>ReturnToDefault</hkcstring>

   near the top.  Change this to

                <hkcstring>returnToDefault</hkcstring>

 

   Now, re-run FNIS behavior for users and check spider animations.

 

 

   Mudcrabs  may be the same thing for returning from animations. Go to Data\Meshes\actors\mudcrab\behaviors  and do same as above for mudcrabbehavior_TEMPLATE.txt

 

 

   For idles breaking animations, I don't know.. I have no mudcrab animations. Where is a thing that has animations for mudcrabs?

 

 

 

 

   Anyone know how to report bugs in FNIS?
 

 

 

nope, still not working on my end, i even edited the bunny's template.

 

fore has a LoversLab account, you could try PMing him.

Link to comment
45 minutes ago, MadMansGun said:

 

 

Search your entire skyrim game folder for   *hare*.*   and grab every .hkx and .txt you find, zip it up and post it.  I can see if somehow your game is made different.

 

I have to go purchase beer and fried chiken, so will not be back for a bit, heh.

 

 

I'm not familiar enough with animation creation from FNIS to know, it may be more correct to edit FNIS creature behavior file from "returnToDefault" to "ReturnToDefault"  instead of editing the template, but for purposes of this test, both should work. I'll look more at this question later.

 

 

Link to comment

Maybe it is helpful to just have more detail now..

 

HARE:

 

Here is the content of the original Skyrim behavior file for the Hare:

 

Quote

attackExit  AttackWinEnd  AttackWinStartLeft  AttackWinEndLeft  bashRelease attackRelease bashStop  bleedOutStart bleedOutStop  blockAnticipateStart  blockAnticipateStop blockHitStart blockHitStop  blockStart  blockStop FootLeft  FootRight FootScuffLeft FootScuffRight  HitFrame  KillingBlow moveStart moveStop  PairEnd preHitFrame recoilLargeStart  recoilStart recoilStop  reverseDirection  SprintStart SprintStop  staggerStart  staggerStop turnLeft  turnRight turnStop  weaponDraw  weaponSheathe weaponSwing Main_Idle_to_LocomotionState  combatStanceStart unequip attackStop  TurnEnd swimStop  NPC_TurnLeft180 NPC_TurnLeft90  NPC_TurnRight180  NPC_TurnRight90 moveForward moveBackward  SyncF_Left  SyncB_Right swimStart LocomotionState_to_Main_Idle  MainIdle_to_TurnLeft.HKX  MainIdle_to_TurnRight.HKX TurnRight.HKX_to_TurnLeft.HKX TurnLeft.HKX_to_TurnRight.HKX TurnRight.HKX_to_MainIdle TurnLeft.HKX_to_MainIdle  EquipStart  EquipStop SpitStop  MLH_SpellRelease_event  spitStanceStart spitStanceStop  magicDraw magicSheathe  SoundPlay.NPCSpiderFrostbiteAttackA SoundPlay.NPCSpiderFrostbiteAttackB BleedoutTransitionStop  TurnStart TrapExitEnd idleLeanExitStart idleLeanEnterInstant  idleLeanExitEnd BeginCastLeft idleChairGetUp  SoundPlay.NPCSpiderFrostbiteAttackBite  release MLh_SpellFire_Event ReturnToMainIlde  bleedOutIntroOut  interruptCast IdleLeanexitStart_Large MLh_SpellReady_event  MLh_SpellAimState SoundPlay ReturnToDefault NextClip  CyclicFreeze  CyclicCrossBlend  FootBack  FootFront SyncLeft  SyncRight clipEnd PickNewIdle PickNewMandible_Idle  idleStop  idle_Mandible TauntStop PickNewTaunt  staggerForwardStart PickFeedingIdle IdleSleepStart  to_IdlleLayDownDefault  idleLayDownStop aggroWarningStop  aggroWarningStart deathStop deathStart  GetUpStart  GetUpEnd  AddCharacterControllerToWorld Reanimated  GetUpBegin  Ragdoll AddRagdollToWorld DeathAnimation  Getup RemoveCharacterControllerFromWorld  IdleMandible1 IdleMandible2 cannedTurnLeft90  cannedTurnRight90 cannedTurnLeft180 cannedTurnRight180  cannedTurnRight90Flee cannedTurnRight180Flee  cannedTurnLeft90Flee  cannedTurnLeft180Flee Event07 Event04 cannedTurnMove  cannedTurnStop  ReturnDefaultState

 

Here is the FNIS creature behavior file,   BehavioredObjects.txt

 

Quote

 

...

giant;actors\giant;characters\giantcharacter.hkx;behaviors\giantbehavior.hkx;returnToDefault;;;;22;70
goat;actors\goat;characters\goatcharater.hkx;behaviors\goatbehavior.hkx;returnToDefault;;;;23;35
hagraven;actors\hagraven;characters\hagravencharacter.hkx;behaviors\havgravenbehavior.hkx;returnToDefault;;;;24;75
hare;actors\ambient\hare;characters\harecharater.hkx;behaviors\harebehavior.hkx;ReturnDefaultState;;;;25;18
hmdaedra;actors\dlc02\hmdaedra;characters\hmdaedracharacter.hkx;behaviors\hmdaedra.hkx;forceFurnExit;;AnimObjUnequip;;26;43
horker;actors\horker;characters\horker.hkx;behaviors\horkerbehavior.hkx;returnToDefault;;;;27;39
horse;actors\horse;characters\horse.hkx;behaviors\horsebehavior.hkx;returnToDefault;;;;28;51

....

 

 

 

Here is the FNIS template behavior file for the Hare:

 

Quote

                <hkcstring>Event07</hkcstring>
                <hkcstring>Event04</hkcstring>
                <hkcstring>cannedTurnMove</hkcstring>
                <hkcstring>cannedTurnStop</hkcstring>
                <hkcstring>ReturnDefaultState</hkcstring>
            </hkparam>
            <hkparam name="attributeNames" numelements="0"></hkparam>
            <hkparam name="variableNames" numelements="46">
                <hkcstring>blendDefault</hkcstring>
                <hkcstring>blendFast</hkcstring>
                <hkcstring>blendSlow</hkcstring>
                <hkcstring>Direction</hkcstring>

 

 

Here is the sexlab ActorAlias section calling events for creatures at the end of the animations:

 

Quote

    if IsCreature
        ; Reset creature idle
        Debug.SendAnimationEvent(ActorRef, "Reset")
        Debug.SendAnimationEvent(ActorRef, "ReturnToDefault")
        Debug.SendAnimationEvent(ActorRef, "FNISDefault")
        Debug.SendAnimationEvent(ActorRef, "IdleReturnToDefault")
        Debug.SendAnimationEvent(ActorRef, "ForceFurnExit")
        if ResetAnim != "IdleForceDefaultState" && ResetAnim != ""
            ActorRef.Moveto(ActorRef)
            ActorRef.PushActorAway(ActorRef, 0.75)
        endIf
    else

 

  No event is called in sexlab for "ReturnDefaultState". Adding it in and recompiling the script works for me.

 

   check that all of your file sources as above have the correct spelling and capitalization. If you followed what I said earlier in this thread, I may have messed you up here. I said to change  ReturnDefaultState   to   returnDefaultState   in the template file  BehavioredObjects.txt    which was wrong.  Undo this, then re-run FNIS to check the hare

 

 

 

 

 

Link to comment

For the SPIDER:

 

   I think I was indeed wrong again.  The FNIS object file should be edited to   R   instead of editing the template file to   r

 

 

Here is the original Skyrim behavior file for the frostspider:

 

Quote

attackExit  AttackWinEnd  AttackWinStartLeft  AttackWinEndLeft  bashRelease attackRelease bashStart bashStop  bleedOutStart bleedOutStop  blockAnticipateStop blockHitStop  blockStart  blockStop FootLeft  FootRight FootScuffLeft FootScuffRight  HitFrame  KillingBlow moveStart moveStop  PairEnd preHitFrame recoilLargeStart  recoilStart recoilStop  reverseDirection  SprintStart SprintStop  staggerStart  staggerStop turnLeft  turnRight turnStop  weaponDraw  weaponSheathe weaponSwing Main_Idle_to_LocomotionState  combatStanceStart unequip attackStart_Bite1 attackStart_Bite2 attackStop  TurnEnd swimStop  NPC_TurnLeft180 NPC_TurnLeft90  NPC_TurnRight180  NPC_TurnRight90 moveForward moveBackward  SyncF_Left  SyncB_Right swimStart LocomotionState_to_Main_Idle  MainIdle_to_TurnLeft.HKX  MainIdle_to_TurnRight.HKX TurnRight.HKX_to_TurnLeft.HKX TurnLeft.HKX_to_TurnRight.HKX TurnRight.HKX_to_MainIdle TurnLeft.HKX_to_MainIdle  AttackStart_RightChop AttackStart_ComboChop AttackStart_LeftChop  EquipStart  EquipStop SpitStop  MLH_SpellRelease_event  spitStanceStart spitStanceStop  magicDraw magicSheathe  SoundPlay.NPCSpiderFrostbiteAttackA SoundPlay.NPCSpiderFrostbiteAttackB BleedoutTransitionStop  TurnStart AttackStartLungeBite  TrapExitEnd idleLeanExitStart idleLeanEnterInstant  idleLeanExitEnd BeginCastLeft idleChairGetUp  SoundPlay.NPCSpiderFrostbiteAttackBite  release MLh_SpellFire_Event Event00 bleedOutIntroOut  interruptCast IdleLeanexitStart_Large MLh_SpellReady_event  MLh_SpellAimState SoundPlay ReturnToDefault FallStart CyclicFreeze  CyclicCrossBlend  deathStart  deathStop AddRagdollToWorld Ragdoll Getup GetUpBegin  AddCharacterControllerToWorld GetUpEnd  Reanimated  GetUpStart  RemoveCharacterControllerFromWorld  DeathAnimation  AggroWarning01_to_DefaultState  aggroWarningStart aggroWarningStop  Event02 LandStart idleSleepHoleExitStart  IdleBedGetUp  idleSleepHoleEnterInstant idleBedSleeping RagdollInstant  2_KillMoveStart 2_KillMoveEnd 2_PairEnd 2_pairedStop  2_DeathEmote  pairedStop  DeathEmote  KillMoveEnd KillMoveStart 2_KillActor KillActor KillMove1HMSpiderStabA  KillMove1HMSpiderSmashA KillMove2HMSpiderSlamA  KillMove2HWSpiderSlamA  SyncRight SyncLeft  idleSleepHoleExitMediumStart  idleSleepHoleExitSmallStart 2_SoundPlay.NPCSpiderFrostbiteAttackASD SoundPlay.NPCSpiderFrostbiteAttackASD

 

 

   Here is the FNIS creature behavior file,   BehavioredObjects.txt

   There is a capitalization problem here. The FNIS file does not match the string in the game file.
 

Quote

 

dwarvenspider;actors\dwarvenspider;characters\dwarvenspidercenturion.hkx;behaviors\dwarvenspiderbehavior.hkx;FNISDefault;;;;18;31
dwarvensteamcenturion;actors\dwarvensteamcenturion;characters\dwarvensteam.hkx;behaviors\steambehavior.hkx;forceFurnExit;;;;19;46
falmer;actors\falmer;characters\falmer.hkx;behaviors\falmerbehavior.hkx;returnToDefault;1;;;20;122
frostbitespider;actors\frostbitespider;characters\frostbitespidercharacter.hkx;behaviors\frostbitespiderbehavior.hkx;returnToDefault;;;;21;39
giant;actors\giant;characters\giantcharacter.hkx;behaviors\giantbehavior.hkx;returnToDefault;;;;22;70
goat;actors\goat;characters\goatcharater.hkx;behaviors\goatbehavior.hkx;returnToDefault;;;;23;35
hagraven;actors\hagraven;characters\hagravencharacter.hkx;behaviors\havgravenbehavior.hkx;returnToDefault;;;;24;75

 

 

   Here is the FNIS behavior template for the frostbitespider:

   The string matches the original game file. Most likely, this file is generated directly from the .hkx file. Maybe the object file above was more hand-crafted?
 

Quote

 

                <hkcstring>interruptCast</hkcstring>
                <hkcstring>IdleLeanexitStart_Large</hkcstring>
                <hkcstring>MLh_SpellReady_event</hkcstring>
                <hkcstring>MLh_SpellAimState</hkcstring>
                <hkcstring>SoundPlay</hkcstring>
                <hkcstring>ReturnToDefault</hkcstring>
                <hkcstring>FallStart</hkcstring>
                <hkcstring>CyclicFreeze</hkcstring>
                <hkcstring>CyclicCrossBlend</hkcstring>
                <hkcstring>deathStart</hkcstring>
                <hkcstring>deathStop</hkcstring>

 

 

 

   So, an example resultant behavior file created by the FNIS for modders tool. This is from Billy's pack,  "FNIS_Billyy_Creature2_frostbitespider_Behavior.hkx":

   It was created from the object file, so has the capitalization that it has,  which doesn't match what the original skyrim file has.

 

Quote

returnToDefault AnimObjectUnequip AnimObjLoad AnimObjDraw HeadTrackingOff HeadTrackingOn  StartAnimatedCamera EndAnimatedCamera IdleChairSitting  IdleChairGetUp  FNISreserve1  B_Spider_BillyyMissionary_A2_S1_REENTER B_Spider_BillyyMissionary_A2_S2 B_Spider_BillyyMissionary_A2_S3 B_Spider_BillyyMissionary_A2_S4 B_Spider_BillyyMissionary_A2_S5 B_Spider_BillyyDoggy_A2_S1_REENTER  B_Spider_BillyyDoggy_A2_S2  B_Spider_BillyyDoggy_A2_S3  B_Spider_BillyyDoggy_A2_S4  B_Spider_BillyyDoggy_A2_S5  B_Spider_Billyy69_A2_S1_REENTER B_Spider_Billyy69_A2_S2 B_Spider_Billyy69_A2_S3 B_Spider_Billyy69_A2_S4 B_Spider_Billyy69_A2_S5 B_Spider_BillyyHoldingAnal_A2_S1_REENTER  B_Spider_BillyyHoldingAnal_A2_S2  B_Spider_BillyyHoldingAnal_A2_S3  B_Spider_BillyyHoldingAnal_A2_S4  B_Spider_BillyyHoldingAnal_A2_S5  B_Spider_Billyy3pDP_A2_S1_REENTER B_Spider_Billyy3pDP_A2_S2 B_Spider_Billyy3pDP_A2_S3 B_Spider_Billyy3pDP_A2_S4 B_Spider_Billyy3pDP_A2_S5 B_Spider_Billyy3pDP_A3_S1_REENTER B_Spider_Billyy3pDP_A3_S2 B_Spider_Billyy3pDP_A3_S3 B_Spider_Billyy3pDP_A3_S4 B_Spider_Billyy3pDP_A3_S5 B_Spider_Billyy3pSpitroast_A2_S1_REENTER  B_Spider_Billyy3pSpitroast_A2_S2  B_Spider_Billyy3pSpitroast_A2_S3  B_Spider_Billyy3pSpitroast_A2_S4  B_Spider_Billyy3pSpitroast_A2_S5  B_Spider_Billyy3pSpitroast_A3_S1_REENTER  B_Spider_Billyy3pSpitroast_A3_S2  B_Spider_Billyy3pSpitroast_A3_S3  B_Spider_Billyy3pSpitroast_A3_S4  B_Spider_Billyy3pSpitroast_A3_S5  B_LargeSpider_BillyyBehind_A2_S1_REENTER  B_LargeSpider_BillyyBehind_A2_S2  B_LargeSpider_BillyyBehind_A2_S3  B_LargeSpider_BillyyBehind_A2_S4  B_LargeSpider_BillyyBehind_A2_S5  B_LargeSpider_BillyyFaceFuck_A2_S1_REENTER  B_LargeSpider_BillyyFaceFuck_A2_S2  B_LargeSpider_BillyyFaceFuck_A2_S3  B_LargeSpider_BillyyFaceFuck_A2_S4  B_LargeSpider_BillyyFaceFuck_A2_S5  B_LargeSpider_BillyyMissionaryAnal_A2_S1_REENTER  B_LargeSpider_BillyyMissionaryAnal_A2_S2  B_LargeSpider_BillyyMissionaryAnal_A2_S3  B_LargeSpider_BillyyMissionaryAnal_A2_S4  B_LargeSpider_BillyyMissionaryAnal_A2_S5  B_GiantSpider_BillyyBehind_A2_S1_REENTER  B_GiantSpider_BillyyBehind_A2_S2  B_GiantSpider_BillyyBehind_A2_S3  B_GiantSpider_BillyyBehind_A2_S4  B_GiantSpider_BillyyBehind_A2_S5  B_GiantSpider_BillyyMissionary_A2_S1_REENTER  B_GiantSpider_BillyyMissionary_A2_S2  B_GiantSpider_BillyyMissionary_A2_S3  B_GiantSpider_BillyyMissionary_A2_S4  B_GiantSpider_BillyyMissionary_A2_S5  B_GiantSpider_BillyyDoggyAnal_A2_S1_REENTER B_GiantSpider_BillyyDoggyAnal_A2_S2 B_GiantSpider_BillyyDoggyAnal_A2_S3 B_GiantSpider_BillyyDoggyAnal_A2_S4 B_GiantSpider_BillyyDoggyAnal_A2_S5 B_Spider_BillyyMissionary_A2_S1 B_Spider_BillyyDoggy_A2_S1  B_Spider_Billyy69_A2_S1 B_Spider_BillyyHoldingAnal_A2_S1  B_Spider_Billyy3pDP_A2_S1 B_Spider_Billyy3pDP_A3_S1 B_Spider_Billyy3pSpitroast_A2_S1  B_Spider_Billyy3pSpitroast_A3_S1  B_LargeSpider_BillyyBehind_A2_S1  B_LargeSpider_BillyyFaceFuck_A2_S1  B_LargeSpider_BillyyMissionaryAnal_A2_S1  B_GiantSpider_BillyyBehind_A2_S1  B_GiantSpider_BillyyMissionary_A2_S1  B_GiantSpider_BillyyDoggyAnal_A2_S1 B_Spider_BillyyMissionary_A2_S5_DONE  B_Spider_BillyyDoggy_A2_S5_DONE B_Spider_Billyy69_A2_S5_DONE  B_Spider_BillyyHoldingAnal_A2_S5_DONE B_Spider_Billyy3pDP_A2_S5_DONE  B_Spider_Billyy3pDP_A3_S5_DONE  B_Spider_Billyy3pSpitroast_A2_S5_DONE B_Spider_Billyy3pSpitroast_A3_S5_DONE B_LargeSpider_BillyyBehind_A2_S5_DONE B_LargeSpider_BillyyFaceFuck_A2_S5_DONE B_LargeSpider_BillyyMissionaryAnal_A2_S5_DONE B_GiantSpider_BillyyBehind_A2_S5_DONE B_GiantSpider_BillyyMissionary_A2_S5_DONE B_GiantSpider_BillyyDoggyAnal_A2_S5_DONE          AttrWM                  bAnimationDriven  IsFNIS

 

 

   So, what will happen is that,  the FNIS animation behavior file for an animation pack has a behavior that, technically, doesn't exist. There is no "returnToDefault"  behavior in the creature file.

 

Additionally, the sexlab actor alias script, as the above post has,  is:

 

Quote

    if IsCreature
        ; Reset creature idle
        Debug.SendAnimationEvent(ActorRef, "Reset")
        Debug.SendAnimationEvent(ActorRef, "ReturnToDefault")
        Debug.SendAnimationEvent(ActorRef, "FNISDefault")
        Debug.SendAnimationEvent(ActorRef, "IdleReturnToDefault")
        Debug.SendAnimationEvent(ActorRef, "ForceFurnExit")
        if ResetAnim != "IdleForceDefaultState" && ResetAnim != ""
            ActorRef.Moveto(ActorRef)
            ActorRef.PushActorAway(ActorRef, 0.75)
        endIf
    else

 

   not   returnToDefault. However, this may not matter..

 

 

   There is STILL some oddness that I don't understand.  I think that,  when these events are called from papyrus scripts, it is actually  CASE-INSENSITIVE. I think it will invoke the event that matches regardless of case,  however, that  invocation is now case-sensitive,  so if  in the same behavior file for the same creature,   there is differing capitalization,  it now fails.

 

 

 

So, one should edit the behavior object file  "BehavioredObjects.txt" to fix capitalization,   re-run FNIS for modders on all the animation packs with that creature file  so that the .hkx behavior files for those animations have the correct string,  and then also re-run FNIS for users,  so the final, combined behavior file has all the correct strings.

 

 

 

   The MUCH QUICKER way to just test if this is all even correct at all,  is to hex-edit the output from FNIS for users and find the instances of "ReturnToDefault",  make them "returnToDefault" , which is what I said to do a couple hours ago,  but this is "technically incorrect" and not the actual correct way to fix it.

   This will make the main creature behavior file's event name match the event name in all of the external behavior files created by animation packs, so one does not need to re-run the FNIS for modders on those animations.

 

 

 

 

 

Link to comment
4 minutes ago, MadMansGun said:

 

  Ja, I think I fucked up your file when I was wrong before, sorry  >.>

 

Replace your current "FNIS_HCOSWildlife_hare_Behavior.hkx"  file with this one. I hex-edited it to change from

 

Quote

returnDefaultState  AnimObjectUnequip AnimObjLoad AnimObjDraw HeadTrackingOff HeadTrackingOn  StartAnimatedCamera EndAnimatedCamera IdleChairSitting  IdleChairGetUp  FNISreserve1  mmg_werewolfonbunny_A1_S1_REENTER mmg_werewolfonbunny_A1_S2 mmg_werewolfonbunny_A1_S3 mmg_werewolfonbunny_A1_S4 mmg_wolfonbunny_A2_S1_REENTER mmg_wolfonbunny_A2_S2 mmg_wolfonbunny_A2_S3 mmg_wolfonbunny_A2_S4 mmg_werewolfonbunny_A1_S1 mmg_wolfonbunny_A2_S1 mmg_werewolfonbunny_A1_S4_DONE  mmg_wolfonbunny_A2_S4_DONE          AttrWM              bAnimationDriven  IsFNIS

 

to

 

Quote

ReturnDefaultState  AnimObjectUnequip AnimObjLoad AnimObjDraw HeadTrackingOff HeadTrackingOn  StartAnimatedCamera EndAnimatedCamera IdleChairSitting  IdleChairGetUp  FNISreserve1  mmg_werewolfonbunny_A1_S1_REENTER mmg_werewolfonbunny_A1_S2 mmg_werewolfonbunny_A1_S3 mmg_werewolfonbunny_A1_S4 mmg_wolfonbunny_A2_S1_REENTER mmg_wolfonbunny_A2_S2 mmg_wolfonbunny_A2_S3 mmg_wolfonbunny_A2_S4 mmg_werewolfonbunny_A1_S1 mmg_wolfonbunny_A2_S1 mmg_werewolfonbunny_A1_S4_DONE  mmg_wolfonbunny_A2_S4_DONE          AttrWM              bAnimationDriven  IsFNIS

 

See if it works now

 

FNIS_HCOSWildlife_hare_Behavior.hkx

Link to comment
18 minutes ago, PaulGreen said:

re-run FNIS for modders on all the animation packs with that creature file  so that the .hkx behavior files for those animations have the correct string,  and then also re-run FNIS for users,  so the final, combined behavior file has all the correct strings.

i think that was it, the rabbit went back to running around, i'm going to go try regenerating the other creature behavior files now.

Link to comment
25 minutes ago, PaulGreen said:

 

   The actual, most correct fix, it should match the original behavior file, which is ReturnToDefault

 

i just found another problem for animators to watch out for: DELETE ALL THE BEHAVIOR FLIES FIRST!!! the generatefnisformodders.exe does not see the difference in the "R" so it won't actuality update the fucking file ? so i just wasted a fuck load of time on NOT updating files ?

 

the spiders are working now.....or should i say ending now.

Link to comment

https://www.youtube.com/watch?v=Pu6Mid2a428

everything is ending when it should now....well at least the ones i have animations for anyways.

 

i saw something that looked suspicious to me in the mudcrab's template: "ReturnToMainIlde" off hand i don't see that in the other templates so i'm just wondering if that's the cause of the " idle animations override SexLab animations" problem.

 

 

....and we still need to decide on tags for actor race identification.

Link to comment

Some interesting stuff going on here. I don't know if it's within the scope of this, but Wisp Mother has a similar less severe problem to the Ice wraith, where you can't animate her flowy robe cloth as far as I know.

 

Doing science on the Mudcrabs though... Some things man was not meant to mess with... You don't know the horrors you could unleash!

Link to comment
8 hours ago, MadMansGun said:

 

 

Woo! lol

 

   I don't have mudcrab nor icewraiths animations.. is there a pack that has them?  Nothing looks immediately suspicious, it would help alot to have examples. Re-naming already existing ones might have other problems (partly from me still not completely understanding animation and FNIS setups), it would be best for 100% sure experimentation to have entirely original, but if they do not exist, renaming one for examples is fine too.

 

   I messaged Ashal about creature race position designation and adding animation filtering for multiple racekeys.  I do not know if he will do these things, but if so, it is cleaner than trying to organize a 'sidechannel' system. If they decide not to do it, then the tagging idea works for sure, too, just have to continue creating it. I think if next non-SSE-update-only release doesn't have changes for this, I'll bug them about it and see what they plan to do.

 

 

Link to comment
7 hours ago, Ed86 said:

sooo... spiders now  dont get stuck?

that's right, and the same goes for rabbits, chickens and slaughterfishes.

 

2 hours ago, Billyy said:

Some interesting stuff going on here. I don't know if it's within the scope of this, but Wisp Mother has a similar less severe problem to the Ice wraith, where you can't animate her flowy robe cloth as far as I know.

is it just the robe? the one thing that stands out to me is that both the Ice wraith & wisp mother use "BSLagBoneController" in there skeletons.

the Ice wraith has them on everything, and the Wisp Mother just has them on the "Wrap" nodes (note: i have removed the BSLagBoneControllers from the Ice wraiths in the past but it did not fix anything....in fact it broke things more)

Link to comment
4 hours ago, PaulGreen said:

  I don't have mudcrab nor icewraiths animations.. is there a pack that has them?

some of us did test animations that never got anywhere...i don't know if i still have any of them, but i can make some if needed.

but the problem with Ice wraiths is we don't even know if our node lists are right for exporting animations.

Link to comment
10 minutes ago, MadMansGun said:

is it just the robe? the one thing that stands out to me is that both the Ice wraith & wisp mother use "BSLagBoneController" in there skeletons.

the Ice wraith has them on everything, and the Wisp Mother just has them on the "Wrap" nodes (note: i have removed the BSLagBoneControllers from the Ice wraiths in the past but it did not fix anything....in fact it broke things more)

Yeah, it's just the robe wraps afaik. Other stuff works.

Link to comment
4 hours ago, MadMansGun said:

 

 

   I'm pretty sure the icewraith and wisp mother problems are the lag bones as you mention. Probably what would have to do is use a 'nif replacer' when the animation starts to replace the actor with another model where the lag controllers are removed.

 

   Also possible would be deactivating those controllers. I don't see a papyrus script that allow deactivating lag bone controllers, though.  Maybe someone else knows how to do this, but I don't know.

 

 

 

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