ndh Posted July 1, 2014 Posted July 1, 2014 How can I find out the names of the animations that are currently playing? Either on the player or on an NPC/Follower? In the console I found this ExtraInfoWindow, I suspect it's from SkyUI, but I can't seem to find anything about animations.
fore Posted July 2, 2014 Posted July 2, 2014 I don't think there is a way to figure that out. The Skyrim engine doesn't know anything about animation files. They are all hidden in the HBT subsystem (the behaviors) which the engine interfaces with Animation Events and Animation Variables.
ndh Posted July 3, 2014 Author Posted July 3, 2014 (edited) Ok, thank you. I was just frustrated by loading animation after animation in Max (having to scroll through the file dialog), but then I remembered that I can also view the animations in the Creation Kit, which is a lot faster.Another question: How does the NPC follow animation work? When I walk, the followers' walk looks exactly the same as the player's. This tells me that the NPC uses the correct animation file (female) for walking. But when I get further away and the NPC starts running, the animation looks super crappy because of the bad interpolation. I tried setting the f*Interpolation* values for fast walk to 0 and for jog to 1, but I think these are not used for following. Looking at the mt_behavior.xml, I assume that this is governed by MT_ForwardBlend, which defines five interpolation points for different movement speeds, from MT_WalkForwardSlow to MT_RunForwardFast. But how does this interpolation work? Or: How can I make it work better? Does this only work properly with annotations (FootLeft/FootRight)?To answer my own question: The problem was that the Havok Tool doesn't export the annotations correctly from Maya. It only read attribute names that start with "hk", and it also stores this "hk" prefix in the animation files. The workaround is to call the attribute "hkot", so the annotations are exported as "hkotLeft" and "hkotRight". Then replace the string "hkot" with "Foot" in the binary files. Crude, but works. Edited July 3, 2014 by ndh
fore Posted July 3, 2014 Posted July 3, 2014 Looking at the mt_behavior.xml, I assume that this is governed by MT_ForwardBlend, which defines five interpolation points for different movement speeds, from MT_WalkForwardSlow to MT_RunForwardFast. But how does this interpolation work? Or: How can I make it work better? Does this only work properly with annotations (FootLeft/FootRight)? But there is another, Bethesda made problem involved. You looked at the node names MT_WalkForwardSlow to MT_RunForwardFast, but did you notice the file names associated with them? Lazy Beth only implemented 2 animations only for those 5 speeds (mt_walkforward.hkx and mt_runforward.hkx). What differs for those 5 points is only the speed of the character, which is animation independent, and the percentage of how these 2 files are merged for each point.
ndh Posted July 3, 2014 Author Posted July 3, 2014 Yea, I realized. They made it so that the interpolation happens only between 1.2*walk and 1.0*run (instead of e.g. 1.0*walk and 1.0*run). What I find weird is that they didn't use mt_sprintforward in this blending construct. When I toggle between walk and run in the game, it actually works really well. There's a pretty smooth transition between these animations, no matter at which time within the animation the switch occurs. Not so with sprinting. There's always a pretty noticeable jump in the transition, and the sprint animation always starts with the right foot in the air. You wouldn't happen to be able to do something about this with your behavior file magic? :)
fore Posted July 3, 2014 Posted July 3, 2014 That is predefined by havok. Havok actually always defines 35 animations for for 1 type of movement (non-armed, 1hm, 2hm, ...), including the directional moves. Those five are only a sub-block of the whole picture. Sprint apparently didn't fit into this pattern, that's why they made it independent of the other movement.
Recommended Posts