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

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

【CEDEC2020】メタAIを発展させるパターン・ランゲージからデザインパターンへの応用

2020.9.18ゲーム

【CEDEC2020】メタAIを発展させるパターン・ランゲージからデザインパターンへの応用

スクウェア・エニックス テクノロジー推進部の水野勇太氏は、AIテクニカルゲームデザイナーとして、メタAIを専門に研究を続けています。CEDEC2020のセッション「ゲームデザインにおけるAI活用のための「メタAIデザインパターン」―基本15パターン―」ではメタAIのさまざまなデザインパターンを示し、研究を発展させる礎となるビジョンを示しました。これはメタAIの実装例がまだ少なく作り方が明確ではないという課題を解決するための試みです。

メタAIとは何か

メタAIはゲームAIの一種で、プレイヤーの状況を踏まえて最適な状態にゲームを変化させる役割を果たすためのものです。古くは『パックマン』(1980年、ナムコ)や『ゼビウス』(1983年、ナムコ)でプレイヤーの反応やスキルに応じて敵キャラクターの動きやゲームの難易度を変える仕組みからスタートしており、スクウェア・エニックスのAI研究チームが関連研究を進めているAI分野のひとつです。

3つのゲームAI。キャラクターAI=キャラクターの頭の中、ナビゲーションAI=移動をアシストする、メタAI=ゲームの世界を最適な状態にする

ゲームの世界を飛び出したプロジェクトも生まれています。2019年にはスクウェア・エニックスとオムロンによる共同研究で、卓球ロボット「フォルフェウス」(第6世代)へメタAI機能を搭載し、さまざまなバイタルデータをもとにプレイヤーのモチベーションを高めるフィードバックが行われました。

メタAIを実装することによって、プレイヤーの行動を分析して最適なゲーム展開を考え、ゲームを変化させるなど個々のプレイヤーに対する個別の対応が可能となります。いわばゲームデザイナーあるいはゲームマスターをゲームの中に実装するようなもので、ビデオゲームのオープンワールド化が進むなか今後さらなる発展が期待されています。

では、メタAIはゲーム世界とどのような情報のやり取りをするのでしょうか。水野氏らが提示するメタAIの汎用アーキテクチャは次のとおりです。

メタAIの汎用アーキテクチャ

ゲームワールドからメタAIがセンサーでゲームの情報を取り、その情報をワールドアナライザーで分析します。その分析結果をもとにどのようにゲームを変えるかをゲームメーカーで考え、具体的にどのパラメーターをどれくらい変化させるかをパラメータージェネレーターが計算するという流れです。ここで計算されたパラメーターをエフェクターを通してゲームワールドの変化可能な場所、インタラクションスペースにフィードバックさせます。ここでポイントとなるのは「ゲームワールドの中にプレイヤーもふくまれている」ということです。

キャラクターAIとメタAI

例えばキャラクターAIは剣を持っている時に敵が近ければ持っている剣で敵を攻撃しようと考えて、その運動を生成します。一方、メタAIはワールドアナライザーがどのようなゲーム状況かを分析し、ゲームをどう変化させるかを考えてパラメータを変化させます。ワールドアナライザーはキャラクターAIでいう「認識の形成」、ゲームメーカーは「意思決定」、パラメータージェネレーターは「運動の構成」に相当します。

水野氏は、メタAIとゲームデザインとの兼ね合いを次のように考察します。

挑戦による能力の評価に主眼が置かれているゲームの場合は、メタAIが入るとその基準がブレることになるため好ましくないかもしれません。一方、能力の評価に主眼が置かれない娯楽として楽しむゲームの場合は、メタAIが最適な体験を提供してくれるので好ましいと言えるでしょう。つまり、そのゲームをどのようにプレイするのかによってメタAI導入の向き不向きが変わるということです。(水野勇太氏)

メタAIは必ずしもすべてのゲームに有効とは限りません。こうした理解をエンジニアとゲームデザイナー双方が共有し、自分たちが作ろうとしているゲームのどこにメタAIが有効なのかを見極めることが重要です。そのためには、ゲームデザインという観点からゲームにどのような機能が何のために入っているかを分析する必要があります。

メタAIとゲームデザイン

水野氏は、さまざまなゲームにおいて、それぞれのゲーム機能が何のために入っているのかを分析しました。

何のための機能なのか

難易度を調整するための機能や難易度の”波”を作るための機能であったり、あるいは体験の濃淡をコントロールすることでプレイヤーの飽きを防止するといった機能は、「○○のために○○に基づいて、○○を調整する」という形に変換できます。これにより前項で見たメタAIのアーキテクチャのワールドアナライザーとゲームメーカー、パラメータジェネレーターに対応させることが可能です。例えば、「不満感軽減のためにプレイヤースキルに基づいて難度を調整する」「没入感向上のためにNPCの行動に基づいてゲーム環境を調整する」といったように。「何のための機能なのか」はゲームメーカーのプランの中身、「何に基づくのか」はアナライザーの実際に調査する項目、そして「何を調整するのか」がパラメータジェネレーターの具体的な数字データになります。

一方、水野氏は過去のゲームタイトルにおけるメタAI的な機能についても分析しています。次の図は、各ゲームタイトルごとにワールドアナライザーが何を分析しているのか、ゲームメーカーが何を変化させようとしているのか、パラメータジェネレーターが実際に何を変化させているのかを示したものです。

各ゲームのメタAI要素

何を分析するのかという分析対象がアナライザーに、、なぜその機能が必要なのかという目的がゲームメーカーに、実際に何を変えるかという調整の対象がパラメータジェネレーターに入っていることが分かります。つまり、それぞれのゲームは目的を達成するためにアナライザーの項目を分析し、パラメータージェネレーターの項目を変化させるというメタAIを実装していると言えます。

このように分解して考えてみることで、メタAI導入の検討がより具体的になります。さらに、水野氏がそこで提案するのがパターン・ランゲージです。なぜならビデオゲームへのAIの実装においては、AI側のエンジニアだけではなくゲームの開発エンジニアやゲームデザイナーとのコミュニケーションも重要になってくるからです。

パターン・ランゲージはもともと建築の概念で、建築家であるクリストファー・アレグザンダーが1970年代に提案したものです。現実のさまざまな状況(質)をとらえ、その普遍性を共有して活用するために、暗黙知や実践によるノウハウを共有する仕組みとして、建築以外にも組織マネジメント、あるいはソフトウェア開発などにも取り入れられています。

つまり、ここで水野氏が提唱しているのは「エンジニアとゲームデザイナーの共通言語としてメタAIのためのパターン・ランゲージを考えてみよう」ということです。

パターン・ランゲージとデザインパターン

建築において、なぜパターン・ランゲージが生まれたのか。その理由を水野氏は、1970年代当時の建築が固定的な開発計画に従う形でなされ、基本的な課題を解決できない状態に陥っていたからだと解説します。有機的な秩序、全体性を創造するためにアレグザンダー等は253種のパターンを提示し、パターン・ランゲージによる課題解決を目指したのです。

例えば「手にし得る緑」(手近な緑)と名付けられたパターンは、人々が開放的な緑地を必要とするという前提に基づいています。しかし人がいる場所から3分以上離れていると距離が必要性を圧倒する、つまり3分以上離れた緑地ではダメであるという問題に対して、すべての家や職場から徒歩3分(750フィート≒229メートル)以内に開放的な緑地を作ること、少なくとも面積60,000平方フィート(≒5575平方メートル)、​最も狭い部分で幅員150フィート(≒46メートル)の緑地を作ることが解決策となります。

こうしたフレームで考えることは、あらゆる街に適用できる普遍性を持ちます。どの街、どの地域であっても、この解決法を使って「人にとって快適な緑を提供する」ことができるというわけです。例えば、街よりも規模が小さな大学、大型のショッピングモールにも適用できるでしょう。

パターン・ランゲージは、利用者自身が「何が必要か」を一番知っているにもかかわらず、当時の固定された開発計画による建築ではそれが置いてきぼりにされている状況に対し、利用者自身が参加する計画を作り上げるべきだという思想から始まっています。ここで大切なのは利用者が参加しているという点です。(水野勇太氏)

パターン・ランゲージの3つの段階(抽出→作成→実践)。基本のパターンに基礎知識や原理があり、それが文章化されることでパターン・ランゲージ化され、実際の環境で活用​される

パターン・ランゲージはさまざまな場面で応用できます。例えばオブジェクト指向設計に適用したものが、GoF(Gang of Four)による書籍『オブジェクト指向における再利用のためのデザインパターン』で示された「デザインパターン」です。

パターン・ランゲージとGoFのデザインパターン。ある知見を現場の要求や状況と乖離することなくまとめ上げる手法であるパターン・ランゲージに対し、デザインパターンは設計に特化したパターン・ランゲージの一種と言える
パターン・ランゲージの応用。プロジェクトマネジメントに適用するとエキストリームプログラミングになる。その他にも学ぶこと自体のパターン化、認知症に対するパターン・ランゲージといったものも考えられている

一方、メタAIの実践に足りないものは「参加者」であるエンジニアやゲームデザイナーの意見です。つまり、エンジニアとゲームデザイナーの共有言語を作り上げ、双方の意見を過不足なく反映するための「メタAIのためのパターン・ランゲージ」が必要となります。

メタAIのためのパターン・ランゲージ

下記に水野氏が提案するメタAIのためのパターン・ランゲージの記述フォーマットとメタAIパターン・ランゲージの記述フォーマットを示します。

パターン・ランゲージの記述フォーマット
メタAIパターン・ランゲージの記述フォーマット

どのような状況に対するパターンなのか、そこに起こる問題はどういったものか、それに対しどのような解決策が考えられるのか、それにより、どのようなことが起こってしまうのか(フォース)、どのような結果が得られるのか、その具体例を記述するのがパターン・ランゲージの記述フォーマットです。メタAIのパターン・ランゲージ​ではそれら6つの項目に加え参考文献が挙げられています。

ここでは難度に対するプレイヤーのスコアを監視し、難度を調整できるパターンを例に挙げます。ビデオゲームはプレイヤーごとにスキルが異なるため、同じゲームでもある人には難しく感じられ、ある人には簡単すぎると感じられてしまいます。ここで起こっている問題は「プレイヤースキルに対し最適な難易度のゲーム体験を提供できないこと」です。つまり、簡単すぎたり難しすぎたりしてプレイヤーが離脱してしまう、プレイヤーのスキルやリソースに対し最適なゲームを展開できないということです。

それに対する解決策のひとつとしてスコアの変化を監視するという方法が考えられます。これにより最適な難度でゲームが提供され、難しすぎる/簡単すぎるという理由でプレイヤーが離脱することはなくなります。具体例としては、そのような機能を持つシューティングゲームが考えられます。

しかしその場合、次のような課題も生じます。

【運用可能性】
 ・スコアという形でプレイヤースキルが評価されるゲームにしか適用できない

【制約】
 ・すべてのプレイヤーにまったく同じゲーム展開を提供できない
 ・終了状態がプレイヤーによって異なる

【課題】
 ・スコアが変化するタイミングとプレイヤーの行動のタイミングの間にギャップが生じる

このように、メタAIの機能はパターン・ランゲージで記述できます。さらに水野氏は各ゲームに実装されている具体的なメタAIの機能を分析し6つの大分類に分け、さらにワールドアナライザーで「何を分析するか」で分類することで、22のパターンを抽出しました。

メタAIパターン・ランゲージ​のパターン一覧(1/2)
メタAIパターン・ランゲージ​のパターン一覧(2/2)

メタAIのためのデザインパターン

続いて、パターン・ランゲージ化できたパターンから、実装する際に指針となるデザインパターンへ落とし込んでいきます。記述フォーマットとして用いるのはGoFのデザインパターンのフォーマットです。

GoFのデザインパターンのフォーマット。プログラミングにおける設計のためのパターン・ランゲージとなっており、構造、協調関係といった、具体的なプログラミングにおいて重要となる項目やサンプルコード、使用例、実装といった項目が追加されている

今回はメタAIのデザインパターンもこのGoFと同じフォーマットに則って整理してみました。その際、メタAIの構造をしっかりと踏まえることが大切です。メタAIにはワールドアナライザー、ゲームメーカー、パラメータージェネレーターという3つの要素があります。すなわち「何のためのものなのか」「何に基づくメタAIなのか」、そして「具体的に何を調整するのか」。ゲームメーカーのプラニング、アナライザーの内容、そしてパラメータージェネレーターが生成するパラメーター、この3つを明確にしたデザインパターンにすることが大事です。(水野勇太氏)

水野氏が今回のセッションで提示したメタAIデザインパターンは次の6つです。

  1. スコアベース動的難度低減パターン
  2. 距離ベース緊張度の波生成パターン
  3. スコアベース対戦バランス最適化パターン
  4. プレイヤーの行動ベース評判変化パターン
  5. ゲーム状況ベースBGM変化パターン
  6. 多層セルベースシミュレーションパターン

ここではメタAIパターン・ランゲージ​の部分でも例に挙げた「スコアベース動的難度低減パターン」を説明します。スコアベース動的難度低減パターンは、プレイ状況を示すゲームスコアを監視するパターンで、スコアを記録して平均値と比較しその値に応じて難易度を上げたり下げたりします。同じゲームであってもその人の能力や所持しているアイテムなどリソースによって難易度が変わってしまう場合、このデザインパターンが使えるということになります。

ここで挙げている使用例はサンプルのシューティングゲームですが、実際のゲームでも、シューティングゲーム『バトルガレッガ』*1 がプレイ状況を示すランクを監視して難度をコントロールしています。これは、プレイヤーのさまざまな行動(ミスの数、ボム使用数、パワーアップ状況、無駄撃ちの回数など)に応じてランクを変化させ、そのランクに応じて敵の攻撃の激しさを変化させる仕組みです。

*1:このデザインパターンによって作られているということではなく、このデザインパターンを適用して作ることができる例として上げています。

適用可能性としては、スコアでプレイヤーのスキルが評価できるゲームに適用が可能です。ここで言うスコアはプレイヤーに非公開とすることもでき、敵の数や出現アイテムの種類などにより、難度をコントロールすることができるゲームに適用できます。

プログラムの構造は、上に示すのがワールドアナライザーとしてPlayerSkillAnalyzer、ゲームメーカーとしてDynamicDifficultyAdjuster、パラメータージェネレーターとしてSpawnEnemyNumControllerおよびSpawnEnemySpeedControllerです。下がゲームワールドになり、GameSystemが管理しているスコア、インタラクションスペースのSpawn Systemです。

プレイヤーのスコアをGameSystemが把握しており、そのスコアを分析してプレイヤーのスキルレベルをワールドアナライザーが判別します。そして、プレイヤーのスキルレベルに応じてゲームメーカーが実際に敵の数を増やすのかを決定し、パラメータージェネレーターがその数を算出して、それをゲームワールドのインタラクションスペース側のSpawn Sytemに伝えるという流れで、Spawnされる敵の数やスピードが変化するということになります。

サンプルコードはUnreal Engineのブループリントの形で掲載されました。なお、メタAIのワールドアナライザー、ゲームメーカー、パラメータージェネレーターの3つのパートはメタAI用のブループリントをひとつ作り、その中にワールドアナライザー、ゲームメーカー、パラメータージェネレーターを機能として実装しています。

こちらのデモが示すように、敵をあまり倒せないとスコアの平均値が下がって敵の出現量が少なくなります。一方で、すばやく敵を倒しているとスコアの平均値が上がり、敵の出現量が増えてきます。このようにスコアの平均値に応じて難度が調整されるのがスコアベース動的難度調整パターンです。ここでの紹介はひとつだけとしますので、他の5つについては後ほど公開が予定されている資料をご参照ください。

メタAI デザインパターンの今後の展望

このように、さまざまなメタAIデザインパターンを用いることで、より良い形でビデオゲームにメタAIを実装することができるはずです。とはいえ、パターン・ランゲージの3つの段階を図に示したものの、メタAIに関して今はまだ「抽出」から「作成」の段階です。より多くの事例を踏まえたパターンの追加​や現場での応用によるパターン・ランゲージのブラッシュアップが必要です。もちろん、その際に重要となるのは利用者となるゲームデザイナーやエンジニア自身の参加です。

パターン・ランゲージの実践は、

  1. その実践として利用者自身が参加すること
  2. 少しずつ調整や補修を繰り返してそのパターンランゲージを成長させること
  3. その上で、利用者がどこが活かされているか(いないか)を診断する
  4. そして、それを調整する

といったフローを辿ります。つまり、パターンランゲージを一緒に作り上げていくことでエンジニアとゲームデザイナーのコミュニケーションがスムーズになることが、さまざまな場面でメタAIの実装を推進することにつながるのです。

パターン・ランゲージの実践フロー

水野氏は今後も、誰もが参加可能なメタAIパターンランゲージグループを立ち上げ、新しいパターンやデモの追加、メタAIパターンランゲージの研究などを行っていく予定です。最新情報は下記より入手可能です。

Slack ゲームAIコミュニティ

・ハッシュタグ「#PLoMetaAI

Writer:大内孝子

RELATED ARTICLE関連記事

【CEDEC2019】AIは今どこまでゲームのデバッグをできるのか?

2019.9.30ゲーム

【CEDEC2019】AIは今どこまでゲームのデバッグをできるのか...

AIとバーチャルアイドルが出会う時:齊藤陽介氏×森川幸人氏 対談

2019.5.27ゲーム

AIとバーチャルアイドルが出会う時:齊藤陽介氏×森川幸人氏 対談

2D画像だけで大丈夫。3D画像や3Dオブジェクトを自動生成するAIまとめ

2020.7.27ゲーム

2D画像だけで大丈夫。3D画像や3Dオブジェクトを自動生成するAIまとめ

RANKING注目の記事はこちら