AI技術は重ねると掛け算になる
三宅:データの管理の話に移ります。[AIグラフエディター]には、ものすごく深い階層のデータができていたようですが。
白神:仲間の[AIグラフエディター]のデータが非常に大きなサイズになっていました。なるべくコンパクトになるデータ設計になっているんですが、それでも巨大なデータになってしまって...。一回データをビルドするのに、4人の仲間のキャラクターでは5分くらいかかっていました。最終的に、開発のイテレーションサイクルは良くはなかったです。軽いキャラクターはそこそこ速くビルドできたんですが、仲間のビルド時間には苦労しました。
ファビアン:ナビゲーションデータでは、マップが大きくなるとつながるデータも大きくなります。例えば「橋を1本消したら、影響はもしかしたら何十キロ平米に広がるかもしれない」ということがありました。だから簡単に削ることができなくなっていって。
白神:ナビゲーションデータの難しさは、ワールドマップのデータをビルドしつつ、その上に乗るダンジョンや街のデータを作ってマージしないといけない点ですね。それを読み込んで、作って、焼き付けて、というのは非常に時間がかかった印象がありました。
© 2016-2019 SQUARE ENIX CO., LTD. All Rights Reserved. MAIN CHARACTER DESIGN:TETSUYA NOMURA
三宅:お二人はある程度は別々に開発していました。それが絡み始めたときは、どんな形だったのでしょうか。
白神:意思決定ツールでは、例えばポイントクエリ検索をして、そこへ移動するようなノードができ上がっていくタイミングがあって、まずはそこですね。また、ナビゲーションシステムからもらえるデータを活用して歩く、というときにも融合していきました。
三宅:AI技術の組み合わせの妙だと思うのは、「掛け算」になることなんですね。そういう融合がシナジーを生み出していったのだと思います。
見えない敵を避けるバグ
三宅:最後はQA(品質保証)の話です。AIはダイナミックなシステムなので、QAが必要なんですよね。頭の悩ませ所だと思うのですが、教えていただけますか。
白神:意思決定のQAは非常に大変でした。というのも、動きがアニメーションによって変わってしまったのか、それともAIのデータによって変わってしまったのかが、すごくわかりづらかったんです。
AIからはアニメーションに対して動けって言ってるはずなのに、実際は動かなくなっていたり。もしくはちょっとした仕様のずれで、パラメータが上手く渡っていなかったりして。QAさんから「キャラが動きません、固まってしまいました」と報告があったときに、なぜそうなったかを調べるのは本当に苦労しました。これまでのゲームよりも、圧倒的に大変だったと思います。
理由ははっきりしていて、各チームで耐えられるよう汎用的に柔軟な設計をしていたがため、直接的に動かすというより、どこが抽象的な動かし方をするようになっていたんです。つまり、体は体、頭は頭、アニメーションはアニメーションと分けて作っていた。なので、どこの狭間で動きを失ってしまったのかが非常に追いづらかったんです。これにどう対応したかと言うと、非常にマンパワー的と言うか、ものすごく人手をかけていって。アニメーター、プログラマー、ゲームデザイナーの皆さんで、デバッグした思い出がありますね。
三宅:1つのバグを直すのに1日がかりですか?
白神:1日がかりとまではいきませんが、それぐらい骨の折れる作業でした。バグそのものは、本当につまらないものなんです。ゲームデザイナーさんから最も心配されたのは、同じ状況がいつ起こるかわからない不安ですね。ここは、テストの自動化システムをもっと多く作っていれば、回避できたものもあったと思っています。
三宅:安定化するタイミングはいつでしたか。
白神:データをいじり続けるうちは、壊れて直してを繰り返していきました。データをいじる頻度が減るにつれて、安定してきたようなイメージです。
三宅:ファビアンさんは、データやシステムの品質保証をどのように進めたのでしょうか。
ファビアン:ナビゲーションデータ上で、変化があったところは赤くなって可視化されるようなシステムを作っていました。バグがあるときは、データとプログラム側の両方に可能性があるので、どちらも修正していましたね。1つ印象的だったバグは、スポーンする前の準備中の敵を避けるように、ナビゲーションが作られていたことです。つまり、「見えない敵」を避けていたんです。
© 2016-2019 SQUARE ENIX CO., LTD. All Rights Reserved. MAIN CHARACTER DESIGN:TETSUYA NOMURA
三宅:パスとしてもAIとしても間違っていないのに。
ファビアン:複雑に要素を重ねているから、そこに気づけないんですね。
白神:[AIグラフエディター]でも、基礎のシステムをテストするための仕組みを用意しました。修正しても、このテストを通れば安定してリリースできる、というものでした。ですが、システム同士をつなげた後に起こった不具合を検出する仕組みは、用意できませんでした。
三宅:システム単体でのテストはOKだったけど、掛け算するときに現れたと。特にキャラクターは色々な技術が積み重ねられていましたからね。
白神:ほとんどの不具合が「アニメーションとAI」に関するものでした。なので、こうした組み合わせでも、自動テストを作っていかないとダメだと痛感しました。
三宅:今言われたのは、AIとアニメーション、心と体のつなぎ方という、これからのキャラクターの課題と思っている部分です。意思決定と体をどうつなぐかは哲学的な問題にもなりますが、特に正解がない世界です。お二人に最後の質問なんですが、これからどういう点を改善すれば、AIが良くなっていくでしょうか?未来への展望をお聞かせください。
白神:テストをどんどん自動化することで、クリエイターさんたちがテストではなく、知恵を出すところに時間をかけられるようにしたいと思っています。また、機械学習は1つの大きなテーマですね。すべてではなく、ある一部分だけでも機械学習が取って代わるようになれば、もしかすると表現力が1つ壁を越えられる可能性もあると思います。
ファビアン:そうですね。自動化できれば、まだ改善できると思います。それと『FFXV』はアニメーションドリブンであり、AIはがんばってアニメーションに合わせています。そうした新しい手法が出てきたのが面白いですね。
アニメーションを綺麗にしたいという思いはありますが、優先度を最も高くするべきは、プレイヤーが楽しく遊べることです。あくまでゲームが面白くなるように、AIを使っていけたらと思います。
●関連記事
『FFXV』のゲームAIはどこまで進化したか? 書籍刊行記念『FINAL FANTASY XV』AI座談会~プログラマー編
キャラクター性とリアルさのバランスをどう取るか? 書籍刊行記念『FINAL FANTASY XV』AI座談会~デザイナー編