本帖最后由 焚风之爱莉琰 于 2019-7-10 10:01 编辑
我们知道,在帝国时代2中,单位必须正面朝向目标才能进行攻击。因此帝国时代2的船只武器都设置在舰首,这也许与时代也有关。但熟悉相关背景的玩家就会知道,现实中的大帆船火炮都设置在侧舷,即使舰首或者舰尾设置了火炮也大多只起辅助作用,火力全开时一般侧面向敌。浩浩荡荡的舰队在海上排成一字,故“战列线”由此得名。玩过帝国时代3的玩家也知道,在帝国时代3中的战舰大多已经实现了侧面向敌的攻击方式。到了近代,由于火炮的射程和威力不断增强,出现了“T字战”理论,即己方横向面对纵向来袭之敌舰,使己方的火力能够最大化,而敌方不仅火力受限、被弹面积也大大增加,对马海战就是最好的例子
【现实中的大帆船战斗时一般侧面向敌】
我们知道,帝国2中的远程单位在攻击的间隔会变为站立图像,而近战单位的攻击则是连贯、不间断的。这是因为:当单位有主抛掷物时,每发射一次抛掷物就会播放一遍攻击动画。如果单位没有抛掷物、或者只有副抛掷物,那么就会如近战单位一样连续不间断地播放攻击动画。基于这个设定,我们可以找到使单位能够侧向开火的办法。
步骤一:修改单位的攻击图像,使单位侧面朝向开火的方向,并导入。
【注意事项】:图中的两帧,单位实际上是朝向正右的。从这个方向开始,顺时针旋转到右上为止,一共8个方向,每个方向2帧,这么做的原因将在下一步中解释。至于为什么要右面向敌,因为……“左舷弹幕太薄了!”
步骤二:设定单位图像数据。
【注意事项】:如图所示,为了保证单位右侧向敌,我做了8个方向的图像。因此将镜像模式设为0。这样一来,第一个方向的单位实际上是向右的,故我们在上一步中让它图像向上,以右侧向敌。角度帧数设为2,这是因为如果每方向只有1帧,那么单位在攻击时就不会发出声音了。一艘战舰悄无声息地发出大量炮弹,想想就不对劲。】
步骤三:修改单位的数据,去掉主抛掷物,只留下副抛掷物。同时将单位的攻击数据复制到抛掷物上。
【注意事项】:去掉主抛掷物。同时,因为没有主抛掷物了,所以要设置抛掷物数量和最大抛掷物数量设为N+1,N为你想让它发射的抛射物数量,如我想让它一次只开1炮,那么就设为2。同时一定要把单位的攻击数据复制到副抛掷物上,否则副抛掷物只能造成1点伤害。此外,可以将抛掷物产生区域的宽度设为一个大于0的数值(为了匹配船只的长度,我将其设为3),以模拟炮弹从不同的炮口发射出来的样子。但这么做有一个弊端:即使命中率设为100,命中偏差设为0,那么平行射出的炮弹仍然有一部分不能击中目标,这是游戏自身算法导致的。其他需要设置的内容和属性可以自行YY。
步骤四:进入游戏,测试!
【因为设置了抛掷物产生区域的宽度,所以会在侧面随机位置产生炮弹,看起来就像不同位置的火炮在轮流开火,是不是很逼真?】
如此一来,一艘能够侧向面对敌人开火的风帆战列舰就做好了。但仍有一丝缺陷,那就是单位在攻击之前和攻击之后,不能非常平滑地转向。将图像循环延迟增加到很大、并在攻击图像之前加入过渡帧看似能解决这个问题,但这一来单位在进入攻击动作之后就只会攻击0~1次了。我和004就此讨论过,暂时还没能得出比较好的解决办法。如果有玩家能有办法,还请不吝赐教,感激不尽。
|