イベント

2019.07.12

【GDMイベントレポ】ゲーム要素のコントロールと感情の対応関係とは?「2次元感情マップに基づくメタAI:里井大輝氏」

  • Facebookでシェア
  • Twitterでツイート
  • はてなブックマークでブクマする!
  • LINEで送る
  • follow us in feedly
  • Facebookでシェア
  • Twitterでツイート
  • はてなブックマークでブクマする!
  • LINEで送る
  • follow us in feedly
スクウェア・エニックス 里井大輝

毎回様々なゲストをお招きして、最新の技術や情報をシェアするDeNA主催のゲームクリエイター向け勉強会の【Game Developers Meeting】(以下、GDM)。

2019年5月17日に開催された「GDM Vol.32 エンジニア向け勉強会:ゲーム産業におけるゲームAI研究・開発の最前線~会話AI、メタAI、ユーザ感情推定~」では、スクウェア・エニックスのテクノロジー推進部のメンバーをお招きして、GDC2019で発表した内容を中心に、最新の研究成果を紹介していただきました。

本記事では、スクウェア・エニックス テクノロジー推進部 AIリサーチャー「里井 大輝」氏より発表された「2次元感情マップに基づくメタAI」について、セッション内容をレポートします。

2次元感情マップに基づくメタAI

里井氏は冒頭で、自分の作っているゲームにメタAIをどのように適応させればいいか、イメージすることがなかなか難しい理由を語りました。

キャラクターAIなら賢そうに動く、ナビゲーションAIなら上手に経路探索してくれる、と役割がわかりやすいですが、メタAIはゲームを面白くするのにどうしたらいいかを判断するという、人間でもなかなか答えを判断できない難しいことをAIに任せているのが現実だと話しました。

例えば、ゲームのバトル部分について、プレイヤーキャラ・味方NPC・敵NPCが配置されているフィールドがあるとします。

このバトルを「面白くしてください」と言われたときに、何をどこまで改修するかを考えたときに、「プレイヤーが使える装備は大量にある(かも)」「各敵NPCは大量のパラメータを持っている(かも)」「このゲームには大量のレベルがある(かも)」などなど、想像できる要素が多く、バトルを面白くするのは容易ではありません。

このような場合、メタAIを使えば、ゲーム全体をまとめてコントロールすることが可能ですが、どの要素をどのようにコントロールすれば面白くなるのかを判断するのが、難しいポイントです。

ゲーム要素のコントロールの項目には「仲間NPCにプレイヤーを回復させる?」「敵NPCにもっとうまく回復させる?」「敵NPCにもっと強力な攻撃を使わせる?」など考えられることは無数にあります。

ここで達成したいことは「プレイヤーの感情を知り、それを特定の方向に動かす」ということです。例えば「ナーバスな気持ちのときは警戒させたい」など、企画している人はこのようなことを考えてシステムに落とし込んでいるはずです。

そこで、ゲーム要素のコントロールと、感情の動かし方との対応関係について考えます。

先行事例では、『Left 4 Dead』や『Warframe』のメタAIについて、GDC2009で発表された緊張度(intensity)に基づくメタAI(AI Director)について提案されています。

これは、ゲームのプレイログから計算したプレイヤーの緊張度が、周期的に上昇と下降を繰り返すようにコントロールすることで、プレイの流れに緩急をつける(ペーシング)ことができます。新規にスポーンする敵NPCの数や位置を変動させて、緊張度をコントロールしています。

このAI Directorの問題点は、多くのゲームでNPC数をメタAIの判断で変えることができないことです。シューターや格闘ゲーム、カードゲームなど、キャラクターやオブジェクトの数が固定されているゲームは実装が難しいと思われます。もし固定されていなくても、ゲームデザインやレベルの制約によって、メタAIが望んだタイミングや位置にNPCをスポーンさせることが難しいです。

もうひとつの問題点は、扱える感情の種類が少ないことです。これを解決するためキーアイディアが「2次元感情マップ」になります。

これは、プレイヤーの感情を横軸「勝利への期待感(H:Hope of Winning)と縦軸「敗北への不安感(F:Fear of Losing)を軸として、2次元平面上のベクトル(EP:Emotion Point)で表示します。このマップは認知心理学での感情分類モデルを参考にしています。

2次元感情マップが便利な理由は、さまざまなプレイヤーの感情とゲーム状況を紐付けて表現できることです。ここでは格闘ゲームを例として4つのケースを紹介します。

Case1:敵がプレイヤーを圧倒

勝てそうではなく、負けそうだと思っているため「ナーバス・ストレス」になります。

Case2:プレイヤーが敵を圧倒

勝てそうだと思い、負けないと思っているため「穏やか・リラックス」になります。

Case3:激戦

同じくらいの力量で殴り合っている状態は「勝てそうだけど負けるかも?」と言う気持ちで「興奮・うれしい」になります。

Case4:膠着状態

どちらも何もできず、動きが少ない膠着状態では、勝てそうではないけど負けそうでもない気持ちになり「落ち込んだ・退屈」となります。

このように直感的に感情のイメージと、HopeとFearの高低の対応ができていることがわかり、ゲームの状況を複雑に表現できます。

また、このマップを使うと、ゲーム要素と感情変化の対応付けを設計しやすくなるメリットがあります。

この手法の概要として、まずSensorsがゲームプレイデータを収集、メタAIで判断し、Effectorsでゲームワールドを操作します。本セッションでは2次元感情マップに基づくメタAIの内部機能「World Analyzer」「Game Maker」について詳細を公開します。

「World Analyzer」では、Current EPがプレイヤーの現在の感情を2次元座標でまず表示します。それを元に、数秒後にプレイヤーの感情が向かって欲しいポイント「Goal EP」を決め、続いて次にプレイヤーの感情を持っていく場所「Next EP」を更新します。

つまり、具体的なゲーム環境への操作は「Next EP」をベースにして決めていくということです。

格闘ゲームを例にすると、プレイヤーキャラと敵NPCがそれぞれHPと攻撃ヒット率を持っています。それぞれがHPは満タン、ヒット率50%の状態では、プレイヤーのヒット率が高ければ高いほどHope値は上がり、敵NPCのHPは低いほどHopeが高くなります。

逆に、プレイヤーのHPが低ければFear値が上がり、敵のHPが高ければFear値が上がります。

Current Hopeの計算方法の例として、攻撃ヒット率やHPの残量によって、変動するカーブ値を用意し、それぞれの評価値を足して判断します。

また、ゲームの状況が変わり、プレイヤーの攻撃ヒット率が60%に上がり、敵のHPが下がった場合は、Hopeの値が少し上がり、Current EPの数字が右にズレます。

Goal EPのプランニングについて、決め方はゲームデザインに大きく依存します。あるプロジェクトでは5秒ごとにCurrent EPの反対側に設定し、メタAIがプレイヤーの感情を常に揺さぶろうと試みました。

また、便利機能としてGoal EPにバイアスをかけることができ、あるプロジェクトではGoal EPの移動可能範囲を、バトルに進行度に応じて狭める処理をしており、終盤に向けて興奮もしくは幸せの感情になっていくと思われます。

この仕組みの良い点は、ゲームデザイナーがプレイヤーがどのように感じてほしいか、平面上で直接視覚的に設定できることです。

続いて、Next EPの更新にて、どうやってゲームをコントロールするのかを説明しましょう。

格闘ゲームを例にすると、Hope値は敵がプレイヤーに対してどれくらい攻撃しやすいか、という要素と結びつきます。危険な攻撃の使用頻度や、攻撃の開始距離(避けにくさ)に影響します。

Fear値は、プレイヤーが敵に対してどれくらい攻撃しやすいかという要素に結びついており、スキを見せる行動の使用頻度や使用距離、プレイヤーの攻撃に対する反応速度などに影響します。

これをまとめると、ゲームジャンルに対して「Current EPに影響を与えるもの」「Next EPから影響を受けるもの」という要素があることが考えられます。

単純な1on1バトルを用いたデモで、プレイヤーと敵NPCモデルと、2D感情マップのデバッグ表示が公開され、Next Fearが高い状態だと敵は避けにくい攻撃を使用する様子が、モデルの動きとともに確認することが可能です。

反対にNext Fearが低い場合(プレイヤーのHPが瀕死状態)は、敵は避けやすい攻撃を使うことが分かります。メリットとして、AIに「敵を攻撃しなさい」という指示を与えれば、内部でどの攻撃アクションを選択するのか、Next EPを見て攻撃種の区別をしてくれることです。

スクウェア・エニックス テクノロジー推進部 AIリサーチャー「里井 大輝」氏

この仕組みを実際にゲームで利用するには、大量のデータ収集が必要になるため、ブラウザベースの「ゲームプレイ分析ツール」を導入しました。このツールでは、2次元感情マップ上でのEPの軌跡を表示できます。

感情の強さのタイムライン表示では、8つの感情がそれぞれがどの時点でどう強かったかを可視化しています。この感情の強さの計算は、いろいろな感情が少しづつ混ざった類似度を計算しています。

また、企画側からの要望で、HPやMPのようなステータス情報や「プレイヤーの攻撃がヒット」のようなイベント時の感情の強さを並べて表示し、感情が動いた理由を分析しやすくしています。

この仕組みのテストプレイ時フィードバックでは、ほぼ狙い通りの結果が出ており、ゲームデザイナー側からは、プレイ中の様子を録画しながらメタAI側のパラメータを調整することで、今までのワークフローに比べて改善したとの声が上がっています。

最後に里井氏は、今後の展望として、最近プレイヤーが経験した感情に次は向かないようにする「ヒートマップ」や、Goal EPのプランニングに位置検索システムを導入する、などさまざまな可能性があることを語りました。

取材・文・撮影:細谷亮介

▼関連レポート記事はこちらから

■イントロダクション ゲームAI研究・開発の全容:三宅 陽一郎氏

■キャラクターとのインタラクション:Gautier BOEDA(ボエダ ゴティエ)氏

■メタAIの基本モデルとゲームデザイナーの役割:水野 勇太氏

※本記事は2019年5月時点の情報です。

GeNOM(ゲノム)とは

DeNAのゲームクリエイターを様々な切り口で紹介するメディア(運営:株式会社ディー・エヌ・エー)です。ゲーム開発の現場で生まれる様々なエピソードや、クリエイター紹介、イベント紹介などを通して、DeNAで働くメンバーの”ありのまま”をお伝えしていきます。

GeNOMの最新情報は、公式Twitter アカウントにて確認いただけます。ぜひフォローをお願いします!

JOIN US!
DeNAゲーム事業部の採用情報はこちら