パシフィコ横浜にて開催中の「CEDEC2018」。期日は8月22日から同月24日までで、この3日間で多数のセッションに数多くの人々が集まる。本稿では、「モバイルタイトルにおける横断的な機械学習によるレベルデザイン支援システムの構築と運用」について、株式会社セガゲームス開発統括部ディレクター/シニアプログラマの松田 剛氏が行ったセッションに触れていきたい。
今回のセッションでは、「セガゲームス開発統括部で実際に開発・運営中のタイトルに導入した、レベルデザイン&デバッグを自動化とAIにより支援するシステムの概要紹介と、そのシステム構築フロー、運営ワークフロー」を説明。『D×2 新・女神転生 リベレーション』を中心に、『コトダマン』や新規タイトルでの各事例も紹介された。
■AI支援システム開発の経緯
まず「機械学習を活用して、なんらかの業務を自動化するチーム」を発足。活用事例の調査から機械学習の研究を経て、各ミドルウェアの研究を実施。その次に簡易シミュレーターの開発を行い、技術的アルゴリズムによる簡易的シミュレーターへの取り組みからDeep Q-Networkによる同シミュレーターの実験を行って、新たなアルゴリズムで実験比較を手がけたと松田氏。
そして、タイトル担当と自動化したい案件を実際に相談し、作る支援システムの概要を決定。その後に「タイトルアップデートに対応できるワークフローの考案」に着手するが、ここが重要なポイントであるという。
C♯の機械学習システムを開発(遺伝的アルゴリズムとニューラルネットワークの組み合わせ)して、次にこれと機械学習を自動化する際のワークフロー、実際に使うUIを検討。UIの検討は実働スタッフの使いやすいものが大前提で、実際のタイトルにも支援システムを導入してもらうとの事だった。
■ゲームへの強化学習導入時の問題点
その問題点とは、1回の学習に時間がかかる事。「AIでシミュレーターに対してゲームを操作して、操作結果をAIが受け取る」行程をクリアするまで繰り返さないと、報酬(スコア)を受け付けできない事が大問題。ゲームが終了するまで「行動が正しいかどうか」が分からないのだ。
そのための高速化が重要なので、「AIとシミュレーターを一つのAPIとする」事を解決策として提示。その候補には「①すべてPythonで行う」「②すべてC♯で行う」の二つがあり、それぞれのメリット/デメリットは以下のようになっている。
①Pythonの場合
メリット:機械学習ミドルウェアはPythonが主流のため、AI側の実装が容易。常に最新の機械学習を導入できる。
デメリット:ゲームがPythonで作られていない限り、シミュレーターをPythonに移植する必要がある。
②C♯の場合
メリット:シミュレーターの制作コストが小さい。(ゲームアップデート時の対応も容易)
デメリット:C♯の機械学習ミドルウェアは選択肢がない。機械学習をミドルウェアに頼らず、自主開発する必要がある。
結果、シミュレーターの更新コスト削減を目的として、C♯を選択したとの事。また、運営タイトルのバージョンアップを頻繁に行うため、常に使用できる環境を維持する事も重要だと判断した。これは、複数タイトルへの展開を考えても、機械学習部分を独自開発すればコストは下がるとの判断でもある。機械学習の基本部分はほぼ固まっており、新規更新は考えづらいとの考えもあった。
■AI支援システムと採用アルゴリズムの概要
以下にそれぞれの概要を画像で添付する。
・AI支援システム概要
・強化学習概要
今回採用したアルゴリズムは、遺伝的アルゴリズム(GA)とニューラルネット(NN)を組み合わせたものとなっている。
AI支援システムは、シミュレーターと強化学習を一体化したシステム(1API)をC♯で開発。強化学習のアルゴリズムはGA+NNを使用している。
■各タイトル導入事例
◎事例1:『D×2 新・女神転生 リベレーション』におけるクエスト難易度調整支援
クエスト調整支援のために、クエストの難易度調整を行うシステムを導入。全クエストを自動実行しての俯瞰的調査が可能となったそう。
・クエスト設計支援ワークフロー
・使ったモデルの概要
クエスト設計支援システムには、「レベルデザインのわがままを聞いた結果生まれた」という「簡易学習」を実装。松田氏はこれを「中途半端なものだ」と言いながらも、全体的には役に立っているそうだ。なお、詳細学習が5分かかるのに対し、簡易学習は30秒ですむ。
下の画像では、「回復持ちのアークエンジェルを優先的に倒す」という行動を選択している。各データでは誰が何をどうしたか、という行動が詳細にまとめられており、複雑な状況をログから読み取る事ができるのだ。
ストーリークエストのレベルデザインにおいて、従来は実際にテストした結果で調整していたものが自動化された。副次的な効果として、全クエスト履歴が数値として可視化されるため、ゲーム進行と難易度上昇の流れを調整しやすくなった事が導入の大きなメリットと言える。
◎事例2:『D×2 新・女神転生 リベレーション』におけるマップ設計支援
マップ設計支援システムは、ダンジョンマップの広さや必要なスタミナ量の調整を行うためのシステム。このシステムの導入により、急激な難易度変動(ハマるマップ)の検知やスタミナ消費量(移動にスタミナを消費する)の見える化が可能になった。フロア進行時の歩数も可視化されるので、目的(宝箱、ゴール)に達する難易度の調整ができるのだ。
マップが自動生成であるため時々遠回りさせる無駄なマップも生成されてしまうが、それを排除するためにもマップ設計支援システムが役に立っている。
この支援システムによって、マップがあるクエスト(アウラゲート)の想定外設定の特定と問題の顕在化、そして高速確認できる事による制作の短期化が達成できた。また副次的な効果として、到達可能階数の見える化につながり、スタミナ全回復状態でどの階層まで行けるのかの目途が立てられたのだという。なお、これらはチートの防止にもなった。
◎事例3:『コトダマン』におけるデッキ調整・報酬設定支援
『コトダマン』における支援システムは、クエスト報酬調整支援。「新しい単語を発見すると受け取れる報酬」を調整するため、「ゲーム進行上の各タイミングでの単語発見数の見える化」を目的としている。
上画像のように支援システムで全ダンジョンを一度に調査して、発見ワード数を見える化。ログで詳細が確認できるようになっている。
この支援システムで達成できた事は、まず第1に「ストーリー進行と新単語が発見される総数を可視化できた事」。目的に対して、機械学習ではなく自動化とランダム実行で十分な効果が得られたという。副次的な効果としては、ドロップ報酬の調整にも活用できた事があげられていた。
◎事例4:新規タイトル導入事例(予定)
こちらの事例は、まだ名前も公表されていない新規タイトルについてのものとなる。「各キャラクターのパラメータ差と、デッキ組み合わせによる強さを可視化する事」が目的のようだ。このタイトルにおいては、全パターンを調査する必要があるため機械学習は不要と判断、総当りの自動化を採用している。
勝率の高いキャラ・勝率の低いキャラや、ユニットごと・対戦ごとなどの様々な集計データによって、キャラクタバランス調整支援では、特定のキャラクターの突出した性能の特定と、キャラクター組み合わせによる有利不利を可視化できている。
■AI開発システム開発で得られた知見
ここでは、松田氏が得られた知見をご紹介する。
◎機械学習の報酬最適化について
やり過ぎると学習結果を誘導してしまう事になるが、一定は必要である。
◎入力の最適化
入力ウェイトの操作:HPの割合に加えて、死亡状態を別に入力する事で強化するなど。
one-hot表現の重要性:連続性のない要素は同じインプットで解決してはダメ。
◎実行できない行動のマスク化
学習が進むと選択されなくなると予想されるが、あえてマスク化する事で学習が早く進むメリットを優先する。
◎モデルの最適化
隠れ層の追加やユニットの増減に関しては、トライアンドエラーしかない。
簡単なシステムで闇雲に隠れ層やユニット数を増やして優秀なAIを作ろうとする方も多いが、少ないものから試すのがおすすめ。
◎WEBデバッグシステムとの融合のメリット
容易にどのスタッフも使用可能である。
◎ミドルウェア利用のデメリット
小規模モデルの場合は規模の割に遅い。
■より柔軟性の高い支援システムに向けて
今の遺伝的アルゴリズムは教師なし学習システムのため、一定の学習時間が発生。そのため条件変更があった時は再学習する必要がある。デッキを変えたらまた学習しなおさなければならないのだ。松田氏はこれを今の課題だとした。
また、実現したい事としてあげたのが、想定外のデッキによる壊れ性能の検知・特定組み合わせのスキルによる想定外性能の検知である。
これに対する解決案は、実際の一般ユーザーの行動データを記録して「教師あり学習」に使用し、汎用性の高いAIを作成する事がまず一つ。Q学習であらかじめ複数のパターンで学習したNNをGAの初期値に使用する事、をあげた。Q学習によるAI開発は専門の会社と共に進めているとの事だった。
■松田氏がセッションの最後に言っておきたい事
「AI支援システムの導入を念頭に置いた実装」
これがとても大切だと松田氏。未発表の新タイトルではこれができていたため、導入にあたってとても低コストだったとか。そしてAI支援システムの導入に不可欠のシミュレーター開発を容易にするため、演算(計算部)と演出(表示部)を切り分けできるように設計する事の重要さを説いた。
「AIは万能ツールではないよ、と関係者に周知徹底する」
現在できる事とできない事をしっかり説明しておく事が大切で、できる事をしっかり活用してもらう事が重要との事であった。
「機械学習以外での方法での解決」
機械学習以外で簡単に解決できるのであれば、それがおすすめ。何よりも低コストで自動化する事こそが重要なのだ。自動化のみで十分目的を達成できるケースも多いので、それを活用して欲しいとしてセッションをまとめた。
会社情報
- 会社名
- 株式会社セガ
- 設立
- 1960年6月
- 代表者
- 代表取締役会長CEO 里見 治紀/代表取締役社長執行役員COO 内海 州史/代表取締役副社長執行役員Co-COO 杉野 行雄
- 決算期
- 3月
- 直近業績
- 売上高1916億7800万円、営業利益175億3900万円、経常利益171億9000万円、最終利益114億8800万円(2023年3月期)