Difference between revisions of "Animation Tab"

172 bytes added ,  17:35, 17 December 2008
→‎Animation file format: corrected info about .kf data
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, so making new animations is impossible for now. There are some tidbits of useful information though (gleaned from NifSkope):
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 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.
* 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. 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.
* 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]]