ぽかぽかアイルー村の人工知能
ちょっと面白い記事があったのでご紹介。
ゲームのプログラムに関する裏事情で、ちょっと難しいかもしれませんが、興味のある方には面白いかも。
内容を簡単に紹介すると、当初の計画ではアイルー1匹あたり、1500行の条件分岐が必要とされた。作業的、経費的にも無理。
アフォーダンス指向を導入し、アイルーではなく環境側に条件式を分散させた。ということです。
以下、記事より抜粋して個人的にまとめました。
ゲーム開発者イベント「CEDEC 2011」でのセッション。より
http://www.4gamer.net/games/100/G010022/20110906085/
「AIに命を吹き込むには」
PSP用ソフト「モンハン日記 ぽかぽかアイルー村」のAI(人工知能)に施された工夫の解説。
アイルー村 AI開発担当:並木幸介氏
アイルー1匹当たり1500行のAI
目標は、いかに多くのアイルーで賑わっているところを見せられるか。
AIの出番は狩りの場面。
アイルーは、モンスターや新しいアイテムに遭遇するとプレイヤーに行動内容を提案する。
こときAIは「アイルーがどんな提案を出すか」に関わっており,アイルーの個性と周辺状況によって提案内容が変化する。
「アイルーのバリエーションと多様性をどう実現するかが問題だった」並木氏。
アイルーのAI
当初はIF文(条件分岐。もし~なら?という条件にあうかどうかを判定する)でAIを記述したものの、アイルー1匹あたり1500行もの構文が必要になった。
ここで問題が発生。
アイルーのAIはゲームバランスに関わるため,高クオリティが求められる。
複数人のプログラマを投入せざるを得ないが、クオリティにバラツキがある。
もともとアイルー村は少人数で進めるプロジェクトだっために,AI専属のプログラマーを配置のは難しかった。
開発コストの莫大な増加が予想された。
アイテムに選択肢を埋め込む「アフォーダンス指向」
そこで導入されたアフォーダンス指向。
アフォーダンスとは「環境は人間に対して自身をどう扱うかの情報を与えている(人間は無意識に物体をどう扱うかについて解析している)」とする考え方
通常はAIが環境を調べて行動を決定する。
それに対してアイルー村のアフォーダンス指向は、環境側がAIに対し行動を示唆する。
つまり、画面上のモンスターやアイテムに「アイルーはどんなことができるか」というデータ(選択肢)が埋め込まれている。
例えばキノコなら「食べる」「採集する」「投げる」「捨てる」といった具合。
通常のAI = アイルー自身が考える(周辺状況、アイテムで何ができるか)
アフォーダンス指向 = キノコ(周辺状況やアイテム)がアイルーに対し提案(食べる? 採集する? 投げる? 捨てる?)する。
キノコに対して不可能な「虫取り」「木を蹴る」「催眠術」などの選択肢は最初から含まれていないため,無駄を省ける。→条件が簡略化される。
アフォーダンス指向にしたことでAIプログラム量は,アイルー1匹当たり180パターンになり,かなりシュリンクできた。
プログラムの量は減ったが,1500行のAIと同じ動作をする。
実際には,アイルー村は通常のAIとアフォーダンス指向の組み合わせになっており,「提案テーブル」に設定されている提案に対し,「アフォーダンステーブル」が影響を与えることで,プレイヤーに対する最終的な提案が決定される。
「提案テーブル」はアイルーの個性を表し,ハンターなら「攻撃したい」,探検家なら「採掘したい」といった行動の優先度が高い。
「アフォーダンステーブル」は,アイテムやモンスターに対しての選択肢と影響値がまとめられている。
「提案テーブル」の優先度に「アフォーダンステーブル」の影響値が加えられ,最も高いものがプレイヤーに提案される。
「提案テーブル」は,アイルーの職業に応じて行動を提案するため,アイルーごとの個性が表現できている。
「アフォーダンス指向のAIにより,肥大化する条件分岐を制御しつつ,個性的で多様な振る舞いが表現できた」並木氏
もちろん、これはゲームのプログラムのほんの一部なのでしょう。
けど、こんな風にいろいろと工夫されて面白いゲームができてるんですね。