《闪电战1》单位编辑教程-小欧欧 - 图文 下载本文

闪电战1 单位编辑教程

作者:小欧欧

1

目 录

序章:单位相关文件的种类说明介绍…………….……………..4 第一章:单位属性文件修改初步教程

第一节:坦克及装甲车属性文件详解…………….…………..9 第二节:火炮及卡车、火车属性文件详解…………….……14 第三节:飞机属性文件详解………………………….……....17 第四节:步兵及步兵班属性文件详解…………….……...….18 第五节:建筑属性文件详解………………………………….22 第六节:1.xml文件修改示范……………………...…………25 第二章:单位属性文件修改进阶教程

第一节:武器文件的详解…………………………….……….31 第二节:效果文件的详解…………………………………..…36 第三节:单位指令详解………………………………………..39 第四节:单位设定及武器设定的匹配及技巧………………..42 第三章:新单位的导入

第一节:新单位导入原版的方法……………………………..50 第二节:新单位导入Mod的方法……………………………54 第四章:系统文件consts.xml的解析…………………………..56

2

前 言

《闪电战1》是一款扩展性很好的即时战略游戏,各种新单位和新建筑可以非常容易的导入游戏,而且单位的制作也不难,因此《闪电战1》的组模非常的丰富。

本人修改的第一款游戏就是《闪电战1》,当时还没有上网,完全是自己摸索。经过不断的尝试,终于找到了修改单位属性的方法。而这一步往往是修改党的第一步。接触闪电战论坛后,经过前辈们的不断指导,终于学会了使用Maya建模。这个软件曾经让我疯狂的去尝试建模,有时甚至在梦中都会想着如何去制作新单位。闪电战的单位建模是一个比较复杂的过程,每一步都不难,但是都需要教程来指导。非常遗憾的是,当年的老论坛关闭后,所留下来的教程不多,而且凌乱。

本人作为新论坛的技术专区版主,有义务将这些零碎的教程整合重写。重新编写成一部完整的教程。

虽然《闪电战1》这款游戏已经渐渐老去,但是还有不少热心的老玩家在关注,这部教程就是献给所有热爱这款游戏玩家的礼物!

小欧欧 2014年2月

3

序章:单位相关文件的种类说明介绍

《闪电战1》的单位相关文件分为几种:一个是单位属性文件“1.xml”,另一个是单位模型文件“1.mod”,还有单位皮肤文件“.dds”。每个单位都有完整的一套文件。我们以原版为例,说明这些文件的路径。

我们打开Blitzkrieg\\Run\\data文件夹。可以看到很多pak文件,这些文件都可以用WinRAR打开。

我们打开“data.pak”,可以看到里面有很多文件夹。单位文件就放在“Units”文件夹里。

4

打开“Units”文件夹,可以看到有两个文件夹“Humans”和“Technics”,前者是步兵的相关文件夹,后者是技术单位如:坦克、火炮、补给车的相关文件夹。

我们打开“Technics”文件夹,可以看见有4个文件夹,这是不同阵营的单位文件夹。

5

继续打开“German”文件夹,可以看到不同武器的分类。如下图:

图中的文件夹从上到下的顺序是:火炮、补给单位、飞机、自行火炮、坦克、火车

打开“Tanks”文件夹,就可以看到每个单位的文件夹了。

6

我们继续打开“Pz_II_Ausf_F”文件夹,即II号F型坦克。

我们可以看到这个单位的相关文件基本都在这里了。再次说明一下各个文件: “1.mod”:单位模型文件,“1.xml”:单位属性文件,“desc.txt”单位文字介绍文件,“icon.tga”该单位在地图编辑器里的图标,“name.txt”单位在游戏里显示的名称。

但是这里并没有单位的皮肤文件。那么皮肤文件在哪里呢? 皮肤文件就放在“textures.pak”文件的同名文件夹里。

7

我们按刚才的路径打开“textures.pak”文件,可以看到所有皮肤文件都在这里了。 如下图:

这里说明一下这些文件的具体用途: “1_”开头的,是夏季皮肤。“1w_”开头的是冬季皮肤(还有以“1a_”开头的是沙漠皮肤,II号坦克没有。)

“2_”开头的,是夏季死亡皮肤,同理“2w_” 开头的是冬季死亡皮肤(即被击毁时的皮肤贴图)

“icon_”开头的,是单位在游戏里的微缩图标

“icon512_”开头的,是单位在游戏单位说明里的大图 以“c”结尾的是压缩纹理贴图,“h”结尾的是高纹理贴图,“l”结尾的是低纹理贴图。 当缺少相应的贴图时,在游戏里就会显示成马赛克。

所有的贴图都是DDS文件,可以通过图片编辑软件来编辑。

序章到此结束。

8

第一章:单位属性文件修改详解

第一节:坦克及装甲车属性文件修改详解

我们以虎式坦克为例,打开data.pak文件,将虎式坦克的属性文件解压出来,如图:

“1.xml”文件可以用浏览器打开,但是不能编辑。编辑需要用记事本打开。

9

我们先用浏览器打开“1.xml”文件,双击该文件即可(默认用浏览器打开)

我们看到很多代码,下面我就来一一解释这些代码的含义。

这段是没有意义的,我们可以忽略掉。 继续往下看:

MaxHP=”200” ———— 耐久度200,即生命值,越高,单位就越耐打

RepairCost=”1” ———— 修复每点耐久度耗费的资源,数值越高,耗费的资源就越多 Sight=”35” ———— 视野35,数值越大,视野越大。原版数值一般为30-35

SightPower=”1” ———— 这个数值是侦查能力。1即为无法发现战壕的步兵。0则为可以发现战壕步兵。0.1-0.9则是在不同的视野范围内能发现战壕的步兵。 Speed=”13.87” —— 单位的移动动速度,越大越快

Passability=”0.49” —— 单位的越野能力,1为忽略地形影响。数值越小,受地形影响越大 Camouflage=”0” —— 单位的隐蔽能力,数值对应视野,0即为没有隐藏能力。在游戏里,如果单位隐藏时(不开火暴露的前提下),其被发现的距离=对付视野-隐蔽能力

Weight=”57000” —— 单位的重量,对坦克和车辆没有意义,对牵引火炮才有意义。

UninstallRotate=”0” —— 单位的重新部署时间,这个数值对于坦克和自行火炮来说,数值为0时,即没有重新部署时间,该单位从停止到移动或从移动到停止时,没有停顿,炮塔可以转动,副武器可以射击。

UninstallTransport=”0” —— 单位从卡车上卸载的时间,对坦克和车辆没有意义,建议保持0的数值。

(注意:如果是自行防空炮,建议UninstallRotate和UninstallTransport的数值在0.1到1之间,如果都是0的话,自行防空炮在发现飞机后会不受控制的乱跑) RotateSpeed=”40” —— 车体旋转速度,数值越大,旋转速度越快。 TurnRadius=”5” —— 盘旋半径,飞机才有用。

TowingForce=”0” —— 可以理解为拖拽能力,卡车才有用。数值对应单位的重量。 Crew=”5” —— 乘员数量5,这个貌似没有多大意义。

Passangers=”0” —— 部分坦克有搭载步兵的能力,这个数值就是搭载步兵的数量。 TowPoint=”-1” —— 卡车的拖拽点代码,-1即没有。这个对坦克没有意义。

10

EntrancePonit=”-1” —— 步兵上下车点代码,有搭载步兵能力的单位才有意义。

TrackLifetime=”10000” —— 履带轨迹的时间,数值越大,履带痕迹保留的时间越长。 Pz_VI_Tiger_Ausf_A_H —— 单位的名称,其实没有多大意义。 以上省略的部分对坦克和装甲车没有意义,部分代码解析会在后面提到。

这段对单位没有意义,对建筑才有意义,后面介绍建筑代码才会说到。

这个是单位的指令代码,会在后面专题讲解。

到这一大段都是单位的动画代码,没有必要修改。

这是单位的声音文件类型。

重头戏来了,这段代码非常关键。这是单位的车体及炮塔设置代码。 第一段是车体代码,第二段是炮塔代码。(如果有几个炮塔,会还多几段)

VerticalRotateSpeed= 这个是垂直选择速度,数值越大速度越慢。一般车体为0。炮塔上的数值其实是炮架的垂直运动速度。因为虎式坦克的炮架没有俯仰运动,所以其值也是0。

11

HorizontalRotateSpeed= 这个是水平旋转速度,一般车体默认为10或60,没有意义。对第二段的炮塔才有意义,同理数值越大,旋转速度越慢。

ModelPart= 这个是车体或炮塔模型代码,不同的单位不同,不需要修改。

GunCarriageParts= 这个是炮架代码,一般为 -249 到 -253 如果没有运动炮架,其值就为-1,也不需要改动。

FirstGun= 这个数值很关键,其含义是之前部件的武器数量。以老虎为例,其车体为第一段,之前没有部件和武器,其值就为0;第二段炮塔,因为前面有一挺车体机枪,所以其值为1.

NumGuns= 这个数值也很关键,其含义是该部件的武器数量。同样以老虎为例,其车体有一挺机枪,所以数值为1,炮塔有主炮及并列机枪,所以该数值为2.

FirstGun和NumGuns的关系其实很明确。FirstGun的数值就是前面部件的NumGuns的总和。

Constraint Min= Max= 该部件水平旋转的范围,单位是弧度,正负值是左右旋转

ConstraintVertical Min= Max= 该部件垂直旋转的范围,单位也是弧度(对于炮塔来说,这其实是炮架的垂直旋转范围),正值是向上偏转。

这段就是武器列表。对应前面的车体及炮塔设置代码里的FirstGun和NumGuns,我们可以看到一共有3段,分别代表三个武器,按顺序对应的是:车体机枪、主炮、并列机枪。 因为第一个部件:车体的NumGuns=”1” 所以,第一个武器为车体机枪。

同理第二个部件:炮塔的FirstGun=”1”所以忽略第一个武器代码,直接到第二个武器代码。

现在解析这段代码:

Priority= 主副武器代码,0为主武器,1为副武器。注意:只有副武器可以在移动时开火。 Ammo= 弹药数量

Direction= 武器初始位置射击朝向,65535为正前方。32767为正后方,其他数值就是侧面不同角度。

ReloadCost= 武器的弹药补给消耗量,数值越大,每发弹药消耗的补给就越多,数值超过补给上限,该武器就无法再补给弹药,一般原版单位改数值都不会超出,某些Mod的特殊武器为了不让玩家再补充弹药会设置得很大。

ShootPoint= 射击点代码,没有必要改,这个和拖拽点,上下车点一样,是在建模时设置好,导出1.xml属性文件时自动生成的。

Recoil= 射击时,炮管是否后座移动代码,0为不移动,1为后座移动。(前提是建模时有设置炮管后座)

RecoilLength= 炮管后座距离,数值越大,后座移动越多。其值也是建模时设置好的,一般不用改。

ModelPart= 该射击点的连接部件代码,-1即没有设置(其实是原作者懒!),图中第二个武器

12

即主炮的代码为4,这些数值均不用改动! XXX 即武器代码,其对应的是同名武器文件。如果没有对应的武器文件,在游戏里单位的武器穿甲值及伤害值均为1。(其实就是不会开火!)

Armor开头的6行就是装甲数值代码。Min Max对应最小和最大值。游戏里显示的是这两个值的平均值。6行代码从上到下分别是:左侧、右侧、顶部、底部、正面、背面。

当武器的穿甲值超过装甲值的最小值时,就有机会造成有效伤害。当穿甲值超过平均值时,就有较可靠的几率击穿装甲造成伤害。但只要武器的穿甲值小于最大值,坦克就会主动绕到侧面或背面装甲薄弱的地方。(如果都不能,就不会绕行)。如果武器穿甲值低于装甲最小值,那么就不会开火浪费弹药。

AABB那两行代码是该单位的3D模型中心值及x,y轴半径值。一般不用修改。

(那个AABBHalSize的数值大小影响到单位包埋时的沙包大小和包埋所用时间,数值越大,沙包越大,同理,需要的时间就越多,这个值如果太大,单位就无法过桥)

ExhaustPoints是车辆尾气冒烟点,DamagePoints是单位被击毁时的着火点,都不必改动,都是建模时设置的。

单位的相关效果代码,对应的是各个效果文件。

前两个是被击毁后冒烟着火的效果,第三个是移动时的烟尘效果,第四个是主武器开火时的烟尘效果(远程火炮和大口径自行火炮才有,当然也可以给坦克添加)第五个是单位毁灭时的爆炸效果,第六个不明,第七个是残骸消失时的效果。

13

这段代码前三行可能是履带痕迹的属性代码(宽度,间隔等),貌似是建模时自动生成的。 后三行是单位移动时的声音代码,对应同名的声音文件。

其中第一行是启动声音,第二行是移动时声音,第三行是停止时的声音(即熄火声音)。

这段是单位被消灭后,在地面上留下的痕迹效果代码,对应的就是同路径的效果文件。

好了,坦克和装甲车的所有相关代码就介绍完毕了。

第二节:火炮及卡车、火车属性文件详解

我们先来看火炮的相关代码说明。和坦克相同的部分就不重复讲了,我们讲一些修改时常改动的数值。

以德军的LeFH18 105mm榴弹炮为例,我们从data.pak文件里解压出该单位的属性文件,如图

14

我们可以看到Camouflage即隐藏值为0,如果是反坦克炮,这个值是20左右。

Weight=”3330”这个值是火炮的重量,如果牵引车的TowingForce值小于火炮的重量值,就无法牵引这门火炮。

UninstallRotate 是火炮重新部署时间,即火炮旋转时,抬起炮架的时间。 UninstallTransport 是火炮展开/收起大架,即和牵引车连接或卸载的时间

这两个时间越短,火炮的部署就越快,机动性就越好,在远程火炮对射并机动时很重要。 (就是军事上所谓的火炮放列射击)

TowPoint是火炮的拖拽点代码,建模时设定好的,不必改动。

这是火炮的指令代码,后面的章节会详细讲解。

火炮的武器比较简单,就一门炮,如下图。

第一段:火炮大架(对应的是坦克的车体),没有武器,NumGun=”0”

第二段:炮塔(火炮其实没有炮塔,但是建模时,还是会弄一个部件,命名为炮塔,作为水

15

平旋转的轴心),炮塔上只有一门炮。

炮塔的旋转范围和炮架的俯仰范围明显和坦克不一样。

我们可以看到,第二段的“炮塔”代码里有炮架的的代码: GunCarriage=”-254” 再复习一次:

Constraint Min= Max= 该部件水平旋转的范围,单位是弧度,正负值是左右旋转

ConstraintVertical Min= Max= 该部件垂直旋转的范围,单位也是弧度(对于炮塔来说,这其实是炮架的垂直旋转范围),正值是向上偏转。

下面的代码是火炮独有的

PeoplePoints 对应的三个值是炮手代码(有个5炮手补丁,这里就是5个值) TowPoint2D 火炮牵引点的坐标(对应牵引点代码,这些值都是建模时设定的) PeoplePonits2D 炮手点的坐标,原理同上 AmmoPoint2D 弹药箱的坐标,原理同上

Gunners 那一大段是炮手在不同状态时的坐标。第一个是火炮展开部署时的状态,可以看到,其数值和PeoplePonits2D的是一样的。

第二段是火炮抬起炮架,重新部署时的状态,第三段不明。如果有必要,可以改成和第一段一样的数值。

好了,火炮部分就介绍完了。

接下来是卡车,我们以德军的欧宝卡车为例:

前面介绍过的代码不再重复,这里再次提一下:

卡车的拖拽能力“TowingForce”只有超过火炮的重量时,才能拖拽该火炮。

另外可以调整载员数量来提高卡车装载步兵的数量,即提高“Passangers”的数值。 (我的Mod一般为23-33,这样既可以载2-3队步兵,又可以支持火炮的3个炮手)

最后我们来看一下火车的属性文件里有什么特殊的地方,以普通的火车头为例:

16

TowPoint2D 是拖拽点坐标,即火车的后连接点。 HookPoint 是火车的前连接点坐标 FrontWheel 即火车的前轮坐标

BackWheel 为火车的后轮坐标,这两个点是火车与铁轨的连接点。 EntrancePoint2D 是步兵上下车点坐标。

好了,本节到此结束。

第三节:飞机属性文件详解

飞机的属性文件其实和坦克差不多,这里单独出来做一节是为了让大家更方便查找教程。 战斗机以德国的Fw190战斗机为例。

一般战斗机的视野都为0,为的是避免玩家把战斗机当侦察机用。 对于飞机来说,下面几个代码非常重要。

Speed=”75.81” 速度指标非常重要,对于战斗机来说,速度快就能占据空战主动。

TurnRadius=”17” 转弯半径,也是非常重要的指标,决定战斗机的水平机动能力,半径越小越灵活。

MaxHeight=”2000” 这个其实是初始飞行高度。飞行高度越高,速度越快,就越不容易被防空炮击落。

DivngAngle=”35” ClinbAngle=”35” 这个是俯冲/爬升角度,数值越大,战斗机的垂直机动性就越强!

TiltAngle=”28” 这个是水平盘旋倾斜角,其实没有意义。

我们再来看Ju87D俯冲轰炸机的属性:

这里值得关注的是两个代码:

MaxHeight=”1000” 和 DivingAngle=”60” 这两个值再配合Ju87D的指令代码,就可以让这款飞机在作为轰炸机用途时可以俯冲轰炸。大家请记住这两个数值。

我们继续往下看。下面左图是Ju87D的属性文件,右图是He111H的属性文件

17

我们可以看到,He111H少了一个被摧毁的效果代码,所以其在被击落时,不会凌空爆炸! 这个是闪电战1所有大型飞机的特点,在某些情况下会导致游戏跳出,所以,玩家有必要为大型飞机加上这个被摧毁时的效果代码,即让大型飞机被击落时,可以凌空爆炸。

好了,飞机的属性文件介绍到此结束。

第四节:步兵及步兵班属性文件详解

这一节我们来介绍步兵属性文件,打开data.pak文件,按Units\\Humans\\German\\Mauser路径打开德国98K步兵的文件夹,如图:

属性文件同样命名为“1.xml”,这里顺便介绍一下其他文件:1.san/1a.san/1w.san分别是夏季、沙漠、冬季的不开血腥效果模型;另外三个:1b.san/1ba.san/1bw.san分别是三个季节的开血腥效果模型。(那个“b”其实就是Blood的代码) 我们解压1.xml文件并打开,如下图:

18

我们可以看到,步兵的代码相对简短一些,大部分也和坦克等单位相同。区别就是步兵的隐蔽值比较大,如图中的Camouflage=”40”,明显比坦克或卡车要大。

Armor=”0” 这个是步兵的护甲值,步兵没有前侧后装甲之分,只有一个护甲值。 WalkSpeed=”5.5” 这个是站立时的移动速度(于Speed有何区别我至今不明) CrawlSpeed=”2.2” 这个是匍伏前进时的移动速度

继续往下看,把属性文件拉到最底部,如图:

和坦克一样,这段是步兵的声音文件代码,与同名声音文件关联。 步兵和坦克不同,没有各个部件的代码属性,因为步兵本身就只有一个部件。所以,直接到了武器代码。

步兵的武器代码和坦克的武器代码一样,而且更加简单,如果要添加武器,按照格式添加即可。我们再复习一次:

Priority= 主副武器代码,0为主武器,1为副武器。当没有主武器,全部是副武器时,游戏里显示的是第一个武器的属性(即穿透力和伤害值) Ammo= 武器的弹药数量

Direction= 武器的初始指向(步兵都为0) ReloadCost= 武器每发弹药的补给消耗量

XXX 武器的代码,对应同名武器属性文件。

步兵在游戏里都是以一个步兵班的形式出现,那么步兵班的属性文件在哪里呢?

我们还是打开data.pak文件,那个Squads文件夹就是步兵班的属性文件夹。如下图:

19

打开Squads文件夹,我们可以看到很多子文件夹,每个子文件夹都对应一个类型的步兵班。 如下图:

20

我们以德军的1941年步兵班为例,打开其1.xml文件:

我们可以看到属性文件和之前的单位文件完全不同。

一般来说,每个普通的步兵班有10个人,我们可以看到下面有10个代码,分别对应一个步兵的类型。图中的德军1941年步兵班里,有4个毛瑟步枪兵,3个Mp40冲锋枪兵,一个MG34机枪兵,一个Pzb39反坦克步枪兵,以及一个军官。

下面的就是不同的阵型时,步兵班的速度加成,开火速度加成及每个步兵的位置代码。我们一般不需要改动。

好了,步兵的属性文件介绍到此结束。

21

第五节:建筑属性文件详解

打开data.pak文件的Buildings文件夹,如下图

我们可以看到4个文件夹,如下图

这4个文件夹分别是:沙漠/通用/欧洲/俄罗斯 的建筑分类。

我们以永久工事为例,按Buildings\\common\\summer\\dot路径打开,如图

22

01 – 04 分别代表4个不同朝向的类型。我们以01为例:

打开1.xml文件:

耐久度和维修消耗的代码和普通单位一样。

Defence0 – Defence3 是建筑的正、侧、背、四面装甲值,同样有最小和最大值,其效果与普通单位的装甲最小最大值相同。 后面那个Silhouette= 很有意思,是被命中的几率。我们可以看见,堡垒的四面被命中率是0.3,即30%,这是很有用的设置。顺便说明一下,Defence0 – Denfence3 只受到直射武器的伤害。 Denfence4 是建筑的顶装甲值,只受曲射武器伤害,Denfence5 是低部装甲值,没有意义。 继续往下看:

23

这长长的一段代码是建筑的武器文件代码。

,每小段都是一个武器代码。 以下面这段代码为例:

Angle= 应该是射击朝向

SightMultiplier=”1” 是视野距离,1即为进驻单位视野的100%,如果改成1.2,即120%的视野。

Coverage=”0.1” 是进驻单位被命中的几率,0.1即10% Ammo= 弹药数量

GunPriority= 主副武器的代码,0为主武器,1为副武器 Position x=”….” y=”….” 应该是武器射击点位置

…. 是武器类型代码,同样对应同名武器文件。 继续往下看:

24

这一段是建筑燃烧的效果代码。

和之前的武器代码一样,Direction和VerticalAngle是燃烧效果的朝向,Position是燃烧的位置 是燃烧效果,对应同名的效果文件。

这个是建筑的冒烟效果,同样对于同名效果文件。

这是建筑被完全摧毁时的效果,对应同名效果文件。

建筑属性文件介绍到此结束。

25

第六节:1.xml文件修改示范

我们之前提到过,用浏览器只能打开1.xml属性文件,却不能编辑。编辑1.xml文件要使用Windows自带的记事本。我们还是以德国的虎式坦克为例演示。

解压出1.xml文件后,右键点击该文件,把鼠标移动到打开方式上,就会弹出相应的软件,选择记事本。(如果没有记事本,点击下面那个“选择程序”,找到即可)

我们可以看到用记事本打开的1.xml文件是没有经过排版的。如下图

26

我们为了方便编辑,要重新排一下版,排版的技巧就是在要换行的代码后面加上回车键。 注意:不能在代码中间加回车键,要在两个代码之间添加,或者在前后两个括号之间添加。否则会出错!

按照下图的方式重新排版,可能比较麻烦,需要几分钟。

然后就可以很清晰的看代码了,对应前面的解说,修改数值即可。修改完毕后保存退出。

修改完毕后,打开游戏的data文件夹,新建一个“Units”文件夹,如图:

27

然后按照Units\\Technics\\German\\Tanks \\Pz_VI_Tiger_Ausf_A_H路径新建文件夹,把修改好的1.xml文件放到Pz_VI_Tiger_Ausf_A_H文件夹里面即可。如图:

(注意:这个新建文件夹的路径即你打开data,pak文件解压单位属性文件的路径)

然后运行游戏,就可以看到修改的效果了。

下面我们再演示步兵的属性文件修改。 用记事本打开步兵的1.xml文件

然后重新排版并按你的想法修改好,保存。

28

然后打开我们刚才在游戏目录的data文件夹里新建的Units文件夹,新建一个Humans文件夹

然后按照在data.pak文件解压时的路径Units\\Humans\\German\\Mauser新建文件夹,并把修改好的1.xml文件放到Mauser文件夹里即可。如图:

虽然只要把修改好的文件按路径放好即可在游戏里运行,但是如过你想建立自己的pak文件也可以。

29

我们复制updata-1.pak文件。如下图

重命名为“My-file.pak”(命名为什么都可以,方便你记忆即可)

用WinRAR打开“My-file.pak”,把刚才我们新建并按路径放好了修改好的1.xml文件的“Units”文件夹拖到用WinRAR打开“My-file.pak”的里面

30

然后再删掉原来的四个文件夹,如图:

好了删除完毕,属于你自己的pak文件就做好了。

第一章到此结束!

第二章:单位属性文件修改进阶教程

第一节:武器文件的详解及修改示范

用WinRAR打开data.pak文件,找到Weapons文件夹,所有武器文件都在这里,如下图。

31

打开Weapons文件夹,我们看到很多武器文件,格式为xml。同样可以用浏览器打开,用记事本编辑,和单位的属性文件是一样的。

我们先看看苏军的100mm反坦克炮:100_mm_bs_3.xml,如下图:

32

Disperson=”1.6” 散布值,数值越大散布越大,精度也就越低。对于单发直射武器来说,这个值越小越好。

AimingTime=”0.9” 瞄准时间,武器更新目标时的瞄准时间,单位是秒。 AmmoPerBurst=”1” 每次射击的弹药,1即为单发,超过1就是多连发。

RangeMax=”33” 最大射程。注意,原版默认直射距离最大值是33,如果要更远的直射距离,需要修改consts.xml文件。

RangeMin=”4” 最小射程,注意,如果最小射程过小,飞机有可能会被自己的武器击落。 Ceiling=”0” 最大射高,和飞机的飞行高度相关,如果最大射高小于飞机的飞行高度,高射武器将不会开火和瞄准。

DeltaAngle=”10” 这个是武器的射击范围(也可以理解为射击角度范围),单位是“度”,建议保持10-15.否则武器射击范围会非常窄。这个值配合单位的炮塔旋转范围,就是这个单位的最大射击范围。

RevealRadius=”0” 这个代码就是武器射击时的暴露范围,0就是设计时不会暴露。一般远程炮的这个值和射程一致,也就是说,远程火炮一开火,就会在地图上暴露。(出现那个黄圈圈) 继续看下面一段代码。

TrajectoryType=”0” 这个代码非常重要,是武器类型的代码。0为直射武器,攻击正、侧、背面装甲。1为大角度曲射武器(榴弹炮),攻击顶装甲。2为自由落体武器(航弹),攻击顶装甲。3为小角度曲射武器(加农炮),攻击顶装甲,而且纵向散布较大。4为小角度曲射武器(火箭弹),攻击顶装甲,散布均匀。5为攻击底部装甲的特殊武器(手雷和地雷)。

Piercing=”155” 穿甲能力,对应坦克的装甲厚度值。当穿甲能力超过装甲最小值时,就有机会造成伤害;超过平均值时,就能较为可靠的造成伤害;超过最大值时,单位就不会主动寻找装甲更薄弱的地方。该值越大,武器的穿甲能力就越强。

PiercingRandom=”45” 穿甲能力浮动值,一般只会往下浮动。以这个武器为例,其穿透力最大值为 Piercing=155 ,最小穿透力为 Piercing-PiercingRandom=155-45=110。所以,减小这个值可以另武器的穿透力变得更稳定。本人建议此值取Piercing值的10-20%。

DamagePower=170 伤害值,即武器对单位造成的伤害值,越大武器威力就越大。 DamageRandom=”85” 伤害值浮动值,和PiercingRandom一样,可以让武器造成的伤害在一定范围内浮动,可以向上浮动(增加威力),也可以向下浮动(减小威力),该值越小,造成的伤害就越稳定。(在联机时,这两个浮动值造就了“人品”一说!) Area=”0.97” 对装甲目标的伤害范围,该值越大,杀伤范围越大。

Area2=”3.87” 对步兵等无装甲目标的伤害范围,效果同上,一般为Area的2-4倍。

ProjectileSpeed=”140” 弹药的飞行速度,速度越快,就能越快击中目标。这个对防空武器来说很重要。

DentonationPower=”0” 弹药爆炸时的震动效果,0就是没有,1-9数值越大,屏幕震动越大。个人建议不要超过5。

FireRate=”33.3” 武器一次射击时的射速,对于单发武器没有意义,对于AmmoPerBurst大于2的武器才有意义。对于单发武器来说,再装填速度才是决定射速的参数,我们后面会提到。 RelaxTime=”1.8” 这个就是决定单发武器射速的再装填速度,单位为秒。数值越小,再装填速度就越快。

DamageType=”0” 伤害类型,0为物理伤害,1,2等都烟雾弹专用的代码。一般我们不用去改。 TraceProbability=”0” 曳光弹的出现几率,0就是不出现,1则是100%出现,0.5就是50%几率出现。

TraceSpeedCoeff=”0.2” 曳光弹的速度比率,就是ProjectileSpeed的速度百分比。一般取0.5-0.7。 一段是武器的各种效果,与之对应的是同名效果文件。 第一个是射击时的炮口火焰效果,第二个是弹药在空中飞行的效果,第三个是击中效果,第四个是哑弹的效果,第五个是跳蛋效果,第六个是击中地面效果,第七个是击中地面效果,

33

第八个是空中爆炸效果。

一段是武器击中地面时的弹坑效果。

好了,代码介绍完毕。我们再来看一下其他类型的武器,看看区别并加深影响。 这是德军的105mm高射炮

我们看到其 Dispersion=”3.84” 相对反坦克炮来说比较大,这也是防空炮的特点,避免出现命中率过高的情况。

AimingTime=”0” 所有防空武器的瞄准时间都是零,因为加上瞄准时间的话,就不要指望能击中高速移动的飞机了。(其实就算有瞄准时间,只要不太长,还是可以命中的…)

RangeMax=”80” 对空射击时,可以不受最大直射距离的影响。但是在不改动consts.xml的情况下,其对地最大直射距离还是33。

Ceiling=”11800” 最大射高11800,这个值可以保证击中所有类型的高空轰炸机了。

expair4 对空射击效果,这是防空武器才有的射击效果。前面的100mm反坦克炮是没有这个效果的。

我们再来看看美军的12.7mm重机枪

像机枪这种靠一次射击多发弹药的武器来说,射击散布不能太小,不然就会都打到一个小范围里,无法压制大量的步兵。但是散布太大,又会很难命中目标。所以散布值很关键,建议取2-3。图中是取Dispersion=”2.53”。

AimingTime=”0” 一般重机枪的瞄准时间也是0。

AmmoPerBurst=”5” 一次射击射出5发子弹,数值越大,火力越密集,但是也更浪费弹药。 FireRate=”1000” 射速1000发/分钟,这个射速是一次射击射出AmmoPerBurst数量的弹药的数

34

量,也就是说,这个数值越大,一次开火所需要的时间就越短。对于这款武器来说,一次射击5发子弹,所用的时间是1/200分钟,为0.3秒。

而其再装填时间RelaxTime=”0.1”,即0.1秒,那么这款武器的2次射击间隔时间就是0.3+0.1秒。

所以多发连射武器的射击间隔时间=(AmmoPerBurst/ FireRate)+RelaxTime

如果想给12.7mm重机枪添加曳光弹射击效果,可以把TraceProbability=”0” 改为TraceProbability=”0.3” 即出现曳光弹的几率是30%。因为每次射击5发子弹,所以肯定至少有一发曳光弹。

TraceSpeedCoeff=”0.2” 改为TraceSpeedCoeff=”0.7” 即曳光弹的速度是ProjectileSpeed的70%。

最后我们来看看曲射武器,打开德军的K18 105mm加农炮武器文件10cm_k_18.xml 我们直接看第二段,如下图:

TrajectoryType=”3” 这是小角度曲射武器的代码。

Piercing=”26” 因为是曲射武器,攻击顶部装甲,所以其穿甲值比直射武器低很多。 TraceProbability=”0” 曲射武器没有曳光弹效果。(取而代之的是下面的弹药飞行效果)

shell2\\1,其对于的是同路径下的效果文件,这个弹药飞行效果是直射武器所没有的。

修改武器文件和修改单位的属性文件1.xml一样,用记事本打开,编辑后保存,按照路径放到data文件夹下即可,也可以像前面教程一样,制作pak文件。

好了,本节到此结束。

35

第二节:效果文件的详解

我们之前反复提到了效果文件,现在就来看看这个效果文件到底是什么东西。 打开data.pak文件,效果文件就放在“Effects”文件夹,如下图:

打开“Effects”文件夹,我们看到下面有4个文件夹。

第一个子文件夹“Effects”是单位、武器等文件直接关联的效果文件夹。 第二个子文件夹“Meshes”作用不明,里面是空的。

第三个子文件夹“Particles”是第一个子文件夹“Effects”里的效果文件相关联的贴图文件和相关的下级效果文件。

(可以认为第一个子文件夹“Effects”是总体效果,第三子文件夹“Particles”是部分效果) 第四个子文件夹“Sprites”是弹药飞行效果的模型文件即其属性文件。功能上和第三个子文件夹相似,都是支持第一个子文件夹“Effects”里的效果文件。不同的是“Particles”文件夹是贴图,“Sprites”文件夹是模型+贴图。

用简单的关联路径解释一下:

单位、武器文件的相关效果 —— “Effects”文件夹下的总体效果文件 ——“Particles”和“Sprites”文件夹里的最基础的效果贴图和模型文件。

36

我们打开第一个子文件夹“Effects”,来看看总体效果文件。如下图:

我们可以看到有很多文件夹,其实每个文件和下面的.xml效果文件是平级的,只是路径多了一层而已,继续往下看,以shootgun3.xml文件为例:

这是一个武器的射击效果文件,我们用浏览器打开看看是什么内容,如下图:

37

这个效果文件的代码还是非常简单和易懂的。我们可以看到有2段相似的代码,分别对应2个局部效果,最后还有一个声音文件。我来给大家解释一下各个代码的意义。 start=”25” 效果出现的时间延迟,单位好像是毫秒。

duration=”3500” 纸面意义是效果的时间长度,但是好像修改没有效果。

scale=”0.75” 该局部效果的缩放比率,数值越大,效果的贴图就越大。某些射击效果补丁其实就是增加这个数值。注意,该数值即使调高一点点,也会带来很明显的效果,如0.75改到1。 …… 局部效果的文件路径。(其实就是我们之前提到的第三子文件夹“Particles”) 局部效果的相对位移。这个是几个局部效果组合时,他们相对原点的位移。(所谓的“原点”就是改效果文件的起始点)

Connon_shot3 该效果文件对应的声音文件。

我们再来看看火箭的效果文件(路径:Effects\\Effects\\rocket1),如下图:

我们看到其对应的是 “Sprites” 文件夹下的模型文件。其实修改原理都一样的。 本节到此结束。

38

第三节:单位指令详解

本节详细介绍各个兵种的指令。

一.步兵

截图里左中右的数据分别是步枪兵、军官、狙击手的指令。 右边蓝色选定部分(item data=\是步兵的望远镜能力。(item data=\是步兵的潜行能力。 修改时数据的位置和数值必须按格式套用才有效果。

二.炮兵

截图里左右的数据分别是反坦克炮和远程炮的指令。 左边的(item data=\是火炮移动能力

右边的(item data=\是火炮的远程精确打击能力(即热键X) (item data=\是火炮的远程压制能力(即热键Z)

39

三.补给类卡车

截图里左边的是德军的欧宝卡车的指令,中间是Sdkfz251的指令。

可以看出如果要添加卡车补兵的指令,必须把Commands Size=\改成Commands Size=\同时最下面的item data=\改成item data=\右边的指令是Sdkfz251_spw的指令

可以看到第二行的 item data=\改成item data=\(蓝色选定部分) 效果是添加补给车扫雷能力。

四.救护车

截图里左边的是救护车的指令,右边的是我添加装载步兵的指令。

修改方法同上,要注意的是不要忘记修改下方的Exposures Size=\和item data=\这是装载步兵的通用指令。(坦克也是一样)

这样修改后的救护车静止时是不能为步兵补血的,因此修改后补血时需要救护车一直移动!

当然不要忘了改修改Passangers= 载兵代码。

40

五.工程车

截图里左边的是工程车的指令,右边的是添加拖炮的指令。(取消了挖战壕能力)

当然不要忘了修改TowingForce=(即载重能力)

六.装甲战斗单位A

截图里左边的是德军4号坦克的指令,右边的是德军虎式坦克的指令。 第一行 item data=\是装载步兵能力,

与之配套的是下面的Exposures Size=\和item data=\(和卡车一样)

千万不要漏了,不然的话步兵上了车就下不来了。同样不要忘了修改Passangers=代码(同前) 倒数第二行 item data=\是坦克包埋能力。

41

七.装甲战斗单位B

截图里左边的是德军Sdkfz165自行火炮的指令,右边的是我修改的T80U(21CC-Mod里)坦克的指令。

第二行 item data=\是远程精确打击能力(即热键X)- 和炮兵一样。 第三行 item data=\是远程压制能力(即热键Z)

好了,本节到此结束。

第四节:单位设定及武器设定的匹配及技巧

本节是这个教程的最精华的部分,也是本人多年的修改经验,在此分享给大家。 这里的单位和武器设定都以我的资料片《装甲突击》和“21CC-Mod”为例。

第一,小口径速射武器的设定。

小口径速射武器的特点是靠高射速倾斜的弹雨来杀伤目标的,要求武器有较快的响应速度和持续且灵活的火力特点。

所以,设定单位时,其炮塔转向速度要快,以德军的MG34/42为例,其炮塔旋转速度应该设置为“1”,即最快,如下图。

其对应的武器设定应该是散布适中,较短的瞄准时间,一次射击3-5发子弹,有较快的再装填速度,同时应该有曳光弹效果。如下图:

42

第二,小口径高射炮的设定

小口径高射炮的设定特点除了要求快速响应和灵活外,还有有下面几个特点。 首先最大仰角要接近90度,至少要75度。(这个在国外的Mod里常常不受重视,导致防空炮有非常大的射击死角,有的甚至仰角只有45度,有时根本就打不到飞机!是非常失败的设定!) 其次,武器一次射击的弹药数量不宜过多,因为飞机移动速度很快,往往只有前面一两发炮弹打到,其他的都是脱靶浪费弹药。而且影响下一次射击的时机,极大的影响防空效率。 以德军的Flak36 37mm高射炮为例:下图的炮架仰角为1.5708弧度,即90度。

下面是37mm高射炮武器的设定:

第三,给88mm高射炮添加远程射击功能

历史上德军的88mm高射炮除了用于防空和反坦克,也经常用于火力支援。我们在游戏里也可以通过修改做到。首先给单位增加远程射击的指令:

然后就是关键的武器文件修改了,我们除了要适当的增加射击散布和射程外,还有添加相关的曲射武器代码。最简单的方法是复制一段小角度曲射武器的曲射武器代码,然后按照格式添加到原来的88mm高射炮的武器文件里,然后再修改相应的代码数值(穿透力、伤害值,杀伤范围、射速、再装填时间、对应的效果等等),如下图,选定部分是添加后编辑的部分。

43

这里说一下为什么要使用 TrajectoryTye=”3” 小角度曲射武器的属性来给高射炮添加远程射击能力。因为如果使用TrajectoryTye=”1” 大角度曲射武器的属性,而88mm炮的炮架最大仰角是90度,在游戏里使用远程射击时,炮管就会抬得非常高,甚至可能到90度,导致炮弹大半天都落不下来,而且很容易出错。所以我们使用TrajectoryTye=”3” 这个类型。

第四,给吉普车添加拖炮和补给的能力

历史上美军的吉普车常常用来拖拽37mm反坦克炮和运输弹药,我们也可以通过修改单位的代码来做到。

首先要增加拖炮点TowPoint=”6” (代码参考喷烟点),以及拖拽能力TowingForce=”1500” (因为37mm炮的重量是1200,要设置得稍微高一点 )

然后是添加拖拽火炮和补给的指令代码,这段可以复制有拖炮能力的卡车,如下图:

44

最后还要设置拖炮点的坐标,见下图:

横向坐标为零,纵向坐标-26。(因为是在后面,所以是负值)。之所以取26是参考其模型大小AABBHalfSize 的纵轴值30。略小于纵轴值即可。

第五,有自卫机枪的补给卡车的设置

这种类型的单位应该定义为补给单位,因为定义为战斗单位的话,其装载的步兵是默认在车体之外的,不能收到装甲车的装甲保护。而且不能添加包埋能力。(包埋的话会无法解除包埋装填,导致单位无法移动)所以,单位的指令代码不需要改动。 改动的就是添加炮塔代码及武器代码,如下图:

第六,俯冲轰炸机及航弹的设置

俯冲轰炸机如德国的Ju87D,因为其射击类型的武器只有普通的机枪,穿透力太低,所以不会主动攻击顶装甲值超过20的单位,航弹都浪费在低价值目标上。为了让其能攻击重装甲目标,又不脱离实际,我们可以给其添加一种穿甲值50-100,伤害值为0的武器。(MK-Mod就是这么做的,而且这种武器还使用了俯冲轰炸的尖啸音效,使得战场效果非常好)

然后是航弹。原版的航弹往往投掷过早,难以准确命中目标,无论怎么调整,第一颗航弹永远是过早投掷的。所以我们要把精力放在第二颗航弹上。设置航弹武器文件是,把AmmoPerBurst 的值设置成2,即一次投掷2颗航弹。然后通过调整射速 FireRate 来控制第二颗航弹的投掷时机。(这个往往要做大量的测试) 下面是本人的具体设置。

这个是俯冲轰炸机的设置,那个“WWII-DivebombAiming”就是没有伤害值的武器,见下图:(注意:添加武器后,记得修改FirstGun 和NumGun的值。)

45

然后是“WWII-DivebombAiming”的武器文件,后面那个 Effect-Dive就是对应有俯冲尖啸声的效果文件,如下图:

最后是航弹武器文件,注意AmmoPerBurst和FireRate的值

第七,攻击机及火箭弹的设置

二战的攻击机已经开始使用火箭,我们可以给攻击机添加火箭武器。 火箭的射击点可以使用攻击机机翼上的射击点,每侧备弹4-6发。

机载火箭的武器设定应该是每次只发射一发,再装填时间应该延长到10-30秒,避免一次俯冲攻击浪费过多弹药。

(本人看过国外一个Mod的设置是每侧机翼设置4个发射点,然后备弹只有1发,这样一次俯冲就打完了,非常失败的设置!)

下图是攻击机的武器设置,那个“AMATRocketX1”就是火箭弹。

46

我们再来看“AMATRocketX1”的武器文件设置,那个“smokerocket1-WW2”是新的火箭射击效果:

最后是新的火箭射击效果文件,(当然,不想改的话也可以使用原版的火箭效果文件):

47

第八,坦克添加炮射导弹的设置

我们再来看一个很有趣的设置,这个是我在“21CC-Mod”里尝试的一个新设定:坦克的炮射导弹。其实就是让坦克具备远程精确打击的能力,给坦克添加远程精确射击的命令代码和添加炮射导弹的武器代码即可,如下图: 远程精确打击代码:

添加武器代码,要把炮射导弹设置成主武器,因为远程曲射武器必须是主武器:

但是单单这么改还不行,因为炮射导弹和主炮在重叠的射程内会冲突,所以我们要用一个小技巧解决这个问题。

例如我们把炮射导弹的最小射程设置为60.5,而主炮的最大射程是60。这样就不会有重叠的射击区域了。

第九,坦克添加搭载步兵能力的设置

最后我们来看看坦克添加搭载步兵的设置。 首先是添加步兵上下车点代码EntrancePoint,然后是改搭载步兵能力Passangers=\,如下图: (和前面添加拖炮点一样,没有上下车点代码的坦克可以参考排气点代码。)

48

然后是添加搭载步兵的指令代码,可以参考可以搭载步兵的坦克。还要添加上下车点的坐标 ,方法和前面添加拖炮点一样,参考单位的大小值AABB。 如下图(左边是指令代码,右边最后一行是上下车点坐标):

最后还要添加坦克搭载的步兵模型和贴图,即下图中选定的文件:

(1p,2p…6p.mod 是对应1-6个以上的步兵乘车模型,另外3个dds文件是3个季节的贴图) 这种步兵乘车的模型和贴图可以从其他坦克的文件夹里找到,也可以在其他Mod的可搭载步兵坦克的文件夹里调用。

好了,本章到此结束。看到这里,修改单位和武器及效果属性文件基本上就没有问题了。

49

第三章:新单位的导入

第一节:新单位导入原版的方法

《闪电战1》的Mod非常丰富,单位更是海量。很多玩家都想把Mod的单位放到原版里玩。现在我就演示一遍这个导入过程。(学习这个教程之前,必须看完前面的单位和武器编辑教程) 以“WWII-Mod”的德军37mm自行防空炮为例:

把这个单位的整个文件夹解压出来,并按照路径移动到原版的data文件夹下,如下图: (请注意截图里的路径)

然后,我们还要修改一个关键的文件:objects.xml

这个文件也是在data.pak文件里,将其解压出来,并放到data文件夹下,如下图:

50