イベント
[CEDEC 2020]フロム・ソフトウェアの研究開発部署が自社タイトルからAI実験場を作り,検証を成功させるまでを紹介したセッションをレポート
このセッションでは,フロム・ソフトウェア R&Dセクションのヘン・ジャンフィリップ氏によって,ゲームデベロッパの研究開発部署(R&D)がゲームAIの研究をする際に乗り越えるべきハードルと,そのハードルを乗り越えるための取り組み,そして開発用AI研究への適用例や展望などが披露された。
研究開発部署がゲームAIを研究する際に生じるハードル
R&Dは,基本的にゲームの開発に直接関わらず,主にライブラリやツールなどの開発,利用できそうな技術の調査,調査した技術の研究を行っている。とくにフロム・ソフトウェアのR&Dは,ゲームに導入する前提の工夫や取り組みを重要視しているとのこと。
それらの中には,当然ゲームAIの研究も含まれる。ゲームにおけるAIの役割は,NPCの操作やデバッグ,ゲーム全体の制御(メタ),自動調整,環境分析などがある。またAIには,スクリプトやビヘイビアツリー,ステートマシンといった古典的なモデルから,近年注目を集めている強化学習や機械学習のようなモデルがある。
R&DでゲームAIを研究しようとすると,「AI実験場」が必要になる。その理由は,AIを研究するには簡単に試行錯誤を繰り返せて,かつ汎用的に多くの手法を検証できる環境が必要不可欠だからだ。
しかし,R&Dが研究を目的として実験環境を用意すると,「実験に都合のいい環境」や「ミニゲームのような環境」になりがちになってしまうとのこと。これらの環境は扱いやすく,一見問題ないかのように思えるが,実はゲームAIをゲームに導入する際に問題が発生する。
すなわち,都合のいい環境でしかゲームAIを検証していないため,ゲームのような複雑で制約のある環境では想定外の問題が発生するのだ。そうなるとゲームAIを導入するために多大なコストがかかってしまう。そして,それはゲーム開発の現場も分かっているので気軽に試すという話にはならない。
仮にゲームAIの導入を押し進めたとしても問題が多発することに変わりはないし,また問題を解決しきれなかった場合のリスクも大きくなってしまう。
そうした失敗を避けるためには,ゲーム開発時の問題と制約を考慮し,しかも開発に適用可能であることが分かりやすい,ゲームと近い環境の実践的なAIの実験場が必要になる。
しかし,R&Dが実践的なAI実験場を用意するのは困難だ。と言うのも冒頭に記したとおり,R&Dはゲーム開発を専門にしていないので,ゲームに近い環境を開発するノウハウがないからである。無理に環境を作ろうとすると膨大な工数が必要になるのは明白であり,R&D本来の業務と並行して進めるのは現実的ではない。
R&Dで実践的なAI実験場を用意するほかの案としては,「既製の環境を利用する」「ゲーム開発に参加する」の2つが上がった。
既製のAI環境には「ALE」(Arcade Learning Environment)や「ML-Agents」,あるいはAI用のAPIを提供している「Starcraft 2」などがある。これらの環境を利用できればR&Dで独自に開発する必要はないが,環境がオープン化されていない,オープン化されたとしても権利上使用できない,使用できてもミニゲームかレトロゲームという問題が発生した。また近年登場したAI環境のほとんどは強化学習の研究用で,そのほかのモデルの検証はやりにくくなっている。
もう1つの案であるゲーム開発への参加は,AI関連機能を組みつつ開発中のゲームでAIの実験や検証をするというもので,R&Dが独自にAI環境を作る必要がなく,かつ実践的な環境を得られる。
しかしゲーム開発に関わると開発作業が優先されるため,研究を進める時間が取れなくなる。また開発中のゲームはバグがあったり,仕様の変更で環境が変化したりと安定した環境が望めない。結果,開発中のゲームでAI研究を行うのは現実的ではないとの判断が下された。
どうやってハードルを乗り越えたか
結局R&Dは,発売済みの自社ゲームをAI研究の実験場として採用することにした。発売済みのゲームなら独自に作る必要がなく,実践的で安定した環境が得られ,しかもR&Dがやりたい研究を優先できるからである。
次はAI実験場にふさわしいゲームの選出である。選出の基準は「できるだけ多くの役割のAIを簡単に研究できること」で,より多くのシチュエーションを作成できるほうが望ましい。その基準に沿って候補として挙がったのは,2016年発売の「DARK SOULS III」と2013年発売の「ARMORED CORE VERDICT DAY」(以下,「ACVD」)の2本だ。
比較検討の結果,「移動エリア」や「戦闘距離」などほとんどの項目で選択肢が多く,自由度が高い「ACVD」がAI実験場に選ばれた。なお「ACVD」にはPC版がないため,AIの実験に必要な部分だけをPC用に移植したとのこと。
加えて「ACVD」は,ビヘイビアツリーや強化学習など対応していないAIモデルが多く,拡張する必要があった。
しかし「ACVD」のAI設計はゲーム環境とAIが密接な状態にあり,そのままだと拡張が難しい。しかもコードが複雑だったので,下手にいじると予想外のバグや不具合が起きる可能性があった。
そこでゲームからAIを切り離すことになったのだが,これには「何かの研究をするときに『ACVD』の事情を無視できる」「ほかのゲームへのAIの移植を簡単にする」「新たなAIモデルにも対応できる」というメリットもあった。
具体的に何をやったかというと,もともと「ACVD」にあったAI関連の実装を中間層に置き換えた。この中間層には,もとの実装の持つ機能がほとんど残されており,そこに外部のAIが接続されている。これにより,ゲーム環境からはもとのAI実装と同じやり取りに見えるが,実際のAIは汎用的なインタフェースとやり取りすることになる。
また中間層は,AIだけでなくゲーム機のコントローラも接続できるようになっている。これはデバッグを視野に入れた仕様だが,通常はAIが操作するキャラクターを人間が直接操作することができると何かと便利とのこと。
さらにこうした過程の中で,ゲーム環境とAIでは扱いやすいデータが違うことが判明した。例えばキャラクターの位置などの座標は,ゲーム環境ではそのゲームの世界のどこにいるのかを示す「ワールド座標」が扱いやすいのに対し,AIは自身から見てどのくらいの位置にいるのかを示す「ローカル座標」が扱いやすい。
そこで中間層には,このような相違を相互変換する機能を持たせ,ゲーム環境やAIで変換する必要がなくなるようにした。
研究への適応例
出来上がったAI実験場で行われた検証の中から,セッションではNPC操作の事例が2つ紹介された。まず古典的なAIモデル(スクリプト,ビヘイビアツリー,ステートマシン)の事例では,R&D内で開催した大会が取り上げられた。
これは,R&Dスタッフ全員がプログラミング言語「Lua」を使ってそれぞれAIを作成し,それらを用いて総当たり戦をするというもの。これは対戦関連データの収集を目的としたもので,結果や各試合におけるHPの減り方などの情報なども可視化された。
強化学習の事例では,まず考慮すべき強化学習の2つの特徴が説明された。1つめの特徴は,強化学習は「最先端のアルゴリズムに自力で対応することが難しい」こと。具体的には規模が大きい,実装内の数学を間違いやすい,最適化をしないと学習に莫大な時間がかかってしまう,デバッグしにくいというのが理由だ。
2つめの特徴は,「リアルタイムで大量のデータが必要」なこと。これはほかの機械学習も同じだが,とくに強化学習では学習しながらデータを収集する必要があり,検証する側としては収集時間を妥当な範囲に収めたい思いがあるという。
それらの特徴にどうやって対策したかというと,まず最先端アルゴリズムの自力対応に関しては,プログラミング言語「Python」ですでに実装されている学習アルゴリズムを使用した。これは主流の学習アルゴリズムの多くがPythonでオープンソース化されていることと,機械学習向けのライブラリのほとんどがPythonに対応していることが理由である。
しかし今度はC++で作られたゲームと,Pythonの学習アルゴリズムをどう接続するのかという問題が発生する。そこでゲームと学習アルゴリズムの間に,Pythonの強化学習ツールキット「Gym」とネットワーク通信ライブラリ「gRPC」を挟むことでその問題を解決した。
リアルタイムで大量なデータが必要という特徴には,強化学習の並列実行でスケールアップを図り,学習に不要な描画を無効化することで計算コストを削減。これらにより,一般的なスペックのPCでも,妥当な時間の強化学習を回せるようになったそうだ。
これで主立った問題は解決できたが,Gymは学習中の環境パラメータ変更に対応しておらず,学習中のマップ変更などができない。また学習AIと学習AIを対戦させる,対戦型学習にも対応していない。そこでインスタンス管理サーバーを自前で設け,これらの問題を解決していった。
結果,Core i7-8700とGeForce GTX 1060を搭載したPC,並列実行のインスタンス数128という環境で,約12時間で強化学習の動作確認ができたという。
ヘン氏は今後,こうしたAIの研究を「ACVD」以外のゲームでも行いたいと考えているとのこと。またデバッグAIなど,より多くの役割のAIも研究したいという。
もちろん今後研究が本格化し,実用的なAIが出来上がったら,フロム・ソフトウェアのゲームに組み込むことも考えているとして,ヘン氏はセッションをまとめた。
CEDEC 2020公式サイト
4Gamer「CEDEC 2020」掲載記事一覧
- 関連タイトル:
ARMORED CORE VERDICT DAY
- 関連タイトル:
ARMORED CORE VERDICT DAY
- この記事のURL:
キーワード
(C)2013 NAMCO BANDAI Games Inc. (C)1997-2013 FromSoftware, Inc. All rights reserved.
(C)2013 NAMCO BANDAI Games Inc. (C)1997-2013 FromSoftware, Inc. All rights reserved.
- ARMORED CORE VERDICT DAY(アーマード・コア ヴァーディクトデイ)(通常版)(数量限定特典 【ARMORED CORE V キャラクター スペシャルCOMボイスセット】 DLC同梱)
- ビデオゲーム
- 発売日:2013/09/26
- 価格:¥8,800円(Amazon) / 11258円(Yahoo)