[レポート]ゲームに活用されるAIの多様性〜Amazon Game Tech Night #15 #AmazonGametech

8月21日に開催された「Amazon Game Tech Night #15」のセッション「ゲーム業界における機械学習の活用事例」のレポート。ゲームにおけるAI活用の多様性に着目しました。キャラの操作〜プレイヤーの訓練まで幅広く紹介します。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

好きなゲーム *1はドラクエ5。ゲレゲレ&ビアンカ派のホーリーです *2

プロフィールの趣味に「ゲーム」とは書けない"そこそこゲーム好きなアラサー"の目線から、ゲーム関係でAIがどう使われているのかざっくり知りたい方へ向けて、8月21日に開催されたAmazon Game Tech Night #15のセッションレポートをお送りします。

本記事では2つあったセッションのうち、最初の1つだけを取り上げています。2つ目のセッションについては、下記リンクをご参照ください。

[レポート] AWS の AI・機械学習系サービスは Game 開発でどう活用されるか聞いてきた – Amazon Game Tech Night #15 #AmazonGametech

Amazon Game Tech Nightとは

AWSを使ったゲーム開発に関するイベントが定期的に開催されており、今回はその15回目です。

イベント概要の要約

社会的に注目されているAIや機械学習といった技術は、ゲーム業界でも脚光を浴びています。

  • 実際にAIや機械学習がどうゲームに組み込まれているのか知りたい
  • どうしたらAIや機械学習を用いてやりたいことを実現できるのか知りたい
  • 上記のようなAWSユーザーの声に応え、ゲーム業界における機械学習の活用事例とそれをAWSで実現するためのソリューションをAWSの機械学習サービスとあわせてご紹介します。また、それらサービスの使い方をデモを交えてお見せします。

    詳細: 募集サイト

    ゲーム業界における機械学習の活用事例

    セッション概要の要約

    ゲーム業界におけるAWSを使ったAI/機械学習の活用事例をご紹介します。機械学習を使って何かしたいが、何から始めたらいいか分からない方のヒントになればと思います。
    また、強化学習により自律的に動くゲームAIやゲームの売上予測といった実際のデモもあわせてご覧いただきます。

    詳細: 募集サイト

    ゲームにおけるAI活用の多様性〜敵キャラ制御からプレイヤー訓練まで

    本セッションでは、多くのゲームにおいて活用されているAI(人工知能)の事例や分類について紹介されています。
    例えばAI活用の中でも王道とされる「ゲームAI」はコア技術と言われていて、プレイヤーが操作しないキャラクターを動かす人工知能です。これはある程度ゲームをプレイしたことがある方なら、すぐに具体的なイメージができるのではないでしょうか。

    一方、汎用的な技術として「ゲーム周辺AI」と呼ばれるAIの用途は多種多様です。例えば、どのユーザーがゲームから離脱しそうかを予測して売上の向上に努めたり、プレイヤーの動きをAIが分析して「どうプレイしたらもっと上手くなるのか」をコーチのように教えたりします。けっこう未来感ありますよね。

    このように幅広いAI活用法がインプットできるので、AWSの知識レベルに関わらず、まずはゲーム周りの技術を広く浅く知りたい方にはうってつけのセッションです!

    セッション内容

    はじめに

    • Amazon Sumerian *3を使った今日の会場アナウンス
      • トーク内容は会場の後ろに軽食が用意してあることなど
      • ランダムに2つのトークスクリプトを選んで喋らせている
    • スピーカー保里さんの興味と関心
      • 統計や機械学習による不正検知、チート検出

    ゲームにおける機械学習

    • 加熱する第三次人工知能ブーム
      • さまざまな新しいAIが出てきている
      • 19世紀後半の印象派、のような絵を書くAI
      • 囲碁の世界チャンピオンを下した最強の囲碁AI・アルファGO
    • ゲームとAIの歴史
      • ナムコが1980年に発売した「パックマン」
      • 世界で初めて独立した思考を持つ4体のキャラクターの個性ある動きを実現
      • プレイヤーが操作しないキャラクター(NPC)を動かす

    AI/機械学習とは何か?

    what_is_ML

  • 人工知能(AI) = コンピュータで学習・推論・判断など人間の知能の働きを人工的に実現
  • 機械学習(ML)= AIの領域の一つで、既存のデータから統計学やパターン認識で判断の方法を取得
  • 深層学習(DL) = 機械学習の領域の一つで、ニューラルネットワークを利用しデータの特徴を自動で学習
    • 機械学習の学習方法
      • 教師あり学習
        • 正解付きのデータを学習
      • 教師なし学習
        • 膨大なデータから自動的に法則を見つけ出し学習する
        • クラスタリング = 特徴別にグループで分ける
      • 強化学習
        • 自らトライアンドエラーを繰り返し報酬を与えられることで学習していく
    • 目的とデータに応じた機械学習のアルゴリズム
      • 教師あり学習
        • 回帰 = 株価などの数値・変数を予測
        • 分類
          • 2値分類 = Yes/No、犬/犬以外
          • マルチ分類 = 3種類以上の分類
      • 教師なし学習
        • クラスタリング
      • 強化学習
      • 異常検知
  • AI/機械学習のゲームでの主な用途

    • ゲームAI
      • NPC/キャラクターAI
      • 各社独自の実装
      • ゲームのコア技術なので非公開が多い
      • 機械学習の知識が必須
    • ゲーム周辺AI
      • 汎用化しやすい
      • APIベースのAIサービスで解決することも
      • 用途
        • 売上を予測し、売上の向上に寄与する
        • ゲーム開発の支援
        • チートや不正行為の自動検出
        • プレイヤーへのコーチング
        • 音声解析、ジェスチャー認識
        • ゲーム内チャットの自動翻訳
        • レベルデザイン、QAデバッグの自動化
    • AWSが提供する機械学習サービス
    • AIサービス
      • 機械学習のスキルは不要
      • 学習済みのモデルをAPIから利用するだけ
    • MLサービス
      • 機械学習を知っている人向け
      • Jupyter NotebookやMLフレームワークを使い学習モデル自作

    ゲームでの具体的な活用方法と顧客事例

    • ゲームAIとゲーム周辺AI
      • ゲームAI = 王道の活用法で各社が独自実装
        • NPC/キャラクターAI = ゲーム内のキャラクターにAIを組み込み自律動作させる
          • 例:囲碁の世界王者を破った最強のAI・アルファGO
          • OSSのOpen AI Gymというツールを使う
          • 例:スペースインベーダーゲームをプレイするAI
      • ゲーム周辺AI = 割と汎用化しやすい技術
        • ゲーム開発の支援
          • QA/デバッグの自動化
          • レベルデザインの自動化
        • 売り上げの向上
          • ユーザの離脱予測
        • セキュリティの向上と禁止行為の防止
          • チート、不正行為の自動検知
        • ユーザー体験の向上
          • ゲーム内チャットの自動翻訳
        • プレイヤーのエンゲージメント向上

    • 要素技術:キャラクターAIと強化学習
      • キャラクターAIには強化学習がよく用いられる
        • 良い行動には報酬、悪い行動には無報酬または罰を与える
          • 例1)格闘ゲームでルールベースの動きをするNPCに対して人間が相手となり、報酬と罰を与えて学習させる
          • 例2)フィールドを移動し、赤いボタンを見つけて押すとクリア
        • 結果的に正しい行動を学習する
      • 実用例:Unity ML-Agentsでの強化学習
        • Unityの環境で機械学習を利用するためのライブラリ
        • Unityが強化学習の環境とエージェントをシミュレーション

    • ゲーム開発の支援
      • QAデバッグの支援
        • 実用例:カードゲーム
          • 新規のカードが追加されるとデッキの組み合わせが膨大に
          • 追加されたカードも踏まえてAIがパラメータの調整を行う
          • カードゲームを高速にプレイさせて人力では不可能な組み合わせと回数を試す
          • ディープラーニング、強化学習が多い
        • 顧客事例:Cygamesのカードゲーム事例
          • ユーザーの行動ログを収集しプレイヤーの行動をシミュレーション
          • 推論用のサーバーはAWSのGPGPUインスタンスで動作
        • 顧客事例:mixiによるファイトリーグ事例
          • 10人のファイターでデッキを編成するゲームでAIがカードのレベルのバランスを調整
          • 機械学習によって人の動きに近いAIが作れないか
            • AI同士の対戦によって新ファイターの強さのバランス調整 -> 人的コスト削減
            • 2つのアプローチ = 教師あり学習と強化学習
      • コンテンツの自動生成
        • 実用例:アニメーション、ゲームシナリオ、ダンジョン、マップの生成
        • できること
          • サンプル画像群と似たような性質の画像を生成することでマップやダンジョンを生成
          • 1つのキャラクタの顔画像からさまざまな表情や角度を生成
          • 2つの画像を組み合わせて別の画像を生成

    • 売上の向上
      • 実用例:プレイヤーのリテンション対策
        • 一定期間のユーザーの行動履歴から離脱率を推論
        • 何らかの施策により離脱を防止
      • 顧客事例:Rovioによるプレイヤーのリテンション対策
        • 機械学習を使用してユーザーの獲得、維持、収益化
        • プレイヤーの離脱、消費行動、アプリのインストール傾向の3つを予測
        • 6週間で完結する離脱予測モデルの構築
          • 1〜2週目でユーザー行動ログを収集
          • ユーザー行動ログ:課金状況、ログイン間隔、ログイン期間など
          • 3〜4週目でプレイヤーの行動を変える施策を実施
          • 5〜6週目でどう変化したか観測
          • モデルが完成すると新規ユーザーにおける2週間の行動ログから推論が可能 -> 特定の施策を実施したときのユーザーの離脱率を推論できる
      • 関連技術:Sagemakerサンプル
        • 携帯電話ユーザーの電話回数や課金状況をもとに離脱率を予測
        • ゲームユーザーからのレビュースコアを元にビデオゲームのヒットを推論

    • セキュリティの向上と禁止行為の防止
      • 実用例:アバターなどの不適切画像を検出
        • 暴力的、性的な画像をアップした際の一次判定をAIに
      • 実用例:SNSやチャットにおける不適切なメッセージ検知
        • ゲームに対するネガティブな投稿、利用規約に反するメッセージを検知
      • 要素技術:Amazon Comprehend
        • 感情分析 = ドキュメント全体で示される感情を数値で肯定的、否定的、中立的と判定
        • キーフレーズ抽出 = キーフレーズや会話のポイント、キーフレーズの確かさを裏付ける信頼性スコアを取得できる
        • 詐欺行為の検出
          • 例)クレジットカードの不正利用検知
    • ユーザー体験の向上
      • チャットの自動翻訳
      • 例)Twitchなどのチャットの自動翻訳
      • リアルタイム翻訳
      • 翻訳した内容をPollyに喋らせる
      • 要素技術:Amazon Translate
        • AIでSNSの投稿を可視化
        • ComprehendでTwitterの投稿をリアルタイム分析

    • プレイヤーのエンゲージメント向上
      • 例)Call of Duty
      • 前回の戦い方がどうだったかAIに聞く
      • より上手くプレイするにはどうすればいいか、コーチングしてもらう
      • サーバー部分はECS
    • 最後に
      • APIベースの汎用技術では限界がある
      • ゲーム性に依存するGame AIを実現するには高度な機械学習の技術が必要になってくる
        • メタAI
        • ナビゲーションAI
          • マップ上の最短パスを検索
        • キャラクタAIやメタAIが環境を認識するための知能

    ゲームを支えるAIの多様性に驚く

    本セッションは、ゲーム開発に関わったことのない非エンジニアの私にとって「こんなところにもAIが!」という新鮮な驚きの連続でした。そうした驚きが爆発するきっかけとなったのは、「ゲームAI」や「ゲーム周辺AI」という概念です。これらはゲームに関連して、さまざまな用途でAIが活用されていることを理解するのにとても役立ちました。

    本記事を通じて、プレイヤーを楽しませるゲームの裏側を支えるAIの技術について少しでも理解を広められれば幸いです。

    脚注

    1. クロノ・トリガー、クロノクロス、トルネコの大冒険や風来のシレンシリーズはそれぞれ何百時間かやりました。最近は将棋ウォーズ(4級)やテリワンSPも。
    2. 何回か命名してゲレゲレに飽きてしまった場合、ボロンゴに浮気するのは内緒。結婚相手を選ぶ時、最初に話しかける相手はだいたいルドマンおじさんです
    3. Sumerianは3Dのキャラクターに任意のテキストを読み上げさせるAWSのサービス