如何新建盟军敢死队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

 

 

posted @ 2008-08-14 14:35  地狱门神  阅读(3520)  评论(12编辑  收藏  举报