Jump to content

OBD:TRAM/raw0x34: Difference between revisions

→‎Compression size 6: additional insight after batch-processing the TRAM
m (→‎Compression size 6: reformulating)
(→‎Compression size 6: additional insight after batch-processing the TRAM)
Line 185: Line 185:
|}
|}
An orientation consists of three angles, each of them stored in quantized form, as a 2-byte signed integer (short).  
An orientation consists of three angles, each of them stored in quantized form, as a 2-byte signed integer (short).  
:*Oni converts from the stored integer to an angle through multiplication by 360°/65535 = '''0.00549324'''78828[...]
:*Oni converts from the stored integer to an angle through multiplication by 360°/65535 = '''0.00549324'''78828[...]
:*Thus, when quantizing angles from a new animation, multiply the angles by 65535/360° = '''182.041'''6667[...]
:*Thus, when quantizing angles from a new animation, multiply the angles by 65535/360° = '''182.041'''6667[...]
(It would make more sense here to take the ratio with 65536 rather than 65535, but Oni indeed uses 65535.)
:*A quantized angle of 65535 never occurs in Oni, so apparently they consistently used only 0 through 65534.


Note that these angles cannot be used directly for interpolation, they must first be converted to quaternions.
Note that these angles cannot be used directly for interpolation, they must first be converted to quaternions.