EvilEngine/ANIM

From Heavy Iron Modding
Revision as of 06:18, 17 September 2018 by Battlepedia>Igorseabra4

Format

Offset Type Description
0x00 char[4] Magic bytes. Always "SKB1".
0x04 int Unknown
0x08 short numBones. Number of bones in the model.
0x0A short numFrames. Length of the animation in frames. The length in seconds can be found as the last entry in the frameTimes array.
0x0C int numKeyframes. Combined total of the number of keyframes set for each bone.
0x10 int[3] Unknown
0x1C Keyframe[numKeyframes] keyframes. List of all keyframes in the animation. A Keyframe defines the position, rotation, and scale of a bone at a specific frame in the animation.
- float[numFrames] timeMap. A list of timestamps which map each frame of the animation to a time in seconds. Usually this starts at 0 and goes up by an interval of 0.01666 (1/60) or some multiple of 0.01666. This can be used to change the speed of an animation or stretch any particular frame across a longer or shorter amount of time than the rest of the frames.
- KeyframeMap[numFrames - 1] keyframeMaps. A list of KeyframeMaps for each frame of the animation. A KeyframeMap assigns each bone to a specific keyframe in the keyframes array. How exactly the bones are assigned is not entirely known yet.
Keyframe
Offset Type Description
0x00 short Frame
0x02 short Xrot
0x04 short Yrot
0x06 short Zrot
0x08 short Scale
0x0A short Xpos
0x0C short Ypos
0x0E short Zpos
KeyframeMap
Offset Type Description
0x00 short[numBones] Keyframe Indexes