sam113のアクションゲーム研究室

おもにフリーや同人、インディーズなどでアクションゲームを作っている方に向けて、アクションゲームを作るヒントになるような情報を発信していきたいと思います。

アクションゲームとAI ~AIの活用方法を考える~

アクションゲームにAIが活用される局面とは

コンピュータゲームは、AIが幅広く活用されてきた分野の一つです。とりわけアクションゲームにAIは欠かせないものです。現代のアクションゲームでAIをまったく使っていないものは、ほぼ存在しないといっていいでしょう。古くはパックマンでAIが活用されていたことが知られています。

AIはゲーム内の様々な局面で使われています。NPCキャラクターの行動の制御、弾道の予測、空間上の経路探索、ゲームバランスの自動調整、ステージの自動生成などです。
AI技術の世界では、「キャラクターAI」「ナビゲーションAI」「メタAI」が現代のゲームを支える3つのAIとされています。
このブログでは、これらの技術的な内容には立ち入りません。ただプログラマでなくてもゲームデザインをする立場の人であれば、これらのAIによって何ができるかを知って損はありません。

今回は、これらの中でも特に「NPCキャラクターの行動の制御」「ゲームバランスの自動調整」「ステージの自動生成」の3つの分野に絞って、上手にAIを活用するための方法を考察したいと思います。

NPCキャラクターの行動の制御に使われるAI

AIの活用例として誰もが真っ先に思い浮かべるのが、NPCキャラクターの行動の制御でしょう。対人対戦型のゲームに一人用モードを付ける場合などは、対戦相手の行動の制御にAIが欠かせません。

古典的な2Dアクションゲームに登場する「ただ往復するだけ」の敵キャラの行動ロジックなどはあまりAIとは呼ばれませんが、状況によって臨機応変に行動パターンを変えるようであれば、AIと呼べるでしょう。たとえば敵キャラにとって有利な時はこちらに積極的に攻撃してきて、不利になったら逃げだすようなロジックであれば、十分にAIの範疇です。

 

敵キャラクターの設計 ~ゲーム世界の住人たち~ - sam113のアクションゲーム研究室

上記の記事でも述べましたが、キャラクター制御のAIは特に3D作品で必要とされるもので、2D作品の場合は「ただ往復するだけ」のような敵キャラばかりでも、それはそれでゲームを成り立たせることができます。
3D空間を歩き回る作品の場合は、キャラクターにある程度知性のある行動を取らせないとゲームの表現と馴染まないため、AIがより重要となります。特に空間が複雑な場合は、キャラクターが地形に引っ掛かって進まなくなる問題を解消するため、経路探索が欠かせません。

 

キャラクターが高度な知性を持って自律的に行動すると、まるでそのキャラクターがゲーム世界の中で生きているように感じられてきます。生きている感覚を生み出すというのはAIが目指すものの一つで、これによりホラーゲームは恐怖の度合が増し、対戦ゲームは本物の人間と対戦しているような感覚が増します。
そして十分に成熟したAIは、AIとの駆け引きを楽しむという遊び方を生み出します。2D作品であっても「ただ往復するだけ」の敵キャラばかりではなく、作品の目指すテーマによってはAIの導入を検討して良いでしょう。

ゲームバランスの自動調整

いわゆるメタAIと呼ばれる分野の中でも、比較的古典的な領域の一つなのですが、プレイヤーの目に見えないところでゲームバランスを自動調整することが古くから行われてきました。
プレイヤーが有利になったら敵キャラの数を増やし、不利になったら敵キャラの数を減らす、などといったことです。特に対戦型のゲームでは、上級者へのハンディキャップとして目に見えにくい形でこれらが行われてきました。

私自身が開発した作品でも、たとえばボスキャラとの戦闘時にプレイヤーが不利になったら回復アイテムの生成量を増やすなどの手法を取っています。

 

こうした手法は比較的シンプルな仕組みでも実装可能で、その割に効果が大きいことが特徴です。プレイヤーのゲームのスキルには個人差がありますが、この個人差をなるべく埋めるための手法といえます。

より一段踏み込むなら、単にゲームバランスを調整するだけでなく、プレイヤーの心理状態に応じてゲームの難易度の「ゆらぎ」を生成することで、ゲームにおける緊張→緩和→緊張→緩和…の波をも自動生成するというアプローチがあります。

緊張と緩和の波を作ることはゲームのステージ設計の基本技術の一つですが、周囲に敵キャラがいなくなったら敵キャラを新たに生成し、敵キャラが増え過ぎたら新たな敵キャラの生成を止める、などとすることで緊張と緩和の波を自動的に生み出すことが可能となります。ここまで来ると、ステージの自動生成の一歩手前まで来ています。

比較的AIを導入しやすい分野なので、導入を検討してみるのも良いかと思います。

ステージの自動生成

これもいわゆるメタAIと呼ばれる分野の中の一領域になります。

ステージの自動生成といえばローグライクと呼ばれるゲームジャンルが有名ですが、現代ではローグライクに限らず、オープンワールド型のゲームの膨大なフィールドを自動生成するアプローチが取られるようになってきています。
ステージの自動生成はプレイヤーと作り手の双方に恩恵があり、プレイヤーは実質無限のステージをいつまでも遊ぶことができて、作り手は膨大なステージデータを作る手間を省力化できるという利点があります。

しかしステージの自動生成技術は、敵キャラが「ただ往復するだけ」のような古典的な2Dアクションとは相性が悪いというのが私の考えです。このタイプのゲームは、地形や敵キャラの1マス単位の細やかな配置がゲームの面白さに直接影響しますが、AIによる自動生成ではそこまでのきめ細かい配置がまだ難しいからです。

それよりは、地形や敵キャラの配置が少しずれても問題ないようなタイプのゲームにこの手法は向いています。敵キャラが高度なAIで自律的に動き回るようなゲームであれば、初期配置の少しの違いはあまり問題になりません。

 

ステージの自動生成は、他のAI技術と組み合わせて効果が発揮されるものです。敵キャラは地形を読み取り経路探索を行い自律的に動き回る必要がありますし、敵キャラの出現数の調整にはゲームバランスの自動調整技術が役に立ちます。そういう意味で、このタイプのAIの導入はハードルが高いといえるでしょう。

 

余談ですが、無限に近いステージの生成をAIではなく人力で行ったのが、スーパーマリオメーカーだと言えます。

人間によって生み出されるステージのアイディアの豊富さには、AIはまだまだとても追いつきませんが、将来的には、スーパーマリオメーカーのような仕組みで生み出された膨大なステージデータをインプットとした学習により、人間が生み出すのと同等のアイディアを持つステージデータをコンピュータが生み出す日が来るのかもしれません。

そうなれば、ステージ制作はもはや人間の仕事ではなくなるのかもしれませんね。