Changes

1,814 bytes added ,  23:18, 10 September 2014
Line 292: Line 292:  
|-
 
|-
 
| 0x0
 
| 0x0
| 0x3
+
| 0x4
| Flags ?
+
| Flags (bit 4: model; bit 1: skeleton)
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Magic "SOBJ"
 +
|-
 +
| 0x8
 +
| 0x4
 +
| ?
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Unknown symbol offset (self-relative)
 +
|-
 +
| 0x10
 +
| 0xC
 +
| ?
 +
|-
 +
| 0x1C
 +
| 0x4
 +
| Unknown offset (self-relative) (appears to hold array of floats) ?
 +
|-
 +
| 0x20
 +
| 0xC
 +
| ?
 +
|-
 +
| 0x2C
 +
| 0x4
 +
| Face groups count
 +
|-
 +
| 0x30
 +
| 0x4
 +
| Offset (self-relative) to face groups offset array
 +
|-
 +
| 0x34
 +
| 0x4
 +
| ?
 +
|-
 +
| 0x38
 +
| 0x4
 +
| Vertex groups count
 +
|-
 +
| 0x3C
 +
| 0x4
 +
| Offset (self-relative) to vertex groups offset array
 +
|-
 +
| 0x40
 +
| 0x4
 +
| Unknown offset (self-relative) ?
 +
|}
 +
 
 +
Face groups:
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Length
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Bone groups count
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Offset (self-relative) to 4-byte bone group IDs array
 +
|-
 +
| 0x8
 +
| 0x4
 +
| ?
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Unknown1 count
 +
|-
 +
| 0x10
 +
| 0x4
 +
| Offset (self-relative) to Unknown1 offset array
 +
|}
 +
 
 +
Unknown1:
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Length
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Face group descriptor count
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Offset (self-relative) to face group descriptors offset array
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Unknown3 count
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Offset (self-relative) to 4-byte Unknown2 array
 +
|-
 +
| 0x10
 +
| 0x8
 +
| ?
 +
|}
 +
 
 +
Face array descriptor:
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Length
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Flags (bit 1: vertex index format: 0=byte, 1=short)
 +
|-
 +
| 0x4
 +
| 0x4
 +
| ?
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Vertex index array size (in bytes)
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Offset (self-relative) to vertex index array
 +
|}
 +
 
 +
 
 +
Vertex group objects come in one of several formats, specified by the flags field.
 +
 
 +
Vertex group format 0x40000001: (?)
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Length
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Flags (0x40000001)
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Type ?
 +
|-
 +
| 0x8
 +
| 0x4
 +
| ?
 +
|-
 +
| 0xC
 +
| 0x4
 +
| ?
 +
|-
 +
| 0x10
 +
| 0x4
 +
| ?
 +
|-
 +
| 0x14
 +
| 0x4
 +
| Vertex array size (in bytes)
 +
|-
 +
| 0x18
 +
| 0x4
 +
| Offset (self-relative) to vertex array
 +
|-
 +
| 0x1C
 +
| 0x4
 +
| ?
 +
|-
 +
| 0x20
 +
| 0x4
 +
| ?
 
|-
 
|-
| 0x3
+
| 0x24
 
| 0x1
 
| 0x1
| SOBJ type ? (0x10 = model, 0x02 = skeleton)
+
| ?
 +
|-
 +
| 0x25
 +
| 0x1
 +
| ?
 +
|-
 +
| 0x26
 +
| 0x1
 +
| ?
 +
|-
 +
| 0x27
 +
| 0x1
 +
| ?
 +
|-
 +
| 0x28
 +
| 0x4
 +
| ?
 +
|-
 +
| 0x2C
 +
| 0x4
 +
| ? (float)
 
|-
 
|-
 +
| 0x30
 
| 0x4
 
| 0x4
 +
| ?
 +
|}
 +
 +
Vertex group format 0x40000002:
 +
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Length
 +
! Description
 +
|-
 +
| 0x0
 
| 0x4
 
| 0x4
| Magic "SOBJ"
+
| Flags (0x40000002)
 +
|-
 +
| 0x4
 +
| 0x4
 +
| ?
 
|-
 
|-
| 0x44
+
| 0x8
 
| 0x4
 
| 0x4
| Y = Offset (self-relative) to bone correspondance array
+
| ?
 
|-
 
|-
| 0x48
+
| 0xC
 
| 0x4
 
| 0x4
| X = Offset (relative to SOBJ magic) to SOBJ data structure (wrong ?)
+
| ?
 
|-
 
|-
| 0x44+Y+0x00
+
| 0x10
 
| 0x4
 
| 0x4
| N = Number of bone IDs in bone correspondance array
+
| ?
 
|-
 
|-
| 0x44+Y+0x14
+
| 0x14
| 0x4*N
+
| 0x4
| Bone correspondance array
+
| Vertex array size (in bytes)
 
|-
 
|-
| X+0x18
+
| 0x18
| 0x1
+
| 0x4
| Face data format (?) : 0x1 = u8, 0x3 = u16
+
| Offset (self-relative) to vertex array
 
|-
 
|-
| X+0x20
+
| 0x1C
 
| 0x4
 
| 0x4
| Face data section size (in bytes)
+
| ?
 
|-
 
|-
| X+0x24
+
| 0x20
 
| 0x4
 
| 0x4
| Face data section offset (self-relative)
+
| ?
 
|-
 
|-
| X+0x58
+
| 0x24
 
| 0x4
 
| 0x4
| Vertex data section size (in bytes)
+
| Vertex format size (see below)
 
|-
 
|-
| X+0x5C
+
| 0x28
 
| 0x4
 
| 0x4
| Vertex data section offset (self-relative)
+
| Unknown3 count
 
|-
 
|-
| X+0x68
+
| 0x2C
| 0x1
+
| 0x4
| Vertex data format size (in bytes)
+
| Offset (self-relative) to 0x40000001 offset array
 
|}
 
|}
 +
 +
Vertex formats:
    
{| class="wikitable"
 
{| class="wikitable"
35

edits