Once a day Furi

ゲームを基礎としてできた人間のブログ

Unityわからん日記 その1「ボスAIってどうすりゃいいのよ」

 とりあえず気軽に始めてみるの巻。Unityでよくわからんなぁって思ったことをそのまま書いていく大長編シリーズになるはずです。やっていこう。

 

 2か月前から初めてのゲームを作っている。ゲーム内容はボスと一対一のタイマン勝負を行うアクションゲームである。ガードブレイク要素を入れて、相手の態勢を崩したところに必殺技を叩き込むまでの駆け引きがある戦いを面白さの軸にしたゲームだ!でも、SEKIROっぽくない・・・?とちょっと怖気づいている。それでも作るけどね!

 このゲーム、基本的な移動操作とか攻撃の実装などは、Unityと偉大なる先人の知識によってそれほど苦労することもなく実装できている。だが、ここで問題になったのが敵のボスAIなのだ。このゲーム、ボスが馬鹿だと致命的に面白くなくなるのではと気づいてしまったのだ。

 とりあえずAIについてググってみる。

thinkit.co.jp

www.slideshare.net

どちらも三宅陽一郎さんがゲームAIの設計思想について丁寧に解説してくださっている。というか、インターネット上のゲームAIの記事に行くと、だいたい三宅陽一郎さんがいます。

edom18.hateblo.jp

こちらのブログではビヘイビアーツリーの実装について書いてくださっています。コードも載っているのはかなり珍しい。とてもありがたい記事です。

 

 色んな記事を参考にした結果、自分はステートベースAIを実装することにしました。プレイヤーのアクションに合わせて、ボスも一つ一つのアクションを臨機応変に変えていく動きを実装するならこれかなと。ビヘイビアー型も良いけど...ビヘイビアーツリーのアセットは...お金がね!ちょっとね!いつか買いたいなぁ。Playmakerでもいいかもしれない。

 そして、これが記事の本題!ステートベースAIならばスクリプトを書かなきゃならんが、どう実装したらいいのか分からんって話なわけですよ!switch文とかで分岐させるか、if文大量に書くのか、そもそもどう設計するのが良いのかなど、実際のところ分からないところが多い。お手本だ...お手本が見たいよ...。ネット上には全く載ってないんですよね。自分でも試しにやってみたけれども、うまいこと動かないんですよね。そもそものC#の知識不足やプログラミング経験の無さが如実に出ている。

ということで、こいつを買うことに

 

実例で学ぶゲームAIプログラミング

実例で学ぶゲームAIプログラミング

 

 これ読んでダメだったら、もう自力で頑張るしかないかなー。いい感じになったらまた記事書きます。ゲームAIの話ってあんまネット上に載ってないからね。なんかしら手助けになれれば良いかなぁ。