Animation Tab
Shows all the animations available to the actor.
Animations are stored as KF files. For the player's character and NPCs, 3rd person animations are located at meshes\characters\_male (despite the name, animations are gender-neutral). 1st person animations are located at meshes\characters\_1stperson.
Animations belong to animation groups (AnimGroup). When multiple animations share the same animation group, the game chooses a particular animation based off the character's state. For example, both castself.kf and onehandcastself.kf belong to the CastSelf animation group. Both are played when casting a self-targeted spell. castself.kf is played when the no weapon is held at the ready (and no shield), while onehandcastself.kf is played when a one-handed weapon is out (and no shield). (The castselfalt.kf and onehandcastselfalt.kf are used for other shield/weapon combinations.)
The Group Frame Properties area lists actions that are performed during the animation and the frames and times for those actions. It always lists the Start action (which is always at frame 0) and the End action, which is when the animation ends. Other actions that might appear are the Hit action (when the weapon hits or spell is cast during the animation).
The Group Sound Properties area lists any sounds that are played during the animation and the frames and times for those actions.
Previewing animations
If the Preview Full box (under the preview window) is checked, selecting one of the animations will show it in the preview window.
The Preview Controls area has some preview options:
- Allow Movement - not sure if this really has any effect
- Use Actor Speed - not sure what this does
- Animation Speed - controls speed of animation
When an animation is played, one of the last four preview controls (LB, LA, LH, or RA) is checked. They are animation group sections:
- LB - Lower Body
- LA - Left Arm
- LH - Left Hand
- RA - Right Arm
One animation each can be playing at a time for each of these sections (I think). These sections don't limit the animations to the corresponding skeletal parts. For instance, bowattack.kf plays in the Right Arm section but it clearly plays in both the left and right arms. Some animations, namely idle ones, will loop automatically.
Animation file format
The KF format specification hasn't been released by Bethesda yet, so making new animations is impossible for now. There are some tidbits of useful information though (gleaned from NifSkope):
- The animation group of an animation is stored in the file. In NifSkope: NiControllerSequence/Name.
- Animation length is stored in the file. In NifSkope: In NiControllerSequence, look at Start Time and Stop Time. Also, in NiTextKeyExtraData/Text Keys/Keys, look at the first and last keys for start and stop times, respectively. I'm not sure why the times are in two different places, but they should be equal in value.
- Animations also determine when certain game actions occur during the animation, such as when a spell is fired, when a weapon hits, or when a sound is played. These are displayed under Group Frame Properties and Group Sound Properties. In NifSkope: In NiTextKeyExtraData/Text Keys/Keys, look at all the keys besides the first and last. For example, castself.kf has key values "Blend: 9" and "Hit", where "Blend: 9" is unknown (probably some graphics thing) and the "Hit" time determines when the spell takes effect.
- In NifSkope: Each NiTransformInterpolator and NiSplineCompTransformInterpolator is responsible for the animation of a certain skeleton part. In NiControllerSequence, each Controlled Block links to an interpolator block and specifies: what skeletal part the interpolator is operating on, and the priority of animating that part (in case multiple animations are animating the same skeletal part).
- In NifSkope: If a NiTransformInterpolator contains an NiTransformData, that NiTransformData contains a sequence of rotations, translations, and scales at specified times. The role of NiTransformInterpolator by itself is unclear. NiBSplineCompTransformInterpolator and its child nodes are even more unknown, but their name suggests they have something to do with b-spline transformations, as opposed to linear transformations.
- I'm not sure whether the animation group section (LB, LA, LH, RA) an animation belongs to is encoded within the file.
- Some animations apparently loop automatically when played in the CS preview window. I don't think this is hardcoded into the game, and looping animations may instead be handled by the idle animation system. There also seems to be an integer in the file that determines whether an animation loops.