Anonymous

Changes

From Final Fantasy Inside

FF8/FileFormat MCH

2,382 bytes added, 01:21, 25 May 2009
no edit summary
<small>Last Update: [[User:Koral|Koral]] 18:21, 24 May 2009 (EDT)</small>

= MCH Field Character Models =

Each MCH file contains a skinned-animated model representing a character on the field or world Maps.
There appear to be multiple files of the same character representing differnt Level of Details.

They usually contain multiple TIM textures (standard PSX textures), mesh geometry, bones, skeleton heirarchy information and skinning information.
The whereabouts of the Bone Animation data is currently unknown.


= Accessing MCH Files =

<small>todo</small>



= MCH File Structure =

== Header ==
<pre>
0x100 bytes [256 bytes]

DWORD: Offsets to multiple Texture-Data
Start: 0x00
Parse DWORDS until read value: 0xFFFFFFFF

DWORD: Offset to Model Data

</pre>


== Texture-Data ==
<pre>
(for each Texture)

Standard [TIM] format textures
</pre>


== Model-Data ==
<pre>
Header: 0x40 bytes (64)

DWORD: number of Skeleton Bones
DWORD: number of Vertices
DWORD: (unknown)
DWORD: number of Faces
DWORD: (unknown)
DWORD: number of Skin objects

DWORD * 10: (unknown)

</pre>

<pre>
Skeleton Data: 0x40 bytes per bone, recurse through number of bones dictated in Header
(for each bone)

SHORT: parent bone (1-based)
SHORT: (unknown)
DWORD: (unknown)
SHORT: bone length
DWORD * 15: (unknown)

</pre>

<pre>
Vertex Data:
(for each vertex)

SHORT * 3: Vertex XYZ Position
SHORT: (unknown)
DWORD * 4: (unknown)

</pre>

<pre>
Face Data:
(for each face)

DWORD: (unknown)
BYTE * 3: (unknown)
BYTE: Polygon Type [0x2d = Quad, 0x25 = Triangle]
DWORD * 2: (unknown)
SHORT * 4: Indices per Face-Vertex
SHORT * 4: (unknown)
BYTE * 4 * 4: Vertex Colour (RGBA) per Face-Vertex
BYTE * 2 * 4: Vertex UV, (1st byte U, 2nd byte V) per Face-Vertex
DWORD * 12: (unknown)

</pre>

<pre>
Skin-Object Data:
(for each skin-object)

SHORT: Bone ID (1-based)
SHORT: (unknown)
SHORT: index of first vertex
SHORT: number of vertices

</pre>



<small>todo: notes on skinning, animation data</small>



=MCH Model File List=

<small>todo</small>
Anonymous user