Jump to content

Using vanilla idles


Recommended Posts

  • 3 weeks later...

The more I test, the more confused I get; at this point I can no longer tell if am I confused or not šŸ™‚.

I am using IdlePray on an NPC:

  • registerForAnimationEvent( target, "IdleStop"); I immediately get an event
  • Debug.sendAnimationEvent( target, "IdlePray"); arms start lifting, and stay up
  • wait some time
  • Debug.sendAnimationEvent( target, "IdleStop"); arms start dropping, and I get an IdleStop event
  • unregisterForAnimationEvent( target, "IdleStop")

... so that looks good, except I don't understand why I get an IdleStop event from the getgo.Ā  I my previous tests, I was using debug.notification to trace events; I think that sometimes debug.notification does not preserve well the order of the messages, making it look like the IdleStop happened after sending IdlePray.Ā  I am now using a tracing method that preserves the order better, and the IdleStop seems to always happen between the registerForAnimationEvent and sendAnimationEvent (which are two consecutive lines of code; the IdleStop event must be picked up by a 2nd CPU thread in order two run between these two lines of papyrus).

If I send IdleForceDefaultState instead of IdleStop, the arms drop abruptly; otherwise no change.

Through out this sequence, bIsInMT is True, and remains true (before, during and after).

I also tried monitoring the bool variable bIdlePlaying; it remains false (before, during and after).

The sgv console command, strangely, gives no output, as if the variables bIsInMT and bIdlePlaying don't exist.

If I try with IdleCiceroDance1 instead of IdlePray, I get a similar sequence, except there is a false start:

  • registerForAnimationEvent( target, "IdleStop"); I immediately get an event
  • Debug.sendAnimationEvent( target, "IdleCiceroDance1"); dancing starts, but stops immediately and I receive a 2nd IdleStop event
  • wait for the 2nd IdleStop event
  • Debug.sendAnimationEvent( target, "IdleCiceroDance1"); dancing resumes, and keeps going
  • wait some time
  • Debug.sendAnimationEvent( target, "IdleStop"); dancing stops, and I get an IdleStop event
  • unregisterForAnimationEvent( target, "IdleStop")

So perhaps the IdlePray/IdleStop events work and my confusion is only the result of using debug.notification to trace...

I am trying to generalize this for other idles, and to chain idles one after the other, and to deal with idles that are aborted when another NPC bumps into the idler.Ā  I'll update if I learn anything new.

@PeterMartyr, looks like your information does not apply to NPCs, or at least to my use case...

Link to comment
Share on other sites

@xkkmElĀ I give you a hint, when you check the the animation graph the game needs to be in certain state, else yeah bools and int give no output.. so checking it in the console will always be null, every single time

try this if you want to continue having fun

  1. install an new ide or animation, loop or single matters not
  2. hack skyrim with FNIS or Nemesis
  3. using only the animation graph and onlyĀ  an onInit Event
  4. AND one line of debug code output to your choice
  5. trace, custom trace, console, box or notification. matters not
  6. Is it installed correctly, without using any Debug: AnimationĀ or Play Idle CodeĀ 
  7. Just the animation graph....

BTW it worked fine with NPC for me,Ā  I was also using an idle array data structure and play idle, with what played being random

so it was a tiny little bit more challenging than DEBUG code that is HARDCODEDĀ  šŸ˜‰ but that a great place to start if your new to this

The animation graph works if you use it correctly

EDITĀ correlation does not imply causation, has I am sure you are aware..Ā 

Edited by PeterMartyr
Link to comment
Share on other sites

  • Recently Browsing   0 members

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