开发者说:“坂野马戏”的炼成,游戏中导弹制导的一种设计思路

作者:phixcat
2019-09-08
9 4 1

导弹是机甲游戏中常见的武器种类,导弹弹幕形成“坂野马戏”的表现形式也被机甲迷们所津津乐道。

《纯白星原》中的坂野马戏:

导弹运动算法的设计思路

那么如何在游戏中设计出“坂野马戏”的视觉效果呢(纯动画绘制不做讨论,只考虑用算法实现)。下面分享一下我在《纯白星原》中导弹运动算法的设计思路。

先看一下最简单的飞弹模型:

弹体始终以一定速率转动指向目标位置,同时按照既定速度向当前指向运动,最终形成追踪目标的效果。

这种方式有两个明显的缺陷:

1、在一定速度,角度和位置参数匹配下,飞弹会绕着目标转动无法命中目标,就像“放卫星”。

2、多枚飞弹追踪同一目标时,不管这些导弹的初始位置如何,追久了这些飞弹都会最终汇聚到统一或近似的弹道里去。

为了解决以上缺陷,往往需要给导弹的运动增加一些随机的摆动。为了让这种随机摆动更加自然和合理我是这样做的:

导弹并不是始终转向目标,如果目标在导弹正前方一定角度范围外,导弹才会按照一定角速度转向目标。直到目标处于导弹正前方一定角度范围内,这时导弹将无视目标的相对角度而是延续并逐渐减小之前的角度转向。这样用不了多久导弹的指向就会在另外一侧偏出,这时又会启动相反的转向过程。这样导弹就会在目标的大致方向上来回修正角度产生波浪形前进的形态。

然后用随机参数控制一下视角内时转向速率衰减的幅度每个飞弹的轨迹就区分出来了。另外在一些随机时间点给飞弹的运动状态随机改动一下产生“大跳”的效果。多枚导弹的随机波浪形前进就形成了“坂野马戏”。

为了让飞弹以一定的命中概率和回避难度命中目标,在飞弹很接近目标时再另外设计制导策略,比如为了产生飞弹擦弹和诱爆的效果做一些飞弹“发呆”“转动硬直”之类的设计。

实际效果

更多游戏实际效果:

如果您有什么其他设计思路和想法,欢迎留言分享。

相关链接

作者:phiXcat (B 站

纯白星原@indienova

去看看

本文为用户投稿,不代表 indienova 观点。

近期点赞的会员

 分享这篇文章

phixcat 

Flash独游开发,《纯白枪骑兵》《纯白星原》作者 

您可能还会对这些文章感兴趣

参与此文章的讨论

  1. 陈康 2019-09-10

    我很喜欢,但是不知道红色警戒的导弹系统是如何设计的?感觉有共同的原理。

您需要登录或者注册后才能发表评论

登录/注册