NEWS

“CEDEC 2019” 講演者インタビュー特集
第3回 「強い」を作るだけが能じゃない!ディープラーニングで3Dアクションゲームの敵AIを作ってみた

2019年9月に行われた「CEDEC2019」にて、Luminous Productionsのクリエイターたちが
最新のゲーム技術に関して様々な講演を行いました。
講演内で伝えきれなかった、より詳細な内容や、開発者の想いを主にお伝えしていきます。

Facebook Share Twiiter Share Linkedin Share Reddit Share Tumblr Share

上段 達弘
プログラマー

■AIがAIを作る時代

―今回の講演テーマを行おうとしたきっかけをお聞かせください。

上段:『ファイナルファンタジーXV』開発時に、AIをつくるのが結構大変だったので そこを今話題のディープラーニングで作ったらもっとコストが少なく作れるのでは?と思いLuminous Engineを次のステップに進めさせるためにも、研究を始めました。 それで、せっかくだから検証結果をCEDECで結果を発表しよう、というところで今回の講演につながりました。

―その研究・検証結果の概要を簡単にご説明いただけますでしょうか?

上段:今回の講演では、ディープラーニングという技術を使ってアクションゲームのバトルAIを自動的に作ってみた、という発表をしました。シミュレーションを回すだけで、AIが勝手に学習して賢くなっていく、という研究です。人の手作業がほぼなしで、人間が作ったのと同じかそれ以上に自然で賢そうなAIができました!という発表でした。

―「賢くなっていく」とのことですが、どういった学習をさせ、どのように賢くなるのでしょうか?

上段:攻撃当たったら報酬上げるよ、避けたら報酬上げるよ、みたいに良さそうな行動したら報酬をあげることによって、この状況ならこうすれば報酬をもらえるはず、というのを学習していきます。それで、こちらが目指しているAIに近づいていくわけですね。

―ディープラーニングでAIをつくることは、ゲーム業界で主流になってきているのでしょうか?

上段:研究としては結構出始めてきていますが、製品として有効に実装した例はないと思います。 だからこそ、このスタジオで実装することが出来たら、という想いがありますね。 シミュレーションを繰り返すだけでキャラのAIが完成すれば、かなりのコスト削減にもなりますし。
使い方次第ではそう遠くない未来で出来ることだと思っています。

―まだ実装には至ってないものの、実装できるレベルまでは来ているということでしょうか?

上段:そうですね、ゲームデザイン次第で実装できると思います。 ただ、なんとなく賢く、いい感じに動いてるよねっていう見せ方では問題ないと思うんですが、戦略性のあるゲームだとするとちょっと相性が良くないかもしれません。 使いどころ次第ですね。

―現在動いているプロジェクトで、ディープラーニングでつくった敵AIを実装することは出来そうですか?

上段:そこは、まだなんとも言えないですね。やっぱり仕様次第ではあるので。今はまだAIには思い通りに動いてほしいフェーズなので、これから仕様が固まってきたら考えてみる、という感じです。

―相性が良くなさそうな特殊仕様の塊のような敵をAIで動かすことは難しそうでしょうか?

上段:ディープラーニングだと厳しいんじゃないかなと…。
ボスキャラとかは特徴的なパターンがあると思うんですけど、そういったパターン付けができないのがディープラーニングのデメリットなので。やっぱり単純な動きをする大量に発生する敵とかが一番ディープラーニングの良さが出るかなと思います。

―ディープラーニングの良さというのはどういったところにあるのでしょうか?

上段:従来のAIの作り方だと、スクリプトだったりグラフだったり、いろいろと種類はあるんですが、どの手法でも、AIが行い得るすべての行動パターンを列挙しなきゃいけない、っていう大変さは変わらないんですよね。
これはロジカルな思考が必要な作業で、出来る人も少なく、大量生産に向かない要因でした。
ディープラーニングは、シミュレーションを動かしているだけで勝手にAIが賢くなっていくので、人間はとくにやることがない、という点がウリですね。
その分プランナーは違うところに力を入れることができるので、ディープラーニングによって、AI作りの効率化が進むと思います。

―研究の結果として、他にはない今回の講演ならではのシステムなどありましたらお聞かせください。

上段:自動的にAIが作られると、やっぱりプランナーの思い通りにはいかないっていう場合があるので、そこはゲーム特有の大きな課題でした。
それに対して我々がとったアプローチが、学習した結果に対してプランナーさんが改ざんして調整できる通称「ムチ打ちシステム」なのですが、それがひとつのウリかなと思います。

―プランナーが後から調整することができる一番の利点はどういったものでしょうか?

上段:普通にやってしまうと、報酬の調整によってある程度コントロールはできるものの、「おもしろい」AIにはなりにくいと思います。
ただ、後からプランナーが調整することで、臆病だったり獰猛だったり、個性あるAIをつくることができるので、そこはこれからの時代に絶対に必要なところだと思いますし、このシステムの一番の利点だと思います。

―実際今回AIで作った敵と、プランナーが企画して作った敵で比べてプレイしてみて違和感はありますか?

上段:いえ、あんまりそこは違いが出ないように作っているので、何人かの人にプレイしてみてもらってもそんなに変わらない雰囲気でした。よくできていると思います(笑)

■様々な場面で可能性を見せる、これからのAI

―今回は敵AIがメインでしたが、プレイヤーにAIを有効に適応できそうでしょうか?

上段:プレイヤーのAIをどうするかというと、これももちろんゲームシステム次第ではあるのですが、ディープラーニングでやるとしたら、各ユーザーの操作を学習データとして学習できる、というメリットはありますね。
それを利用すれば、開発チームが作った固定のプレイヤーAIではなく、各ユーザーのプレイスタイルを真似するように学習した、各ユーザーの分身のようなAIができるかもしれません。
そうなるとAIに愛着も沸くし、面白そうですね。
その自分のプレイスタイルを学習したAIが、放っておくと自動で経験値を稼いでくれたりとか…。

―プレイヤー、敵は両方ともモデルが人間キャラでなくとも適用できるんですよね?

上段:そうですね。今回は人間キャラを使用しましたけど、クリーチャー的な敵でも試してみました。
クリーチャー系だと元々知性があるわけではないので、ディープラーニングでやるとよりそれっぽくなるというか、人間よりも向いているなと思いました。
人間モデルだと、ちょっとでも変な動きすると人間っぽくないなって違和感が出るんですけどクリーチャーでやるとそういのがあまりないので、ディープラーニングで動いていようが人間の手で作ったAIで動いていようが、そんなに気にならないですね。
ちょっと変な動きをしても「これがいいじゃん!」ってなりますね。

―人間や動物などリアルに存在しているものの方が再現が難しいということですね。

上段:やっぱり、違和感がどうしても出てきちゃいます。逆に、完全にファンタジーなものの方が我々がやらない動きをするので、それっぽく見えやすいですね。

―今回ディープラーニングでAIをつくるにあたり一番苦労した点はなんですか?

上段:学習させるキャラクターや環境の準備、ですかね。
CEDEC用に改めて別のキャラクターで学習する、などをしていたので。
使用するモデルによってうまくいかないかもしれないし、前回はたまたまいい結果が出てただけかもしれない、という懸念はあったのですが、意外とすんなりうまくいって、結果的には、サンプル数も増えて、よかったですね。

―例えば、オンラインゲームのBotも、今後ディープラーニングで作ったAIに置き換わっていくのでしょうか?

上段:そうですね、それもありじゃないかなと思います。
大体Botって、あまり手の込んだ良質なAIを作り込めるわけじゃないと思うので、(手の込んだ)ディープラーニングの方がそれを上回る可能性はありますね。
より人間に近い動きをできる、とかには向いてると思います。

―そうなると対戦プレイ等のいわゆるバトルロワイヤル系でもBotが多いですけど、もっと自然な形でプレイできるようになるんでしょうか?

上段:まだ分からないですが、敵たちがAIですごく自然に動いてくれたり、プレイヤーの真似をするような動きをしたり、人間とプレイしている感覚になれれば嬉しいですね。

―今回の講演ではバトルの敵AIでしたが、レースゲームとかにも適応できるのでしょうか?

上段:そうですね、理論的には出来るはずです。
学習するときに報酬を与えているんですけど、その報酬を設定できさえすればうまくいくと思います。
ただ、レースとかだと地形が関わってくるので、そのデータが必要になってくると学習量が増えてしまって…AIが考慮しなければいけない範囲が広ければ広いほど問題が難しくなってくるので、学習し切れなくなる懸念はありますね。

バトルの場合は相手との距離とか、相手との関係だけですけど、レースとなると今自分がどこにいて、どこに向かって、どこに壁があって、とかを入れなくてはならないので情報量が多くなりすぎてきてしまいますね。出来るようになれば面白いと思うのですが、現状はやってみないとわからないですね。

―なるほど。まだまだ発展途上かとは思いますが、レースゲームでも適用できるようになればゴールを優先したがる敵と、自分の走りを邪魔している敵、そういう2パターンをうまくマージしたような敵AIを見てみたいです。

上段:与える報酬の重みを半々につけてあげれば、ゴールも目指すし、相手を邪魔しようともする動きになると思います。ただどっちつかずになる可能性もあるかとは思いますが(笑)

―今回の講演で、上段さんが得たものはどういったものがありますか?

上段:ディープラーニングでやったっていうのはかなり大きいです。
やっぱり将来的にディープラーニングを入れるっていうのは主流になっていくと思いますのでそれを早めにやってみて、しかも結果が出たので、自分としても、スタジオとしてもすごく前進したのかなと思います。実際に実装するかどうかは関係なく。

だからLuminous Productionsとしても、実装するかは置いておいたとしても一番のアドバンテージはディープラーニングを使うか、今までのやり方で敵AIをつくるか選べるようになった状態じゃないかなと思います。

―より面白いゲームを作る為の選択肢が増えましたね。

上段:選択肢が増えたというのもありますし、開発の序盤でまずディープラーニングによって大量にAIを作っておいて、なんとなく動く敵AIがいますよっていう状態にしておけるのはいいですね。
プランナーが他のゲーム性を高める部分に力を割けるので。プランナーが人力でAIを作り込みたいのであれば、その後からでも出来ますし。

―多方面にとって、良い影響を与えそうですね。他にも今後活用できそうで、上段さんが研究してみたい技術等ありますでしょうか?

上段:ディープラーニングの技術で「GAN」(Generative Adversarial Network)っていう誰かの画を模倣して生成するみたいなディープラーニングの手法が出てきているんですけど、それを少し勉強したとき楽しかったので、そういうディープラーニングの別の使い方というのは興味ありますね。

考え方が面白くて、生成する人と、それが本物かどうか判別する人っていうのがそれぞれディープラーニングなんですよ。お互い成長し合う仕組みになっているんです。
何かに使いたいというよりかは、面白い技術なのでまずやってみたいといった感じですね。

―そういった様々なチャレンジをしていく中で今後、上段さんの目標のようなものはありますでしょうか?

上段:今の担当しているプロジェクトで、初めてリードプログラマーをやらせてもらっているんですがゲーム全体を見なきゃいけないというのも初めてなので、とにかく一本無事に作り切りたいですね。今までは自分のパートだけやっていれば良かったところが、全体を見なきゃいけなくなったので。

―目指すリードプログラマー像はありますか?

上段:こういう人になりたいなっていう、尊敬している方はいますね。若手の皆の憧れのような方で、人柄も良くて優しくて面倒見がすごく良くてプログラムの結構深いところまで知識があって…見た目もかっこいいですし(笑)
その方を目指して頑張っています。

―上段さんにとってLuminous Productionsはどんなスタジオでしょうか?

上段:好きなことを自由にやらせてもらってます。雰囲気もいいので、非常にやりやすいです。
もちろん、自由だけじゃダメですけど(笑)
ただ、面白くなりそうなものは、業務としてどんどん勉強させてくれるスタジオなのでこれからの自分のステップアップの為にも、スタジオ全体の士気としても有難いところだなと思います。

講演資料(pdf)のダウンロードはこちら

Facebook Share Twiiter Share Linkedin Share Reddit Share Tumblr Share
NEWS一覧はこちら