ホバーの基本は急速移動で素早く移動することだ。
チキンハンターなら黄色重量でも最高速は400km/hを超える。
しかしホバーは1回の急速移動で最高速に達しない。
3回連続ほど連続で急速移動してやっと最高速が出る。
加速が比較的ゆっくりであるため、停止状態から急速移動すると、十分に加速するまでわずかな隙がある。
このわずかな隙であってもカノンであれば20m以上、ビームでは30m以上進むので無視出来ない。
具体的に言うと、急速移動を初めてから2フレームはあまり移動していないため回避し損ねることがあるということだ。
また、ホバーは移動を実行していない時も慣性で移動を続けるが、速度はどんどん減速していく。
射撃を続けて速度が0に近くなってしまえば、上記の隙が生まれる。
この減速をなるべく抑えるための方法が、あべさんがブログで紹介してくださった、弾が出たらすぐに移動することだ。
そして、この方法をどう実装するか悩んでおられたので、ここに勝手に私の方法を書いておく。
メイン
サブ1
存在しないが、狙撃すると20フレームで弾が出る機体を考える。
射撃を実行して20フレーム後に急速移動する、という内容を実装したい。
2発目が28フレームで射出されるから28フレーム後に急速移動する、としても良いし、条件を変数にして射撃に応じて適切な値に書き換えれば汎用性が増すだろう。
まず、射撃チップを踏んだらループを回す。
このソフトでは射撃チップを通った後、サブ1に移行している。
サブルーチンへの移行で1フレームかかっているのでループする時間も1フレーム短くし19フレームとなっている。
このソフトを実行させると20フレーム経過して弾が出た次のフレームで急速移動するはずだ。
また、射撃中に飛翔物があれば回避するし、飛翔物が来たときにサブ1を呼び出すことで1フレームで回避行動をとれるので回避用ルーチンとして機能させられる。
弾が出たあとのモーションをカット出来るため、減速が少し抑えられるはずだ。
以上がその方法だ。
ついでにホバーのミサイル回避についても書いておく。
ホバーでのミサイル回避は横に捉えて急速前進するのが基本となる。
メインの左側がミサイル回避部分だ。
最高の機動性を持つチキンハンターにこれを乗せれば、単発ミサイルはほぼ確実に回避するし、ムラマサも50%くらいで全弾避ける。
もちろんこれだけでは回避しきれないので判断を増やし細かく調整する必要がある。
ちなみに、このサブルーチンに少し手を加えると、毎フレーム飛翔物を判断し、検知した場合にはそのフレームで回避行動をとるようにすることも出来る。
以下がそれだ。
この方法、急速移動をジャンプに変えて飛翔物の検知範囲を50m程度にし、ジャンプするのは飛翔物を検知したときのみにすれば脚付きにも使える。
私のチァーイカはこの方法を使っている。
高度変更などもするため毎フレームチェックしているわけではないが。