OBD:TRIA

From OniGalore
Revision as of 21:38, 16 July 2007 by Neo (talk | contribs)
Jump to navigation Jump to search
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 char[22] AD DE... dead unused
0x0e int16 13 00 19 array size
First element (black outline)
0x00 int8 00 0 parent bone ID : none
0x01 int8 01 1 child bone ID : left thigh
0x02 int8 00 0 sibling bone ID : none
0x03 int8 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 (null 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"

Bones

Bone ID overview
HEX DEC Bone
00 00 pelvis/none
01 01 left thigh
02 02 left calf
03 03 left foot
04 04 right thigh
05 05 right calf
06 06 right foot
07 07 mid
08 08 chest
09 09 neck
0A 10 head
0B 11 left shoulder
0C 12 left arm
0D 13 left wrist
0E 14 left fist
0F 15 right shoulder
10 16 right arm
11 17 right wrist
12 18 right fist

(Thanks to ZDLO) (and not only him)

Note
"arm" is also sometimes referred to as "bicep"
(although correct spelling is biceps : that's a muscle)

Investigation

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

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 extra-low-LOD (i.e. force-shield) TRCM 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 "normal" 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 mormal-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 inane 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 TRCM 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