Animation Tab

From the Oblivion ConstructionSet Wiki
Revision as of 03:25, 24 April 2006 by imported>Maian
Jump to navigation Jump to search

Shows all the animations available to the actor.

Animations are stored as KF files. For actors, 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 tells that block what skeleton part they are operating on.
  • 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.
  • The animation group section (LB, LA, LH, RA) an animation belongs to apparently isn't encoded within the file. I suspect it is hardcoded into the game.
  • 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 are instead handled by the idle animation system.