The first image shows the header and the beginning of the first package. The second image shows the end of the first package.
![]() |
![]() |
Hex | Translation | Meaning |
---|---|---|
01 35 02 00 | 565 | 00565-.CRSA |
01 00 00 06 | 3 | level 3 |
AD DE | dead | not used |
11 00 00 00 | 17 | 17 packages available |
11 00 00 00 | 17 | 17 packeges used (one package is edged in black) |
14 00 00 00 | 20 | 20 packages possible |
Below follows the first package. | ||
_lvl_3_Intro... | space for notes | |
01 36 02 00 | 566 | link to 00566-TCTF_lite_1.ONCC |
C1 74 66 3F | 0.900219 | x-position of the first point of the equilateral triangle |
00 78 3E 3D | 0.046501 | y-position (height) of the first point of the equilateral triangle |
45 AB DD 3E | 0.432947 | z-position of the first point of the equilateral triangle |
A6 8B 7D 3D | 0.061901 | x-position of the second point of the equilateral triangle |
19 73 7F BF | -0.997850 | y-position (height) of the second point of the equilateral triangle |
EE 67 B0 BC | -0.021534 | z-position of the second point of the equilateral triangle |
03 AE DC 3E | 0.431015 | x-position of the third point of the equilateral triangle |
82 2C 3D 3D | 0.0461850 | y-position (height) of the third point of the equilateral triangle |
8D B2 66 BF | -0.901162 | z-position of the third point of the equilateral triangle |
C5 FA E7 41 | 28.997446 | x-position of the pelvis |
2E 2B CB C1 | -25.396084 | y-position (height) of the pelvis |
58 B4 45 C1 | -12.356529 | z-position of the pelvis |
After the pelvis follows the data (same structure as the light green coloured fields) for the other 18 bodyparts. The end of every package contains the bounding box data (see rows below). | ||
D4 22 8C 41 | 17.517006 | minimal x-position of the bounding box (Thanks to geyser.) |
95 50 E9 C1 | -29.164347 | minimal y-position (height) of the bounding box (Thanks to geyser.) |
BC 31 9C C1 | -19.524284 | minimal z-position of the bounding box (Thanks to geyser.) |
75 E6 14 42 | 37.225056 | maximal x-position of the bounding box (Thanks to geyser.) |
2E 20 B1 C1 | -22.140713 | maximal y-position (height) of the bounding box (Thanks to geyser.) |
07 B1 D3 C0 | -6.615360 | maximal z-position of the bounding box (Thanks to geyser.) |
Bones Here is one of the few places where the bone count 19 is apparently hardcoded. I.e., custom characters with weird bone counts won't work. See, e.g., TRIA What's in a bone? The transformation matrix (3D rotation/scale/shear/mirror and translation) can be seen as four 3D vectors X, Y, Z, and R in world space. If a bone mesh has a vertex at (x, y, z) in its native coordinates, then the actual position of that vertex in the level will be R + x X + y Y + z Z That's the transformation defined by the 3x4 transform matrix. Reminder : the 2nd coordinate of X, Y, Z, and R is the height. Authoring The script command make_corpse(filename) creates a separate corpse file in the Oni folder. The pose of the corpse is taken from the player character. The format is roughly as above. The contents of the files thus created can then be inserted as elements in a level's CRSA.
![]() | Back to File Types | ![]() |