軌道予測射撃
- 2008/08/01(金) 00:41:05
対車両予測射撃とか軌道予測射撃とか名前をよく出している割に説明を書いていないことに気付いた。
元はG-ONEさんの予測射撃で、私のものはリロード毎に射撃方向を指定するのを簡略化したものだ。
リロード時間を見ずに4フレームのループを回しているので、1〜3フレーム分の誤差が出る。
しかし、ターゲットとなる車両が大きいため、アバウトな計算でも十分な精度が得られた。
ということで、カルポエディタで実際に使っているチップ配置を並べてみた。
これを見ながら説明してみたいと思う。
詳細は「続きを読む」の中に。

(画像クリックで別ウインドウ表示)
これは現時点のアラクネーに実際に積んでいるもの。
ただ、このルーチンはアサルトグラスホッパーとビームグラスホッパーには使えない。
4フレームおきに撃つ方向を指定するため、リロード時間3フレームとなる上記機種で行うと命中率が大幅に下がってしまう。
ターゲットが120m以内で通常の狙撃としているのは、近すぎると砲身旋回が間に合わず、いつまでたっても弾が発射されないためだ。
また、中距離では、自機が周回されている場合以外なら、通常の狙撃の方が命中率が高いというのも理由だ。
やっていることは、
1、1フレーム間のターゲットのいる方向の変化を取得
2、ターゲットXY距離から弾がターゲットに到達するまでのフレームを求める
3、1に2を乗算し、ターゲットのいる方向に加算する
というもの。
ここに当てやすいように補正を加えている。
チップの説明に移る。
まず、左側のカウンタDは仰角補正を行っている。
D = TARGET DISTANCE XY
D = D - 100
D = D / 150
D = D - 1
の部分だ。
車両はタイヤのある駆動部分と、砲身部分で構成されている。
当然、駆動部分の方が面積が大きく、当てやすい。
だが、普通に射撃すると、狙うのは砲身部分だ。
当てやすい駆動部分に当てるため、やや下方向に撃つようにしている。
上記の数値はカノンアラクネー用にしてある。
ここは機体によって当てやすい値に変更して欲しい。
また、このカウンタDは利き手補正にも使っている。
アラクネーなら、主武装が左手にあり、機体中心と少しずれている。
補正を行わないと、ターゲットのやや左側を撃ってしまい、命中率が悪くなる。
これは仰角補正とは別に計算した方が良いのだが、地面から主武装までの高さと機体中心から主武装までの距離をほぼ同じと見て流用している。
アラクネー、冥界ならほぼ問題無いが、二脚だと別に計算する必要が出てくる。
ただ、厳密さを求めずある程度の命中精度が出れば良いのであれば、このルーチンでも特に問題ない。
主武装の付いている腕によって、最下段中央の
A = A - D
を、
A = A - D(主武装が左腕にある場合)
A = A + D(主武装が右腕にある場合)
のどちらかに変える必要がある。
機体中心と砲身が近いトリンカー、セメタリーキーパーは利き手補正は必要無い。
そのため、上記チップをNOPか条件判断チップに変えた方が命中率が高くなる。
チップを削るとフレーム同期が取れずまともに機能しなくなるのでご注意を。
カウンタCは弾がターゲットに到達するまでのフレーム数を求めている。
C = C / 11.9
はカノンの弾速でターゲットまでの距離を割り、到達フレームを出している。
ビームなら16.0に、それ以外の武装ならその弾速に書き換える必要がある。
詳しい値はnas_BさんのCarPortを参照して欲しい。
その次にある
C = C + 7
は補正。
前述の通り、リロード時間を見ていないため、1〜3フレーム前の位置を参照にしてしまう。
加算する値を1.5にすればコンスタントに中心を狙うはずだが、砲身の旋回にある程度時間がかかるため、ここでも数フレームの遅れが出て後方を狙ってしまう。
さらに、ターゲットが移動射撃中で、弾を見てから急速移動して速度が上がった場合を考えて、先端近くを狙うようにしたい。
これらを考えて、加算する値を7にしている。
現状、概ね問題なく命中している。
各種条件判断チップは場所を動かしても問題無い。
熱量チェックは撃つ弾数が少なければ必要無いし、敵機体チェックも120mの範囲にターゲットがいればこのルーチンに入らないため、無くても平気だろう。
このルーチンでは2フレームに一度しか飛翔物をチェックしていないが、上記2枚を削って飛翔物判断を入れ、飛翔物チェックを毎フレームするようにも出来る。
ただ、
B = TARGET AZIMUTH
A = TARGET AZIMUTH
の2枚はフレームを挟んで実行する必要があるため動かさない方が良いだろう。
また、当然だが思考チップの実行順を変えないようにする必要がある。
・変更する部分のまとめ
左側の
D = D - 100
D = D / 150
D = D - 1
の3枚。
仰角、利き手補正。
左下あたりの、
C = C / 11.9
の弾速。
最下段中央の
A = A - D
を、
A = A - D(主武装が左腕にある場合)
A = A + D(主武装が右腕にある場合)
にする。
ビームなら16連射に設定するとかなり熱を溜められるので有利に立てる。
車両に少しでも対抗出来れば幸いだ。
追記:
ハードのCPUコアが「LP−323H」でないと動かないので注意。
この記事にコメントする
- HOME |


この記事に対するコメント