Difference between revisions of "Animation Tab"
imported>Jjones |
imported>Throttlekitty (→Animation file format: corrected info about .kf data) |
||
Line 33: | Line 33: | ||
<!-- not sure if following belongs here, but it is useful info... --> | <!-- not sure if following belongs here, but it is useful info... --> | ||
The KF format specification hasn't been released by Bethesda yet | The KF format specification hasn't been released by Bethesda yet. 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. | * 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. | * 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 gun 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. | * Animations also determine when certain game actions occur during the animation, such as when a gun 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. | ||
* 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: 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 | * 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 is to contain keyframe data (NiTransformData), and that the data should be [http://en.wikipedia.org/wiki/Interpolation Interpolated]. NiBSplineCompTransformInterpolator and its child nodes are difficult to visualize in NifSkope, but contains smooth curve data. | ||
* Some animations apparently loop automatically when played in the CS preview window. | * NiTransformData can also dictate how keyframes are interpolated. Linear Interpolation will move in a direct line from one keyframe to another, such as a sharp sawtooth wave. Quadratic Interpolation can specify arcs to travel between keyframes, such a a smooth sine wave. | ||
* Some animations apparently loop automatically when played in the CS preview window. This is governed by the 'Cycle Type' field in a .kf, which can be set to forward (once), looping, or backward (once). | |||
[[Category:Creatures]] | [[Category:Creatures]] | ||
[[Category:NPC]] | [[Category:NPC]] |
Revision as of 16:35, 17 December 2008
The Animation Tab shows all the animation available to the actor. If the preview box is checked, selecting one of the animations will show it in the preview window.
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. Animation files can be placed at meshes\characters\_male\specialanims and then assigned to individual actors to be used instead of the default 3rd person animations. It is possible to assign animations to the "player" actor which will affect the player in game. Using the race menu will reset the player's animations to default but saving and reloading will reactivate the new animations.
Animations belong to animation groups (AnimGroup). Animations that share the same AnimGroup can not play simultaneously, e.g. only one animation in the Movement AnimGroup can be active at a time. The exception to this is when transitioning from one animation to the next, the two animations will blend together. E.g. when transitioning from walkForward to runForward, the animations will both play simultaneously during the transition period. However, animations in separate AnimGroups can play simultaneously. This allows actors to play attacks while moving.
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 - allows the actor to move freely in the preview window
- Use Actor Speed - If selected, the actor's speed attribute will alter the animation speed.
- 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:
- Idle
- Movement
- LeftArm
- LeftHand
- Weapon
- WeaponUp
- WeaponDown
- SpecialIdle
For animations that loop automatically, it is critically important you use a "playgroup idle 1" command when you wish to break the loop.
Animation file format
The KF format specification hasn't been released by Bethesda yet. 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 gun 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.
- 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 is to contain keyframe data (NiTransformData), and that the data should be Interpolated. NiBSplineCompTransformInterpolator and its child nodes are difficult to visualize in NifSkope, but contains smooth curve data.
- NiTransformData can also dictate how keyframes are interpolated. Linear Interpolation will move in a direct line from one keyframe to another, such as a sharp sawtooth wave. Quadratic Interpolation can specify arcs to travel between keyframes, such a a smooth sine wave.
- Some animations apparently loop automatically when played in the CS preview window. This is governed by the 'Cycle Type' field in a .kf, which can be set to forward (once), looping, or backward (once).