如何新建盟军敢死队2地图
如何新建盟军敢死队2地图
地狱门神
〇 概述
本文主要介绍如何新建盟军敢死队2的地图。这里的新建地图,不是指仅仅修改脚本,而是指彻底从新建地形开始制作新地图。
本文将首先介绍盟军敢死队2地图的结构,然后大致介绍新建地图的步骤,并指出详细步骤的文档位置。
一 地图的结构
DATA.PCK文件解开后覆盖到DATA文件夹后的内容
本结构在文献[2]中给出的结构的基础上修订而成。
──DATA
│ PARGLOBAL.DAT (数值、趴敌人衣服设置、子弹数、物品数、开枪速度等等)
│
├─ANIMS (人物、物品调用)
│ │ *.AN2 (大地图上的可拾取物品的模型数据)
│ │ *.ANI (人物动作模型数据)
│ │
│ ├─ABI
│ │ *.ABI (人物、物品模型与贴图库)
│ │
│ └─GRL
│ *.GRL (物品图片库)
│
├─BRIEFING (任务介绍图片组、过关动画)
│ *.GRL (关卡任务介绍图片)
│ *.BRI (过关动画)
├─CARAANIM
│
├─CREDITOS (开发者信息)
│
├─FONTS (游戏中字体文件)
│
├─FX
│
├─INTENDENCIA (任务失败、过关的背景图片)
│
├─INTERFAZ (界面图片、文字组)
│ MANUAL.TXT (任务、帮助文字)
│
├─INTERLUDIOS
│
├─MACROS (宏库,用于MIS文件的生成)
│
├─MISIONES (关卡文件夹)
│ │ MISIONES.DAT (单机任务列表等)
│ │ MISIONESRED.DAT (连机任务列表等)
│ │
│ ├─BU
│ │ BU.BAS (环境设置文件)
│ │ BU.GSC (动作脚本设置文件)
│ │ BU.Y64(关卡地图显示文件)
│ │ BU.MIS (任务设置、人物、物品、技能等等主设置文件)
│ │ BU.STR (关卡任务显示文件之一)
│ │ BUE00.MBI (一个小房间的视觉地图)
│ │ BUE00.SEC (一个小房间的逻辑地图)
│ │ BUEX.MA2 (大地图的遮盖)
│ │ BUEX.SEC (大地图的物理地图)
│ │ MANUAL_LIBRETA_BU.MSB (任务列表显示之二)
│ │ PGR_BU.MSB (开始载入图片的设置)
│ │ BU_OBJETIVOS.txt (任务帮助设置之二)
│ │
│ ├─CZ (以下各文件夹的内容和BU的文件结构一致,故省略)
│ ├─ECL
│ ├─HL
│ ├─IS
│ ├─KW
│ ├─PA
│ ├─PT
│ ├─RY
│ ├─SB
│ ├─SH
│ ├─TK
│ ├─TU01
│ ├─TU02
│ ├─TU03
│ ├─TU04
│ └─TU05
│
├─OBJETOSESPECIALES
│
├─PARAMETRICA
│
├─RED
│
├─SONIDOS (声音文件夹)
│ │
│ └─ESA
│ ESA.MSB (队员及盟军士兵声音设置)
│
├──STR
│ GLOBAL.STR (关卡名称、队员背包、物品的名称等等,文字显示文件
│
└─WOFIP
tst.arlc (主菜单画面)
*.POP (片头、结尾、过关视频)
注意到DATA\MISIONES文件夹下的各关卡文件夹中的如下几类文件:
Y64、SEC、MA2、MBI、MIS、BAS、GSC
以及DATA\ANIMS文件夹下的如下几类文件:
ANI、ABI、GRL
下面的介绍围绕
这几个格式展开。
MIS、BAS、GSC均是BSMB格式的脚本文件,可用BsmbDecoderShell.exe转换成文本文件。
MIS是游戏关卡的主脚本文件,其他所有文件均从这里开始被读取。里面主要有场景中的敌我人物、物体的初始位置、能力、背包等信息。
BAS是游戏关卡的环境设置文件,主要有电杆电线的逻辑信息、铁丝网的位置等。该文件在MIS文件中引用,可以整体并入MIS文件。
GSC是游戏关卡的动作脚本文件,主要有敌人的巡逻路线以及触发器(控制游戏目标等)。该文件在MIS文件中引用,可以整体并入MIS文件。
Y64、MA2、MBI均是显示用地图。
MBI是纯3D地图,其中即包含三角形或四边形模型信息,又包含贴图。主要用于房间的显示。房间中的静态光影效果是预渲染到贴图上的。
Y64和MA2是2D地图。
Y64包含原始3D模型的4个方向的摄像机高度40度的正投影的几种分辨率的图片。
MA2包含原始3D模型在这些方向的高出地面的物体的遮盖。将原始3D模型中的物体按离屏幕远近划分成数个距离区间,每个区间物体向屏幕作正投影,得到面片,然后将这些面片重新放到原来的距离区间的起始位置。这个过程所得的面片,就称为物体的遮盖。通过遮盖,游戏可以虚拟出3D的效果。
MBI所包含的信息可以生成相应的Y64和MA2,但是目前尚未有工具实现这点。
SEC是逻辑地图。
SEC控制人物行走的范围、人物与物体的碰撞、人物在地图区块上行走发出的声音等等。
SEC中的多边形的表示方式和MBI中不一样,SEC中的多边形都可以看作是突出地面的棱柱,其顶面是该多边形,侧面是垂直于地面的梯形,底面是该多边形在地面的正投影。
ANI是BSMB格式的脚本文件,ABI是动态图像文件,GRL是静态图像文件。
人物的动作是由ANI引用ABI来描述。人物图像的使用是在MIS文件中。
二 地图修改的现状
目前已有的地图修改,主要集中在MIS、BAS、GSC三个文件的修改上。这里不再考虑。ANI是文本格式,也不考虑。
其他六种格式,目前的格式分析,已经完全解析了Y64、SEC、MA2、MBI、GRL五种格式,基本解析了ABI格式。
从目前已经完成的工具来考虑,可以完美修改的格式有SEC、MBI、GRL三种,可以修改的格式有Y64。
另外,还有一个有待分析的格式H2O,描述游戏中的水流。
三 地图修改的步骤
下面描述的地图修改的步骤。
1)从已有的MBI获得盟军的3D模型和贴图。
参见文献[3]:“如何将MBI文件导出为OBJ文件”,“如何将OBJ文件导入3DS Max 8.0”。
该步骤可以省略。
2)使用3DSMAX建立地图的3D视觉模型,并制作贴图。
贴图必须使用gif格式,贴图大小只能为128*128或256*256。
顶点数限制为32768;贴图数限制为256。
3)通过OBJ文件转换生成MBI。
参见文献[3]:“如何从3DS Max 8.0导出OBJ文件用于生成MBI文件”。
此外,可参看Src\Examples\EX01.MBI.files下的待转换的OBJ文件的例子。
4)通过3DSMAX的“挤压”操作并修整获得物理模型(粗模型)。
注意:
SEC中的多边形的表示方式和MBI中不一样,SEC中的多边形都可以看作是突出地面的棱柱,其顶面是该多边形,侧面是垂直于地面的梯
形,底面是该多边形在地面的正投影。将这些边分成三种:顶面边、底面边、侧面边,其中,侧面边是指所有侧面的边中除去顶面边和地面边的边。
需要确保顶面边不垂直于地面(x!=0或y!=0),底面边在地面上(z=0),侧面边垂直于地面(x=y=0)。
所有的侧面均是垂直于地面的,不必在模型中画出的,画出也没有问题。但是侧面的上下顶点(除z坐标以外,x、y对应相同的点),必须对应存在。
也就是说,一个从地面凸出的区块,必须在地面上有其投影的挖空部分。另外,对于两个相邻的从地面凸出的区块,必须按下图的正确方法分割。
最后,所有的多边形都必须是凸多边形。
5)通过OBJ文件转换生成SEC。
参见文献[3]:“如何从3DS Max 8.0导出OBJ文件用于生成SEC文件”。
此外,可参看Src\Examples\EX01.SEC.files下的待转换的OBJ文件的例子。
6)为地图制作相应的地形脚本BAS。
参见文献[1][2]。
7)为地图制作相应的主脚本MIS和动作脚本GSC。
参见文献[1][2]。
需要注意的是主脚本的文件名和目录名必须是盟军2的已有的目录名,但是文件名和目录名可以不一样。
这样,一个完整的关卡就制作完成。
四 结论
本制作文档略显简略,如有疑问,请到以下网址与我联系。
http://www.cnblogs.com/Rex/Contact.aspx?id=1
本文中提到的文档,给出路径的,均可在“盟军敢死队开发工具箱”的源文件包中找到。
给出网址的,在对应网址可以看到。其他文档,如果无法找到,请向我联系索要。
参考文献:
[1]盟军敢死队2修改基础教程,URF(faqy),地狱门神,2003
[2]盟军敢死队二•修改教程补充,wyel2000,2007,http://bbs.cga.com.cn/BBS_content/65/2007/9/2/939824.asp?tid=939824
[3]OBJ导入导出步骤,NeoRAGEx2002,地狱门神,2008,Src\Doc\OBJ_ConvertProcedure.zh.htm
[4]For Commandos II: 3 key files’ data structures,盗版钦差,2006,invox4C2_3keyfiles.doc
[5]For Commandos II: 2 auxiliary files’ data structures,盗版钦差,2006,invox4C2_2auxfiles.doc
[6]盟军敢死队2及3 Y64文件格式表,地狱门神,Src\Doc\Comm2_Y64.zh.htm
[7]盟军敢死队2及3 SEC文件格式表,地狱门神,Src\Doc\Comm2_SEC.zh.htm
[8]盟军敢死队2 -- MA2文件格式表,PJB(网站大律师),地狱门神,Src\Doc\Comm2_MA2.zh.htm