zoukankan      html  css  js  c++  java
  • 如何新建盟军敢死队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

  • 相关阅读:
    关于使用sudo找不到环境变量的问题
    HDFS修改副本数,并生效。
    Linux创建用户,SFTP只允许访问指定目录
    Docker 技术系列之安装Redis单机版和集群版
    Docker 技术系列之安装多版本Mysql5.6和Mysql5.7
    Docker 技术系列之安装Docker Desktop for Mac
    第五章 Mac系统软件-安装Java Web开发环境基本软件
    第四章 感受Mac之美-效率提高从操作快捷键开始
    第三章 感受Mac之美-万里挑一的装机必备软件
    第二章 感受Mac 之美-惊艳从Mac 外设开始,一周后的使用感受
  • 原文地址:https://www.cnblogs.com/Rex/p/1267832.html
Copyright © 2011-2022 走看看