如何新建盟军敢死队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 地狱门神 阅读(95) | 评论 (1)编辑
.Net Framework 2.0 WinForm控件。

吾参考
Code Project上的OpenFileDialogEx源代码
http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx
经过进一步的消息Hack,制成此超级FileDialog控件:FileDialogEx。
支持选择文件夹,这样可以淘汰落后的FolderBrowserDialog了。
保存文件也支持Multiselect。
吾忙,无甚注释。用法请自行试探。

http://www.cnblogs.com/Files/Rex/FileDialogEx.rar

已知问题:
快捷方式等隐藏扩展名文件无法正确处理

另外,该控件理论上支持Win64,但未经测试。

该控件遵循Creative Commons Public Domain Dedication License
http://creativecommons.org/licenses/publicdomain/
posted @ 2008-07-12 03:29 地狱门神 阅读(363) | 评论 (0)编辑
     摘要: 2008.08.14.0 增加文档《如何新建盟军敢死队2地图》(HowToBuildANewMap.zh.txt)。 修订《OBJ导入导出步骤》(OBJ_ConvertProcedure.zh.htm). 2008.08.12 更换许可证为BSD许可证。   阅读全文
posted @ 2008-05-31 17:54 地狱门神 阅读(947) | 评论 (16)编辑
     摘要: 乙史·Hell, it's about time. aries6391 http://2history.blogcn.com/diary,15299434.shtml 2008/05/01 更新第3节 锲子 2035年5月6日 星期日 四川省绵阳市绵阳中学南山分校区 同学们,老师们,现在播放一个紧急通知!现在播放一个紧急通知! 老师们,同学们,今天离高考还有三十天劳!大家已经在南山这片热... 阅读全文
posted @ 2008-04-22 22:47 地狱门神 阅读(49) | 评论 (0)编辑
     摘要: 赫多兰朵SBPAK文件管理器 2008.01.17.1 地狱门神(F.R.C.) 本软件用于解开和创建赏金2:阴谋(赫多兰朵)的PAK文件。 本软件是Spellbound Entertainment的SBPacker.exe的GUI壳。   阅读全文
posted @ 2008-01-17 13:23 地狱门神 阅读(302) | 评论 (2)编辑
     摘要: 本文通过三个例子介绍了如何初步分析一个未知格式的游戏包文件(package file)的文件格式,并从中提取数据。  阅读全文
posted @ 2007-12-17 12:22 地狱门神 阅读(238) | 评论 (3)编辑
     摘要: 本文通过三个例子介绍了如何初步分析一个未知格式的游戏包文件(package file)的文件格式,并从中提取数据。  阅读全文
posted @ 2007-12-12 22:51 地狱门神 阅读(374) | 评论 (3)编辑

为什么条形磁铁摔断之后断面会相斥?
地狱门神

今天忽然想起这个问题,在网上搜了一下,发现有这样一些看法[1、2]和问题[3]:

1、http://post.baidu.com/f?kz=89081724
对于这个问题我曾经考虑过,如果你的磁铁是条形磁铁,那么它的质量一定不过关;如果你的磁铁是圆环状或饼状

的,这种现象是很正常的.要知道条形磁铁的南北极是分布在两端的(一端红色,一端白色).所以如果它是标准磁

铁,即使摔断了,断面仍然是两个异名磁极,仍然可以相互吸引.但是如果它是圆环状或饼状的,那么它的磁极在上

下两个面上(是圆环或圆形的两个面).这样的磁铁摔断了以后,断面的相对应的磁极是同名磁极,所以无法恢复原

状.我这样说希望你能理解,如果无法理解,就再思考思考,画几个图,肯定能明白我的意思.不过你能观察到这个

生活中的现象并去思考,这是很值得称赞和学习的,我非常感谢你提了这个问题.
郭成  2006-3-19 14:18

2、http://www.phy.ntnu.edu.tw/demolab/wwwboard0/messages/392.html#followups
: 在切斷磁鐵的同時,切斷處的磁場方向會稍微變化,
: 例如 一塊長磁鐵 切成兩段,磁鐵中間處若磁場原來平行於軸線,
: 但切斷後 成為磁鐵的邊緣,『部份磁域』磁場方向會稍微調整,(邊界條件改變了!)
: 但大致極性不變,因此 兩端靠近時會相吸,
: 但如果很接近(幾乎靠在一起時)則會相斥 ,並維持一小間距。

: 做實驗時也要留意:原來的磁鐵 是否很均勻?
: 有 十塊錢的磁鐵 也有數千元同樣大小的磁鐵,
: 除了材料不同,強度不同,磁場分佈的均勻度也不盡相同。

:果然如此,最近學校有位學生不慎將學校內最"貴"的磁鐵摔斷
成好幾節,接回後果然很吻合的吸回去了,也許無法吸回去的刻板印像
來自於過去那種便宜'磁域過亂的次級品磁鐵吧!

3、http://bbs.oursci.org/printthread.php?s=5aa73624a56b10ce68af87ac120a94bf&threadid=9115
一块长条的磁铁N----S
断成左右两截后,变成了
N--S和S--N是吗?
那为什么原来左半截的左边保持N极不变,而右半截的右边原来是S极,后来却变成了N极呢?这其中蕴含着什么样

的规律使得左边保持磁极顺序不变,而让右边的磁极顺序发生了变化?
可能这么说不清楚,假设磁铁原来是N-----S
那么从中间断开后,按理说应该变成N--S和N--S的,
可是,事实不是这样的,它反而变成N--S和S--N.
为什么右边的磁极顺序发生了变化,而左边不发生呢?这物质不是对称的吗?事实上,不管是左边还是右边发生变

化,总之是只有一边发生了变化而另一边保持不变, 这是为什么?


我的想法是:
1、普通条形磁铁磁铁内部的磁感线方向并不是物理书上那样标准地从一端指向另一端,而是一个任意的斜线,

不平行于磁铁的三组棱。而且磁铁的磁性仍然可以认为是均匀的。这可能是因为大多数磁铁是直接从磁铁矿石

按一个随意的方向切割得到的。
2、这样的磁铁可以看作6个面有三个是北极、三个是南极,每两个相对的面磁性相反。
3、磁铁从中间断开后,并没有某个磁铁发生磁性反转这样的事。磁铁断面的磁性仍然相反。
4、两块磁铁各自与和磁铁断面相邻的四个面磁性相同。
5、由于和环形磁铁相似的原因,断面之间会产生一个斥力。
6、将其中一块磁铁180度翻转过来,两块磁铁各自的断面、相邻的四个面对应的面磁性相反,产生一个引力。

所以此时磁铁相吸。
7、可能存在那种演示用条形磁铁,经过了人工磁化,磁感线方向标准地从一端指向另一端,从而摔断后可以直接吸引在一起。但是这应该不是普遍情况。

posted @ 2007-11-08 19:48 地狱门神 阅读(346) | 评论 (1)编辑

[转载]A MIDI dotnet wrapper
http://www.franklins.net/dotnet.aspx


CarlsMIDITools.Zip (135K)

Source and test harness for Carl Franklin's MIDI component. This is currently version 1.0, and the events have not yet been tested. However, it does play notes, change patches, set volumes, and respond to controllers (i.e. output) very well!

posted @ 2007-10-18 20:30 地狱门神 阅读(50) | 评论 (0)编辑
     摘要:  
盟军敢死队系列修改开发文档汇总
最后更新:2007.10.11
  阅读全文
posted @ 2007-10-03 15:34 地狱门神 阅读(495) | 评论 (9)编辑
     摘要: 诺基亚S40电子书阅读器 2007.11.04.0
地狱门神
2007.11.04.0
增加了使英文单词不跨行的处理。


  阅读全文
posted @ 2007-08-18 17:23 地狱门神 阅读(7829) | 评论 (17)编辑

文件复制器 2007.08.18.0
地狱门神(F.R.C.)

http://www.cnblogs.com/Files/Rex/FileCopier.rar

本软件用于复制或更新一个文件夹中的文件到另一个文件夹中。

当你需要经常通过向移动硬盘复制文件来备份重要数据时,可能会遇到如下情况:
(1)电脑USB接口过旧,传输速率过低,每次备份花费时间长。
(2)移动硬盘可能在其他地方用过,数据比机器上的新。
(3)Windows的复制使得文件的创建时间是复制时间,使你觉得丢失了一种重要的信息。
(4)Windows自带的公文包危险系数大,不敢用。如
   (a)在BIOS掉电后时间重置,此时编辑过的文件可能会被同步掉。
   (b)公文包会同时改变源文件夹和目标文件夹。
   (c)没见过有人用。

本软件专门用于解决这些问题,每个问题的解决方案如下:
(1)本软件会自动判断相同文件,如果放宽条件,甚至可以自动判断路径变更而名称未变更的相同文件。
(2)本软件可以自动发现新的文件,并将其移动到异常文件夹。
(3)本软件能够会自动修正创建时间,当选择创建时间为较早的情况下,本软件可以将目标文件的创建时间修正为源文件和目标文件(如果都存在)中较早的那个的创建时间。
(4)(a)本软件会将旧的文件移动到备份文件夹,便于手动判断。
   (b)本软件不会改变源文件夹中所有文件(夹)的内容、创建修改时间、属性,但可能会修改访问时间。
   (c)本软件提供源代码,可供检查。


PreCopy批处理和PostCopy批处理

用于在复制前后进行一些细微的调整,例如实现两个文件夹的同步。批处理的初始文件夹为程序所在文件夹。可以使用%SrcDir%, %TarDir%, %NewDir%, %BakDir%, %ExcDir%分别代表源文件夹、目标文件夹、更新文件夹、备份文件夹、异常文件夹。批处理会存储为程序文件夹下的临时文件。


本软件的适用范围

Windows环境下,本地存储设备的文件夹之间。


本软件的测试环境

2007.07.27.0版,Windows XP SP2,一次复制文件量6.2万,大小11.5GB。


本软件的使用建议

如果需要使用本软件一次处理数量以万计算,大小以GB计算的文件,建议使用Visual Studio 2005集成环境调试运行,以发现并正确处理各种难以预料的异常,避免重复浪费时间。


已经发现的一些异常

(1)如果在某文件夹下存在123456789.txt和123456~1.txt两个文件,且这两个文件被删除,则可能出现123456789.txt先被移动到备份文件夹下并且其8.3命名为123456~1.txt的情况,导致123456~1.txt移动到备份文件夹时出现异常。现在的解决方法是将123456789.txt删除到回收站,当作原先存在于备份文件夹中应被覆盖的文件。复制过程中新创建文件也有遇到这种情况的可能性。
(2)对于某些存在desktop.ini文件的文件夹,可能会难以删除,会抛出异常,需要手动删除。但是并不是全部都是这样。

如果发现其他异常或想到了这些异常的解决方案,请与我联系。


一些其他问题

在复制时,如果新增了比较大的文件,本软件可能会出现长时间没有响应的情况,请耐心等待。这是我不想自己做具体复制一个文件的函数,而仅仅调用了系统函数造成的。


环境要求

本软件需要支持 Microsoft .Net Framework 2.0 的操作系统。

本软件需要 Microsoft .Net Framework 2.0 运行库支持。
http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe

这个运行库在某些操作系统(如Win98,Win2k)下无法安装,因为缺少WindowsInstaller 3.1。
http://www2.skycn.com/soft/11601.html


用户使用协议

本软件是免费自由软件,用户使用协议主要条款详见FFPL.txt。
大意是你可以做任何事(复制、修改(除了协议)、翻译等)但是修改后你不能原名发行,另外,不提供任何担保。

 

posted @ 2007-07-27 00:17 地狱门神 阅读(869) | 评论 (8)编辑
     摘要: 柳文扬(1970.7.5——2007.7.1)

柳子文扬,北京人(北京位于现华夏邦燕郡北京西),庚戌一九七〇年七月五日生,丁亥二〇〇七年七月一日卒,年三十七。时科普作家、科幻作家。尝学于北京工业大学。
甲戌一九九四年发表《闪光的生命》,后至四川领奖,遇成都女蓝叶。飞两地若干,后遂辞高校职务,迁四川完婚。习蜀语。后蓝叶学于北京,柳子亦归,以稿酬养家。(四川即现蜀郡、巴郡、泸郡一带,成都即现华夏邦蜀郡成都。)
自癸酉一九九九年始,尝发数篇文章于《科幻世界》,以《外祖父悖论》、《毒蛇》、《去告诉她们》、《一线天》等文数次获“中国科幻银河奖”(时邦内最著名之科幻奖)。尝化名“周平”、“小丁”等作文数篇。
庚辰二〇〇〇年至癸未二〇〇三年,为《惊奇档案》执笔。蓝叶为时《惊奇档案》执行主编。(《科幻世界》、《惊奇档案》均为时邦内科幻界著名杂志,有衍生关系。)后,奇幻杂志《九州幻想》盛,而《惊奇档案》衰。
乙酉二〇〇五年,罹患脑癌。后病重,难视物。后手术,略有好转。丁亥二〇〇七年七月一日,英年早逝。
作品收入《柳文扬全集》。

  阅读全文
posted @ 2007-07-09 18:05 地狱门神 阅读(213) | 评论 (2)编辑
     摘要: 文本文件化器
F.R.C.(地狱门神)

源文件:http://www.cnblogs.com/Files/Rex/Texter.rar
执行文件:http://www.cnblogs.com/Files/Rex/TexterBin.rar

用于批量整理各种网页文件或格式不够好的文本文件。
  阅读全文
posted @ 2006-10-30 12:09 地狱门神 阅读(661) | 评论 (4)编辑