刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

カルネージハートエクサ

ようやくケイローンを倒せて、バトルアリーナ全部金メダルになった。機体は相変わらずアラクネ。

ケイローン戦で何が問題なのか分析してみた

  • ロックオンができなくなっている間に、回避するルーチンがなかった
  • 近距離の格闘で一方的にボコられる。

で、対策をたててみた

  • 飛行機ならロックオンされないし、格闘もくらわない
    • その分ロックオンができるようになったら散弾の餌食になることに気づいて諦める
  • ロックオンなし時に回避するルーチンの追加。
    • 壁が周囲にあれば、ない方向に飛ぶ
    • 壁が周囲になければ、敵と障害物がない方向に飛ぶ
    • 後方斜めを50/50、前方斜めを50/50、左右を50/50、だめだったら後方ジャンプ
  • ラクネの格闘の射程を手動で調べてみたところ、大体20mくらいだったので、20m以内で格闘と特殊1/2を使うように
  • 近距離の格闘は実はバグがあって、ほぼ確実に格闘しない仕様になってた
    • 直してみたところ、結構いい感じになった
    • どうりで突っ込んでくるホイリーコーンに無抵抗で殺されるわけだ...。
  • ロックオンが必要ない地雷に切り替え
    • 50m以内にいたらとりあえず置いてみるようにしてみた

攻撃のアルゴリズムは、

  • 200m-50mはカノンで戦う
  • 50m-20mはコロコロ地雷を優先。なければカノン
  • 20mは格闘

移動のアルゴリズムは、

  • 格闘の距離の場合は回避・移動せず攻撃を最優先
  • ロックができていない場合、空いている空間にジャンプ
  • ロックできてて、弾が100m以内くらいにあったら前方斜めに適当にジャンプ
  • ロックできてて、弾がなかったら、前進

旋回のアルゴリズムは、

  • 前方の10°くらいにターゲットがいたら、旋回停止
  • 左・右前方30°くらいにターゲットがいたら旋回
  • もっと遠かったら急速旋回

ロックオンのアルゴリズムは、

  • 20m範囲内の正面に最も近い敵にロック
  • ロックをすでにしている場合はそのまま維持
  • 300m以内の正面に近い敵にロック
  • いなければ800mの一番近い敵にロック

ロックオンのアルゴリズムはもう少し改善の余地があると思う。

ちなみに、バトルアリーナのほうはホイリーコーンとバジリスクだけ銀で、上記の機体でそのまま突っ込んで普通に金が取れた。特にホイリーコーンは格闘で虐殺されなくなったのが大きかったのか、結構余裕で勝利できた。
今調べたらソニックブラスターはロケットとミサイルだけでなく、地雷と機雷も破壊するのね。