【CEDEC2016】『Shadowverse』の事例からユーザーと対話できるAIの作り方を開示…高速で柔軟な思考エンジンを生み出すには


一般社団法人コンピュータエンターテインメント協会(CESA)が、8月24日~26日の期間、パシフィコ横浜にて開催した、国内最大のゲーム開発者向けカンファレンス「コンピュータ・エンターテインメント・デベロッパーズ・カンファレンス 2016」(CEDEC 2016)。
 
本稿では、8月24日に実施された講演「ShadowverseのゲームデザインにおけるAIの活用事例、及び、モバイルTCGのための高速柔軟な思考エンジンについて」についてのレポートをお届けしていく。
 
本セッションでは、Cygamesの佐藤勝彦氏が登壇。『Shadowverse』におけるAIの活用事例紹介のほか、モバイル/PCのマルチプラットフォームをサポートした対戦型思考ゲームのAIに求められる開発要件をゲームデザイン・運用の両面から解説、それらを実現するためのTCG思考エンジンについて話を展開した。
 

▲Cygames、Cygames Reseach リサーチャーの佐藤勝彦氏。『Shadowverse』においては、AI関連のアーキテクトデザインと実装、開発フローの構築、監修を担当している。
 
講演の始めに佐藤氏は、『Shadowverse』の紹介として現在放映中のTVCMやプレイ動画を公開した。
 
【Shadowverse【シャドウバース】 TVCM ココロの声編】

 
『Shadowverse』は、1対1の熱い対戦が楽しめる本格派デジタルカードゲームだ。PC、モバイルの両プラットフォームを対象に、6月よりサービスを開始。400種類を越えるカードの中から40枚1組のデッキを作成し、フォロワーやスペルと呼ばれるカードを駆使しながら互いのライフを削りあう。コアなTCGファンからカジュアルなユーザーまで、幅広く受け入れられるデザインを採用しているのが特徴となっている。
 

 
▲回数は限定されているが、バトル中、任意のタイミングでフォロワーを強化できる”進化”システムが取り入れられており、爽快な逆転劇を体験できるのが最大の特徴となっている。
 
続けて佐藤氏は、『Shadowverse』のAI開発事例を通して、ゲームAIのデザインメソッドを「共有」することが本セッションの趣旨であると説明。継続的なカードの追加・イベント施策のための環境追従性と量産性、プレイヤーのプレイング・盤面の変化に合わせたインタラクティブな感情表現と、モバイルゲームに必要とされる高速なレスポンス、多様なカード能力を活かした高度かつ多彩な思考の実現を可能とするためのエンジン設計と開発手法について、具体的な施策を開示した。
 

▲講演の肝となるワードとして、「限定合理性」、「遅延評価」、「定量化」という3つを挙げた。
 
また、佐藤氏は、ゲームAIの構築はロジックとゲームデザインが密接に関わる分野のため、タイトルごとの個性が出やすく、ノウハウが属人化して、周囲に共有されず埋もれやすいという特徴を持っていると話す。昨今、スマートデバイスの性能向上やVRの活性化により、キャラクターAIの需要が向上していることから、今、AIに対する開発ノウハウの「共有」が必要であると語った。
 
そして、ここから本題へ。まず始めに、「運用要件」や「ゲーム要件」、「デバイス要件」についての要件分析を行った。
 

▲『Shadowverse』では、プレイングの質の定量評価をキャラクターの感情演出に使用しているとのこと。
 
運用要件について、TCGにおいては、環境の変化が絶対の宿命になるという。多くのカードゲームでは、新弾の追加により大会で使用可能なカードが定期的に更新され、一部では旧弾がフェードアウトしてしまうものもある。この理由について佐藤氏は、メタゲームの循環がゲーム性や長寿命化の要になるからであると話す。
 
プレイヤーが、多様な戦術の中から自分の戦術を発見していく楽しみが醍醐味であるため、ひとつの戦術やカードが環境を支配するのは望ましくない。そのことから、定期的に環境を更新し、メタゲームが循環するように図ることが重要になるとのこと。また、新弾の追加は、古参プレイヤーとのカード資産・経験差の緩和にも繋がるため、新規プレイヤーの参入機会に繋がるという。なお、『Shadowverse』では4ヶ月ごとに新弾の追加を計画している。
 

 
▲『Shadowverse』で9月下旬に追加が予定されている第2弾カードパック「DARKNESS EVOLVED(ダークネス・エボルヴ)」。
 
カードが追加されることで、デッキのバリエーションが増加、それに伴い戦術も爆発的に増加していく。ここで新能力やパラメータ調整など、様々な変化が起きるため、特定の状況下で特定の動きをさせるようなルールベースのAIの組み方では、環境の変化に追従することができないという。継続的にイベント施策を行うオンラインゲームである限り、NPCの追加案件は頻繁に発生するため、環境追従性、量産性、ロバスト性をAIのシステムや開発体制(人員運用)の両面で保証する必要があるとのことだ。
 


 
続いてはゲーム要件の話へ。実際に開発会議で挙がった議論から、「対人戦がメインとなる『Shadowverse』では、人間の代替となる対戦相手(AI)を用意する意義は薄いのでは」という意見を紹介。レベルの高い対戦を楽しみたければランクマッチを、気軽に戦いたければフリーマッチを遊べばゲームとしては充分に楽しめるとも考えられる。しかし、本作においてAIが果たす役割は多岐にわたるという。
 
その役割は大きく分けて3種類あり、「デッキの構築やプレイングをユーザーに例示・教唆する」こと、「新しいデッキを組んだ際に調整のための練習台になる」こと、「キャラの感情演出により、対戦を通じた悲喜こもごもの判断を行うための思考を提供する」ことであるとのこと。
 

▲前者2つがデザイン性や思考の品質といったAIの要件に、感情演出がプレイングの質の定量評価に繋がる。
 

また、その際に注意しなければならない点もいくつかあるという。例えば、プレイヤーに配られる初期デッキと同じものをAIに使わせ、カードの使い方やコンボの組み方を示唆する、さらにそこから一歩先へと進んだコンセプトデッキのヒントとなるようなものを示してやるのは良いが、あくまでも改良の余地を残したものにしなければならないとのこと。ユーザーが自分で発見する楽しみを奪ってはいけないという意図のもと、強力なコンボを軸にした強デッキを早々に開示することをNGとしている。これは、メタゲームの収束を早めてしまうことに繋がる恐れもある、と佐藤氏は話す。
 

 
 
▲AIが進化を使用するタイミングを限定することで、NPC戦を通じて段階的に進化を使うタイミングが学べるよう工夫されている。ゲームの肝である逆転劇を体験できるよう、形成評価を利用して、拮抗前後の状態を作ることを優先させたりもしているという。
 
こういった事例から、AIのレベルデザインは思考の強度に階差を付けるだけでは不十分で、ステージによってユーザーにどういった体験をさせたいのか、目的に応じた思考を提供すること、さらにそれをコントロールするための手段をAIから提示することが大事だとまとめた。
 

 
一方、AIがデッキの調整相手として機能するためには、戦術やキャラ相性に応じたバリエーションが必要となる。そのため、AIが多様な戦術やデッキを扱い得る思考の品質と表現力を担保しなければならないとのこと。
 

▲相手が使用するデッキや戦術を指定できない対人戦に対して、特定のものを指定可能なAI戦は目安として分かりやすいという理由もあるという。
 
なお、『Shadowverse』では、AI戦において、ドロー操作や積み込み、カードを出すタイミングでの差し替えは行っていないことを明言。これには、デッキ調整時のシミュレータとして機能させたいという想いや、e-Sportsを目標として展開する以上、AI戦においても公平さを重視するべきという開発の意図があったようだ。
 
3つ目は感情演出について。本作では、ユーザーのプレイングひとつひとつに対して、AIがインタラクティブな反応を返す仕掛けが盛り込まれている。
 

▲動画では、ユーザーが不利な状況からスペルや進化を駆使して形成を逆転していく様に、AIが感嘆してテンションを上げていく様子が紹介された。
 

▲また、感情演出は「キャラクター性を演出する機会の増加」、「対戦における山場だと知らせる気付きの導線」、「勝利体験をより劇的なものにする」など、ゲームデザインにおいて様々な効果が期待できる便利なものであると説明。
 
続いて、盤面にユニットを数多く展開し、強化しつつ戦うことを得意とするエリカを例に挙げ、フォロワーの複数召喚が可能なカードや一斉強化が見込めるカードなど、特徴が分かるプレイングをした際に、個性を強調する形で感情演出が盛り込まれていると紹介した。逆に、ユーザーがエリカの不得手となるような立ち回りをした際には、「対戦相手の思惑を砕いた」という触感を与えるため、賞賛の表現が入れられているという。
 
しかし、全てのゲームケース個別にトリガーをルール付けすることは非現実的であるため、汎用的にプレイングの質の評価、つまり定量的に評価を行う手段が必要であるということにも言及した。
 

 
ここからは、運用要件とゲーム要件から導き出されたそれぞれ要件をアーキテクチャとして落とし込んでいく段階へ。
 
 
▲ロバスト性と思考の品質は「シミュレーションベース」、デザイン性と保守拡張性、量産性、プレイングの質の定量評価については「ユーティリティベース」という手法で解決していく。
 
まず、シミュレーションベースでは、行動プランの実行結果をシミュレーションし評価に活用するため、環境の変化やプレイセオリーの変化に強く、AIの判断の質にブレがないアーキテクチャであると説明。TCGプレイヤーに代表されるような、戦略的なストラテジーゲームの思考過程を再現しやすいため、ユーザーに対して違和感の出にくい行動を取らせることが可能とのこと。
 

 
次に、ユーティリティベースは、行動プランがどういった効果を持つのかを求め、その効果を定量化した後に比較・判断して意思決定を行う仕組みであると紹介した。プランの実装・評価機構・意思決定の機構をそれぞれ分離できるのが最も大きな特徴で、意思決定の機構からはプランの機構や評価の機構が隠蔽されるため、新しい軸の評価の機構を追加したいときに既存の仕組みに手を加えず実施できるメリットがあるという。また、AIの行動傾向をコントロールできるため、多彩な性格バリエーションをデータドリブンで簡単に作成できるようになるとも話した。
 


続いて、実際にプログラム側とデータ側でどういった役割分担を行っているかを紹介。更新のたびに実行プログラムを変更する事態を避けたいため、環境の変化やレベルデザインに関わる「デッキ別のカードの評価」や「AI全体の性格に関わる評価のためのデータ」などはなるべく外部のデータ側に切り出しているとの話だ。一方、プログラム側ではデータ側で得られた評価に基づいて得られる「動的な状況判断」や「形勢の評価」、「行動プランの立案」といった計画のコンテキスト形成のみを担っているとのこと。
 

 
さらに、具体的なプランの評価の流れを紹介。
 

▲手札のカードでフォロワーを強化した後、指定の敵に攻撃を行うプランを立てた場合。
 

 
結果をシミュレーションして算出し、敵陣営側に残ったフォロワーとリソース、自陣営側に残ったユニットとリソースを基に評価付けを行う。このとき、外部データの改変によってAIが何を中心に考えるかをコントロールすることでAIの行動傾向を操作することができるとの話。実際に評価に補正をかけた場合、以下のような変化が生じることを紹介した。
 

▲複雑な立ち回りが必要になるAIのコントロールが簡単に行えるのもユーティリティベースの特徴のひとつであるという。
 
また、佐藤氏は、この仕組みを利用することでプレイングの善し悪しを定量的に評価することが可能になると続けた。
 
これを実現するにあたって、AIの思考フェーズを、チェックメイトまでの正しい道筋が確定している「詰め」と、そこに至るまでの準備の段階「アドバンテージの構築」に大きく二分しているという。その中でまず、アドバンテージ構築のフェーズにおいては、リソースが常に等価に増分する限りは互いのリソースの消耗に対するアドバンテージの獲得、対費用効果がプレイングの善し悪しを決定している。また、対費用効果を感情表現のトリガーとすることで、個々のケースに対してルール付けすることなくユーザーのプレイングに対してインタラクティブな反応を返すAIの作成を実現していると話をまとめた。
 

▲ユーティリティベースの手法であれば、盤面の評価の変動からリソースの消耗に対してどれほどの利得が得られたかを定量的に求めることが可能とのこと。
 

そしてここからは、もう少し踏み込んだ話題としてプランニングの設計論について話を展開。
 

▲メモリ消費や計算負荷が大きくなりやすいというシミュレーションベースのデメリットを指摘した。なお、計算負荷は将来的な不確定要素が大きいほど増大していくとのこと。
 
このことから佐藤氏は、不確定性をプランニングにおいてどのようにマネジメントしていくかが設計において非常に重要になるとコメントした。ここでは、「限定合理性」、「レイヤー構造」、「遅延評価」という3つの設計資料からモバイル端末上での高速なレスポンスを担保するためのCPUのリソースの最適な配分、思考の柔軟性・品質の割り出し方について解説を行った。
 

▲例として、5 vs 5のケースを想定した場合、シミュレーションの総数は93万3120通り。ここに手札や敵の行動など、様々な要素が絡まってくるため、長く手を読もうとするほどシミュレーションケースが増加していく。
 
上記の事例から、シミュレーションの網羅的な適用は非現実的であるため、CPUリソースの適正な配分を見極めながら、効果の高いプランに対してのみ適用するといったような工夫が必要であると提議した。
 
そこで、まず限定合理性を指標に用いることで、シミュレーションを用いるべき場所が割り出せるほか、どの部分でレベルコントロールを行えばいいのかという大まかな設計の枠組みが見えてくるという。
 

▲限定合理性とは、意思決定論の創設者であるHerbert A. Simon氏が提唱した経済学上の概念で、「人間の認識能力には限界があるため、限られた範囲での合理性しか持ちえない」という考え。
 
さらに佐藤氏は、ゲームにおいて、プレイヤーの思考過程を再現することは限定合理性に基づいていると話す。ここで大事なのは、将棋やチェスのように勝利のためだけに最適な行動を取るAIとは異なり、あくまでもプレイヤーの視点から見て不自然な行動を取らせないために限定合理性が重要になると付け加えた。
 

▲プレイヤーが判断の前提としている認識とシミュレーションの前提が一致していなければ、ユーザーが期待する合理的な選択には行き着かない。
 
前提を一致させるためには、ユーザーから見えている情報の客観性の高さ、確実性が高さを指標にすることが大事とのこと。この確実性は、ユーザーから目に見えない情報が混入したタイミングや短期記憶の限界によっても劣化していく。
 

▲『Shadowverse』においては、直前のターン開始時のフォロワーの配置や、プレイしたカードを記憶しておけることがシミュレーションの前提となるため、AIもそれに合わせた行動を取らなければユーザーに対しての違和感となってしまう。
 
また、逆に前提の外を利用することで下記のようなことが可能になるという。
 

▲AIが上記2枚のカードを所持している場合。
 
能力を持たないフォロワーを出した後に、場にいるフォロワーの能力を強化する効果を持つフォロワーを出すことは、ユーザーに対して違和感を与えないが、その分、難易度を上げることに繋がる。しかし、この順番が逆だと、難易度は下がるがユーザーから見て違和感を与えてしまう。そこで、1ターン目に場にいるフォロワーの能力を強化する効果を持つフォロワーを召喚、2ターン目に能力を持たないフォロワーを召喚する。間にカードドローという不確定性を挟むことで、ユーザーから見て1ターン目の手札予想が不確実なものとなるため、違和感を与えることなく難易度を下げることを実現している。
 


▲ユーザーから見て、AIが手加減していることが分かると楽しみを損なってしまうため、違和感を与えることなく難易度を下げることができるかどうかは、AIの構築において非常に重要なポイントになるという。
 

▲プレイヤーの前提を明確にすることでレベルコントロールの要所が認識の限界の範囲外にあることや、シミュレーションが必要となる場所がプレイヤーの前提が明確化した後にあること分かり、設計の大枠が作成できる。
 
続いては、レイヤー構造の設計について。プランニングの設計を考える際は、下記のようにプランニングの役割に応じた階層構造が意識されている。佐藤氏は、段階を踏むことでCPUリソースをより有効性の高いプランに対して割くことができると語る。
 

▲まず行動計画のおおまかなプロットを広く浅く選択肢として用意し、各プロットの効用を概算して有力な候補を絞り込む。そこから、フィルタリングで抽出したプロットに対してシミュレーションを併用して計画の詳細化を行っている。
 

▲実行タイミングを設計の枠組みに当てはめると、上記のようになる。
 
ここで、『Shadowverse』におけるプロット作成の詳細を公開。始めに、ターン中にプレイ可能なカードの組み合わせをすべて列挙し、各組み合わせについて仮のプレイ順序を策定。そのうえで、ゲーム状況の各要素から効用を概算して評価の高いもののみを選出しているという。最後に、シミュレーションを適用して計画を詳細化。この段階でプレイするカードは決まっており、プレイ順序と戦闘行動の順番を入れ替えつつシミュレーションをかけている。



 
また、不確定性が多いほどAIの処理負荷が上がってしまうのは前述した通り、プランニング設計における要点として最後に「不確定性とどう向き合うか」についての解説を行った。
 

▲継続的なプランニングのイテレーションを回し、ポテンシャルを加味した遅延評価を行うことで不確定性をマネジメントしているのだという。
 
不確定性との向き合い方について佐藤氏は、状況は変化していくため、最初に立てた計画がそのまま適用できるとは限らないとコメント。そこで、長期的な行動計画を大まかに立てたうえで、短期的な計画は状況の変化に対して行動を随時自動修正すべきだという。
 
 
▲ターンの開始時にすべての行動を決めてしまうウォーターフロー型の思考モデルでは、ターン中に不確定な要素が入るだけで計画が破綻してしまうと指摘する。
 
また、1番最初にだけプランニングの負荷をまとめてしまうのは非常に勿体ないという。1ターン中の状況の変化に応じて再プランニングをかけていくスパイラル型の思考モデルなら、柔軟に行動計画の修正が可能になることやプロットと実際の結果のずれを吸収して堅牢性を向上できることをメリットとして挙げた。
 

▲そのほか、スパイラル型では、時間の経過とともに不確定要素が減り、プロットの精度が上昇していくという特性から、遅延評価を利用した思考による時間軸上の負荷分散が可能になるとのこと。
 
ここで登場するのが、不確定要素と付き合うためのマネジメントの知恵のひとつ「遅延評価」というもので、「撤回・変更が難しい(リスクの大きい)決定を行う際には必要な情報が出揃うまで、決定のタイミングを遅らせるべき」というもの。また、そのような個所については、現状考え得る最善策が取れなくなった場合に備えて次善策を取ることが可能なよう、柔軟な対応ができるアーキテクチャにしておくべきだという考え方である。
 

▲遅延評価に基づく考え方をAIの行動計画に運用するためアーキテクチャ化すると、このようになる。
 
行動を実行しつつ、プランニングを同時に並行して進めるようなアプローチで、シミュレーション負荷の高い不確定要素がある場合に、ひとまず仮の評価を下して、上手く言った場合のプロットと、上手くいかなかった場合の予備プロットを作っておくのだという。そこから、プロットの確定に影響のない範囲で手を進めながら不確定要素が確定するのを待ち、そのタイミングでどちらのプロットを実行するべきか判断するものであると説明した。
 

▲上記の効果を持つカードを使用する際の具体例を紹介。
 


▲上記の例では、このターンに捨て札が3枚増え、所持しているカードの能力を発動させられる可能性がある。
 

▲潜在的なポテンシャルを評価に加えて複数のプロットを比較し、評価の高いものをメインプロット、低い方を予備プロットとして採用する。
 

▲さらに、不確定要素に関わるカードのプレイタイミングを遅延させることで、手を進めつつ不確定要素の確定を待つことができるのだとか。
 
 
▲シミュレーションによる計画の最適化の結果、墓場の捨て札が4枚になる可能性が0になった段階で再評価を行い、予備プロットへと行動が切り替わる。
 

このように、遅延評価を使用することで、AIにより有効な手を取らせようとする動きをさせつつ、計算負荷を抑えながら、ユーザーに見えない形でプランの切り替えを行うことができるのだという。
 
最後に、シミュレーションベースを用いるにあたって、「不確定性と上手く付き合うこと」と「ユーザーの前提を認識しておくこと」の2点が大事であるとコメントし、まとめとした。
 
さらに、ここからは開発の効率化を考えるうえでのデータ設計の運用についての話へ。まず始めに佐藤氏は、AIのデータ設計はタイトル固有の仕様になりやすく、作業が属人化しやすい、また試行錯誤の回数が多いのでイテレーション負荷が多いほど品質が低下してしまうという問題があると指摘した。これは、データの量産期に致命的な問題として顕在化していくとのこと。
 

▲これらの対策として、「学習コストの低減」や「作業分担の抑制」が必要になると提唱。
 
そして、『Shadowverse』におけるデータ設計の具体例を紹介。
 
 
▲デッキ別のカード評価のためのデータテーブルと、カード別の評価パラメータのフォーマット。CSV管理で、簡単なスクリプト記述ができる範囲に留めているという。
 
佐藤氏は、このフォーマットを採用した理由はデータ作成者(TGSプレイヤー)が最も馴染んでいたフォーマットだからだと話す。作成者にとって馴染みやすいフォーマットにすることでデザインの意図を反映させやすくなるだけでなく、学習コストの軽減や、個々のカードごとにデザインの粒度とデータの粒度を一致させることにも繋げているのだという。
 

▲評価パラメータの運用については、全カードの評価パラメータ入った汎用データを、デッキ個別のデータでオーバーライズするような運用をとっているとの話。こうすることで、仮にデッキ別のデータが存在しない場合でも、汎用のデータを使って保険がかけられるのが利点であると説明した。
 

▲さらに、汎用データを使って、デッキ別のデータを組む際のパラメータレースを自動作成することが、レベルデザイナーの学習曲線を考えるにあたって役立つとのこと。新しくアサインした方の学習コストを抑えつつ、作業を割り振っていけるのが理想的であると説明した。
 
最後に、量産と分業のための性格データの構造について解説。データ作成者の作業ブロックをatomicなデータの集合と捉え、集合同士の混成が可能な構造にすることで、データ作成においての量産性や分業性が高まるのだという。
 
 
▲こちらは、個々のカードに紐づかないAI全体の行動傾向をコントロールするためのデータ。ひとつひとつは他のデータに対して影響を与えない、完全排他独立な評価データとして設計されており、この評価データの集合体がAIの性格・個性のデータとなっているという。
 

▲複数のデータ集合の混成が容易になることで、特定のキャラのみに対して有効な行動を取るような性格データと、果敢に攻めていく性格のデータ集合を混成することで、特定のキャラに特化した即効型のAIを作ることなどができる。
 
このようなスタイルの運用により、作業のブロック化や分業化が可能になるほか、作成・管理に必要なデータ量を抑制しつつ、多彩なバリエーションを用意できることをメリットとして挙げた。
 
最後に、本セッションのまとめを公開し、「AIを通してユーザーと対話していくつもりで設計を行っております」とコメントして講演の締めとした。



 
(取材・文:編集部 山岡広樹)


 
■関連サイト
 

公式サイト