Header
The header has mostly the layout of number-offset pairs, containing the number of a particular record in the file, and the offset. These appear at fixed places in the header. Record sizes are not specified in the file.
The unknown blocks have (mostly arbitrary) alphabetic names until we figure out what they are.
Offset
|
Type
|
Description
|
0x000
|
char[4]
|
"MD20"
|
0x004
|
uint8[4]
|
Version (always 00 01 00 00)
|
0x008
|
uint32
|
model name length
|
0x00C
|
uint32
|
model name offset
|
0x010
|
uint32
|
Model type? always 0, 1 or 3 (mostly 0)
|
0x014
|
uint32
|
nGlobalSequences - number of global sequences
全局的时间序列,各个动画的duration
|
0x018
|
uint32
|
ofsGlobalSequences - offset to global sequences
|
0x01C
|
uint32
|
nAnimations - number of animation sequences
|
0x020
|
uint32
|
ofsAnimations - offset to animation sequences
|
0x024
|
uint32
|
nC
|
0x028
|
uint32
|
ofsC
|
0x02C
|
uint32
|
nD - always 201 or 203 depending on WoW client version
|
0x030
|
uint32
|
ofsD
|
0x034
|
uint32
|
nBones - number of bones
|
0x038
|
uint32
|
ofsBones - offset to bones
|
0x03C
|
uint32
|
nF - bone lookup table
|
0x040
|
uint32
|
ofsF
|
0x044
|
uint32
|
nVertices - number of vertices
|
0x048
|
uint32
|
ofsVertices - offset to vertices
|
0x04C
|
uint32
|
nViews - number of views (LOD versions?) 4 for every model
|
0x050
|
uint32
|
|