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

📄 m2.mht

📁 介绍魔兽世界M2具体压缩格式
💻 MHT
📖 第 1 页 / 共 5 页
字号:
    <TD><B>nVertices</B> - number of vertices </TD></TR>
  <TR>
    <TD>0x048 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsVertices</B> - offset to vertices </TD></TR>
  <TR>
    <TD>0x04C </TD>
    <TD>uint32 </TD>
    <TD><B>nViews</B> - number of views (LOD versions?) 4 for every =
model=20
  </TD></TR>
  <TR>
    <TD>0x050 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsViews</B> - offset to views </TD></TR>
  <TR>
    <TD>0x054 </TD>
    <TD>uint32 </TD>
    <TD><B>nColors</B> - number of color definitions </TD></TR>
  <TR>
    <TD>0x058 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsColors</B> - offset to color definitions </TD></TR>
  <TR>
    <TD>0x05C </TD>
    <TD>uint32 </TD>
    <TD><B>nTextures</B> - number of textures </TD></TR>
  <TR>
    <TD>0x060 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsTextures</B> - offset to texture definitions </TD></TR>
  <TR>
    <TD>0x064 </TD>
    <TD>uint32 </TD>
    <TD><B>nTransparency</B> - number of transparency definitions =
</TD></TR>
  <TR>
    <TD>0x068 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsTransparency</B> - offset to transparency definitions =
</TD></TR>
  <TR>
    <TD>0x06C </TD>
    <TD>uint32 </TD>
    <TD><B>nI</B> - always 0 </TD></TR>
  <TR>
    <TD>0x070 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsI</B> </TD></TR>
  <TR>
    <TD>0x074 </TD>
    <TD>uint32 </TD>
    <TD><B>nTexAnims</B> - number of texture animations </TD></TR>
  <TR>
    <TD>0x078 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsTexAnims</B> - offset to texture animations </TD></TR>
  <TR>
    <TD>0x07C </TD>
    <TD>uint32 </TD>
    <TD><B>nK</B> </TD></TR>
  <TR>
    <TD>0x080 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsK</B> </TD></TR>
  <TR>
    <TD>0x084 </TD>
    <TD>uint32 </TD>
    <TD><B>nRenderFlags</B> - number of blending mode definitions =
</TD></TR>
  <TR>
    <TD>0x088 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsRenderFlags</B> - offset to blending mode definitions =
</TD></TR>
  <TR>
    <TD>0x08C </TD>
    <TD>uint32 </TD>
    <TD><B>nY</B> - bone lookup table </TD></TR>
  <TR>
    <TD>0x090 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsY</B> </TD></TR>
  <TR>
    <TD>0x094 </TD>
    <TD>uint32 </TD>
    <TD><B>nTexLookup</B> - number of texture lookup table entries =
</TD></TR>
  <TR>
    <TD>0x098 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsTexLookup</B> - offset to texture lookup table </TD></TR>
  <TR>
    <TD>0x09C </TD>
    <TD>uint32 </TD>
    <TD><B>nTexUnits</B> - texture unit definitions? </TD></TR>
  <TR>
    <TD>0x0A0 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsTexUnits</B> </TD></TR>
  <TR>
    <TD>0x0A4 </TD>
    <TD>uint32 </TD>
    <TD><B>nTransLookup</B> - number of transparency lookup table =
entries=20
  </TD></TR>
  <TR>
    <TD>0x0A8 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsTransLookup</B> - offset to transparency lookup table =
</TD></TR>
  <TR>
    <TD>0x0AC </TD>
    <TD>uint32 </TD>
    <TD><B>nTexAnimLookup</B> - number of texture animation lookup table =

      entries </TD></TR>
  <TR>
    <TD>0x0B0 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsTexAnimLookup</B> - offset to texture animation lookup =
table=20
  </TD></TR>
  <TR>
    <TD>0x0B4 </TD>
    <TD>14 * float </TD>
    <TD>float values ...&nbsp;? (in range -1000...1000, mostly in =
-20...30)=20
  </TD></TR>
  <TR>
    <TD>0x0EC </TD>
    <TD>uint32 </TD>
    <TD><B>nBoundingTriangles</B> </TD></TR>
  <TR>
    <TD>0x0F0 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsBoundingTriangles</B> </TD></TR>
  <TR>
    <TD>0x0F4 </TD>
    <TD>uint32 </TD>
    <TD><B>nBoundingVertices</B> </TD></TR>
  <TR>
    <TD>0x0F8 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsBoundingVertices</B> </TD></TR>
  <TR>
    <TD>0x0FC </TD>
    <TD>uint32 </TD>
    <TD><B>nBoundingNormals</B> </TD></TR>
  <TR>
    <TD>0x100 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsBoundingNormals</B> </TD></TR>
  <TR>
    <TD>0x104 </TD>
    <TD>uint32 </TD>
    <TD><B>nO</B> </TD></TR>
  <TR>
    <TD>0x108 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsO</B> </TD></TR>
  <TR>
    <TD>0x10C </TD>
    <TD>uint32 </TD>
    <TD><B>nP</B> </TD></TR>
  <TR>
    <TD>0x110 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsP</B> </TD></TR>
  <TR>
    <TD>0x114 </TD>
    <TD>uint32 </TD>
    <TD><B>nQ</B> </TD></TR>
  <TR>
    <TD>0x118 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsQ</B> </TD></TR>
  <TR>
    <TD>0x11C </TD>
    <TD>uint32 </TD>
    <TD><B>nLights</B> - number of lights </TD></TR>
  <TR>
    <TD>0x120 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsLights</B> - offset to lights </TD></TR>
  <TR>
    <TD>0x124 </TD>
    <TD>uint32 </TD>
    <TD><B>nCameras</B> - number of cameras </TD></TR>
  <TR>
    <TD>0x128 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsCameras</B> - offset to cameras </TD></TR>
  <TR>
    <TD>0x12C </TD>
    <TD>uint32 </TD>
    <TD><B>nCameraLookup</B> </TD></TR>
  <TR>
    <TD>0x130 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsCameraLookup</B> </TD></TR>
  <TR>
    <TD>0x134 </TD>
    <TD>uint32 </TD>
    <TD><B>nRibbonEmitters</B> - number of ribbon emitters </TD></TR>
  <TR>
    <TD>0x138 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsRibbonEmitters</B> - offset to ribbon emitters </TD></TR>
  <TR>
    <TD>0x13C </TD>
    <TD>uint32 </TD>
    <TD><B>nParticleEmitters</B> - number of particle emitters =
</TD></TR>
  <TR>
    <TD>0x140 </TD>
    <TD>uint32 </TD>
    <TD><B>ofsParticleEmitters</B> - offset to particle emitters=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=3D4">edit</A>]</DIV><A=20
name=3DSkeleton_and_animation></A>
<H1>Skeleton and animation </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=3D5">edit</A>]</DIV><A=20
name=3DStandard_animation_block></A>
<H2>Standard animation block </H2>
<P>Many values that change with time, such as bone animation, etc. are =
specified=20
using blocks like the following: </P>
<P>(size is 0x1C bytes) </P>
<P><BR></P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Offset </TH>
    <TH>Type </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0x00 </TD>
    <TD>int16 </TD>
    <TD>interpolation type </TD></TR>
  <TR>
    <TD>0x02 </TD>
    <TD>int16 </TD>
    <TD>global sequence ID or -1 </TD></TR>
  <TR>
    <TD>0x04 </TD>
    <TD>uint32 </TD>
    <TD>number of (int, int) interpolation ranges </TD></TR>
  <TR>
    <TD>0x08 </TD>
    <TD>uint32 </TD>
    <TD>offset to interpolation ranges </TD></TR>
  <TR>
    <TD>0x0C </TD>
    <TD>uint32 </TD>
    <TD>number of (int) timestamps </TD></TR>
  <TR>
    <TD>0x10 </TD>
    <TD>uint32 </TD>
    <TD>offset to timestamps </TD></TR>
  <TR>
    <TD>0x14 </TD>
    <TD>uint32 </TD>
    <TD>number of values </TD></TR>
  <TR>
    <TD>0x18 </TD>
    <TD>uint32 </TD>
    <TD>offset to values </TD></TR></TBODY></TABLE>
<P><BR>The values can have various types depending on the kind of data =
required,=20
like floats, vectors, quaternions etc. </P>
<P>Usually, if animation is used, interpolation ranges will be given for =
each=20
animation in the global animation list. These ranges refer to keyframes =
that=20
have given time and data values. The number of timestamps should =
therefore be=20
equal to the number of data values. </P>
<P>If a global sequence is used, it means there is an implicit =
interpolation=20
range across all values, and a time range from 0 to the proper global =
sequence=20
timestamp. </P>
<P>If the interpolation type is 0, in some cases that might mean that no =

animation is given (like for bones), in other cases it means that a =
single=20
constant data value should be used (like for colors and effect =
paramters) </P>
<P>Interpolation types: </P>
<P><BR></P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Value </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0 </TD>
    <TD>none / static value </TD></TR>
  <TR>
    <TD>1 </TD>
    <TD>linear </TD></TR>
  <TR>
    <TD>2 </TD>
    <TD>(spline?) in addition to values, in/out tangents are given=20
  </TD></TR></TBODY></TABLE>
<P><BR>Maybe the interpolation types here are the same as the WC3 MDL =
files?=20
(bezier, etc) </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=3D6">edit</A>]</DIV><A=20
name=3DGlobal_sequences></A>
<H2>Global sequences </H2>
<P><I>nGlobalSequences</I> 32-bit unsigned integers starting at=20
<I>ofsGlobalSequences</I> </P>
<P>A list of timestamps that act as upper limits for global sequence =
ranges.=20
</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=3D7">edit</A>]</DIV><A=20
name=3DAnimation_sequences></A>
<H2>Animation sequences </H2>
<P>List of animations present in the model. </P>
<P>Based on linghuye's work. </P>
<P><I>nAnimations</I> 68-byte records starting at <I>ofsAnimations</I> =
</P>
<P><BR></P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Offset </TH>
    <TH>Type </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0x00 </TD>
    <TD>uint32 </TD>
    <TD>Animation ID in AnimationData.dbc </TD></TR>
  <TR>
    <TD>0x04 </TD>
    <TD>uint32 </TD>
    <TD>Start timestamp </TD></TR>
  <TR>
    <TD>0x08 </TD>
    <TD>uint32 </TD>
    <TD>End timestamp </TD></TR>
  <TR>
    <TD>0x0C </TD>
    <TD>float </TD>
    <TD>moving speed (for walk/run animations?) </TD></TR>
  <TR>
    <TD>0x10 </TD>
    <TD>uint32 </TD>
    <TD>1 for non-looping? </TD></TR>
  <TR>
    <TD>0x14 </TD>
    <TD>uint32 </TD>
    <TD>Flags? </TD></TR>
  <TR>
    <TD>0x18 </TD>
    <TD>uint32 </TD>
    <TD>&nbsp;? </TD></TR>
  <TR>
    <TD>0x1C </TD>
    <TD>uint32 </TD>
    <TD>0&nbsp;? </TD></TR>
  <TR>
    <TD>0x20 </TD>
    <TD>uint32 </TD>
    <TD>Playback speed? </TD></TR>
  <TR>
    <TD>0x24 </TD>
    <TD>float[6] </TD>
    <TD>Bounding box (2 vectors)? </TD></TR>
  <TR>
    <TD>0x3C </TD>
    <TD>float </TD>
    <TD>radius? </TD></TR>
  <TR>
    <TD>0x40 </TD>
    <TD>uint16[2] </TD>
    <TD>&nbsp;? </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=3D8">edit</A>]</DIV><A=20
name=3DBones></A>
<H2>Bones </H2>
<P><I>nBones</I> records of 0x6C bytes starting at <I>ofsBones</I>, =
followed by=20
data referenced in these records. </P>
<P>The bone indices in the vertex definitions seem to index into this =
data. </P>
<P>Based on linghuye's work: </P>
<P><BR></P>
<TABLE class=3Dfileformat>
  <TBODY>
  <TR>
    <TH>Offset </TH>
    <TH>Type </TH>
    <TH>Description </TH></TR>
  <TR>
    <TD>0x00 </TD>
    <TD>uint32 </TD>
    <TD>index into block F or -1 </TD></TR>
  <TR>
    <TD>0x04 </TD>
    <TD>uint32 </TD>
    <TD>Flags </TD></TR>
  <TR>
    <TD>0x08 </TD>
    <TD>uint16 </TD>
    <TD>Parent bone ID or -1 </TD></TR>
  <TR>

⌨️ 快捷键说明

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