Changes
From Final Fantasy Inside
no edit summary
'''3D Model begins with 4-byte header:Header'''
Global header for the 3D model, one per model.<br />
Size: 20 bytes
Global header for bones, one header per bone.<br />
Size: 4 bytes
'''Group Header'''
Global header for groups, one header per group.<br />
Size: 40 bytes
|-
| style="background:rgb(255,255,255);" | UNKNOWN0x0C| | WORD| style="background:rgb| Number of Triangle Polygons (255,255,255Type-C);" | 2
|-
| style="background:rgb(255,255,255);" | Quads count0x0E| style="background:rgb(255,255,255);" | 2WORD| | Group X offset
|-
| style="background:rgb(255,255,255);" | Triangles count0x10| style="background:rgb(255,255,255);" | 2WORD| | Group Y offset
|-
| style="background:rgb(255,255,255);" | UNKNOWN, zeroes0x12| style="background:rgb(255,255,255);" | 14WORD| | Group Z offset
|-
| style="background:rgb(255,255,255);" | Pointer to vertex table, counting from first byte of model0x14| | DWORD| style="background:rgb(255,255,255);" | 4Pointer to Bone Data Chunk
|-
| style="background:rgb(255,255,255);" | Pointer to vertices, counting from first byte of model0x18| | DWORD| style="background:rgb(255,255,255);" | 4Pointer to Vertex Data Chunk
|-
| style="background:rgb(255,255,255);" | Pointer to quad block with triangles, counting from first byte of model0x1C| | DWORD| style="background:rgb(255,255,255);" | 4Pointer to Polygon Data Chunk
|-
| style="background:rgb(255,255,255);" | Pointer to texture coordinates, counting from first byte of model0x20| | DWORD| style="background:rgb(255,255,255);" | 4Pointer to Texture Mapping Data Chunk
|-
| style="background:rgb(255,255,255);" | 0x24| | DWORD| | Pointer to the end End-of object, counting from first byte of model| style="background:rgb(255,255,255);" | 4-Group
|}
'''Vertex tableBone Data Chunk'''
'''Vertex Data Chunk''' Local group data for vertices, one data chunk per vertex of the group.<br />Size: 8 bytes {| border="0" cellspacing="1" cellpadding="3" width="640" style="background: rgb(0255,0255,0255)" align="center"! style="background:rgb(204,204,204);" align="center" width="80" | DataOffset! style="background:rgb(204,204,204);" align="center" width="80" | Length Size! style="background:rgb(bytes204,204,204);" align="center" | Description
|-
| style="background:rgb(255,255,255);" | X0x00| | WORD| style="background:rgb| X-Coordinate (255,255,255signed value);" | 2
|-
| style="background:rgb(255,255,255);" | Y0x02| | WORD| style="background:rgb| Y-Coordinate (255,255,255signed value);" | 2
|-
| style="background:rgb(255,255,255);" | Z0x04| | WORD| style="background:rgb| Z-Coordinate (255,255,255signed value);" | 2
|-
| style="background:rgb(255,255,255);" | Bone number0x06| style="background:rgb(255,255,255);" | 1BYTE| | ID of the bone the vertex is connected to
|-
| style="background:rgb(255,255,255);" | UnkNown0x07| style="background:rgb(255,255,255);" | 1BYTE| | Unknown
|}
'''Polygon Data Chunk'''
|-
| style="background:rgb(255,255,255);" | 3-rd vertex index0x00| | WORD| style="background:rgb(255,255,255);" | 2Vertex index 1
|-
| style="background:rgb(255,255,255);" | 4-th vertex index0x02| | WORD| style="background:rgb(255,255,255);" | Vertex index 2
|-
| style="background:rgb(255,255,255);" | Coordinate index from block of coordinates of texturation for first vertex.0x04| | WORD| style="background:rgb(255,255,255);" | 2Vertex index 3
|-
| style="background:rgb(255,255,255);" | Coordinate index from block of coordinates of texturation for second vertex.0x06| | WORD| style="background:rgb(255,255,255);" | 2Vertex index 4
|-
| style="background:rgb(255,255,255);" | Coordinate index from block of coordinates of texturation for third vertex.0x08| | WORD| style="background:rgb(255,255,255);" | 2Texture index 1
|-
| style="background:rgb(255,255,255);" | Coordinate index from block of coordinates of texturation for fourth vertex.0x0A| | WORD| style="background:rgb(255,255,255);" | Texture index 2
|-
| style="background:rgb(255,255,255);" | Color R (I think)0x0C| style="background:rgb(255,255,255);" | 1WORD| | Texture index 3
|-
| style="background:rgb(255,255,255);" | Color G (I think)0x0E| style="background:rgb(255,255,255);" | 1WORD| | Texture index 4
|-
| style="background:rgb(255,255,255);" | Color B (I think)0x10| | 24BIT| style="background:rgb| Vertex colour (255,255,255R8G8B8);" | 1?
|-
| style="background:rgb(255,255,255);" | (Texture information?)0x13| | BYTE| style="background:rgb(255,255,255);" | 1Texture material index
|-
| style="background:rgb(255,255,255);" | (Texture information?)0x14| style="background:rgb(255,255,255);" | 4DWORD| | Unknown
|}
''Triangle Type-A''
{| border="0" cellspacing="1" cellpadding="3" width="640" style="background: rgb(0255,0255,0255)" align="center"! style="background:rgb(204,204,204);" align="center" width="80" | DataOffset! style="background:rgb(204,204,204);" align="center" width="80" | Length Size! style="background:rgb(bytes204,204,204);" align="center" | Description
|-
| style="background:rgb(255,255,255);" | 1-st vertex index0x00| | WORD| style="background:rgb(255,255,255);" | 2Vertex index 1
|-
| style="background:rgb(255,255,255);" | 2-nd vertex index0x02| | WORD| style="background:rgb(255,255,255);" | Vertex index 2
|-
| style="background:rgb(255,255,255);" | 3-rd vertex index0x04| | WORD| style="background:rgb(255,255,255);" | 2Vertex index 3
|-
| style="background:rgb(255,255,255);" | (Texture information?)0x06| | BYTE| style="background:rgb(255,255,255);" | 2Texture material index
|-
| style="background:rgb(255,255,255);" | Color R (I think)0x07| style="background:rgb(255,255,255);" | 1BYTE| | Unknown
|-
| style="background:rgb(255,255,255);" | Color G (I think)0x08| | 24BIT| style="background:rgb| Vertex colour (255,255,255R8G8B8);" | 1?
|-
| style="background:rgb(255,255,255);" | Color B (I think)0x0B| style="background:rgb(255,255,255);" | 1BYTE| | Unknown
|-
| style="background:rgb(255,255,255);" | (Texture information?)0x0C| | WORD| style="background:rgb(255,255,255);" | Texture index 1
|-
| style="background:rgb(255,255,255);" | Coordinate index from block of coordinates of texturation for first vertex.0x0E| | WORD| style="background:rgb(255,255,255);" | Texture index 2
|-
| style="background:rgb(255,255,255);" | Coordinate index from block of coordinates of texturation for second vertex.0x10| | WORD| style="background:rgb(255,255,255);" | 2Texture index 3
|-
| style="background:rgb(255,255,255);" | Coordinate index from block of coordinates of texturation for third vertex.0x12| style="background:rgb(255,255,255);" | 2DWORD|-| style="background:rgbUnknown (255,255,255possible padding);" | (Texture information?)| style="background:rgb(255,255,255);" | 2
|}
''Quadrangle Type-B''
Size: 32 bytes
''Triangle Type-B''
Size: 24 bytes
''Quadrangle Type-C''
Size: 24 bytes
''Triangle Type-C''
'''Texture Mapping Data Chunk'''
{| border="0" cellspacing="1" cellpadding="3" width="640" style="background: rgb(0255,0255,0255)" align="center"! style="background:rgb(204,204,204);" align="center" width="80" | DataOffset! style="background:rgb(204,204,204);" align="center" width="80" | Length Size! style="background:rgb(bytes204,204,204);" align="center" | Description
|-
| style="background:rgb(255,255,255);" | Texture coordinate U0x00| | BYTE| style="background:rgb(255,255,255);" | 1U-Coordinate
|-
| style="background:rgb(255,255,255);" | Texture coordinate V0x01| | BYTE| style="background:rgb(255,255,255);" | 1V-Coordinate
|}