ゲームAI連続セミナー「ゲームAIを読み解く」 第4回 レポート
第4回「Halo2 におけるHFSM(階層型有限状態マシン)」レポート
HaloにおけるFSM
Haloでは、登場するキャラクタAIごとに「まるで生きているかのように行動を選択する」ようなFSMの作成が目指されました。具体的には「知性」「インタラクティブ」「予測不可能」の3つの目標が設定されました。
知性
ここで言う「知性」とは、プレイヤーと同じように振る舞えて、プレイヤーから見てキャラクタAIの意図が明確であることを指します。キャラクタAIに機械的に最適な振る舞いをとらせると、「人間だったらそれはしないなあ」というような、人間のやり方からズレてしまうことがあります。そうではなく、プレイヤーに、「俺でもそうするなあ」と思わせる振る舞いをさせて、キャラクタAIもプレイヤー同様に「知性」を持っているよう、プレイヤーに感じさせようというわけです。FSMは、現在の状態と、きっかけとなるイベント(遷移)に対して、行われる行動(遷移先での実行)を設定するので、開発者が実現したい振る舞いを直接組み込むことができます。結果的に「振る舞いの連鎖」を直接組み込むこともできます。
インタラクティブ
ここで言う「インタラクティブ」とは、プレイヤーや状況に反応して振る舞えることを指します。状況から与えられるさまざまな要因によって生まれる感情の表現、状況が与える限定された知識に基づくバカっぽさ(罠にハメられたり)、プレイヤーを認識してとられる反応などの実現です。特にHaloでは、感情が蓄積され、臨界点を超えたら激しく表出する仕組みが実現されています。例えば、すべての状態から「怒りMAX」イベントによる遷移を作り、遷移先を「凶暴化」状態にすることができるため、脊髄反射的なインタラクションだけでなく、そうしたものの積み重ねによる高次イベントに対する振る舞いを使うことができるようになっています。
予測不可能
ここで言う「予測不可能」とは、ランダムであることではなく、同じような振る舞いが繰り返されないことを指します。FPSなどのアクションが重視されるゲームでは、プレイヤーも含めたゲーム中のキャラクタが、敵を探して攻撃することを繰り返します。大元の行動原則が繰り返しとなっているため、状況が膠着すると、特定の行動パターンを繰り返すことが起きやすくなっています。しかし、まったく同じことが繰り返されるのは、ゲーム性の観点からあまり良いとは言えません。同じことの繰り返しからは刺激が得られないので、つまらなく感じてしまうことが多いからです。だからといって、安易にランダムな要素を入れると、プレイヤーの予測通りに事態が進行しなくなり、プレイヤーがゲームをやりこんで上達しようというモチベーションを下げてしまいます。
Haloでは、プレイヤーが繰り返し行動を嫌う点に注目し、キャラクタAIがプレイヤーに対して反応することを重視して、プレイヤーを起点にすることで繰り返しが表れにくくしています。また、イベントの発生条件として、位置やタイミングが参照されますが、そうした情報をアナログに扱うことで、わずかな差が異なる条件と判断されるようにもしています。この考えをさらに進めれば、認識に誤差が混入する仕組みを取ることもできます。
AIの構築はデザイナの仕事
HeloのFSMの構築では、戦場での抽象的なエリアの概念を持ち込んでいます。このため、レベルデザイナが、マップ上にエリアを設定し、キャラクタの配置を決めます。またFSMについても、イベントやアクションといった部品を作るのは技術者の仕事ですが、キャラクタの振る舞いをイメージしてFSMを組み上げるのはデザイナの仕事です。AIというと、技術者が魔法を使わないと実現しないようなイメージがありますが、Haloでは、その構築のほとんどがデザイナの仕事になっています。
この記事は参考になりましたか?
- ゲームAI連続セミナー「ゲームAIを読み解く」レポート連載記事一覧
-
- ゲームAI連続セミナー「ゲームAIを読み解く」 第4回 レポート
- ゲームAI連続セミナー「ゲームAIを読み解く」 第3回 レポート
- ゲームAI連続セミナー「ゲームAIを読み解く」 第2回 レポート
- この記事の著者
-
長久 勝(ナガク マサル)
1972年1月10日生まれ。京都府出身。1994年龍谷大学理工学部数理情報学科卒業。ゲーム会社に入社。「ワンダースワンゲームプログラミング」「Javaゲームプログラミング」等を執筆。早稲田大学MNC非常勤講師。神楽坂酔っ払い研究所所長。ホームページはhttp://www6.plala.or.jp/mnagaku/。blog「mnagakuのx86_64地獄」も毎日更新中。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
