IGDA日本は、株式会社フロム・ソフトウェアの協力、日本デジタルゲーム学会(DiGRA JAPAN)の後援の下、6月30日(土)に東京大学本郷キャンパス工学部新2号館(東京都文京区)にて、ゲームAI連続セミナー「ゲームAIを読み解く」の第4回「Halo2におけるHFSM」を開催しました。本セミナーのコーディネータを務めました筆者がレポートをお届けします。
なお、本連続セミナーの概要などについては過去のセミナーレポートをご覧ください。
過去のセミナーレポート
- 第1回 「KillzoneにおけるNPCの動的な制御方法」 レポート
- 第2回 「F.E.A.R.におけるゴール指向型アクションプランニング」 レポート
- 第3回 「Chrome Hounds におけるチームAI」レポート
Halo2におけるHFSM
第4回は「Halo2におけるHFSM(Hierarchical Finite State Machines、階層型有限状態マシン)」と題して、FSMによるHaloのAI実装と、HFSMによるHalo2のAI実装を取り上げました。システムの挙動を記述する汎用的な手法であるFSMの導入によって、ゲームAIの実装がどのように行われるのか、開発者や開発工程にどのような影響があるのか、を考えました。
第3回まで取り上げてきたテーマでは、特定のAI技術を導入することで、どのように特別な機能を実現するかを考えてきました。今回は少し切り口を変え、ゲームAIの実現にFSMを導入することで、どのようなゲームAIの枠組みが実現されるかを考えてみました。HaloやHalo2がFSMを用いて特定の「判断」機能を実現していることは確かです。しかし、それだけに止まらず、この事例を拡大解釈することで、ゲームAIを作るための枠組みについて考えることができます。
FSMとは
FSMとは、日本語に訳すと「有限状態マシン」となります。これは、有限個の状態が、有限個の遷移ルールによって結ばれた、システムの挙動を状態遷移で表現するモデルです。日本では「有限オートマトン」と言った方がなじみがあるでしょう。このモデルは、日本の多くの教育機関で「有限オートマトン」として教えられています。
一般に、このモデルを表現するには「状態遷移図」と呼ばれる図が使われます。この図を標準化したのが、UMLにおける「ステートチャート」です。
状態遷移図では、「今の状態は『見渡す』、で、イベント『対象発見』が発生したら、『追跡』状態に遷移」とシステムの挙動を追うことができ、図を解釈すること自体には、難しい知識を必要としません。
その一方、表現されるFSMモデル自体は「有限オートマトン」で1冊の教科書が書けるぐらい、数学的にも厳密に扱えるようになっており、ソフトウェアとして実装することが容易です。