2019年7月10日こんにちは、日々ゲーマーとして腕を磨いているかめきちです。今回は、私が5年に渡りプレイしている、あのビックタイトルで活用されているAIの仕組みについて取材してきました。作品紹介DQXの詳細はコチラドラゴンクエストシリーズとしては初のMMORPG作品として、ユーザに楽しまれています。そんなMMORPGにおけるAI活用はどのように行われているのか、開発者のお二人にお話を伺うことができました。ドラクエ10と言えば、やはりバトル。皆さんが日々LV上げに励み、強敵に挑むときには欠かせないシーンですよね。プレイヤーの皆さんが感じるあの質問もぶつけて来ましたよ。実際にプレイされている方はイメージしやすいと思いますので、AIの仕組みを学びながら読んでみてください。いう異色の経歴を持つ。株式会社フロム・ソフトウェア入社。代表作「アーマード・コア」「フレームグライド」など。株式会社チュンソフト入社。伝説の教壇に立て!」など。株式会社スクウェア・エニックス入社。-ファイナルファンタジーVII-開発、ファイナルファンタジーXIII開発、共通エンジン開発を経て、現在ドラゴンクエストXフレームワークプログラマーチーフ。代表作はどろろ、ファンタシースターユニバース。2006年に株式会社スクウェア・エニックスへ入社し、現在ドラゴンクエストXのバトルプログラマーチーフ。バトルにおけるAI活用DQXのAIと言えばサポート仲間かめきちDQXでAIというとサポート仲間が思い浮かびます。実装上の工夫はあるのですか?勝目さんそうですね、サポート仲間同士で行動が被らないようにしていて、全体指示をだすAIを置いていますね。職が被っていても、それぞれ動いていますもんね。いった全体を見るAIはモンスターには実装していません。モンスターは個々のAIで状況を判断して行動しているんです。神僧侶が出来上がった背景DQXのサポート僧侶はプレイヤーより優秀だと言われていますが、その真意はどうなんでしょうか?私も死ぬ前によくザオしてもらってて、「あっ、これから死ぬな」と思うことが多々あります。笑これは事象がサーバーで決定されるために、サポート仲間はプレイヤーよりも速く結果に対応した行動をとれるためで、意図的にこのようにしています。当初、堀井さん(「ドラゴンクエスト」の生みの親)とも僧侶のAIについて話し合ったのですが、プレイヤーが倒されたまま何もできないよりはこの方がいいだろうという話になり、わざと反応速度を遅らせるような処理は入れずに、現在に至っています。意図してだったのですね。はい、開発内でもあまりにもプレイヤー操作を超えるような動きに賛否ありましたね。天地雷鳴士の召喚する”げんま”はモンスターAIがベース!Ver4からは天地雷鳴士が登場して、げんまが召喚できるようになりましたがAIはサポート仲間を参考に作られているのでしょうか?こちらはモンスターと同じAIをベースに作られています。僧侶枠としてのカカロンがサポート僧侶のような行動をしてくれないのは、この仕様で作られているからです。天地雷鳴士は幻魔とのセットで一人というバランスを意識しています。ボスモンスターに実装されているAIとは?ここまでサポート仲間の話をお伺いしましたが、皆さんが気になるボスモンスターのAIについても教えて下さい。後に調整された強すぎるモンスターがいましたが...実は高度で難しいAIは実装せずに、基本的なゲームAIのアルゴリズムを使用しています。その為、ボスの行動決定はプレイヤーパーティの状態変化を把握した行動が多いかと思います。プレイヤーが回復呪文を使ったからあの技を出す。押されたから反撃するなどですね。モンスターと押し合ういわゆる相撲と言えばDQXのバトルスタイルでの特徴の1つだと思いますが、実装する上でボスの重要パラメータだったりするのでしょうか?これは押し合いというバトル要素があって、そこにゲームAIを置いた形になります。サポート仲間の押し返しの仕組みもシンプルで、職種毎に重み付けをして、押し反撃するか否かを判断しています。ボスAIと絡めることでより、バトルを盛り上げる事も出来たのですが、サポート仲間に開発の想定した行動をさせてしまうと、このボスには必ず押し合いをすべきなどの戦術の固定を招く恐れがあることや、処理自体もより複雑になるために断念しました。いった仕組みなのですね。バトル中は様々なパラメータの活用することも出来るかと思いますが、実装の難易度以外に利用していない理由はあるのですか?はい、ボスモンスターはデータによって駆動するモンスターAIで動いているため、多くのデータを基にして強くしようと思えば強く出来るのですが、ディレクターとバトルプランナーで敢えてその場面に合った、お客様に楽しんで頂ける強さになるような調整を行っています。サポート仲間はそのボスモンスターに対して、例外はありますがある程度苦戦するけど勝てそうだと思えるような調整を行っています。このコンセプトは開始当初からですね。レグナードの絶妙な戦闘バランスはプレイヤーから作られた!?ここまでは一般的なボスについてお聞きしました。ヘビーユーザとしては、やはりエンドコンテンツのボスAIについてもお聞きしたいです。実を言うと、開発側で調整しているのは、ボスパラメータと新しいアクション要素がほとんどです。バトル中のデータを活用しても良いのですが、上記の通りお客様に任せる形で戦略や戦術を考えていただきたいという意図から、戦いに制限を設けることはしていません。レグナードはプレイヤーからも評価の高いボスですが、AIがバトルバランスを細かく調整しているのかと思いました。相撲要素や攻撃判定もいい感じの難易度になっていて、乱数を引いて負けるような感じもしなかったです。あれは担当プランナーの設定が素晴らしかったためで、開発内でも良く出来ているなと言われています笑レグナードも基本的な押し合いを利用して闘う想定で作られたボスですが、その攻略方法だけを意図して作った訳ではありません。お客様がバトルの攻略を考えて、今のバランスになっています。いうことは、「聖守護者の闘戦記」に登場するボス攻略にキラーパンサーを用いられる想定もしていなかったのですか?話題になっている事を聞いて、「あ、キラーパンサーを使ったときの動きを何も調整していない(笑)」と焦りました。問題のある動きはしていませんでしたが。あれにはビックリしましたね。開発として想定している攻略方法というものはありますが、実際はお客様が攻略方法を考えていくのが健全な姿だと思っています。キラーパンサーについては、よく思いついたなと感心するばかりですね。堀井さんもよくおっしゃっていますが、やはりドラクエらしさという事に重点を置いた結果、ボスモンスターに関しても今のバランスになったと考えています。攻略されて悔しいと思う反面、お客様皆さんが楽しんで攻略して頂けるコンテンツを用意できることが大事だと思い仕事をしていますね。ゲームを作る上でのAI活用DQXでは、AIを用いた自動化などは行われているのでしょうか?完全に自動化はされていないのですが、データ駆動で開発ができるようになっています。齋藤さん自動化という観点では、プログラマーが関わらなくても、プランナーだけでコンテンツが作れる仕組みがありますね。して、エンドコンテンツのボスもプランナーだけで作れてしまったりするのですか?新規デザインや新しいギミックはプログラマーが対応する必要がありますが、既存リソースを使ったバトルコンテンツならば、プランナーだけで作成出来てしまいますよ。アップデートの度に強すぎず、弱すぎず絶妙な調整が多いなと感じていたのですが、新Verにおける武器/防具追加、180スキルの追加など、全体のバランス調整をAIで行うこともあるのですか?ここもシステムで自動化はやりきれていないですね。絶妙なバランスになるかと言うと...担当しているバトルプランナーが天才肌なんですよ!笑あのバランス感覚には驚かされますね。原点に戻るとサポート仲間AIの調整に関しても敵やスキル毎に行うことが大変なので、初代ディレクターの藤澤さんがLvとHPだけで調整のできる計算式を作成しており、これがベースになっていることも大きいですね。RMT(リアルマネートレード)を監視する機械学習の仕組みMMOだと取得できるデータが膨大にあって、様々な用途に使えそうだなと思います。ドラクエ経済圏を作る上で重要なバザーの売買データ活用について教えてください。大きく分けて2通りあります。経済指標として観測しているのが1点。1点は、こちらの方がメインなのですが、RMT(リアルマネートレード)の検出です。MMOでは、いたちごっこになってしまう、宿命的な問題ですね。RMTの検出は、STF(スペシャルタスクフォース)が人力で対応しています。生ログデータを見ただけで「RMTをしている」と判断できるので、驚かされるのですが(笑)売買の傾向を見ただけで判断できてしまう人達ですものね...凄いスキルですよね(笑)今、そんな彼らの業務を、機械学習で実装できないか検証を行っているんですよ。人が実際に検出できている”特徴があるデータ”なので、アルゴリズム化出来ると考えています。DQXで活用されるデータ他にデータ活用していることはあるのですか?お客様からのお問い合わせに対応するために、データを解析しています。データ量が膨大で、サービス開始当初からのデータをすべて貯めておく事はできないので、用途に応じて保管方法と期間を変えています。各プレイヤーの行動に応じたゲームアクションをデータから導き出す事もできると思うのですが、データ量がネックになるのでしょうか?そうですね。データの活用意図が異なるということもありますが、データ量と保存形式から考えて、インゲームでのリアルタイム活用は難しいですね。調査案件で特定キャラクターの直近1日分の行動を解析するケースでは、データ検索に数時間を要す事もあります。お客様から頂く緊急度の高いお問い合わせに関しては、すぐに解答が出せるよう高速なデータ検索システムを用意しているのですが、それでもゲーム中でリアルタイムに活用するのにはパフォーマンスが足りません。ログデータに関しては、専任のデータベーススペシャリストを複数人配置しており、力を入れています。実装・保存コストがかなり掛かる部分なので、保存するデータの取捨選択には注意を払っています。他に、ボスの討伐数だったり、合成の試行回数に関してもデータを活用して判断することがあるのでしょうか?ボスに関しては、想定以上に早く倒されてしまう場合だったり、想定よりも強くて倒せないといった情報もデータから判断をしています。プレイヤーのステータスも同様で、どのようなパラメータのプレイヤーが存在しているか、どのくらいの合成を思考試行して成功したかといったデータを保持しています。日常的なKPIはすぐに判断できるようダッシュボード化していますね。膨大なデータを扱う上で工夫していることDQXではチャットも膨大な量になると思いますが、どのくらい貯まっていくものなのでしょうか?チャットは凄いデータ量で、1日に約20億行貯まっていきます。バトルのデータも20億行、フィールドでのデータも50億行に及びます。その他諸々も含んで、1日で約100億行のデータにも及びます。Exadataを活用していますが、時系列データの蓄積は行っていません。ここではキャラクターデータなど、ゲームプレイに関連するデータの蓄積保存のみを行っています。CDPを分析DBとして活用して解析をしています。すべてOracleで蓄積しているかと思ったのですが、用途に応じて使い分けているのですね。Exadataはサービスの要ですから、余分な負荷をかけないようゲームプレイに関係するデータ以外は保存しない方針ですし、ごく一部の限られたメンバー以外はアクセス出来ないようにしています。DQXのサービス開始から、もうすぐ6年を迎えようとしています。当時と比べると技術環境も大きく変わってきました。先に述べた機械学習の試みのように、運用が始まってから分析を考えるケースも増えてきています。私達も先を見越して、かなりしっかりとログフォーマットを策定したつもりですが、それでもデータの取り回しが厳しくなってきています。データサイエンティストの方々にこの様な事を云うのは釈迦に説法かもしれませんが、フォーマットの策定などは、先の更に先を見据えて慎重に設計して頂くのが良いかと思います。まとめ発売日から私も毎日のようにプレイしてきたので、サポート仲間やモンスターの行動は、大変気になっていたので裏側の話を聞けて非常に楽しかったです。ゲームAIと一言でいっても様々な種類があります。DQXではドラゴンクエストの世界観を大事にゲームAIが実装されており、コンセプトがしっかりしていると思いました。そのため、長い時間プレイヤーからも支持されるのだと実感できました。公式HPへ本記事では、株式会社スクウェア・エニックスを代表とする共同著作者が権利を所有する画像を利用しております。当該画像の転載・配布は禁止いたします。ゲームをこなすゲーマー。サービスデザインを得意とし、課題からサービスを最速で立ち上げる職人。週1回、注目のAIニュースやイベント情報を編集部がピックアップしてお届けしています。こちらの規約にご同意のうえチェックしてください。