Wobble wrote:The new animation format has reduced the file size in half. They are now compressing rotation, position, scale, and time.
The previous versions stored keys by frame number. Now, keys are stored by time. This is why they replaced num_frames with anim_length in the header.
I still don't know how to use section #2, but you can probably ignore it.
It looks like there are 2 subsections in section #1. The first subsection seems to be a fixed list of starting and ending keytimes for each bone. (e.g. 0x0000 and 0xFFFF). This is always present.
The second subsection contains a varying number of keyframes, with varying key type (pos/rot/scl), sorted by time (0x0000 to 0xFFFF). Since each keyframe has a time value, there doesn't seem to be a need to index it. That's why I don't see the purpose of section #2.
As you told seems that section 1 divided to 2 subsection, so you helped a lot. I don't really understand why subsection1 has 3 blocks with 4 10-bytes lines for rot, pos and scale. You told that we have starting and ending keytimes for each bone, but in this case there should be 2 lines for rot,pos,scale blocks.
I am stuck with converting keytime to frame number. Do you have any idea how it can be converted? In previous version we have fill frames with position and rot values for all bones. I think this new format could be converted into the same structure.
Thanks in advance,
You all did the great research job.