モリカトロン株式会社運営「エンターテインメント×AI」の最新情報をお届けするサイトです。

TAG LIST
機械学習ディープラーニングCGCGへの扉モリカトロンAIラボインタビューGANニューラルネットワーク三宅陽一郎強化学習CEDEC2019スクウェア・エニックス音楽ゲームAIQA深層学習シナリオGDC 2019デバッグボードゲームVFX映画SIGGRAPH遺伝的アルゴリズム不完全情報ゲームVRメタAIキャラクターAIファッションルールベースAIと倫理グーグルDeepMind月刊エンタメAIニュースJSAI2020人工知能学会イベントレポートOpenAIガイスター畳み込みニューラルネットワークロボットビヘイビア・ツリーNVIDIAGDC SummerCEDEC2020モリカトロンマルチエージェントナビゲーションAI小説敵対的生成ネットワークAlphaZeroマイクロソフト中島秀之アートtoioGoogle自動生成研究ディープフェイクCNNメタデータCM倫理Amadeus Code音声認識eSportsシーマン齊藤陽介お知らせ水野勇太サルでもわかる人工知能ワークショップ知識表現IGDAどうぶつしょうぎマシンラーニングクラウド完全情報ゲーム藤澤仁宮路洋一StyleGANプロシージャルスポーツフェイクニュースDARPAALife人工生命オルタナティヴ・マシンサウンドスケープASBSぱいどんTEZUKA2020AI美空ひばり手塚治虫汎用人工知能Electronic ArtsFacebookマーケティングApex LegendsNinjaTensorFlowゲームTENTUPLAYMARVEL Future Fightタイムラプスバスキアブロックチェーン通しプレイ階層型強化学習WANNOpenAI Five竹内将本間翔太馬淵浩希岡島学映像セリア・ホデントUXピクサー認知科学ゲームデザインAdobeLUMINOUS ENGINELuminous Productionsパターン・ランゲージ作曲ちょまどビッグデータ中嶋謙互MicrosoftMicrosoft Azureアストロノーカキャリア模倣学習テストプレイナラティブFPSマルコフ決定過程eスポーツスタンフォード大学パラメータ設計テニスバランス調整レコメンドシステム対話型エージェント協調フィルタリング人狼知能AmazonエージェントシミュレーションロボティクスDota 2ソーシャルゲーム眞鍋和子淡路滋グリムノーツゴティエ・ボエダGautier BoedaJuliusTPRGバーチャル・ヒューマン・エージェントクーガー石井敦茂谷保伯森川幸人成沢理恵マジック・リープMagic Leap Oneノンファンジブルトークン里井大輝GEMS COMPANY初音ミク転移学習デバッギングアニメーションリップシンキングUbisoftUbisoft La Forge北尾まどか将棋ナップサック問題ジェイ・コウガミ音楽ストリーミングSpotifyReplica Studioamuse5Gクラウドゲーミング和田洋一Stadia対話エンジン斎藤由多加シーマン人工知能研究所ゴブレット・ゴブラーズSIGGRAPH 2019ARAIりんなアップルiPhoneカメラAIGraph環世界予期知能ウェイポイントパス検索ドラゴンクエストPAIR画像認識アルスエレクトロニカ2019DeNA逆転オセロニア長谷洋平奥村エルネスト純齋藤精一高橋智隆ロボユニ泉幸典ロボコレ2019ぎゅわんぶらあ自己中心派意思決定モデルウロチョロス理化学研究所教育SIGGRAPH ASIAHTN階層型タスクネットワークLEFT ALIVE長谷川誠Baby Xロバート・ダウニー・Jr.YouTubeSFThe Age of A.I.レコメンデーションソニーテンセントMOBA人事研修mynet.ai人工音声プレイ動画NBAドローン群知能ウィル・ライトシムシティシムピープルレベルデザインSporeデノイズ画像処理GPUCPUGMAITRPGウィザードリィAI Dungeon西川善司サムライスピリッツゼビウスストリートファイター栗原聡山野辺一記大里飛鳥マンガ13フェイズ構造手塚眞不気味の谷Oculus Quest生体情報写真照明山崎陽斗立木創太松井俊浩スパーシャルAIGPT-3GameGANパックマンソサエティ5.0SIGGRAPH 2020DIB-R3D広告

【CEDEC2020】テストプレイや接待プレイができるAI技術でモリカトロンが目指すこと #CEDEC2020

2020.9.10ゲーム

【CEDEC2020】テストプレイや接待プレイができるAI技術でモリカトロンが目指すこと #CEDEC2020

2020年9月2日から9月4日までオンライン開催された国内最大のコンピュータエンターテインメント業界向け技術交流会「CEDEC 2020」にて、モリカトロン株式会社が行った「攻略、接待、変更に強いAIプレイヤー開発のためのアプローチ」というセッションを取材しました。

講演者は、3Dアクションゲームに関するAIを担当したエンジニアの竹内将氏と本間翔太氏、格闘ゲームに関するAIを担当した馬淵浩希氏。また、岡島学氏は3人の登壇者たちとともに共同研究・開発者としてチームに大きく貢献しました。イベントの直前にも取材したとおり、このセッションでは格闘ゲームでユーザーに合わせた手加減をする、いわばゲームの中のAIと、深層強化学習でビデオゲームを学習したAIによるテストプレイなどのQA、すなわち“ゲームの外側”における活用の可能性を検証しています。

【関連記事】完全自動デバッグAIや格闘ゲーム接待AIの実現に向けたモリカトロンの挑戦

すべての開発者がAI技術の恩恵を受けるために

深層強化学習は、囲碁で人間のプロ棋士に勝利した「Alpha」シリーズにも採用されている手法で、完全にランダムな行動を繰り返す状態からスタートしたAIが、成功体験を積み重ねることで徐々に勝利のパターンを覚えていくというアルゴリズムです。その強みは、ゲーム情報と各行動の報酬さえ決めれば、人間が詳細なルールを書かずとも、AIが報酬を最大化する行動をとるように成長していく点にあります。

これまで囲碁や将棋でプロ棋士を凌駕しただけでなく、「ブロック崩し」で人間を超えるスコアを記録したり、『StarCraft II』(2010年、ブリザード・エンターテイメント)や『Dota 2』(2013年、Valve Corporation)といった不完全情報ゲームにおいても世界のトッププレイヤーを破ったりと、深層強化学習の研究は世界中で加速し続けており、多くの分野において着実な成果を残しています。

同時に、ただひたすらに人間に勝る強さのみを追求するのではなく、この技術を実際のゲーム開発に役立てようとする研究も、多くの企業が挑み続けている課題です。開発中のゲームをAIが攻略できるようになれば、テストプレイやデバッグといったQA(品質管理)に関わる業務を代行してもらえるかもしれません。また、対戦ゲームで適度に手加減できるAIプレイヤーが実現できれば、人間の良き遊び相手になってくれるかもしれません。

しかし、そうした夢を叶えるためには、まだまだ埋めるべき溝があるといいます。まず、研究用の環境で古いゲームが攻略できたとしても、最新の商用ゲームに対応できなければゲーム開発者にとって恩恵はありません。また、『StarCraft II』や『Dota 2』を使った研究では世界的な大企業が莫大な資金を投入しており、それと同等の計算コストはほとんどの企業にとって非現実的です。加えて、「Unity」や「Unreal Engine 4」(以下、UE4)のように広く普及しているゲームエンジンで使える技術でなくてはなりません。

テストプレイを丸投げできるAIを目指して

これらの課題と向き合う第一歩としてモリカトロンが取り組んでいるのが、3Dアクションゲームを通しプレイできるAIの開発です。異なる職種の多人数が同時並行で進めるゲーム開発では、プログラムに日々大量の変更が発生します。そのたびに一通りテストプレイして、不具合がないか確認しなければなりません。これをAIで自動化するのが研究の狙いです。

ゲーム内では、AIが武器を取得したり、ステージ攻略に必要なギミックを作動させたり、敵を倒したりするたびに異なる数値の報酬が与えられます。なお、敵オブジェクトの検出にはレイキャストを用いています。手始めにプリセットのアルゴリズムを使ってデモデータなしで3日間学習させたところ、最初の報酬である武器の取得にすら到達できなかったといいます。また、プリセットに搭載されている教師あり学習と逆強化学習を利用した模倣学習を利用してもでもクリアには至らなかったようです。

そこでDQNに模倣学習を組み合わせた手法「DQfD(Deep Q-Learning from Demonstrations)」を採用。これはデモデータと過去の自分の行動の両方をサンプルとして学習させるアルゴリズムです。まず、お手本となる人間のデモプレイをもとに100万ステップの事前学習を実行しました。また、デモデータにおける行動を優先するようにlossを設定することで、人間によるテストプレイの動きをある程度再現しています。セッションにて公開された検証映像では、制限時間として設定された10分以内にAIが見事にボス戦を含めたサンプルステージを攻略できました。

模倣学習を使ったアプローチの最大の利点は、近年の3Dアクションゲームで顕著に見られる広大なマップを正しい手順で攻略できることです。完全なランダム行動では報酬が得られないような状況に柔軟に対応でき、探索数の削減により学習時間も大幅に短縮できます。また、キー操作の完全なコピーではないので、動く敵などのランダム要素や遅延にも強いといいます。さらに、数回のデバッグプレイをスケール化することも可能で、再現性の低いバグの検出にも役立つそうです。

一方で、大幅な仕様変更のたびにデモデータを作り直さなければならないという大きなデメリットもあります。変更の頻度によっては、デモデータの作成自体が困難になることも想定されるでしょう。そこで次に検証されたのが、デモプレイを一切使用しない階層型強化学習によるアプローチです。

AIは3Dアクションゲームを独学で覚えられるか

初期の検証にて、模倣なし学習で最初の報酬にすらたどり着けなかった原因は、ランダムな行動を繰り返すにはステージがあまりに広すぎることや、最初の報酬となる武器の位置が遠すぎるからでした。現実的な学習コストでクリアを目指すには、どうしても状況にある程度適したゲームプレイが求められます。

階層型強化学習は、意思決定を下位方策と上位方策に分けるアルゴリズムで、下位方策がキャラクターの移動や攻撃といったプリミティブな行動の選択を担うのに対して、上位方策はサブタスクとなる下位方策の選択を担当します。下位方策を使い回せるため汎化性能が高く、プロジェクトの仕様変更にも柔軟に対応できるという利点があります。

今回の検証では、「ナビゲーションモジュール」と「攻撃方策」という独立性の高いサブモジュールを用意。前者にはナビゲーションメッシュを利用したパス検索によるステージ内の移動を学習させ、後者には一定間隔でランダムな箇所に出現するオブジェクトを使って攻撃を学習させています。このように専用のタスクを個別に学習した各モジュールを上位の「ステージ方策」が状況にあわせて使い分けることで、ゲームクリアにつながる行動だけを選択してステージを探索できるという仕組みです。

このようなデモデータを使用しない学習には、現実的な学習コストで広大なマップを探索できることに加えて、デモデータの作成なしで再学習できるため継続的インテグレーションと連携できるという大きな利点があります。ゲーム固有の機能別にエンジニアリングを要するというデメリットはあるものの、実用化できれば完全な自動デバッグの実現も期待できそうです。しかし、現状では制限時間内のステージクリアは難しく、実際のゲーム開発に役立つAIへ成長するまでの道のりはまだまだ険しい印象を受けました。

格闘ゲームでAIにいろんな戦い方を教える方法

セッションの後半では、格闘ゲームを学習させたAIを使って人間相手に接待プレイは可能かどうかが検証されました。AIが人間の良き遊び相手になれない最大の理由は、強化学習によって対戦ゲームをマスターしたAIがほとんどの人間プレイヤーにとって強すぎるからです。このセッションでは、相手を楽しませることを接待プレイと定義しています。これは初心者から上級者まで幅広いプレイヤーを相手に、自分より格下だと思わせない強さで戦えて、かつ自然な方法で手加減することで白熱した試合が演出できるAIを意味します。

今回の検証には、UE4で作成された「Fighting Games Template Project」という、読んで字の如く2D格闘ゲームのテンプレートプロジェクトが使用されています。UE4にはUnityのように学習用のプラグインは存在しないため、PythonがTCPでUE4のゲームと通信する構成を自前で用意したということです。AIの学習はすべてPython側で処理しているほか、学習時間を短縮するために分散学習を行っているとのことでした。

強化学習で格闘ゲームに強いAIを作る際の問題点として、学習時の対戦相手によって学習結果に差が生まれることが挙げられます。例えば、下段蹴りを多用する相手に対しては下段ガードや飛び蹴りを多用する戦い方を学習しやすく、投げを多用する相手の場合は投げ抜けしやすいように同じく投げを多用したり、距離をとったりするような戦い方を学習しやすいとのこと。そのため、対戦相手が対抗策を講じれば一切勝てなくなってしまいます。

もうひとつの問題点は、報酬の与え方によって戦い方に差が生まれることです。例えば、時間経過にペナルティを課した場合、早く決着をつけようと攻撃的な戦い方を学習しやすく、攻撃の空振りにペナルティを課した場合、確実に攻撃をヒットさせようとカウンター重視の戦い方を学習しやすくなってしまいます。どのスタイルを採用するべきかという課題です。

前者の問題は、複数の戦い方を同時に学習することで、自己対戦における対戦相手を一般化するという手法で解決しています。例えば、攻撃型と防御型といった報酬設計が異なる複数のエージェントを用意し、それぞれランダムに行動するAIと平行して戦わせます。この対戦を繰り返してエージェントがある程度まで強くなったら、今度はそれらを対戦候補としてリストに追加します。次に対戦相手として選ばれるのは、攻撃型か防御型どちらかを学習した過去の自分自身です。このループを繰り返すことで、特定のスタイルに縛られない強いAIを育成できるというわけです。

今度は、このように自己対戦によって作成したエージェントを下位方策と定義し、それらを状況にあわせて使い分けるよう上位方策となるエージェントに学習させます。攻撃型や防御型といった下位方策が兵士だとすれば、上位方策は彼らに命令を下す軍師のような存在です。下位方策がフレーム単位でパンチやキックといった行動を決定し、上位方策は秒単位で攻撃型や防御型といった戦略を決定します。こうした戦略の統合によって、後者の問題を解決しています。

プレイヤーの腕前に合わせて手加減してくれるAI

ここまでの検証で十分に強いAIは完成しました。このAIに手加減という行為を学習させるのが本題です。これには3つの方法が考案されています。まず、もっともシンプルで確実な効果が得られるのが、AIの反応速度を遅らせることです。AIにゲーム情報を与えるまでの時間を遅延させることで、AIは理想的なタイミングで攻撃や防御を行えなくなります。学習済みのニューラルネットワークに手を加える必要がないという利点もあります。

次に、下位方策の性能を落とすという方法が挙げられます。下位方策に上記の学習過程のようなニューラルネットワークを用いた場合、学習途中のエージェントを順次保存することで手加減の際に利用します。下位方策にルールベースAIを採用した場合、手加減時に使用するルールベースAIそのものを変更するだけで済みます。こうすることで各々の下位方策による行動が最適化できず、結果としてAIが弱体化するというわけです。

最後の手法は、司令塔である上位方策の性能を落とすことです。ここではWANN(Weight Agnostic Neural Networkの略)というアルゴリズムを利用しています。「重みを無視できるニューラルネットワーク」という名前のとおり、ニューラルネットワークの構造のみを変化させることで学習させる手法です。これにより、重みひとつで戦略の最適度をリアルタイムで連続的に制御できるようになります。結果、大局的な戦略においてAIは弱体化します。

今回の手法における最大のメリットは、カスタマイズ性の高さだといいます。学習後に調整が可能で、防御が苦手といった特定の弱点を作りやすいことから、ゲーム開発者の意図を反映させる余地が残されています。また、上位方策がランダムになっても、下位方策は経験から最適な行動を取ろうとするため、手加減がプレイヤーに伝わるほど不自然な動きになり辛いということでした。なお、上位方策や下位方策はルールベースにも置き換えられます。

共同研究者の岡島氏を相手にした接待プレイのデモンストレーションでは、お互いの体力差が可能な限り少なくなるよう見事に立ち回るAIが披露されました。序盤はAIの手加減を少なめに調整することで手強い相手を演出し、終盤になるほど多めに手加減することで人間側が勝ちやすいように戦ってくれます。なお、上位方策の性能に関してはプレイヤーの体力のみを参照して、接待相手がピンチになるほど性能を落とすように設計したということです。

今後の課題として、下位方策の組み合わせによってAIの性格を表現する方法を模索したいとのこと。また、より幅広いプレイヤーの接待に対応するためには、さらに強いAIを作成する必要があります。加えて、複数のニューラルネットワークを組み合わせた構成では学習コストが高くなってしまうので、分散学習以外の方法による学習時間の短縮も考えているそうです。もっとも重要なのは、本当の意味で接待プレイと呼べるようになるにはまだまだ検証が足りないということです。世がコロナ禍という状況になければ、多くの人にプレイしてもらい、統計データを取りたかったということでした。

AI技術が大衆化する将来を見据えて

今回、モリカトロンは3Dアクションゲームを通しプレイできるAIと、格闘ゲームを手加減しながらプレイできるAIの開発をとおして、AI技術を実際のゲーム開発に役立てる上で埋めるべき溝について検証しました。研究に使われたUnityとUE4は大企業からインディーズまで誰でも利用でき、開発規模に関わらず多くのゲームに使用されています。

まだ学習コストやアルゴリズムに改良の余地はあるとはいえ、モリカトロンの研究は最近の商用ゲームに近い環境でAI技術が役に立つ可能性を示しています。また、同社が使用したマシンは、Intel core i9-9900K 3.6GHz(64GB)のCPUに、NVIDIA TITAN RTX(24GB)のGPUと、大企業でなくとも十分負担できるスペックに収まっています。

ゲームの外側におけるAI技術の活用は、例年のCEDECで多くの企業が研究課題に選んでいる次世代への大きな一歩です。いまや誰もが汎用的なゲームエンジンを手に、個人規模でもゲーム開発を行える時代。これまで政府や大企業が莫大な予算を投入して発展させてきたAI技術が、近い将来にはゲームエンジン同様にもっと身近なツールとして広く普及するかもしれません。モリカトロンによる検証のような試みは、そうしたAI技術の大衆化を加速させる原動力ともいえるでしょう。

Writer:Ritsuko Kawai / 河合律子

RELATED ARTICLE関連記事

【CEDEC2019】人工知能が敵キャラを育てる! ディープラーニングを使った次世代のゲームAI開発

2019.9.19ゲーム

【CEDEC2019】人工知能が敵キャラを育てる! ディープラーニングを使った次...

【GDC 2019】ソーシャルゲームのバランス調整に遺伝的アルゴリズムを応用する

2019.4.17ゲーム

【GDC 2019】ソーシャルゲームのバランス調整に遺伝的アルゴリズムを応用する

【JSAI2020】AIによるRPG自動生成技術はどこまで進歩したか?

2020.6.29ゲーム

【JSAI2020】AIによるRPG自動生成技術はどこまで進歩したか?

RANKING注目の記事はこちら