红警地形实例制作教程
fhy093
2022年05月30日 03:30
收录于文集
共5篇

作者fhy093,师承蜘蛛星云、戴子玲,在此向感谢两位大佬致以崇高敬意。 

前言:

红警地形修改很少有moder去研究,这主要是因为修改地形是一项非常繁重的工程,它是个苦力活,你想完成整套地形,是需要付出大量心血的,没有坚定的信心和毅力就不要去做这件事。网上提供的教程是蜘蛛星云提供的远古教程,该教程有很多地方说的不是明白,导致一些领悟力差的学习者一头雾水。所以为防红警地形制作失传,有必要将此教程发扬光大。当然此教程编写仓促,难免有一些错误,还请各位mod大佬和学习者批评指正。

教程包含基础知识、地形制作、地形动画制作、地形对象制作,还附有实例教学。

有红警mod制作基础的学者可以较快入门,对于初学者可以按照实例教学进行操作。

 这里以红色警戒2尤里的复仇平台(以下简称YURI)为例,红色警戒2原版平台(以下简称RA2)与YURI大同小异,有区别的地方在于两者对文件的命名规则差异。YURI比RA2多了“md”两个字母,如YURI的Ra2md.mix文件在RA2里对应Ra2.mix文件。

目录:

  • 一、基础知识

  • 二、替换原版地形

  • 三、地形的扩充与注册

  • 四、地形对象的制作

  • 五、地形动画的制作

  • 六、高级修改

红警地形的制作需要用到以下工具:

TMP Builder的编辑界面组成。

在菜单栏File(文件)选项里找到Open(打开,快捷键Ctrl+O),然后打开刚才释放出来的.ubn文件。此时屏幕中央的预览窗口会显示出地形图像,就和你游戏里、地编里和XCC预览里看到的一样。

不管是平地还是悬崖,这些图像都可以分为两种:

Normal Image(普通图像,或称水平图像)和Extra Image(额外图像,或称垂直图像)。

Normal Image(普通图像):与水平面一致、几乎没有倾斜的图像

Extra Image(额外图像):悬崖等的额外图像与水平面有一定夹角的图像,往往接近90度

Normal Image图像呈上下窄,左右宽的标准菱形。Extra Image呈上下长,左右窄的平行四边形。 这两种图像基本呈现以上说明的情况,但也有例外: Normal Image的例外,比如修改过Ramp Type的草地斜坡、水泥地斜坡、沙漠斜坡等。 Extra Image的例外,比如山脉、山脉斜坡等复杂的悬崖。

不管哪种地形一定会有Normal Image,但是可以没有Extra Image。简单的地形,如草地,道路等只有Normal Image;悬崖、隧道等一定是同时拥有Normal Image和Extra Image;所以Extra Image只是Normal Image的从属图像。悬崖斜坡是两种Image最复杂的拼合,做出一个合格的悬崖斜坡是衡量TMP操作的金标准。你可以打开各种原版的地形文件观察他们两种图像的特点。

地形文件预览窗口下方的操作栏是对地形文件的分解,操作栏会将地形文件分解为Normal Image和Extra Image。假如地形被分解的部分同时有Normal Image和Extra Image,则它一定是同时显示在同一个区域,并且每个区域右上角上角会标有:

Number        被分解部分的序号

X= Y=         地形位置的XY坐标

Height=       地表高度

Terrain Type  地形类型,基本知识里讲过

Z             暂不了解此含义,好像没什么用

这些参数指定了Normal Image的属性,可以在图像显示区域左边属性栏“Properties”里的选项编辑,我们现在要学的是修改原版地形文件,在你没有充分了解软件之前不要随意修改这些参数。

1.对地形所有图像的整体修改。

在菜单栏Tools(工具)选项里,Export Title Image: 一次性把所有Normal Image和Extra Image都提取出来,你可以逐个进行修改,比较繁琐,不推荐

在菜单栏Tools(工具)选项里,Export Template: 将整个地形图像变为一整张图片拿出来用PS修改,这个对于改大面积的地表非常便利

在菜单栏Tools(工具)选项里,Import Template: 插入整张图片,图片大小有限制,根据地形类型而定,如果尺寸不对,软件会提示你正确的大小

在菜单栏Edit(编辑)选项里,Paste Normal Image: 从你的剪贴板图像截取一部分作为Normal Image贴进去,PS做好图像后再用这个功能有时可以提高效率。

2.对图像分解部分的局部修改。

鼠标右键点击操作栏里的其中一块被分解部分,会出现一些选项:

Edit Normal Image:出现一个可以手绘画图的编辑窗口,鸡肋功能,微调时偶尔用用,还不如用PS

Auto Color:全自动色彩,没什么用

Export Normal Image:输出普通图像,可以把Normal Image提取保存便于PS修改,格式为PNG

Export Extra Image:输出额外图像,可以把Extra Image提取保存便于PS修改,格式为PNG

Import Normal Image:插入普通图像,插入一个PS修改后新图像替换原来的Normal Image,格式为PNG

Import Extra Image:插入额外图像,插入一个PS修改后的新图像替换原来的Extra Image,格式为PNG

Delete Extra Image:删除额外图像

Delete Tiles:同时删除Normal Image和Extra Image

3.地形文件的常用修改流程:

先用Export Template把原版地形图像导出,使用PS将图像修改好。再用Import Template将修改好的图像导入,此时,Normal Image已经替换完毕,但像悬崖这类的地形的Extra Image还需要你重新插入来替换掉原版的Extra Image。注意:如果你的Extra Image有白边或者透明这些不需要的部分,你还需要用PS使用色盘的0号色(ubn文件为深蓝色)替换掉,不然游戏里会显示为白色。你可以随便找一个Normal Image鼠标右键,打开Edit Normal Image里的图像编辑器,颜色列表左上角第一个颜色就是你需要的颜色。这个0号色相当于透明的效果。

Export Template,Import Template是地形制作的灵魂所在,这里提供一个批量制作技巧:

你可以先用PS画一张图(你不会真的手绘一张完整地形的图吧?聪明的人都先找素材,然后尽可能大的截图,例如戴子玲大佬对RA3地形的复刻)。再用图片批量截取或者图片平均分切功能将图片划分为该地形需求的大小,最后再用Import template功能一导入,一张完美拼接的图就出来了。如果你要做几张可以拼接的地形,你得稍微用一下数学知识了。

地形制作完成后,在菜单栏File(文件)找到Save(保存,快捷键Ctrl+S)或Save As...(另存为...),将文件保存好。最后把文件用XCC拖进原来的iso***md.mix文件里(否则地编无法读取)。此时就可以打开地编和游戏查看替换地形后的效果了。

三、地形的扩充与注册

以NEWURBAN(新城市)地形为例,用记事本打开urbannmd.ini。首先注册一个地表,就仿照原版的地形注册新地形。

[TileSetXXXX]                地形注册代号,XXXX是数字,必须跟之前是相连的,否则游戏和地编无法读取

SetName = Alien-Shooter-Wall 对应地编里的名字,随意写

FileName = aswa              地形文件名,使用英文字母,与地形文件命名有关

TilesInSet = 30              这个地形选项卡包含的地形数量,与地形文件命名有关

ToSnowTheater = 37           不用改

LowRadarColor = 128,128,192  地编小地图的颜色,可以无视

HighRadarColor = 192,192,255 地编小地图的颜色,可以无视

MarbleMadness=65             不用改

AllowBurrowing=false         不用改

RequiredForRMG = true        不用改

注册好后,将你在第二章学习并制作好的地形文件保存为特定的文件格式。

基础知识里讲到地形文件的格式为****XX.tem(温带)、****XX.sno(雪地)、****XX.urb(城市)、****XX.ubn(新城市)、****XX.lun(月球)、****XX.des(沙漠)

****是英文字母,写的是FileName =****的内容。XX是数字,从01命名到TilesInSet = XX里的数字,XX原则上不大于99。****XX总位数不可超过8位,否则游戏可能弹框。

  • 地形命名方式又可细分为2种:

  • 实例教学:做一个孤胆枪手墙壁

  • 第一步,注册孤胆枪手墙壁。 在urbannmd.ini里注册一个新地形。[TileSet0122];0112是地形注册代号,必须跟之前是相连的,这里接着原版的[TileSet011]后面写SetName = Alien-Shooter-Wall;对应地编里的名字,取名为孤胆枪手墙壁英文FileName = aswa ;地形文件名,使用英文字母,随意写,但建议系统命名:as表示孤胆枪手,w表示墙,a表示第一种墙TilesInSet = 45 ;这个地形选项卡包含的地形数量,一套完整的悬崖差不多需要做30-50种地形。ToSnowTheater = 37;不用改LowRadarColor = 128,128,192;地编小地图的颜色,可以无视HighRadarColor = 192,192,255;地编小地图的颜色,可以无视MarbleMadness=65;不用改AllowBurrowing=false;不用改RequiredForRMG = true;不用改

  • 第二步,制作地形文件。我们先做第一个地形文件aswa01.ubn。 孤胆枪手墙壁的本质是悬崖,悬崖地形有Normal Image和Extra Image两种图像,制作难度适中。熟练者可在十分钟内完成一个文件,初学者可能需要半小时以上。 首先我们需要在孤胆枪手游戏里寻找墙壁素材,万能方法是进入孤胆枪手游戏,然后对游戏截屏,用PS的多边形套索、魔棒、仿制图章工具将需要的素材抠出来,然后用将其改成红警对应的角度。这里我使用的方法是使用孤胆枪手地图编辑器提取单个墙壁,将背景改为黑色,然后用PS魔棒工具提取墙壁图像后改为红警相应的角度和大小,因为我需要的素材较多,我一般会把多个素材放在一张图里批量将素材修改为红警相应的角度和大小,比对物是红警的1x1水面和孤胆枪手的1x1地砖,找一个参照物作比对是很有用的。当然像帝国时代2这种与红警相机角度一致的素材就没有必要这么做。 用XCC提取一个YURI的高地悬崖.ubn文件,用TMP打开文件,用Export Template将地形的整个图像导出,用PS打开这个图像,将做好的素材以另一个图层粘进去,通过比对修改做出TMP里能使用的图像。用Import Template将做好的图片导入,然后右键点击分解部分的区域,导入Extra Image图像,这时可能需要裁剪,需要填的裁剪参数从左到右依次为:图像左上角起始X坐标(一般写0,30,60),图像左上角起始Y坐标(一般写0,15,30,45),图像宽度(一般为30),图像高度(一般为75)。裁剪后在图像预览里检查拼接问题和白图问题,有问题还需要重新导入裁剪或用0号色修图。 然后将做好的地形文件保存为aswa01.ubn,同理做其他地形文件,一直做到aswa45.ubn。 第三步,测试。进入地编,正常地编地形列表里应该有Alien Shooter Wall这个选项,里面应该有45种地形。如果不显示新地形选项,先保证你建的地图类型是NEWURBAN,然后检查ini文件里地形的注册无误并确保放在游戏根目录,还要检查地形文件格式是否为.ubn、命名是否正确,并且确保将他们打包在优先级较高的mix里。 在地图里把一圈墙壁画出来,检查拼接和显示问题,有问题还要用PS重新修正和用TMP重制。

  • 地形对象的本质是shp,制作方法与shp素材一样,区别在于要使用对应地形的色盘,文件格式不是.shp而是相应地形后缀名。 需要使用SB软件,用该地形的色盘制作一个shp, 原图1帧 ,影子1帧,做好后保存为相应地形后缀名【.tem(温带)、.sno(雪地)、.urb(城市)、.ubn(新城市)、.lun(月球)、.des(沙漠)】

  • 实例教学:做一个孤胆枪手电脑桌

  • 第一步,注册孤胆枪手电脑桌和填写孤胆枪手电脑桌的Rules在Rulesmd.ini文件里的[TerrainTypes]注册孤胆枪手电脑桌,并新建一个[ASTABLE01]项目填写孤胆枪手电脑桌的Rules [TerrainTypes];注册孤胆枪手电脑桌...XX=ASTABLE01 [ASTABLE01];填写孤胆枪手电脑桌的RulesName=Ailen Shooter Table 01;随便写,无实际意义IsFlammable=noRadarColor=255,255,255TemperateOccupationBits=4SnowOccupationBits=7Imunue=yes;根据需要写,加了这句该地形对象就是无敌不可破坏的 在Artmd.ini文件里填写孤胆枪手电脑桌的Art[ASTABLE01]Theater=yesFoundation=1x1;电脑桌的长X宽

  • 第二步,制作地形对象文件 使用SB软件,用该地形的色盘isoubn.pal制作一个shp,原图1帧,影子1帧,做好后保存。要在NEWURBAN地形里用,就命名为astable01.ubn,然后打包进mix。

  • 第三步,进入地编测试,正常地编地形对象列表里应该有ASTABLE01这个选项,你可以把它安置在地图上。如果不显示ASTABLE01选项,先保证你建的地图类型是NEWURBAN,然后检查ini文件里地形对象是否注册无误并确保放在游戏根目录,还要检查地形文件格式是否为.ubn、命名是否正确,并且确保将他们打包在优先级较高的mix里。

  • 第四步,检查地形对象的位置和高度。SB提供的RA2Grids网格是做建筑素材用的,按照SB提供的RA2Grids网格做出来的地形对象,其高度在地编里显示为实际高度,但在游戏里实际显示是要低3个像素左右的,你在做shp的时候要把整个图像抬高3个左右像素,然后再保存。此时,地编里显示会高出来,但在游戏里显示是正确的。   

  • 原版地形里的瀑布地形是动态的,而且还有水声。这就涉及到地形动画的制作,是一种高级技巧。 地形动画的本质是shp动画,制作方法与shp动画一样,区别在于要使用对应地形的色盘,文件格式不是.shp而是相应地形后缀名。 需要使用SB软件,用该地形的色盘制作一个shp,原图1帧 ,影子1帧,做好后保存为相应地形后缀名【.tem(温带)、.sno(雪地)、.urb(城市)、.ubn(新城市)、.lun(月球)、.des(沙漠)】

  • 实例教学:制作一个孤胆枪手墙壁上的动态灯光

  • 第一步,注册孤胆枪手动态灯光我们还是要在urbannmd.ini里注册的孤胆枪手墙壁。[TileSet0122]SetName = Alien-Shooter-WallFileName = aswaTilesInSet = 45ToSnowTheater = 37LowRadarColor = 128,128,192HighRadarColor = 192,192,255MarbleMadness=65AllowBurrowing=falseRequiredForRMG = true

  • 这里的SetName是关键,我们再用SetName里的“Alien-Shooter-Wall”在urbannmd.ini里注册一个动态灯光动画项,TilesInSet决定了墙壁地形的个数,假设我们要给第1个墙壁地形配上动画,则这么写:

  • [Alien-Shooter-Wall]Tile01Anim=aslight;动画的文件名Tile01XOffset=0;动画的X坐标Tile01YOffset=0;动画的Y坐标Tile01AttachesTo=0Tile01ZAdjust=-10;动画的Z坐标,Z坐标代表动画层的遮盖位置

  • 此时,urbannmd.ini里已经注册完毕,再在Rulesmd.ini里注册墙壁灯光动画: [Animations]...X=aslight

  • 最后在在Art.ini里写入aslight的Art:[aslight]Theater=yesNormalized=yesLoopstart=0;开始帧LoopEnd=1;结束帧LoopCount=-1;循环次数,-1表示无限循环Rate=320;播放速度Flat=yesLayer=   ;DetailLevel=2DemandLoad=trueShouldUseCellDrawer=trueStartSound=lightsound;可以定义地形周围的环境声音如果你要在一个地表选项卡里面加入多个地形动画,你可以将Tile01改为Tile02,Tile03,Tile04然后接着写参数,如果动画位置相同就无需再改参数了。

  • 第二步,制作地形动画文件。 使用SB软件,用该地形的色盘isoubn.pal制作一个动态灯光的动画,做好后保存为aslight.ubn,然后打包进mix。 这里说一个高级技巧:想让地形只带环境声音,不需要动画的话可以把动画改成1帧1像素的,尤其是这个像素你使用了和地形一样的颜色后在游戏里几乎看不见动画,典型的障眼法。

  • 第三步,进入游戏测试,正常游戏里第一个aswa01地形就应该带有动画了,如果你添加了声音还能听见声音。 如果不显示动画,先保证你建的地图类型是NEWURBAN,然后检查ini文件里地形对象是否注册无误并确保放在游戏根目录,还要检查地形文件格式是否为.ubn、命名是否正确,并且确保将他们打包在优先级较高的mix里。 如果听不到声音,那就要检查sound.ini文件里是否注册了lightsound且无误,并确保sound.ini放在游戏根目录,然后检查声音文件格式是否为.wav、命名是否正确、频率是否为22050Hz,并且确保将声音文件打包在优先级较高的mix里。