見出し画像

【Irisy Aqua】COMの動きを良くしてみる

どうも一週間ぶりです。
Otorakoboです。

今週はCOMの動きを良くするためにAIを改良していました。

インゲームイメージとかはブラッシュアップ中なので、一旦棚上げしております。すんません。

COMのAIですが、Irisy Aquaのコミケ体験版を作っている際に、間に合わなかった部分で、攻撃の仕様が変わっているのにCOMは旧攻撃方法を使ってきたりとかしていました。
プロトROMの仕様変更もまぁまあひと段落してきていると思ったので、COMのロジックにメスを入れました。

●問題点
1)スキル攻撃以外の旧攻撃をする
2)経路探索で迷子になる
3)ドロップしたアイテムを取得しない

この中で、3)のドロップアイテムを取得しない問題を解決しようとしたところ、2)の経路探索で迷子になってしまい、結果1)のスキル攻撃を実行しないという負の循環になっていました。

つまり、原因は大本は一つで。

経路探索で迷子になる

これです。

じゃぁ、なんで迷子になるんじゃいってことなんですが、答えは簡単で、アルゴリズムのAsterの処理負荷が重たいので、500パターンほど検索して目的地にたどり着けなかったら諦めてしまう。
という仕様になっているからです。

近距離の探索であれば500通りも検索すれば十分なんですが、敵が近くに居たりすると探索ルートのコストが上がり、それはそれで迷子になってしまいます。

●解決策
目的地への経路が見つからなかった際には、一旦直線距離で目的地へ向かうようにしました。
そして、目的地へ向かう際にも経路探索を継続し、経路が見つかったら、その経路を採用するように変更しました。
すると、ちゃんと迷子にならずに目的地へたどり着けるようになりました。

ネックとしては直線距離で移動している際は無防備な状態で、敵の攻撃とかを無視して直進してしまいます。
ただ、もし被弾したら回復や生存を優先するロジックがOnになるため、目的地が回復ブロックを参照するようになるので、まぁ破綻しないかなと思いました。

そんなソリューションをCOMに実装したのが↓の動画です。

真ん中の白いタワーをラスキルした人が勝ちですが、序盤は色が足りないので、周囲の赤青緑のタワーから攻略しに行きます。
その際に、他のプレイヤが存在するともろもろ最適と思われる行動を選択し、最終的には一人のCOMが白タワーを破壊してゲーム終了まで実行できました。
良かった。

そろそろAssetBundleを真面目に調査しないといけなさそうなので、来週はAddressableAssetとかを調査してみようと思います。
もちろんインゲームイメージがまとまってくれば、そちらもご紹介しようと思います。

それでは!

いいなと思ったら応援しよう!