EvilEngine/ANIM
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 |