OBD:TRIA

ONI BINARY DATA
TRGE << Other file types >> TRIG
TRIA : Totoro Quaternion Body Index Array
switch to XML:TRIA page
Overview @ Oni Stuff
OBD.png


Tria a.gif


Offset Type Raw Hex Value Description
0x00 res_id 01 63 04 00 1123 01123-.TRIA
0x04 lev_id 01 00 00 06 3 level 3
0x08 pad[22] AD DE dead padding
0x1E uint16 13 00 19 array size
First bone (pelvis) offset (black outline)
0x00 uint8 00 0 parent bone ID (unused)
0x01 uint8 01 1 child bone ID: left thigh
0x02 uint8 00 0 sibling bone ID: none
0x03 uint8 DE dead unused


Parent bone ID
Oni doesn't seem to parse it; the direct links (child + sibling) are enough to define the bone hierarchy.
Child bone ID
There is no child for e.g. head, feet, fists. Multiple children are specified via the sibling link.
Sibling bone ID
"Left leg" links to "right leg", which links to "mid": they are all children of "pelvis". "Head" links to "left shoulder", which links to "right shoulder"; they are all children of "neck".

Bone overview

The names used by the community are given first, and the names used internally by the engine are given second where they differ.

Hex Dec Bone
00 00 pelvis (or none)
01 01 left thigh
02 02 left calf (aka left shin)
03 03 left foot
04 04 right thigh
05 05 right calf (aka right shin)
06 06 right foot
07 07 mid (aka abdomen)
08 08 chest
09 09 neck
0A 10 head
0B 11 left shoulder
0C 12 left arm (aka left upper arm)
0D 13 left wrist (aka left forearm)
0E 14 left fist (aka left fist)
0F 15 right shoulder
10 16 right arm (aka right upper arm)
11 17 right wrist (aka right forearm)
12 18 right fist (aka right hand)
Note
The "arm bone" is also sometimes referred to as "bicep" by the community (although the correct singular form is actually biceps, that's the name of the muscle).

Investigation

There are 2 different TRIA files in Oni. This one, used by most TRCMs:

Bone 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12
Parent 00 00 01 02 00 04 05 00 07 08 09 09 0B 0C 0D 09 0F 10 10
Child 01 02 03 00 05 06 00 08 09 0A 00 0C 0D 0E 00 10 11 12 00
Sibling 00 04 00 00 07 00 00 00 00 00 0B 0F 00 00 00 00 00 00 00

and this other one, used by the extra-low-LOD ("force shield") TRCMs of male scientists:

Bone 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12
Parent 00 00 01 02 00 04 05 00 00 00 00 00 00 00 00 00 00 00 00
Child 01 02 03 00 05 06 00 00 09 0A 00 0C 0D 0E 00 10 11 12 00
Sibling 00 04 00 00 07 00 00 00 00 00 0B 0F 00 00 00 00 00 00 00


The common one gives you a normal hierarchy:

0 + 1 - 2 - 3 - X
  + 4 - 5 - 6 - X
  - 7 - 8 - 9 + 10 - X
              + 11 - 12 - 13 - 14 - X
              - 15 - 16 - 17 - 18 - X

While the low-LOD-doctor one gives you a weird hierarchy:

0 + 1 - 2 - 3 - X
  + 4 - 5 - 6 - X
  - 7 - X
8 - 9 + 10 - X
      + 11 - 12 - 13 - 14 - X
      - 15 - 16 - 17 - 18 - X

(neglecting the fact that parent links are null for the upper part of the body)

It would look like chest is directly parented by the root bone, but then it's not a sibling of pelvis… so it's completely loose.

The associated TRTA is also weird. The only difference between the extra-low-LOD and the normal-LOD TRTA of male scientists is the offset of chest. In the normal-LOD TRTA, the offset is (1.4, 0, 0), whereas in the extra-low-LOD TRTA, it is (0, 0, 13.5). This again seems to indicate that chest is parented by the root bone if at all….

And indeed, if you specify e.g. Kerr's TRBS to use nothing but the extra-low-LOD TRCM (and its TRTA and TRIA, which is the whole point), you'll see weird stuff: Kerr's upper body floating around, control limited to Kerr's legs and the weapon, if any…. Conclusion: generally speaking, the TRTA and TRIA of low-LOD TRCMs are ignored. Any body in the TRBS uses the TRTA and TRIA of the extra-high-LOD TRCM (i.e. the TRCM linked to at 0x18 in the TRBS).


ONI BINARY DATA
TRGE << Other file types >> TRIG
TRIA : Totoro Quaternion Body Index Array
Character file