|
发表于 2006-4-3 16:52:34
|
显示全部楼层
【资料】魔兽3 模型文件 MDL 格式说明 转载自:刀锋战士
// MDLFile version Aug 9 2002 18:26:44
// Exported on Fri Apr 11 21:47:00 2003
Version {
FormatVersion 800,
}
// 模型数据统计结果
Model \"Arthas\" {
NumGeosets 4, // 几何体个数
NumHelpers 4, // 帮助者个数
NumBones 36, // 骨骼个数
NumAttachments 9, // 附件个数
NumParticleEmitters2 1, // 粒子发射器个数
NumRibbonEmitters 1, // 带子发射器个数
NumEvents 13, // 事件个数
BlendTime 150, // 混合时间
MinimumExtent { -175.945, -147.584, -73.0451 }, // 最小范围
MaximumExtent { 172.425, 175.079, 553.363 }, // 最大范围
}
// 动作序列
Sequences 13 {
// 各个动作
Anim \"Stand - 1\" {
Interval { 3333, 6667 }, //
启始时间和结束时间
MinimumExtent { -154.372, -145.345, -41.5714 },
MaximumExtent { 135.577, 144.604, 118.823 },
BoundsRadius 207.343, // 碰撞半径
}
Anim \"Stand First\" {
Interval { 10000, 16667 },
Rarity 5,
MinimumExtent { -154.372, -145.345, -50.8508 },
MaximumExtent { 135.577, 144.604, 129.42 },
BoundsRadius 207.442,
}
// ...
}
// 全局序列
GlobalSequences 2 {
Duration 3333, // 持续时间
Duration 1600,
}
// 纹理
Textures 5 {
Bitmap {
Image \"\",
ReplaceableId 1, // 可替换纹理ID
}
Bitmap {
Image \"Textures\\Arthas.blp\", // 纹理图片文件名
}
// ....
}
// 材质贴图
Materials 5 {
Material {
Layer { // 材质分层
FilterMode None, // 填充模式(无)
Unshaded,
TwoSided,
static TextureID 0, // 静态纹理ID(即Textures
中的每几个纹理,从0开始)
}
Layer {
FilterMode Blend, // 填充模式(混合)
TwoSided,
static TextureID 1,
}
}
Material {
Layer {
FilterMode Transparent, // 填充模式(透明)
static TextureID 1,
}
}
Material {
Layer {
FilterMode Transparent,
TwoSided,
static TextureID 1,
}
}
Material {
Layer {
FilterMode Additive, // 填充模式(迭加)
Unshaded,
static TextureID 2,
// Alpha参数
Alpha 1 {
Linear, // 线性插补
3333: 0.75, // 时间,值
}
}
}
// ...
}
// 几何设置
Geoset {
// 顶点
Vertices 292 {
{ -13.7686, -0.1468, 58.0846 }, // 顶点(x,y,z)
{ 1.97852, -0.1468, 57.8275 },
{ -0.93993, -1.96151, 41.4989 },
{ 1.97852, -0.1468, 57.8275 },
// ...
}
// 法线
Normals 292 {
{ -0.436008, 0.793753, -0.424091 }, // 法线值(x,y,z)
{ 0.303597, 0.939495, -0.158675 },
{ 0.154466, 0.969766, -0.188928 },
{ 0.303597, 0.939495, -0.158675 },
// ...
}
// 纹理坐标
TVertices 292 {
{ 0.324219, 0.570313 }, // 纹理坐标值(u,v)
{ 0.302178, 0.55865 },
{ 0.276749, 0.712802 },
{ 0.324219, 0.570313 },
// ...
}
// 顶点分组
VertexGroup {
21, // 所属顶点分组索引
21,
27,
21,
// ...
}
// 面
Faces 1 624 {
// 三角形(每3个为一个三角形)
Triangles {
{ 0, 1, 2, 3, 4, 2, 2, 4, 5, 5, 4, 6, ... },
}
}
// 顶点分组,32个组,63个值
Groups 32 63 {
Matrices { 4 }, // 对象ID
Matrices { 4, 5 },
Matrices { 4, 5, 16 },
Matrices { 4, 5, 19 },
// ...
}
MinimumExtent { -102.438, -57.7769, -53.4053 },
MaximumExtent { 54.9053, 85.844, 553.363 },
BoundsRadius 305.514,
Anim {
MinimumExtent { -41.1527, -45.6716, -1.38496 },
MaximumExtent { 26.0473, 38.9744, 109.492 },
BoundsRadius 72.5562,
}
Anim {
MinimumExtent { -58.8143, -56.165, -1.01386 },
MaximumExtent { 31.6155, 59.0087, 110.83 },
BoundsRadius 74.0525,
}
// ...
MaterialID 0, // 材质贴图ID(即使用第几个Materials,从0开始)
SelectionGroup 0,
}
// 几何设置(这是第二个,有几个就有这样的几个段)
Geoset {
...
}
// ...
// 骨骼 \"hero\"
Bone \"hero\" {
ObjectId 0, // 对象ID(骨骼、Helper、附件等都是Object)
GeosetId 3, // 几何体ID(对哪个几何体中的顶点有影响???)
GeosetAnimId None, // 几何体动画ID
// 缩放变换
Scaling 5 {
Hermite, // Hermite插补
GlobalSeqId 0, // 全局序列ID(对应全局序列)
0: { 1, 1, 1 }, // 时间,插补数据
InTan { 0, 0, 0 },
OutTan { -0.243562, -0.243562, -0.243562 },
833: { 0.82329, 0.82329, 0.82329 },
InTan { -0.0430045, -0.0430045, -0.0430045 },
OutTan { -0.0395641, -0.0395641, -0.0395641 },
1600: { 0.917431, 0.917431, 0.917431 },
InTan { 0.0941409, 0.0941409, 0.0941409 },
OutTan { -0.137755, -0.137755, -0.137755 },
2400: { 0.779677, 0.779677, 0.779677 },
InTan { 0.0381086, 0.0381086, 0.0381086 },
OutTan { 0.04446, 0.04446, 0.04446 },
3333: { 1, 1, 1 },
InTan { 0.308255, 0.308255, 0.308255 },
OutTan { 0, 0, 0 },
}
}
// 骨骼 \"hero2\" 第2个骨骼,有多少骨骼就有多少这样的数据段
Bone \"hero2\" {
...
}
// ...
// 帮助者 \"Root\" (注意,Root只是这个对象的名字,一个模型并非只有一个Root Object,Root
Object并非一定叫\"Root\")
Helper \"Root\" {
ObjectId 36, // 对象ID
// 平移矩阵
Translation 227 {
Bezier, // 贝塞尔变换
3333: { -9.16376, 0, -4.87333 },
InTan { -9.16318, 0, -4.87383 },
OutTan { -9.17838, 0, -4.86076 },
4167: { -9.16376, 0, -3.2888 },
InTan { -9.16376, 0, -3.90148 },
OutTan { -9.16376, 0, -2.87217 },
4733: { -9.16376, 0, -1.92169 },
InTan { -9.16376, 0, -2.20873 },
OutTan { -9.16376, 0, -0.942364 },
// ...
}
// 旋转矩阵
Rotation 164 {
Hermite, // Hermite变换
3333: { 0, 0, -0.214125, 0.976806 },
InTan { 0, 0, 0.214146, -0.976802 },
OutTan { 0, 0, 0.214146, -0.976802 },
10000: { 0, 0, 0.214125, -0.976806 },
InTan { 0, 0, -0.214212, 0.976787 },
OutTan { 0, 0, -0.214212, 0.976787 },
10033: { -0.000548375, 0, -0.209765, 0.977752 },
InTan { 0.000488569, -0.000172332, 0.210352,
-0.977626 },
OutTan { 0.000488569, -0.000172332, 0.210352,
-0.977626 },
// ...
}
}
Helper \"ShoulderL\" {
...
}
// ...
// 附件
Attachment \"Origin Ref \" {
ObjectId 40,
}
Attachment \"OverHead Ref \" {
ObjectId 41,
}
Attachment \"Chest Ref\" {
ObjectId 42,
Parent 4, // \"Bone_Chest\"
}
// ...
// 中心点(每个对象的中心点,这是初始中心点)
PivotPoints 66 {
{ -9.39722, -0.370683, 9.01962 }, // 对象中心点值(x,y,z)
{ -9.39722, -0.370683, 7.70602 },
{ -9.39722, -0.370683, 17.3682 },
{ -9.39722, -0.370683, 28.016 },
// ...
}
// 粒子发射器2(MDX中有两套粒子发射器)
ParticleEmitter2 \"BlizParticle01\" {
ObjectId 49, // 对象ID
Parent 22, // \"Hammer\" // 父对象ID
Unshaded,
static Speed 220,
static Variation 0.02,
static Latitude 180,
static Gravity 0,
Visibility 16 {
DontInterp,
3333: 0,
10000: 0,
20000: 0,
30000: 0,
33333: 0,
36667: 0,
40000: 0,
// ...
}
LifeSpan 0.45,
static EmissionRate 35,
static Width 0,
static Length 0,
Additive,
Rows 1,
Columns 1,
Tail,
TailLength 0.55,
Time 0.5,
SegmentColor {
Color { 1, 1, 1 },
Color { 1, 1, 1 },
Color { 1, 1, 1 },
},
Alpha {0, 255, 0},
ParticleScaling {1, 10, 1},
LifeSpanUVAnim {0, 0, 1},
DecayUVAnim {0, 0, 1},
TailUVAnim {0, 0, 1},
TailDecayUVAnim {0, 0, 1},
TextureID 3,
}
// 带子发射器(呵呵,不知道这样叫是否正确。魔3中模型的光带都是这个做出来的,COOL!)
RibbonEmitter \"BlizRibbon01\" {
ObjectId 50,
Parent 22, // \"Hammer\"
static HeightAbove 30,
static HeightBelow 30,
static Alpha 0.2,
static Color { 1, 0.803922, 0.52549 },
static TextureSlot 0,
Visibility 17 {
DontInterp,
3333: 0,
10000: 0,
20000: 0,
// ...
}
EmissionRate 35,
LifeSpan 0.1,
Rows 1,
Columns 1,
MaterialID 4,
Translation 2 {
Bezier,
33333: { 0, 0, 0 },
InTan { -9.11689, -32.7187, -633.306 },
OutTan { 0.273507, 0.981561, 18.9992 },
34333: { 0.845135, 3.03302, 58.7074 },
InTan { 0.684157, 2.4553, 47.5251 },
OutTan { 1.22075, 4.38103, 84.7996 },
}
Rotation 2 {
Linear,
33333: { -0.0101647, -0.0364791, -0.706092, 0.707107
},
36667: { -0.0101647, -0.0364791, -0.706092, 0.707107
},
}
}
// 事件对象
EventObject \"SNDXDPAL\" {
ObjectId 51,
EventTrack 1 {
40000,
}
}
// ...
// 碰撞体
CollisionShape \"Collision Sphere01\" {
ObjectId 64, // 对象ID
Sphere, // 碰撞体形状(球体)
// 中心点
Vertices 1 {
{ -21.2438, 0, 89.3649 },
}
BoundsRadius 47.1113, // 半径
}
CollisionShape \"Collision Sphere02\" {
ObjectId 65,
Sphere,
Vertices 1 {
{ -21.2438, 0, 39.548 },
}
BoundsRadius 59.3603,
} |
|