CNET Japan Live 2017

ゲームキャラに“命”を与える--AIをフル活用した「ファイナルファンタジーXV」 - (page 2)

 次はキャラクターAI。「ゲーム内の敵キャラクターは人間と構造から異なり、環境や状況から得る感覚を異なる」(三宅氏)ため、環境世界から感覚によって情報を取得し、認識を形成してから意思決定、そして運動の構成によって環境世界に影響を与えるという仕組みが必要だ。この構造を実現するため、ステート(状態)ベース思考とビヘイビア(行動)ベース思考を採用し、キャラクターの意思決定構造を構築している。続いて抽象的な意思決定を行った後、走っているのか、ジャンプしているのかといった状況を状態管理し、場面に応じた行動を制限。そしてダメージを受けた際の反射的行動による身体の状態変化をキャラクターAIに伝える。その結果として描画するアニメーションを制御する「AnimGraph」を使って調整する仕組みだ。

 このキャラクターAI構造における意思決定部分について、三宅氏は「AIとは人工的な存在=身体を環境の中で活動させる」ものと定義し、人々が日常から五感を通じて得た情報(センサー)を思考し、行動に移す(アウトプット)情報ループ「インフォメーションフロー(情報回廊)」をゲーム内で採用。ロボットのエージェント構造のように、キャラクターはその場から逃げれば良いのか、剣を振れば良いのか、魔法を発動すればいいのか、といった意思決定を行い、身体を動かす。これらの仕組みを容易にするため、キャラクターの行動はビヘイビアツリー、意思決定を行うステートマシンと、両者の長所を組み合わせたハイブリッド型AIシステムを構築するのが前述したLuminous Studio内にある「AI Graph Editor」である。

  • ゲーム業界の大半が利用しているというビヘイビア(行動)ツリー。キャラクターの行動は「AI Graph Editor」というツールで指定する

  • 「AI Graph Editor」によるステートマシンとビヘイビアツリーの関係図

  • 敵キャラクターである「ニフル兵」の行動。”戦う“というビヘイビアツリーのノード下にはステートマシンがあるように階層的な入れ子構造「ハイブリッド型ノードフォーマット」を採用している

 ただし、これらの仕組みをすべてのキャラクターに持たせるのは非効率だ。そこで階層型グラフシステムを導入し、データを適切な粒度で階層化する”階層化スケーラビリティ(拡張性)“を採用。その結果として不要な組み合わせを減らし、容易にステートを追加できるため、拡張性が向上すると言う。また、キャラクターの記憶を蓄積するために「ブラックボード(黒板)」を用意した。AI Graph内のみで使用する共有変数空間となる“ローカルブラックボード“と、ゲーム進行など全体に関わる変数を格納する”グローバルブラックボード“を利用し、敵の位置や速度、状態などキャラクターが認識したものを保存する。これらの情報は前述した意思決定などに用いられる。さらに「ニフル兵」のようなモブキャラクターを大量に作成する際、コピー&ペーストせずに量産させるため、部品を共有する”アセット(資産)化“と構造を共有する”オーバーライド“を採用することで、似通ったキャラクターでもわずかに動作が異なり、現実感を醸し出していると言う。

  • キャラクターの記憶を実現する「ブラックボード」

  • 行動や判断といった部品を共有する「アセット化」

  • キャラクターに応じて部分的動作だけを変更する「オーバーライド」

 そして地形解析や目的に応じた点を見つけ出し、パスを計算するナビゲーションAIは、カーナビゲーションシステムなどと同じ「シンプルなAI」(三宅氏)である。一般的には各ノードの評価距離を元に経路を導き出すダイクストラ法を用いるが、ゲームでは、ヒューリスティック距離も計算に加えるA*(スター)法と、歩ける領域を定める"ナビゲーション・メッシュ“を使い、キャラクターの経路を決定する仕組みだ。なお、ナビゲーション・メッシュは社員が帰った夜半に自動生成し、翌朝には開発者が視認して次のプロセスに進むと言う。さらに街中にいるキャラクターなど狭い箇所を移動させる場合は、詳細な経路を指定する”スマート・ウェイポイント“を採用する。

  • ナビゲーションAIの1例。黄色い線はジャンプ移動可能な部分を示し、A*法を用いて経路を判断している

  • 街中のNPCキャラクターなどに動きを与える「スマート・ウェイポイント」

 最近導入されたAI技術として、「戦略位置検出システム」があると言う。一昔前はキャラクターが戦闘中に立つ位置はゲームデザイナーが設定していたが、今はキャラクター自身が地形を把握して最適なポイントを探す動的位置検索が主流だ。古くは2005年のTactical Position Pickingから始まり、スクウェア・エニックスではPQSを本タイトル用に2014年から開発している。対象となる領域にポイント群を自動配置し、目的に合わない条件を削除するフィルタリングを実施。そして残ったポイント群に対する評価式でもっとも高いスコアの点を選択する仕組みだ。このように「自律型AIの採用が進んでいる」(三宅氏)と言う。また、「攻撃モーション解析」「移動モーション解析」もゲームを作る上で重要だと三宅氏は説明する。攻撃モーション解析とは、アニメーションや攻撃衝突から自動的に攻撃距離や角度を計算する仕組みだ。移動モーション解析は旋回性能や停止性能を数値化するもの。スクウェア・エニックスではこれらの数値取得を半自動化し、工数を短縮させている。

  • PQSのデモンストレーション。中央にいる主人公の半径から、出来る限り遠い場所に位置を保持するため自動的に移動する

  • 「攻撃モーション解析」の1例。敵キャラクターであるベヒーモスの攻撃を繰り返し、右手から繰り出す攻撃距離や角度を数値として取得する

  • キャラクターの旋回性能や停止性能を数値化する「移動モーション解析」。旋回半径などを取得し、自然な動きを演出する

 このように高度なAI技術を用いるファイナルファンタジーXVだが、プログラミングで大切なのはデバッグである。スクウェア・エニックスでは、AI Graph Editorと連携して実際の動きを確認する「ビジュアルノードデバッガ」と、変数の変化などを記録するログを見ながら確認する「インゲームデバッグウィンドウ」の2種類で対応。両者とも各種AIが動作=キャラクターが思考する部分は緑色のフレームで表示される。このようにAIはビジネスシーンに限らず、我々が楽しむゲームの世界でも幅広く利用されているのだ。

  • AI Graph Editorの内容と見比べながら、ゲームの動きが分かる「ビジュアルノードデバッガ」

  • ログを見ながら確認する「インゲームデバッグウィンドウ」

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]