オススメ機能
Twitter
お気に入り
記事履歴
ランキング
パッケージ
原神公式サイトへ
  • miHoYo
  • 発売日:2020/09/28
  • 価格:未定
読者の評価
76
投稿数:36
レビューを投稿する
準備中
原神
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2021/07/22 17:17

イベント

[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 2021年7月22日,オンライン開催されている世界最大のゲーム開発者会議Game Developers Conference 2021で,miHoYoのLead AI Programmer Shuo Xu氏による「’Genshin Impact’: Building Scalable AI System」と題した講演が行われた。
 「原神」PC/PS5/PS4/iOS/Android)は2020年にリリースされたオープンワールドRPGで,モバイルやPCなどで世界的に人気を博している。Xu氏は,同作のAIシステムに,責任者として3年間関わったという(3年でできたんだ……)。今回の講演では,広大なマップ上で展開するオープンワールド型オンラインゲームで,どのようにAIを構築してきたかが語られた。

画像集#001のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 最初にAIアーキテクチャの解説が行われた。原神では多くのタイプのAIが使われている。人間,野生動物,戦闘中のNPCなどには別々のAIが使用され,リリースの初期段階で200以上があったという。そのため,ゲームデザイナーが効率的にAIを作ることのできるワークフローが求められた。オンラインゲームであるためアップデートも続くことになるので,それらの管理はAIフレームワークの仕事となる。

画像集#002のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 最初に,一般的な方法としてビヘイビアツリーをAIフレームワークに組み込んだのだが,ツリーは膨大なものとなり,さらにサブツリーやたくさんのノードが連なるため,新しいロジックを追加する際にツリーを変更するのは大変で,維持するのは困難だと判断された。
 そこで独自のAIパイプラインが構築された。機能ごとの推論モジュールをまばらにグループ化し,それぞれで更新を行う。次に意思決定ツリーに移行する。これはビヘイビアツリーに似ているが,意思決定だけを行う軽量なものとのことである。それをもとに,スキルを発動したり,移動したりといった行動を行う。その表現形態としてアニメーションを行うわけだが,これはアニメーションシステムに適切なパラメータを渡すことで実行される。これら一連の処理がフレームごとに実行されていく。

 このアーキテクチャを採用することで,機能をモジュールとして開発し,新しいタイプのAIを作る際にそれらのモジュールを組み合わせて使うことができるようになったという。機能的に独立しているので,新しいAI機能モジュールを開発する際にも,ほかの機能に影響を与えることはない。
 これにより個々のNPCに個性と特殊な能力を与えることもできるようになった。ボスキャラなどのユニークな動きも簡単に実現できる。

画像集#003のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 これらをまとめて扱うために開発されたのがKey State Managerだ。これは限定的なステートマシンで,戦闘時などに使われ,バフの状況やそのほかのステータスパラメータの状況で駆動される。例として挙げられたのは,Fire Slimeのものだったが,ゲームデザイナーが状態遷移をエディットしてAIシステムに組み込むことができるという。
 この新しいパイプラインとKey State Managerによって,新たなAIフレームワークが構成されている。

画像集#004のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 原神にはオープンワールドであるがゆえの制約がある。移動にはナビゲーションメッシュが使われているが,リリース時点で70平方kmを超えるマップは,6GBものナビゲーションメッシュが必要になったという。とはいえ,このサイズ自体はとくに問題とはされていかった。モバイル端末でもいまや10GBくらいは扱える時代であり,さらに原神では経路探索をサーバー側で行うので,6GB程度ではまったく問題にならないようだ。

画像集#005のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 スライドで示されたナビゲーションメッシュの例では,多層にわたって3次元構造となったものが示されていたが,構造はかなり複雑だ。これで1平方kmくらいの範囲だという。

画像集#006のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 加えて,街の中には2m幅くらいの狭い通路があちこちにあり,ナビゲーションメッシュの精度も問われる。何度か実験を繰り返し,タイルサイズを128,ボクセルサイズを0.125mにするところに落ち着いたとのことだ。

画像集#007のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 上記のとおり,経路探索はサーバー側で行われ,現在位置と目的地を送れば,経路(もしくは経路がないこと)を返してくれるようになっている。

画像集#008のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 とはいえ,マップ内には動的な障害物も存在する。これに対応するために,接続されたプレイヤーごとに一定のメモリを確保して,それぞれの状況に対応できるようにしているとのことだった。プレイヤーが道をふさぐような岩を取り出した場合,サーバーは更新されたナビゲーションメッシュ用に追加のメモリを確保して,このプレイヤーに対応する。

画像集#009のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか
障害物を置く前のパスと置いたあとのパス
画像集#010のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか 画像集#011のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 このシステムは30人以上のNPCが移動する状態で60fpsで運用されるように設計されていたが,最適化前の段階ではAI処理に2〜3msを要していたという。同時に熱問題にも直面したということだったが,今回の講演ではとくに語られることはなかった。しかし熱が問題になる状況なので,単純にマルチスレッド化で解決するわけにもいかない(処理効率は上がるが熱は増える)。
 そこでAIチームが導入したのがLoD(Level of Deteil)の概念だ。すでに紹介している「Death Stranding」のAI(関連記事)でもLoDが使われていたので,オープンワールドで多くのNPCを扱う場合には必須の技術なのかもしれない。
 さて,原神では3段階のLoD AIが使われている。距離による2段階と戦闘中の1段階だ。さすがに戦闘中はフルで動くようだが,そうでない場合はプレイヤーの周囲でもAI処理は30fpsで行われる。遠い場合は5fpsでアニメーション処理が省略されるようになっている。

画像集#012のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか
画像集#013のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 先ほど単純にはいかないと書いたが,それでもCPUの計算力を引き出すためにマルチスレッド化も行われている。ここではAIモジュールごとにメインスレッドから呼び出される際,ワーカースレッドを立ち上げていく方式が採用された。これでもAI処理はまだ重かったため,なんとか最適化して,フレームごとに2〜3msだったものを0.5msというところまで詰められたという。具体的にどこという話はなかったので,全体的にがんばったようだ。

画像集#014のサムネイル/[GDC 2021]「原神」は広大なマップでどのようにNPCのAIを管理しているのか

 まとめると,広大なオープンワールドでのAIを管理するために,新しいAIフレームワークを作り上げ,膨大な経路探索情報はサーバーでまとめて処理を行い,LoDでの負荷軽減と並行して処理の最適化を進めた結果,あのような規模でのAI処理が実現されているわけだ。人気ゲームを支える技術が紹介された興味深いセッションだった。

「原神」公式サイト

  • 関連タイトル:

    原神

  • 関連タイトル:

    原神

  • 関連タイトル:

    原神

  • 関連タイトル:

    原神

  • 関連タイトル:

    原神

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:07月29日〜07月30日
タイトル評価ランキング
68
2021年01月〜2021年07月