sindharta

幻塔戦記グリフォンの AI で使っている Behaviour Tree


こんにちは、クライアントエンジニアの Sindharta Tanuwijaya(シンダルタ タヌイジャヤ)です。

今更ですが、1月の社内の勉強会で、 Behaviour Tree という AI の手法を発表させて頂きました。当時は幻塔戦記グリフォンを開発するのにあたって、1つのフィーチャーを完成させるためにこの機能を作っていましたが、今はいろいろなフィーチャーで使われています。

Behaviour Tree とは思考 AI のアルゴリズムの1つで、比較的に良く知られているステートマシンと目的が似ています。それはゲーム内のオブジェクトをどう考えさせて、行動させることです。ステートマシンも良い手法ですが、 AI が複雑になってくるのにつれて、管理の難しさが倍に増えるデメリットがあります。そこで、 Behaviour Tree を導入してみたわけです。

当日発表したスライドは以下です。

また、自分の発表をさらに分かりやすくするために、動画も作りました。

折角ですので、私が参考にしたリソースも伝えたいと思います。すべて英語ですが。

  1. Introduction to Behavior Trees
  2. Unity 4.x Game AI Programming

ちなみに、 Behave という Behaviour Tree をデザインするための Unity のプラグインはあります。とても良いプラグインですが、様々な面を検討した結果、今回私たちは独自のものを作ることになりました。Behave が持っているエディター機能をはやく見習わないといけないですね。

Behaviour Tree という手法はコンシューマーゲームでは約10年前に導入されていたと思いますが、いよいよ今になってスマートデバイスのゲームに導入してもおかしくはない時代になってきています。スマートデバイスがリッチになってきた証拠です。Aiming でこれからもどんどんリッチなゲームを開発していきたいと思います!

最後にちょっとしたネタがあります。Behaviour も、u なしの Behavior も両方見かけたことがありませんか?実はu なしの Behavior はよく米国で使われているらしく、イギリスなどといった他のところでは Behaviour は正しいそうです。個人的にはu ありの Behaviour が格好よく見えるので、それを選ばせていただきました。