5.武器系统全解:修订间差异
无编辑摘要 |
小 已保护“5.武器系统全解”([编辑=仅允许管理员](无限期)[移动=仅允许管理员](无限期))[连锁保护] |
(没有差异)
| |
2025年5月26日 (一) 15:15的版本
关于扩展引擎的相关机制请查询其说明书。
对于军事爱好者而言的兵器装备,以游戏来看,都称为单位:一切飞机坦克建筑士兵都被称为『单位』而不是武器,统称TechnoTypes。
武器:指WeaponTypes。武器系统由三大组件构成。对于基础入门而言,姑且可以认为是Primary,Secondary,ElitePrimary,EliteSecondary,DeathWeapon,Weapon12345678里填写的注册名。
2.三大组件
简单说来,武器系统的组成是这样
/抛射体
武器名
\弹头
三个组件设定范围如下
在武器里设定:攻击力,射程,开火频率,开火声音, 并指定关联的抛射体和弹头。
在抛射体里设定:主要是有形抛射体的图形,攻击范围,可选的溅射和空爆武器
在弹头里设定:主要是装有此弹头的武器对于不同装甲类型的伤害值比例,爆炸动画,步兵死亡动画,影响范围。
详细注释可以参考武器系统代码词典。
一切游戏内出现的动画都在ART里,所有对于动画的引用都必须填写ART里的注册名,动画要在rules里的[Animations]注册。
不知道什么是什么的话,直接复制你看上的某单位的武器的弹头的动画代码AnimList。更加详细的做法请看2019年版教程。
原版注释提供的语句并非每一句都适合于RA2引擎,有些是TS引擎残留,已经失效了。建议查代码词典弄清楚具体的效果。
真实武器中最重要的杀伤范围、射程、射速等属性,在给武器代码赋值时候都是最简单的一个数字,拿去人前显圣就是你厉害。
在每一部分的代码里又可以分成两类,图像控制代码和属性代码,很多绚丽的武器只是使用了华丽的爆炸动画而已,和杀伤力无关。图形控制代码完全不影响武器的威力,可以一拳打出一个核弹,也可以默不作声杀人于无形之中。真正起效的代码都是属性代码。所以,为了写出绚丽的武器,只要学会运用图形控制代码就可以了。
查看武器的途径是首先根据某个单位的注册名找到单位代码,然后由primary=之类找到武器名,再由武器名中的Projectile=和Warhead=找到抛射体和弹头。
如此操作一次,弄清楚这三个组件的查找方式即可。单位-武器-抛射体和弹头
3.武器设计
在你完全弄清楚了武器系统的结构之后,你就可以写出自己的武器了。最最简单的办法是复制一段原来的武器代码的所有部分,然后更改注册名,这已经是一个全新的武器了。
把某个单位的武器关联改成它,就是换好了武器。当然,因为是完全复制,实际运用起来并无任何区别。
然后你就可以试试修改射程,伤害值,这样进入游戏时候已经有所不同了。
然后你可以试试修改抛射体,也就是找一个自己喜欢的单位,把它的武器的抛射体名字抄下来,换到刚才写的武器抛射体里。
同样,你也可以复制一个抛射体,改名,做出一个新的。弹头同理。不过弹头要在[Warheads]下面登记。。
参考以上内容,自己弄出一个带有全新抛射体和弹头的武器就算合格。
***************************************************************************************************************************************
这已经完成了武器系统的扫盲,下面是进阶内容。
1.四大抛射体类型
带有Inviso=yes的抛射体为无形抛射体。特性是瞬间击中,典型如原版中所有机枪类武器,不会miss也不存在飞行时间
带有Arcing=yes的抛射体为弧线抛射体。特性是速度不可控制,攻击移动目标时可能miss。典型如原版所有炮类武器
带有ROT=(数字大小)的抛射体为导弹类武器,特性是可以追踪。
带有Vertical=yes的抛射体为垂直抛射体,就是飞艇的炸弹。
如果你实在搞不清这些概念,和别人对话时尽量使用原代码,不会导致误解。
四大类型互相冲突,一个抛射体只能有一种性质。性质和图像毫无关系,图形是炮弹的抛射体也可以追踪,只要把Arcing换成ROT。
没有看得见图像的炮弹也不会瞬间击中,只要它的抛射体还是Arcing。
Inviso=yes和Image=INVISO不是一回事,前者是抛射体性质,后者仅仅是个图形控制代码。
2.非弹头特效
激光,电流,辐射,电波并非是抛射体性质,它们是武器代码的一部分,表示此武器除了使用抛射体部分中写的图形之外还使用这些系统绘制的武器特效。
通常这些武器都是瞬间抛射体。当然,一个带有短暂激光效果的导弹也能做出什么“激光制导”的效果来。
在Art中可以设定抛射体尾烟。关键词Trailer。可以是线性尾烟,如普通的导弹的白烟,也可以是连续动画尾烟,如V3的动画烟雾。
3.原版特殊武器
溅射,空爆武器 典型的溅射武器为光棱,特点是在主武器击中敌人后产生几个预先设定好的子武器随机攻击周围物体。关键代码ShrapnelWeapon=和ShrapnelCount=。
溅射武器必须击中步兵(Infantry)或载具(Vehicle)和战机(Aircraft)类或树木和路灯(Terrain)才能产生子武器。
典型的空爆武器原版中并没有直接体现。关键代码Airburst=yes和AirburstWeapon=。
Cluster=在原版引擎空爆中无效,锁定为⑨。两类都填武器名。
Ares新增一类分裂武器Splits,实际上是特殊的空爆,详见Ares说明书
注意,空爆和溅射的子武器必须作为某单位的某一武器。
这是因为引擎并不会去登记每一个看起来像一段武器INI的东西,而是顺着单位去查看单位使用的武器。只有一个武器被单位使用,游戏内才存在这个武器,而ShrapnelWeapon和AirburstWeapon后的武器如果没有被直接使用,游戏内就不存在这些东西,导致游戏试图创建一个它自己不知道属性的武器,于是就崩溃了。
Ares提供了可新增的WeaponTypes注册列表来解决问题
动画伤害:ART里的动画也是可以填写Damage=的,但是动画伤害在原版引擎开放度极低。动画弹头被锁定为Fire2,如果动画名字是INVISO的话就锁定为Super。
ARES里Warhead在动画里也有效了。动画伤害的作用方式是每帧都产生damage中写的伤害,可以用一个一帧空动画产生伤害,用Next=来播放真正需要的动画。也可以在动画伤害中直接调用武器。可以参考Ares说明书。
比如在某个武器的开火动画上写上很大的伤害,这个单位就会在开火的同时杀死自己。
这样可以做一个“自杀”武器。或者是开火后用一个空白动画Loop若干帧后Next出一个有效杀伤动画自杀,是延时自杀。当然这已经是过时的做法了!
子机发射器:这些武器并非真正的造成伤害的武器,而是发射一种飞机,由这种飞机来攻击。
子机有两种模式,导弹型和战机型。导弹型子机和一般武器型导弹的区别就是子机导弹是可以拦截的。
子机导弹的伤害数据和飞行数据在rules的general部分里,在原版引擎下你绝不可能添加任何新的子机导弹,在ares的基础上才可以。
普通的战机发射器参考原版航母。
航母在原版不可以是飞行的,回收必须落地。ares可使用飞行航母。
子机发射器武器发射的子机和武器本身无关,子机的类别在发射器使用者里指定。子机发射器设定对空的话航母会对空军发射子机,当然子机自身需要也能对空才会攻击。
子机导弹和普通子机的区别在于普通子机有Fighter=yes
辐射:辐射兵展开。辐射代码是RadLevel=,原版中不得小于100。辐射是独立于三大组件的,只是必须写在武器主体部分。
辐射的爆发面积由带有辐射代码的武器主体的弹头面积决定。
ARES暂不支持自定义辐射,phobs支持。
混乱,心控武器:神经车和尤里的弹头决定。混乱弹头的武器伤害为混乱帧数,控制弹头的武器伤害为控制数目,仅对YR引擎有效。
盖特系统:
每个使用盖特系统的单位都有一个计数器,当单位保持在攻击状态时,计数器每帧增加RateUp的数值,反之,每帧减少RateDown。
如果RateDown的数值为0,则只要停止攻击立刻回到初始档位。
单位在计数器到达第一档之前使用12武器,第二档之前用34武器,第三档之前56武器,第四档之前……同理。
只要越过倒数第二档的计数器值,就会开始最终武器。最高档位的数值只不过和ratedown一起决定了如果进入最后阶段,停止攻击后多久掉档。
如果是NPEXT或Ares的循环盖特,则决定下一循环开始之前保持最高档多久。
貌似盖特系统最高支持12或14武器。
单数序列武器对地,双数序列武器对空。
粒子武器:最最熟悉的就是共灰的喷火碉堡。那就是一个最最典型的纯火焰粒子武器。其他类型如病狙的死亡动画刷粒子,还有维修车的维修火花,都是带有粒子的武器。
能作为伤害的是轨道炮(Railgun),火焰(Fire)和毒气(Gas)。注意这三种名字是一类表现模式的描述,而不是对其动画的说明。
像病狙的毒气一样乱飘的火苗是gas而不是fire。粒子系统鉴定的唯一依据是运行模式。
粒子系统说明http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=12917
粒子系统的调用参考原有的武器:FireballLauncher,LtRail,而病狙刷粒子的关键在于VIRUSD的ART设定中。
动画刷粒子的语句适合一切动画。开火动画刷粒子的话开火动画最多一帧。这种情况就是1帧空动画刷粒子然后Next的事情了。粒子都不存在所有者,被粒子杀死的单位不计经验。
声波武器:海豚,特色是穿透,经过的体积越大伤害越大。注意,RA2引擎中不存在物理体积,看起来再大的坦克占地都只有一格。有体积的只有建筑。
运动模式波:磁电,强制将对方的运动模式修改为弹头里写的那一种,无视speed。
见http://tieba.baidu.com/f?kz=153865085。jumpjet和超时空有效,因为这两种模式刚好无视speed。
飞碟吸:只有jumpjet载具可以有效使用飞碟吸
伊文炸弹:只有步兵类单位可以有效使用伊文炸弹。Ares已经解锁。
**************************************************
特殊武器
碎片武器:除了上述几种非常规武器之外还有更加非常规武器,因为碎片本身根本就不是拿来做武器的,这是一种“超常运用”。当然2025年你还在玩碎片当武器的话你就是山顶洞人。
详细内容在DIY。http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=878和http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=14036
多重弹头武器(适用于ARES环境)
在ARES中,空爆抛射体的数量不再恒定为⑨了,而是可以定义空爆覆盖范围,所以可以空爆出一种垂直抛射体的武器,让其原地爆炸。
这就是爆出第二种弹头了。这样你可以做出带有混乱效果又有常规伤害的武器,之类。
更巧妙的是,抛射体可以通过空爆套上第二武器,第二武器又可以刷出第三武器,……就是无限弹头。
当然,这已经是十年前的把戏了。现代扩展引擎中有的是办法来制造多重效果。可以参照kratos或phobos说明书。
多层溅射武器
常规的溅射武器的子武器再设定溅射就是多层溅射。SuperComet就是个两层溅射。无聊的话,做个10层溅射都没问题。
溅射和空爆的武器如果写的还是自己,自体溅射的话,会产生可怕的后果,不怕死机的可以自己试试。
刷兵武器(仅限于非原版引擎)
即基因突变的原理,动画生成单位,可在全局新增
用多重弹头武器,第一层刷出一个兵,后续层把这个兵杀死突变为自己的兵,因为过程是瞬间完成的,看起来刷的其实是自己的兵。
Ares可直接刷出自己的兵。
注意,如果主武器是自杀武器,开火后单位立刻死亡,多层武器将不会展开。这种情况只能用动画延时自杀。此外,刷出来的兵可以作为溅射物。
这是十年前的把戏了。Phobos的动画可以直接生成单位,kratos可以直接让抛射体变单位。
补充材料.障眼法
是什么让我们区分一个单位?从一个玩家的角度来看,不过是单位本身素材,语音,运动方式,载具运动声音,开火声音,炮弹,弹头动画。
所谓障眼法,就是对这些东西的修改,从而达成完全不同的效果。典型的例子是狂风和灰熊,两者本质上没有任何区别,只是车的素材和开火report不同而已。绝大多数mod中的绝大多数单位都只是换皮犀牛和换皮动员兵,不要认为它们有任何独特之处。
记住几条关键代码,就是report,animlist和image。替换了这些东西,就能做出看似完全不同的单位。
所以,如果我要油井可以自己建造,单纯启用了可能很多不足;想让曾哥进入游戏却苦于他的平民属性,如果没有耐心逐句解析代码,就是障眼法的所用之处。
复制一个电厂之类,给他加上油井关键代码,足够了。要做一个新单位曾哥,直接复制一个动员兵,替换音效武器生命护甲,结束了。
我们最要摆脱的一个误区,就是观念中把单位的声音图形等外在效果和单位本身绑定,认为有犀牛坦克开火声音的武器一定是犀牛坦克炮,核弹的动画一定代表着极高杀伤力,等等。
他们只是可以调用的动画而已!明白这一点,就是障眼法的第一步。然后,想要创建具有某个属性的单位,只要复制一个差不多那个属性的单位,替换障眼法的代码,行了。
这样,就有了创造无数单位的钥匙。不需要真的做到,只要游戏里面看起来是那个样子,ok
单位的障眼法就在于主体素材的调用,即车身,炮塔,语音。对于玩家来说,只有这些是外在的。内在的属性比如生命值,护甲是无法看出的,毕竟红警不是星际。
也就是说,这些东西的变化就足以令玩家认为障眼法做出的新单位是完全不同的了。
武器的障眼法在于武器主体的炮口动画、开火音效和可能使用的绘图特效(见武器扫盲教程),射弹的弹体图形,弹头的爆炸动画。
通常来说,使用不同的动画不会对武器本身属性有任何影响。moder就算再没有创意,做东西全是障眼法,只要素材不一样,效果不一样,就能给人新意的感觉。
所以即使是只会通过复制来新增单位的菜鸟,也可以用这种方法开创自己的天地。
补充材料.护甲
RA2体系的护甲并非星际一样精确地可以减少若干点伤害,而是在武器伤害值的处理上做手脚。某弹头的武器击中某护甲的单位后,单位受到的伤害是武器伤害X弹头里对于此护甲的比例。
内定护甲共11种,Ares可以添加新的护甲类型。
护甲类型没有任何使用限制,只是通常某种类型的护甲用在建筑,某种用于步兵,某种用于建筑罢了。
完全可以给一个步兵装上载具甲,使他完全不怕海豹的枪,却很容易被坦杀消灭、
补充材料.
子机导弹(V3、无畏、雷鸣)类的控制请参阅全局代码:
V3RocketPauseFrames=0
倾斜开始前滞留0桢
V3RocketTiltFrames=60
倾斜到发射位置(角度)需要60帧
V3RocketPitchInitial=0.21
导弹初始倾斜为0.21*90度
V3RocketPitchFinal=0.5
导弹点火倾斜为0.5*90度
V3RocketTurnRate=0.05
导弹拐弯速率
V3RocketRaiseRate=1
巡航导弹每次升高多少
V3RocketAcceleration=0.4
发射加速度0.4
V3RocketAltitude=768
巡航导弹达到这么高后水平移动
V3RocketDamage=200
伤害200
V3RocketEliteDamage=400
精英伤害400
V3RocketBodyLength=256
导弹长256Leptons
V3RocketLazyCurve=yes
是否是抛物线弹道,也就是不使用巡航导弹使用的RaiseRate和Altitude两个参数。并且如果PitchFinal设定成了垂直于地面的90°,那么即便是初中生也知道这会导致导弹再也飞不回来
V3Warhead=V3WH
V3火箭的弹头
V3EliteWarhead=V3EWH
精英V3火箭的弹头
原版无法新增子机导弹,ares可新增
方法是将Ares提供的语句添加在你新增子机导弹本体上,不是发射者上
更不是给Ares代码随便改个名字然后写在全局里,我见过无数菜逼这么乱搞了,引以为戒。
子机导弹飞行方式解析http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=9795
子机导弹如何发射常规抛体武器http://bbs.ra2diy.com/forum.php?mod=viewthread&tid=11757
特殊应用:
当PitchFinal为0,且导弹发射时的高度低于Altitude,导弹会平行于发射者和目标的连线持续飞行而不会命中。
当Altitude和BodyLength为0,TurnRate为0.01,PitchFinal不低于0.13时,导弹会飞过目标并持续飞行而不命中。