OME: Difference between revisions
(tech info on header and "object/phys" data) |
(correction) |
||
(One intermediate revision by the same user not shown) | |||
Line 35: | Line 35: | ||
<nowiki>*</nowiki> | <nowiki>*</nowiki>Does not contain physics collision mesh(stored somewhere else) but does play some role (something physics?) in case of props, otherwise don't know what this does. | ||
<nowiki>**</nowiki>Doesn't seem to control anything related to actual materials, here like materials are grouped together. | <nowiki>**</nowiki>Doesn't seem to control anything related to actual materials, here like materials are grouped together. | ||
Line 55: | Line 55: | ||
|Uint32 | |Uint32 | ||
|Version ID | |Version ID | ||
|Unclear if this does anything | |Unclear if this does anything | ||
Version ids in Y1: (4, 5, 6, 2, 1, 0) | |||
|- | |- | ||
|0x08 | |0x08 |
Latest revision as of 10:58, 23 February 2025
![]() |
This page is under construction Check back later for additional changes |
OME is a model format used in Yakuza, Yakuza 2, and by extension, Ryu Ga Gotoku 1 + 2 HD Edition. It was phased out and replaced with GMD.
Format Overview
A typical OME file has the following order:
1) File header data
2) Object/physics data*
3) ODBP/MDBP block
MDBP is an earlier version of OME and is not supported by the game, attempting to load one may lead to a crash.
Within ODBP:
1) ODBP File header data
2) Mesh block (pointers, material ids etc.)
3) Armature block
4) File header data
5) Material group**
6) Mesh data (vertex info and face index table)
7) End block
*Does not contain physics collision mesh(stored somewhere else) but does play some role (something physics?) in case of props, otherwise don't know what this does.
**Doesn't seem to control anything related to actual materials, here like materials are grouped together.
Technical Information
Offset | Data type | Description | Notes |
---|---|---|---|
0x00 | 4 bytes | File magic | "OME" |
0x04 | Uint32 | Version ID | Unclear if this does anything
Version ids in Y1: (4, 5, 6, 2, 1, 0) |
0x08 | Uint32 | ODBP file pointer | |
0x10 | Uint32 | Count | Count of the entries in the next block (object/physics data block) |
0x14 | Uint32 | Block size | Here, refers to the size of this struct |
0x18 | Uint32 | Model "sheen/glare" strength | Controls the "glare" of the model, which is controlled by the
model's texture alpha |
0x1c | Uint32 | Mesh flag | Unclear if this does anything |
Note: This is still WIP, more info needed on this!
Entry
(Block size: 32 bytes) | |||
---|---|---|---|
Offset | Data type | Description | Notes |
0x00 | Uint32 | Read flag | The whole entry will not be read if set to 0,
If 1, will be read. (assumption) |
0x04 | Uint32 | Pointer | Pointer to a field below the entries |
0x08 | Uint32 | Unknown | |
0x0c | Uint32 | Constant | Always FF FF FF FF |
0x10 | Uint16 | Unknown1 | |
0x12 | Uint16 | Unknown2 | |
0x14 | Uint32 | Unknown | |
Field A
(Block size: 16 bytes) | |||
Offset | Data type | Description | Notes |
0x00 | Uint32 | count1 | Unclear on how its used |
0x04 | Uint32 | pointer1 | Unclear on how its used |
0x08 | Uint32 | pointer2 | |
0x0c | Uint32 | count2 | |
Field B (based from pointer2 and count2)
(Block size: 16 bytes) | |||
Offset | Data type | Description | Notes |
0x00 | Float | X coord | |
0x04 | Float | Y coord | |
0x08 | Float | Z coord | |
0x0c | Float | Unk float | Don't know what this does so far |