OBD:File types/Naming
- Except for TXMP and M3GM, files are either always named or always unnamed
- Unnamed files are necessarily linked to by file-ID from another file
- Named files may or may not be linked to by file-ID from another file
- Named files are the only ones directly accessed by the engine
- Unnamed files are the "private" data of their respective parents
- (the fact that they can be "shared" doesn't make them "public")
Hierarchy (parents/children) is based on links-by-file-ID only.
- Additional information on links-by-filename and links-by-label is provided when appropriate.
TXMP
TXMP are generally named; unnamed TXMP are always animation frames of a named TXMP.
Unnamed TXMP
- parent
- (unnamed) TXAN (part of (named) TXMP)
- children
(unnamed) TXAN (optional)- (named) TXMP (optional)
- .raw/.sep part
Named TXMP
- parent
- (named) TRMA
- (unnamed) TXMA (part of (named) AKEV)
- (named) ONCC
- (named) ONWC
- (named) ONGS
- ... (it's quite popular, actually ^^)
- children
- (unnamed) TXAN (optional)
- (named) TXMP (optional)
- .raw/.sep part
There are also orphan TXMPs (named TXMPs without a parent)
Orphan TXMP
- cinematic panels (almost sure)
- GUI elements? (not so sure)
M3GM
M3GM are generally unnamed (possible parents detailed below).
- parent
- (see below)
- children
- (unnamed) PNTA
- (unnamed) VCRA x2
- (unnamed) TXCA
- (unnamed) IDXA x2
- (named) TXMP (optional, see below)
Named M3GM
Named M3GM can be orphans or part of the level hierarchy (ONLV/ONOA/M3GA/M3GM)
- children
- ...
- (named) TXMP (always provided for named M3GMs)
Level M3GM
Some of those have OBAN named after them (auto-assigned animations) ^^
Orphan M3GM
- Here's a tentative list
These are only in level 0 except for bloodyfoot (links by name?)
- axes (no idea when this one is used)
- sphere (no idea when this one is used)
- glow01
- blast_ring1
- blast_ring2
- toxic_bubble
- barab_swave
- bloodyfoot (duplicated in a few levels)
- notfound (no clear idea when the mesh is used)
The following are level-specific (links by name?)
- rat1
- rat2
- jet
- debris01
- debris02
- debris03
- ...
The following 6 are linked by name from ONGS
- powerup_ammo (level 0)
- powerup_cell (level 0)
- powerup_hypo (level 0)
- powerup_shield (level 0)
- powerup_invis (level 0)
- powerup_lsi (level-specific; black sphere by default?)
The following are weapon-related; level 0 only (links by name?)
- w3_blast1
- w5_blast1_geo
- w5_shot1_geo
- w5_shot2_geo
- w5_shot3_geo
- opendart
- closeddart
- w9_warhead
- w9_shell
- w9_case
- w11_grenade
- w11_shrapnel
Unnamed M3GM
Possible parents: CONS, CONS/OFGA, DOOR/OFGA, ONWC, TRIG, TRGE, TURR, TRBS/TRCM/TRGA
- depending on the parent, the TXMP child is either present or absent.
- parent
- (unnamed) TRGA (child of (unnamed) TRCM (child of (named) TRBS))
- children
- ...
(named) TXMP (optional)(textures are specified in ONCC's TRMA)
- parent
- (named) CONS
- (unnamed) OFGA (child of (named) CONS or DOOR)
- (named) ONWC
- (named) TRGE
- (named) TRIG
- (named) TURR
- children
- ...
- (named) TXMP (always for these parents)
Always named
Orphans
BINA
looked up by name???
- no children
- .raw/.sep part
CONS
looked up by name???
- children
- (unnamed) OFGA ((unnamed) M3GM children)
- (unnamed) M3GM
DOOR
looked up by name???
- children
- (unnamed) OFGA x2 ((unnamed) M3GM children) (only one OFGA child in original Oni)
- (named) OBAN
- lookups
- OSBD
DPge
looked up by name???
- children
- (unnamed) IGPG
FILM
looked up by name???
- children
- (named) TRAM x2 (optional)
HPge
looked up by name???
- children
- (unnamed) IGPG
IGHH
Only one IGHH, in level 0, called hud_help_info.IGHH
- children
- (named) TXMP
IPge
looked up by name???
- children
- (unnamed) IGPG
KeyI
Only one KeyI, in level 0, called keyicons.KeyI
- children
- (named) TXMP
ONGS
Only one ONGS, in level 0, called game_settings.ONGS
ONLD
- One instance per level, names vary.
looked up by name???
- no children
ONLV
- One instance per level, names vary.
looked up by name???
- children
- (named) AKEV (... children) (environment)
- (unnamed) OBOA (M3GA, OBAN, ENVP children) (starting objects)
- (unnamed) ONMA (no children) ("marker node") (useless?)
- (unnamed) ONFA (no children) ("flag node") (useless?)
- (unnamed) ONTA (no children) ("trigger") (useless?)
- (named) ONSK (TXMP children) (sky)
- (named) AISA (ONCC, ONWC children) (AI spawn)
- (named) AITR (no children) (AI triggers)
- (named) ONSA (no children) ("spawn") (useless?)
- (named) OBDC (OBAN children) ("door class")
- (unnamed) ONOA (IDXA children) (env groups)
- (unnamed) ENVP (no children) (toggleable env particles)
- (unnamed) CRSA (ONCC children) (corpses)
ONVL
Only one ONVL, in level 0, called variant_list.ONVL
- children
- (named) ONCV
OPge
looked up by name???
OSBD
looked up by name???
PSpL
Only one PSpL, in level 0, called partspec_list.PSpL
- children
- (named) PSpc
PSUI
looked up by name???
- children
- (named) PSpc
SNDD
looked up by name???
- no children
- .raw/.sep part
StNA
looked up by name???
- children
- (unnamed) TStr
SUBT
looked up by name???
- no children
- .raw/.sep part
TURR
looked up by name???
- children
- (unnamed) M3GM
- OBLS (obsolete)
TXMB
looked up by name???
- children
- (named) TXMP
TxtC
looked up by name???
WMCL
Only one WMCL, in level 0, called cursor_list.WMCL
- children
- (named) PSpc
WMDD
looked up by name???
- children
- (named) TSFF
WPge
looked up by name???
- children
Semi-orphans
Those only link to files of the same type as themselves.
Impt
looked up by name???
- parent
- (named) Impt (or none)
- children
- (named) Impt (or none)
Mtrl
looked up by name???
- parent
- (named) Mtrl (or none)
- children
- (named) Mtrl (or none)
Non-orphans
AISA
- One instance per level, called level#_scripts
looked up by name???
- parent
- (named) ONLV
- children
Although ONCC and ONWC are not really "children" here...
AITR
- One instance per level, called level#_scripts
- possibly obsolete (non-trivial only in level8_Final)
looked up by name???
- parent
- (named) ONLV
- no children
AKEV
- One instance per level, names vary.
looked up by name???
- parent
- (named) ONLV
- children
- (unnamed) PNTA (no children) (vertices)
- (unnamed) PLEA (no children) (UVs)
- (unnamed) TXCA (no children) (quads)
- (unnamed) AGQG (no children) (quads too)
- (unnamed) AGQR (no children) (quads too)
- (unnamed) AGQC (no children) (quads too)
- (unnamed) AGDB (.raw/.sep parts) (quads too) (absent on Mac)
- (unnamed) TXMA (TXMP children) (textures)
- (unnamed) AKVA (.raw/.sep parts) (pathfinding grids)
- (unnamed) AKBA (no children) ("side array" of pathfinding grids?)
- (unnamed) IDXA x2 (no children) ("gunk" lookup)
- (unnamed) AKBP (no children) ("BSP node" ???)
- (unnamed) ABNA (no children) ("BSP tree" ???)
- (unnamed) AKOT ([[OTIT, [[OTLF, [[QTNA, [[IDXA x2) (oct tree)
- (unnamed) AKAA (no children) ("adjacency" of pathfinding grids?)
- (unnamed) AKDA (no children) (doorframes)
OBAN
- parent
- (named) OBDC
- (named) DOOR
- (named) TRIG
- (unnamed) OBOA (child of (named) ONLV)
- orphans also exist
- no children
OBDC
- One instance per level, called level#_scripts
looked up by name???
ONCC
- no global instance in original Oni
looked up by name???
- parent
- (named) AISA (part of (named) ONLV)
- (unnamed) CRSA (part of (named) ONLV)
- ONCC are actually standalone
- children
- (named) TXMP
- (named) ONCV
- (unnamed) ONCP
- (unnamed) ONIA
- (named) TRBS
- (named) TRMA
- (unnamed) CBPM
- (unnamed) CBPI
- (named) TRAC
- (named) TRSC
- lookups
- OSBD
ONCV
- except for the linking from ONCC, this is actually a set of "semi-orphans" ^^
looked up by name???
ONSA
- One instance per level, called level#_scripts
looked up by name???
- parent
- (named) ONLV
- no children
ONSK
- One instance per level, names vary.
looked up by name???
- parent
- (named) ONLV
- children
- (named) [[TXMP x6 (skybox)
- (named) TXMP x8 (sun/moon/stars)
- (named) TXMP (???)
- (named) TXMP x5 (flares?)
ONWC
- global instances only in original Oni
looked up by name???
- children
- lookups
- OSBD
PSpc
looked up by name???
- parent
- none (level 0 + 1 instance per level) (cinematic_border.PSpc of level 0 is an orphan ^^)
- (named) PSpL (level 0)
- (named) PSUI (level 0)
- (named) WMCL (level 0)
- children
- (named) TXMP
TRAC
looked up by name???
- parent
- (named) ONCC
- (named) TRAC
- children
- (named) TRAC (optional)
- (named) TRAM
TRAM
looked up by name???
- parent
- (named) FILM
- (named) TRAC
- (named) TRAM
- (named) TRAS
- children
- (named) TRAM x2 (optional)
- .raw/.sep parts
- lookups
- ONCC/ONIA
TRAS
looked up by name???
TRBS
looked up by name???
TRGE
looked up by name???
TRIG
looked up by name???
- parent
- (named) TRIG
- children
- lookups
- OSBD
TRMA
looked up by name???
TRSC
looked up by name???
TSFF
- Only one instance in original Oni, in level 0, called Tahoma.TSFF
- parent
- (named) WMDD
- (unnamed) IGPG
- ... (popular ^^)
- children
TSFL
- Only one instance in original Oni, in level 0, called Roman.TSFL
- parent
- (named) TSFF
- no children
WMM_
looked up by name???
- parent
- WMMB or none
- no children
WMMB
- Only one instance in original Oni, in level 0, called menubar_oniwindow.WMMB
- children
- (named) TSFF
Always unnamed
ABNA
- part of (named) AKEV
AGDB
- part of (named) AKEV
- (.raw/.sep parts)
AGQC
- part of (named) AKEV
AGQG
- part of (named) AKEV
AGQR
- part of (named) AKEV
AKAA
- part of (named) AKEV
AKBA
- part of (named) AKEV
AKBP
- part of (named) AKEV
AKDA
- part of (named) AKEV
AKOT
- part of (named) AKEV
- link to (unnamed) OTIT (no subtree)
- link to (unnamed) OTLF (no subtree)
- link to (unnamed) QTNA (no subtree)
- link to (unnamed) IDXA (no subtree)
- link to (unnamed) IDXA (no subtree)
AKVA
- part of (named) AKEV
- (.raw/.sep parts)
CBPI
CBPM
CRSA
- part of (named) ONLV
ENVP
IDXA
- part of (named) AKEV ("gunk" lookup)
- part of M3GM (part of ...)
- part of (unnamed) AKOT (part of (named) AKEV)
- part of (unnamed) ONOA (part of (named) ONLV)
IGPA
IGPG
- part of (named) DPge or HPge or IPge or WPge
- part of (unnamed) IGPA (part of (named) OPge or TxtC)
- link to (named) TSFF (optional)
- link to (named) PSpc/TXMP/WTF ???? (optional)
- links to (unnamed) IGSA
IGSA
IGSt
M3GA
OBOA
- part of (named) ONLV
- link to (unnamed) M3GA
- link to (named) OBAN
- link to (unnamed) ENVP (part of (named) ONLV)
OFGA
ONCP
- part of (named) ONCC
- links by label...
ONIA
- part of (named) ONCC
- links by label...
ONFA
- part of (named) ONLV
ONMA
- part of (named) ONLV
ONOA
ONTA
- part of (named) ONLV
- (always empty, WTF)
OTIT
OTLF
QTNA
PLEA
- parent
- (named) AKEV
- no children
PNTA
TRCM
- Unnamed TRCM (the most common in Oni) belong to a "body set" (TRBS), and specify the geometry/hierarchy of body meshes for one LOD (a TRBS has space for 5 TRCM links).
- The five named TRCM (bip_***) correspond to a separate (very low) LOD. They are orphans, apparently meant to be looked up from the engine and paired with the available TRAC depending on the level (perhaps used for animation preview).
- Apparently almost all of Oni's animations are associated with either TRCMbip_konoko (female), TRCMbip_comguy (male) or TRCMbip_striker (heavy male). This applies to Mutant Muro, who (like Muro) seems to use TRCMbip_comguy, even though he has much longer arms -- or to the Ninja, who have narrow hips but correspond to TRCMcomguy anyway. The other two named TRCM, paired with unique characters, are TRCMbip_shinatama and TRCMbip_zombie.
TRCM name | L0 | L1 | L2 | L3 | L4 | L6 | L8 | L9 | L10 | L11 | L12 | L13 | L14 | L18 | L19 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bip_comguy | |||||||||||||||
bip_konoko | |||||||||||||||
bip_shinatama | |||||||||||||||
bip_striker | |||||||||||||||
bip_zombie |
TRGA
TRIA
TRTA
TSFT
TSGA
TStr
- part of (named) StNA
TXAN
TXCA
TXMA
VCRA
- part of M3GM (part of...)