敵AIとビジュアルスクリプティング
経緯
アクションゲームなど敵のAIが必要なケースは多々あります。
その際、FSMやビヘイビアツリーなどといった考え方を用いて実装する方法が一般的だと思います。
そういったアセットが多々あり、ビジュアルスクリプティングでAIを作るということはよく取られる手法です。
私が好きなアクションゲームの Hollow Knight はFSMを実装できるPlaymakerで敵AIを作っているらしく、私もそれに習ってPlaymakerで実装を始めました。
しかし、これが私に合わなくて、採用できなかったのでそのことを書いておきたいと思います。
ビジュアルスクリプティングでAIを作るということ
個人的につらかったのは以下の点です。
敵AIの挙動を考え、プログラムで実装する方法を考えます。
その方法を思いついたあとに、これをPlaymakerで実装するにはどうしたら良いのかさらに考えないといけないのです。
プログラムで普通に実装するならイメージできるのですが、Playmaker上で再現する方法がパッと出てこないということが多々ありました。
Playmakerで敵AIを作る動画などを観ても、なんとなく二度手間というか、思考のロジックが自分に合っていないような気がします。
急がば回れでビジュアルスクリプティングで敵AIを作る環境をちゃんと整えれば最終的な効率が上がるのか?とも思いましたが、私は断念してしまいました。
結果
UnityのFSMの実装でポピュラーな以下のコードが公開されています。
thefuntastic / Unity3d-Finite-State-Machine
敵ごとにこの実装を用いて、敵AIを作ることにしました。
コードベースなのでGitでdiffも見やすいし、ダイレクトに書けるので性に合っていると感じました。