Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XML After Effect File (*.aepx) -> Understand binary number format to edit xml file

I'm trying to understand number format for aepx file for After Effect CS6 and CC

Coordinates are coded in cdat hexadecimal data. Coordinates is two number. I have made a list of number with the encoded hexadecimal value to help to understand format :

-100;-100   -> <cdat bdata="bfaaaaaaaaaaaaabbfb7b425ed097b420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

100;100     -> <cdat bdata="3faaaaaaaaaaaaab3fb7b425ed097b420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

100;200     -> <cdat bdata="3faaaaaaaaaaaaab3fc7b425ed097b420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

200;100     -> <cdat bdata="3fbaaaaaaaaaaaab3fb7b425ed097b420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

200;200     -> <cdat bdata="3fbaaaaaaaaaaaab3fc7b425ed097b420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

300;300     -> <cdat bdata="3fc40000000000003fd1c71c71c71c720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

800;200     -> <cdat bdata="3fdaaaaaaaaaaaab3fc7b425ed097b420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

800;400     -> <cdat bdata="3fdaaaaaaaaaaaab3fd7b425ed097b420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

800,5;400   -> <cdat bdata="3fdaaeeeeeeeeeef3fd7b425ed097b420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

800,5;400,5 -> <cdat bdata="3fdaaeeeeeeeeeef3fd7bbbbbbbbbbbc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

0;400,5     -> <cdat bdata="00000000000000003fd7bbbbbbbbbbbc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

800,5;0     -> <cdat bdata="3fdaaeeeeeeeeeef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

400,5;800,5 -> <cdat bdata="3fcab333333333333fe7b7f0d4629b7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"/>

Someone has an idea of this number format ?

like image 492
VanVan Avatar asked Sep 18 '25 15:09

VanVan


1 Answers

Not sure if it's still relevant, however I figured out that it's a double representation (big endian)

-100;-100   -> -0.0520833333333333 -0.0925925925925926
100;100     ->  0.0520833333333333  0.0925925925925926
200;100     ->  0.104166666666667   0.0925925925925926
200;200     ->  0.104166666666667   0.185185185185185
800;200     ->  0.416666666666667   0.185185185185185
800;400     ->  0.416666666666667   0.37037037037037
800,5;400   ->  0.416927083333333   0.37037037037037
0;400,5     ->  0.000000000000000   0.370833333333333
400,5;800,5 ->  0.20859375          0.741203703703704

However, those values are not exact pixels, as you might expect, they represent a coefficient. Each of them should be multiplied by your composition width and height respectively.

As far as i can tell your had 1920x1080 resolution:

0.416927083333333 * 1920 = 800.4999999999993

P.S. I'm working on aepx format research, in case you would like to contribute: https://github.com/inlife/aftereffects-project-research

like image 114
Inlife Avatar answered Sep 21 '25 08:09

Inlife