《闪电战1》单位编辑教程小欧欧.docx
《《闪电战1》单位编辑教程小欧欧.docx》由会员分享,可在线阅读,更多相关《《闪电战1》单位编辑教程小欧欧.docx(72页珍藏版)》请在冰豆网上搜索。
![《闪电战1》单位编辑教程小欧欧.docx](https://file1.bdocx.com/fileroot1/2023-1/3/f9195faf-e15d-4739-876a-9687d0c6946e/f9195faf-e15d-4739-876a-9687d0c6946e1.gif)
《闪电战1》单位编辑教程小欧欧
闪电战1
单位编辑教程
作者:
小欧欧
目录
序章:
单位相关文件的种类说明介绍…………….……………..4
第一章:
单位属性文件修改初步教程
第一节:
坦克及装甲车属性文件详解…………….…………..9
第二节:
火炮及卡车、火车属性文件详解…………….……14
第三节:
飞机属性文件详解………………………….……....17
第四节:
步兵及步兵班属性文件详解…………….……...….18
第五节:
建筑属性文件详解………………………………….22
第六节:
1.xml文件修改示范……………………...…………25
第二章:
单位属性文件修改进阶教程
第一节:
武器文件的详解…………………………….……….31
第二节:
效果文件的详解…………………………………..…36
第三节:
单位指令详解………………………………………..39
第四节:
单位设定及武器设定的匹配及技巧………………..42
第三章:
新单位的导入
第一节:
新单位导入原版的方法……………………………..50
第二节:
新单位导入Mod的方法……………………………54
第四章:
系统文件consts.xml的解析…………………………..56
前言
《闪电战1》是一款扩展性很好的即时战略游戏,各种新单位和新建筑可以非常容易的导入游戏,而且单位的制作也不难,因此《闪电战1》的组模非常的丰富。
本人修改的第一款游戏就是《闪电战1》,当时还没有上网,完全是自己摸索。
经过不断的尝试,终于找到了修改单位属性的方法。
而这一步往往是修改党的第一步。
接触闪电战论坛后,经过前辈们的不断指导,终于学会了使用Maya建模。
这个软件曾经让我疯狂的去尝试建模,有时甚至在梦中都会想着如何去制作新单位。
闪电战的单位建模是一个比较复杂的过程,每一步都不难,但是都需要教程来指导。
非常遗憾的是,当年的老论坛关闭后,所留下来的教程不多,而且凌乱。
本人作为新论坛的技术专区版主,有义务将这些零碎的教程整合重写。
重新编写成一部完整的教程。
虽然《闪电战1》这款游戏已经渐渐老去,但是还有不少热心的老玩家在关注,这部教程就是献给所有热爱这款游戏玩家的礼物!
小欧欧
2014年2月
序章:
单位相关文件的种类说明介绍
《闪电战1》的单位相关文件分为几种:
一个是单位属性文件“1.xml”,另一个是单位模型文件“1.mod”,还有单位皮肤文件“.dds”。
每个单位都有完整的一套文件。
我们以原版为例,说明这些文件的路径。
我们打开Blitzkrieg\Run\data文件夹。
可以看到很多pak文件,这些文件都可以用WinRAR打开。
我们打开“data.pak”,可以看到里面有很多文件夹。
单位文件就放在“Units”文件夹里。
打开“Units”文件夹,可以看到有两个文件夹“Humans”和“Technics”,前者是步兵的相关文件夹,后者是技术单位如:
坦克、火炮、补给车的相关文件夹。
我们打开“Technics”文件夹,可以看见有4个文件夹,这是不同阵营的单位文件夹。
继续打开“German”文件夹,可以看到不同武器的分类。
如下图:
图中的文件夹从上到下的顺序是:
火炮、补给单位、飞机、自行火炮、坦克、火车
打开“Tanks”文件夹,就可以看到每个单位的文件夹了。
我们继续打开“Pz_II_Ausf_F”文件夹,即II号F型坦克。
我们可以看到这个单位的相关文件基本都在这里了。
再次说明一下各个文件:
“1.mod”:
单位模型文件,“1.xml”:
单位属性文件,“desc.txt”单位文字介绍文件,“icon.tga”该单位在地图编辑器里的图标,“name.txt”单位在游戏里显示的名称。
但是这里并没有单位的皮肤文件。
那么皮肤文件在哪里呢?
皮肤文件就放在“textures.pak”文件的同名文件夹里。
我们按刚才的路径打开“textures.pak”文件,可以看到所有皮肤文件都在这里了。
如下图:
这里说明一下这些文件的具体用途:
“1_”开头的,是夏季皮肤。
“1w_”开头的是冬季皮肤(还有以“1a_”开头的是沙漠皮肤,II号坦克没有。
)
“2_”开头的,是夏季死亡皮肤,同理“2w_”开头的是冬季死亡皮肤(即被击毁时的皮肤贴图)
“icon_”开头的,是单位在游戏里的微缩图标
“icon512_”开头的,是单位在游戏单位说明里的大图
以“c”结尾的是压缩纹理贴图,“h”结尾的是高纹理贴图,“l”结尾的是低纹理贴图。
当缺少相应的贴图时,在游戏里就会显示成马赛克。
所有的贴图都是DDS文件,可以通过图片编辑软件来编辑。
序章到此结束。
第一章:
单位属性文件修改详解
第一节:
坦克及装甲车属性文件修改详解
我们以虎式坦克为例,打开data.pak文件,将虎式坦克的属性文件解压出来,如图:
“1.xml”文件可以用浏览器打开,但是不能编辑。
编辑需要用记事本打开。
我们先用浏览器打开“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即没有。
这个对坦克没有意义。
EntrancePonit=”-1”——步兵上下车点代码,有搭载步兵能力的单位才有意义。
TrackLifetime=”10000”——履带轨迹的时间,数值越大,履带痕迹保留的时间越长。
Pz_VI_Tiger_Ausf_A_H——单位的名称,其实没有多大意义。
以上省略的部分对坦克和装甲车没有意义,部分代码解析会在后面提到。
这段对单位没有意义,对建筑才有意义,后面介绍建筑代码才会说到。
这个是单位的指令代码,会在后面专题讲解。
到这一大段都是单位的动画代码,没有必要修改。
这是单位的声音文件类型。
重头戏来了,这段代码非常关键。
这是单位的车体及炮塔设置代码。
第一段是车体代码,第二段是炮塔代码。
(如果有几个炮塔,会还多几段)
VerticalRotateSpeed=这个是垂直选择速度,数值越大速度越慢。
一般车体为0。
炮塔上的数值其实是炮架的垂直运动速度。
因为虎式坦克的炮架没有俯仰运动,所以其值也是0。
HorizontalRotateSpeed=这个是水平旋转速度,一般车体默认为10或60,没有意义。
对第二段的炮塔才有意义,同理数值越大,旋转速度越慢。
ModelPart=这个是车体或炮塔模型代码,不同的单位不同,不需要修改。
GunCarriageParts=这个是炮架代码,一般为-249到-253如果没有运动炮架,其值就为-1,也不需要改动。
FirstGun=这个数值很关键,其含义是之前部件的武器数量。
以老虎为例,其车体为第一段,之前没有部件和武器,其值就为0;第二段炮塔,因为前面有一挺车体机枪,所以其值为1.
NumGuns=这个数值也很关键,其含义是该部件的武器数量。
同样以老虎为例,其车体有一挺机枪,所以数值为1,炮塔有主炮及并列机枪,所以该数值为2.
FirstGun和NumGuns的关系其实很明确。
FirstGun的数值就是前面部件的NumGuns的总和。
ConstraintMin=Max=该部件水平旋转的范围,单位是弧度,正负值是左右旋转
ConstraintVerticalMin=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即没有设置(其实是原作者懒!
),图中第二个武器即主炮的代码为4,这些数值均不用改动!
XXX即武器代码,其对应的是同名武器文件。
如果没有对应的武器文件,在游戏里单位的武器穿甲值及伤害值均为1。
(其实就是不会开火!
)
Armor开头的6行就是装甲数值代码。
MinMax对应最小和最大值。
游戏里显示的是这两个值的平均值。
6行代码从上到下分别是:
左侧、右侧、顶部、底部、正面、背面。
当武器的穿甲值超过装甲值的最小值时,就有机会造成有效伤害。
当穿甲值超过平均值时,就有较可靠的几率击穿装甲造成伤害。
但只要武器的穿甲值小于最大值,坦克就会主动绕到侧面或背面装甲薄弱的地方。
(如果都不能,就不会绕行)。
如果武器穿甲值低于装甲最小值,那么就不会开火浪费弹药。
AABB那两行代码是该单位的3D模型中心值及x,y轴半径值。
一般不用修改。
(那个AABBHalSize的数值大小影响到单位包埋时的沙包大小和包埋所用时间,数值越大,沙包越大,同理,需要的时间就越多,这个值如果太大,单位就无法过桥)
ExhaustPoints是车辆尾气冒烟点,DamagePoints是单位被击毁时的着火点,都不必改动,都是建模时设置的。
单位的相关效果代码,对应的是各个效果文件。
前两个是被击毁后冒烟着火的效果,第三个是移动时的烟尘效果,第四个是主武器开火时的烟尘效果(远程火炮和大口径自行火炮才有,当然也可以给坦克添加)第五个是单位毁灭时的爆炸效果,第六个不明,第七个是残骸消失时的效果。
这段代码前三行可能是履带痕迹的属性代码(宽度,间隔等),貌似是建模时自动生成的。
后三行是单位移动时的声音代码,对应同名的声音文件。
其中第一行是启动声音,第二行是移动时声音,第三行是停止时的声音(即熄火声音)。
这段是单位被消灭后,在地面上留下的痕迹效果代码,对应的就是同路径的效果文件。
好了,坦克和装甲车的所有相关代码就介绍完毕了。
第二节:
火炮及卡车、火车属性文件详解
我们先来看火炮的相关代码说明。
和坦克相同的部分就不重复讲了,我们讲一些修改时常改动的数值。
以德军的LeFH18105mm榴弹炮为例,我们从data.pak文件里解压出该单位的属性文件,如图
我们可以看到Camouflage即隐藏值为0,如果是反坦克炮,这个值是20左右。
Weight=”3330”这个值是火炮的重量,如果牵引车的TowingForce值小于火炮的重量值,就无法牵引这门火炮。
UninstallRotate是火炮重新部署时间,即火炮旋转时,抬起炮架的时间。
UninstallTransport是火炮展开/收起大架,即和牵引车连接或卸载的时间
这两个时间越短,火炮的部署就越快,机动性就越好,在远程火炮对射并机动时很重要。
(就是军事上所谓的火炮放列射击)
TowPoint是火炮的拖拽点代码,建模时设定好的,不必改动。
这是火炮的指令代码,后面的章节会详细讲解。
火炮的武器比较简单,就一门炮,如下图。
第一段:
火炮大架(对应的是坦克的车体),没有武器,NumGun=”0”
第二段:
炮塔(火炮其实没有炮塔,但是建模时,还是会弄一个部件,命名为炮塔,作为水平旋转的轴心),炮塔上只有一门炮。
炮塔的旋转范围和炮架的俯仰范围明显和坦克不一样。
我们可以看到,第二段的“炮塔”代码里有炮架的的代码:
GunCarriage=”-254”
再复习一次:
ConstraintMin=Max=该部件水平旋转的范围,单位是弧度,正负值是左右旋转
ConstraintVerticalMin=Max=该部件垂直旋转的范围,单位也是弧度(对于炮塔来说,这其实是炮架的垂直旋转范围),正值是向上偏转。
下面的代码是火炮独有的
PeoplePoints对应的三个值是炮手代码(有个5炮手补丁,这里就是5个值)
TowPoint2D火炮牵引点的坐标(对应牵引点代码,这些值都是建模时设定的)
PeoplePonits2D炮手点的坐标,原理同上
AmmoPoint2D弹药箱的坐标,原理同上
Gunners那一大段是炮手在不同状态时的坐标。
第一个是火炮展开部署时的状态,可以看到,其数值和PeoplePonits2D的是一样的。
第二段是火炮抬起炮架,重新部署时的状态,第三段不明。
如果有必要,可以改成和第一段一样的数值。
好了,火炮部分就介绍完了。
接下来是卡车,我们以德军的欧宝卡车为例:
前面介绍过的代码不再重复,这里再次提一下:
卡车的拖拽能力“TowingForce”只有超过火炮的重量时,才能拖拽该火炮。
另外可以调整载员数量来提高卡车装载步兵的数量,即提高“Passangers”的数值。
(我的Mod一般为23-33,这样既可以载2-3队步兵,又可以支持火炮的3个炮手)
最后我们来看一下火车的属性文件里有什么特殊的地方,以普通的火车头为例:
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的属性文件
我们可以看到,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文件并打开,如下图:
我们可以看到,步兵的代码相对简短一些,大部分也和坦克等单位相同。
区别就是步兵的隐蔽值比较大,如图中的Camouflage=”40”,明显比坦克或卡车要大。
Armor=”0”这个是步兵的护甲值,步兵没有前侧后装甲之分,只有一个护甲值。
WalkSpeed=”5.5”这个是站立时的移动速度(于Speed有何区别我至今不明)
CrawlSpeed=”2.2”这个是匍伏前进时的移动速度
继续往下看,把属性文件拉到最底部,如图:
和坦克一样,到这段是步兵的声音文件代码,与同名声音文件关联。
步兵和坦克不同,没有各个部件的代码属性,因为步兵本身就只有一个部件。
所以,直接到了武器代码。
步兵的武器代码和坦克的武器代码一样,而且更加简单,如果要添加武器,按照格式添加即可。
我们再复习一次:
Priority=主副武器代码,0为主武器,1为副武器。
当没有主武器,全部是副武器时,游戏里显示的是第一个武器的属性(即穿透力和伤害值)
Ammo=武器的弹药数量
Direction=武器的初始指向(步兵都为0)
ReloadCost=武器每发弹药的补给消耗量
XXX武器的代码,对应同名武器属性文件。
步兵在游戏里都是以一个步兵班的形式出现,那么步兵班的属性文件在哪里呢?
我们还是打开data.pak文件,那个Squads文件夹就是步兵班的属性文件夹。
如下图:
打开Squads文件夹,我们可以看到很多子文件夹,每个子文件夹都对应一个类型的步兵班。
如下图:
我们以德军的1941年步兵班为例,打开其1.xml文件:
我们可以看到属性文件和之前的单位文件完全不同。
一般来说,每个普通的步兵班有10个人,我们可以看到下面有10个代码,分别对应一个步兵的类型。
图中的德军1941年步兵班里,有4个毛瑟步枪兵,3个Mp40冲锋枪兵,一个MG34机枪兵,一个Pzb39反坦克步枪兵,以及一个军官。
下面的就是不同的阵型时,步兵班的速度加成,开火速度加成及每个步兵的位置代码。
我们一般不需要改动。
好了,步兵的属性文件介绍到此结束。
第五节:
建筑属性文件详解
打开data.pak文件的Buildings文件夹,如下图
我们可以看到4个文件夹,如下图
这4个文件夹分别是:
沙漠/通用/欧洲/俄罗斯的建筑分类。
我们以永久工事为例,按Buildings\common\summer\dot路径打开,如图
01–04分别代表4个不同朝向的类型。
我们以01为例:
打开1.xml文件:
耐久度和维修消耗的代码和普通单位一样。
Defence0–Defence3是建筑的正、侧、背、四面装甲值,同样有最小和最大值,其效果与普通单位的装甲最小最大值相同。
后面那个Silhouette=很有意思,是被命中的几率。
我们可以看见,堡垒的四面被命中率是0.3,即30%,这是很有用的设置。
顺便说明一下,Defence0–Denfence3只受到直射武器的伤害。
Denfence4是建筑的顶装甲值,只受曲射武器伤害,Denfence5是低部装甲值,没有意义。
继续往下看:
这长长的一段代码是建筑的武器文件代码。
从,每小段都是一个武器代码。
以下面这段代码为例:
Angle=应该是射击朝向
SightMultiplier=”1”是视野距离,1即为进驻单位视野的100%,如果改成1.2,即120%的视野。
Coverage=”0.1”是进驻单位被命中的几率,0.1即10%
Ammo=弹药数量
GunPriority=主副武器的代码,0为主武器,1为副武器
Positionx=”….”y=”….”应该是武器射击点位置
….是武器类型代码,同样对应同名武器文件。
继续往下看:
这一段是建筑燃烧的效果代码。
和之前的武器代码一样,Direction和VerticalAngle是燃烧效果的朝向,Position是燃烧的位置
是燃烧效果,对应同名的效果文件。
这个是建筑的冒烟效果,同样对于同名效果文件。
这是建筑被完全摧毁时的效果,对应同名效果文件。
建筑属性文件介绍到此结束。
第六节:
1.xml文件修改示范
我们之前提到过,用浏览器只能打开1.xml属性文件,却不能编辑。
编辑1.x