⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m2.mht

📁 介绍魔兽世界M2具体压缩格式
💻 MHT
📖 第 1 页 / 共 5 页
字号:
  <TR>
    <TD>0x004 </TD>
    <TD>int32 </TD>
    <TD>flags </TD></TR>
  <TR>
    <TD>0x008 </TD>
    <TD>float[3] </TD>
    <TD>position </TD></TR>
  <TR>
    <TD>0x014 </TD>
    <TD>int16 </TD>
    <TD>Bone ID </TD></TR>
  <TR>
    <TD>0x016 </TD>
    <TD>int16 </TD>
    <TD>Texture ID </TD></TR>
  <TR>
    <TD>0x018 </TD>
    <TD>uint32 </TD>
    <TD>Number of ints referenced #1 </TD></TR>
  <TR>
    <TD>0x01C </TD>
    <TD>uint32 </TD>
    <TD>Offset to list of ints #1 </TD></TR>
  <TR>
    <TD>0x020 </TD>
    <TD>uint32 </TD>
    <TD>Number of ints referenced #2 </TD></TR>
  <TR>
    <TD>0x024 </TD>
    <TD>uint32 </TD>
    <TD>Offset to list of ints #2 </TD></TR>
  <TR>
    <TD>0x028 </TD>
    <TD>int16 </TD>
    <TD>Blending mode </TD></TR>
  <TR>
    <TD>0x02A </TD>
    <TD>int16 </TD>
    <TD>Emitter type </TD></TR>
  <TR>
    <TD>0x02C </TD>
    <TD>int16 </TD>
    <TD>Particle type </TD></TR>
  <TR>
    <TD>0x02E </TD>
    <TD>int16 </TD>
    <TD>Texture tile rotation (-1,0,1) </TD></TR>
  <TR>
    <TD>0x030 </TD>
    <TD>int16 </TD>
    <TD>Rows on texture </TD></TR>
  <TR>
    <TD>0x032 </TD>
    <TD>int16 </TD>
    <TD>Columns on texture </TD></TR>
  <TR>
    <TD>0x034 </TD>
    <TD>AnimationBlock (float) [10] </TD>
    <TD>Parameters </TD></TR>
  <TR>
    <TD>0x14C </TD>
    <TD>float[36] </TD>
    <TD>unknown float values - more parameters? </TD></TR>
  <TR>
    <TD>0x14C </TD>
    <TD>float </TD>
    <TD>Midpoint in lifespan? (0 to 1) </TD></TR>
  <TR>
    <TD>0x150 </TD>
    <TD>uint32[3] </TD>
    <TD>ARGB colors (start, mid, end) </TD></TR>
  <TR>
    <TD>0x15C </TD>
    <TD>float[3] </TD>
    <TD>Particle sizes (start, mid, end) </TD></TR>
  <TR>
    <TD>0x168 </TD>
    <TD>short[10] </TD>
    <TD>Indices into the tiles on the texture? </TD></TR>
  <TR>
    <TD>0x17C </TD>
    <TD>float[3] </TD>
    <TD>Unknown </TD></TR>
  <TR>
    <TD>0x188 </TD>
    <TD>float[3] </TD>
    <TD>Something about particle scaling? Hm. </TD></TR>
  <TR>
    <TD>0x194 </TD>
    <TD>float </TD>
    <TD>Slowdown </TD></TR>
  <TR>
    <TD>0x198 </TD>
    <TD>float </TD>
    <TD>Particle rotation </TD></TR>
  <TR>
    <TD>0x19C </TD>
    <TD>float[10] </TD>
    <TD>Unknown (usually all 0) </TD></TR>
  <TR>
    <TD>0x1C4 </TD>
    <TD>float[6] </TD>
    <TD>Unknown, usually (2.5, 0.7, 7, 0.9, 0, 0) </TD></TR>
  <TR>
    <TD>0x1DC </TD>
    <TD>AnimationBlock (int) </TD>
    <TD>unknown </TD></TR></TBODY></TABLE>
<P>About slowdown: for nonzero values, instead of travelling linearly =
the=20
particles seem to slow down sooner. I can't work out the exact function =
but for=20
a value of, say, 10, the particles pretty much stay in place. Not the =
same=20
effect as gravity, though. Update: thanks to nsz for the formula. Speed =
is=20
multiplied by exp( -slowdown * t ) </P>
<P>About particle rotation: 0 for none, 1 to rotate the particle 360 =
degrees=20
throughout its lifetime. </P>
<P><BR>The ten animatable particle parameters are: </P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Number </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0 </TD>
    <TD>Emission speed </TD></TR>
  <TR>
    <TD>1 </TD>
    <TD>Speed variation (range: 0 to 1) </TD></TR>
  <TR>
    <TD>2 </TD>
    <TD>Spread? (range: 0 to pi) </TD></TR>
  <TR>
    <TD>3 </TD>
    <TD>&nbsp;? (range: 0 to 2*pi) </TD></TR>
  <TR>
    <TD>4 </TD>
    <TD>Gravity </TD></TR>
  <TR>
    <TD>5 </TD>
    <TD>Lifespan </TD></TR>
  <TR>
    <TD>6 </TD>
    <TD>Emission rate </TD></TR>
  <TR>
    <TD>7 </TD>
    <TD>Emission area length </TD></TR>
  <TR>
    <TD>8 </TD>
    <TD>Emission area width </TD></TR>
  <TR>
    <TD>9 </TD>
    <TD>Gravity? (much stronger) </TD></TR></TBODY></TABLE>
<P><BR>Emitter types: </P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Value </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>1 </TD>
    <TD>Plane (rectangle) </TD></TR>
  <TR>
    <TD>2 </TD>
    <TD>Sphere </TD></TR>
  <TR>
    <TD>3 </TD>
    <TD>(Spline? can't be bothered to find one) =
</TD></TR></TBODY></TABLE>
<P><BR>Particle types: </P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Value </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0 </TD>
    <TD>"normal" particle </TD></TR>
  <TR>
    <TD>1 </TD>
    <TD>large quad from the particle's origin to its position (used in=20
      Moonwell water effects) </TD></TR>
  <TR>
    <TD>2 </TD>
    <TD>seems to be the same as 0 (found some in the Deeprun Tram=20
      blinky-lights-sign thing) </TD></TR></TBODY></TABLE>
<P><BR>Flags: </P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Value </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0x1000 </TD>
    <TD>do not billboard (used for some water wake ripple effects)=20
  </TD></TR></TBODY></TABLE>
<P><BR></P>
<DIV class=3Deditsection style=3D"FLOAT: right; MARGIN-LEFT: 5px">[<A =
title=3DM2=20
href=3D"http://wowmapview.sourceforge.net/wiki/index.php?title=3DM2&amp;a=
ction=3Dedit&amp;section=3D31">edit</A>]</DIV><A=20
name=3DMiscellaneous></A>
<H1>Miscellaneous </H1>
<DIV class=3Deditsection style=3D"FLOAT: right; MARGIN-LEFT: 5px">[<A =
title=3DM2=20
href=3D"http://wowmapview.sourceforge.net/wiki/index.php?title=3DM2&amp;a=
ction=3Dedit&amp;section=3D32">edit</A>]</DIV><A=20
name=3DBounding_volumes></A>
<H2>Bounding volumes </H2>
<P>For some models a simplified bounding volume is given. This is =
probably used=20
for collision detection? </P>
<P>The <I>nBoundingVertices</I> vertices used by the bounding volume's =
faces=20
start at <I>ofsBoundingVertices</I>. Each vertex is given by 3 floats. =
</P>
<P>The faces start at <I>ofsBoundingTriangles</I>. The number=20
<I>nBoundingTriangles</I> once again contains the number of indices =
used, so=20
divide by 3 to get the number of triangles. Each triangle is given by 3 =
16-bit=20
integers that index the bounding vertices list. Each face also has a=20
corresponding normal vector (?), these start at =
<I>ofsBoundingNormals</I>.=20
Therefore, it should be true that <I>nBoundingNormals</I> * 3 =3D=20
<I>nBoundingTriangles</I>. </P>
<DIV class=3Deditsection style=3D"FLOAT: right; MARGIN-LEFT: 5px">[<A =
title=3DM2=20
href=3D"http://wowmapview.sourceforge.net/wiki/index.php?title=3DM2&amp;a=
ction=3Dedit&amp;section=3D33">edit</A>]</DIV><A=20
name=3DLights></A>
<H2>Lights </H2>
<P><I>nLights</I> records of 0xD4 bytes starting at <I>ofsLights</I>, =
followed=20
by data referenced in these records. </P>
<P>The records have the following structure: </P>
<P><BR></P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Offset </TH>
    <TH>Type </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0x00 </TD>
    <TD>uint16 </TD>
    <TD>type </TD></TR>
  <TR>
    <TD>0x02 </TD>
    <TD>uint16 </TD>
    <TD>Bone ID </TD></TR>
  <TR>
    <TD>0x04 </TD>
    <TD>float[3] </TD>
    <TD>coordinates </TD></TR>
  <TR>
    <TD>0x10 </TD>
    <TD>AnimationBlock (float, float, float) </TD>
    <TD>Ambient color </TD></TR>
  <TR>
    <TD>0x2C </TD>
    <TD>AnimationBlock (float) </TD>
    <TD>Ambient intensity </TD></TR>
  <TR>
    <TD>0x48 </TD>
    <TD>AnimationBlock (float, float, float) </TD>
    <TD>Diffuse color </TD></TR>
  <TR>
    <TD>0x64 </TD>
    <TD>AnimationBlock (float) </TD>
    <TD>Diffuse intensity </TD></TR>
  <TR>
    <TD>0x80 </TD>
    <TD>AnimationBlock (float) </TD>
    <TD>Attenuation start? </TD></TR>
  <TR>
    <TD>0x9C </TD>
    <TD>AnimationBlock (float) </TD>
    <TD>Attenuation end? </TD></TR>
  <TR>
    <TD>0xB8 </TD>
    <TD>AnimationBlock (int) </TD>
    <TD>usually 1 </TD></TR></TBODY></TABLE>
<P><BR>Some light types: </P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Value </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0 </TD>
    <TD>Directional </TD></TR>
  <TR>
    <TD>1 </TD>
    <TD>Point light </TD></TR></TBODY></TABLE>
<P><BR></P>
<DIV class=3Deditsection style=3D"FLOAT: right; MARGIN-LEFT: 5px">[<A =
title=3DM2=20
href=3D"http://wowmapview.sourceforge.net/wiki/index.php?title=3DM2&amp;a=
ction=3Dedit&amp;section=3D34">edit</A>]</DIV><A=20
name=3DCameras></A>
<H2>Cameras </H2>
<P>These blocks seem to be present in the "flyby" camera models which =
completely=20
lack geometry, and the main menu backdrop models which are supposed to =
have a=20
fixed camera. Additionally, characters and monsters also have this block =
(I=20
wonder why) </P>
<P><I>nCameras</I> records of 0x7C bytes starting at <I>ofsCameras</I>, =
followed=20
by data referenced in these records. </P>
<P><BR></P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Offset </TH>
    <TH>Type </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0x00 </TD>
    <TD>int32 </TD>
    <TD>id or maybe a parent bone? usually -1 </TD></TR>
  <TR>
    <TD>0x04 </TD>
    <TD>float </TD>
    <TD>FOV </TD></TR>
  <TR>
    <TD>0x08 </TD>
    <TD>float </TD>
    <TD>Far clipping plane </TD></TR>
  <TR>
    <TD>0x0C </TD>
    <TD>float </TD>
    <TD>Near clipping plane </TD></TR>
  <TR>
    <TD>0x10 </TD>
    <TD>AnimationBlock (float, float, float) </TD>
    <TD>Translation for position? </TD></TR>
  <TR>
    <TD>0x2C </TD>
    <TD>float[3] </TD>
    <TD>Position? </TD></TR>
  <TR>
    <TD>0x38 </TD>
    <TD>AnimationBlock (float, float, float) </TD>
    <TD>Translation for target? </TD></TR>
  <TR>
    <TD>0x54 </TD>
    <TD>float[3] </TD>
    <TD>Target? </TD></TR>
  <TR>
    <TD>0x60 </TD>
    <TD>AnimationBlock (float) </TD>
    <TD>Rotation or roll? (usually 0 or 2*pi) </TD></TR></TBODY></TABLE>
<P><BR>For static cameras the animatable data items are all 0. The FOV =
is not in=20
radians, but some weird scale... Multiplying by about 35 seems to give=20
correct-ish results in degrees. </P>
<P>The reason that non-mainmenu and non-geometry M2s have cameras =
(atleast in=20
Warcraft 3) was so you could see the unit's portrait. In WoW, these =
models have=20
cameras so that when you enter the Character menu (press "C") you see =
your=20
character regardless of what model you currently have. Also, I believe =
that one=20
of the main menu models has two cameras in it (I believe it's the orc=20
one...).-DG </P>
<P>Oh, that's right. Neat. I added menu <A class=3Dexternal=20
title=3Dhttp://wowmapview.sourceforge.net/mainmenu.jpg=20
href=3D"http://wowmapview.sourceforge.net/mainmenu.jpg"=20
rel=3Dnofollow>backdrops</A><SPAN=20
class=3Durlexpansion>&nbsp;(<I>http://wowmapview.sourceforge.net/mainmenu=
.jpg</I>)</SPAN>=20
using these cameras. Obviously it's still missing particle emitters, but =
that=20
can be fixed eventually... - Z. </P>
<DIV class=3Deditsection style=3D"FLOAT: right; MARGIN-LEFT: 5px">[<A =
title=3DM2=20
href=3D"http://wowmapview.sourceforge.net/wiki/index.php?title=3DM2&amp;a=
ction=3Dedit&amp;section=3D35">edit</A>]</DIV><A=20
name=3DCamera_lookup_table></A>
<H2>Camera lookup table </H2>
<P>Lookup table for cameras? It seems to be persent only if a camera is =
present=20
too. </P>
<P><I>nCameraLookup</I> 16-bit integers starting at =
<I>ofsCameraLookup</I>.=20
(values: 0..<I>nCameras</I>-1) </P>
<P><BR></P>
<DIV class=3Deditsection style=3D"FLOAT: right; MARGIN-LEFT: 5px">[<A =
title=3DM2=20
href=3D"http://wowmapview.sourceforge.net/wiki/index.php?title=3DM2&amp;a=
ction=3Dedit&amp;section=3D36">edit</A>]</DIV><A=20
name=3DUnknown_blocks></A>
<H1>Unknown blocks </H1>
<DIV class=3Deditsection style=3D"FLOAT: right; MARGIN-LEFT: 5px">[<A =
title=3DM2=20
href=3D"http://wowmapview.sourceforge.net/wiki/index.php?title=3DM2&amp;a=
ction=3Dedit&amp;section=3D37">edit</A>]</DIV><A=20
name=3DBlock_C></A>
<H2>Block C </H2>
<P><I>nC</I> 16-bit integers starting at <I>ofsC</I> (values: -1 to=20
<I>nAnimations</I>-1) </P>
<P>Lookup table for animations? </P>
<DIV class=3Deditsection style=3D"FLOAT: right; MARGIN-LEFT: 5px">[<A =
title=3DM2=20
href=3D"http://wowmapview.sourceforge.net/wiki/index.php?title=3DM2&amp;a=
ction=3Dedit&amp;section=3D38">edit</A>]</DIV><A=20
name=3DBlock_D></A>
<H2>Block D </H2>
<P><I>nD</I> records of (int16, int16) starting at <I>ofsD</I> </P>
<P>Maybe a lookup table for animations? Since the numbers happen to be =
in fixed=20
positions. The first short seems to increase with the position for =
models with=20
all animations (like characters), the second seems to be flags or a =
modifier? Or=20
something. </P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -