simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

オープンワールドにおけるキャラクタAI(NPC)のあり方

ゲーム内のキャラクタを制御するAIを作る場合、周りから収集した情報を使って意思決定をし、実際に行動に移すまでの処理の流れを設計する必要がある。

…という考え方から、すでに間違った方向へ思考が働いていた!という話

従来型のこの手法は、収集した情報から意思決定をする処理を、すべて人間がデザインしなければなりません。
オープンワールドにおける状況や選択肢は膨大な組み合わせとなりますので、当然人間にはデザインしきれない量となります。
するとゲーム内のキャラクタAIは状況に合わせることができず、単調な反応だけを返す、内部のロジックが丸見えの、残念な振る舞いをするキャラクタになってしまうのです。

では、単純に動的に行動を決定する仕組みを考えていけばよいのでしょうか?
これも答えは NO です。

そうした場合、未来予知という極めて難解なタスクをこなさなければならなくなり
学術界の最先端では有効な解法としてモンテカルロ木探索アルゴリズムが提案されていますが
オープンワールドのような選択肢があいまいなゲーム内では、適用できないケースが多く、パフォーマンス面からも実用的な解法とは言えません。
囲碁や将棋は完全情報の限られたパターン数の局面と、膨大な棋譜が存在するため、うまく機能することが多いだけなのです。

さて、つまり現在のオープンワールド(どこまでも世界が広がっているような)ゲームは未来予知、つまり高精度な予測シミュレーションが行えないがために、動的に正しい行動の選択ができないのです。
問題がはっきり見えてきました、ということは、もし高精度な未来予測が行えるオープンワールドのゲームができたなら、解決へ向かうということです。

これからのオープンワールドのキャラクタAI(NPC)のあり方として私が考えるのは
高精度な未来予測が行えるオープンワールドシステムを用意し、その上で、NPCは動的に正しい(報酬を受け取れる)行動を選択する、というものです。
従来は人間がゲームデザインの段階で未来予測をして、様々な状況の判定処理を記述し、限られた条件において最善の行動をするようにAIを記述してきましたが(ビヘイビアツリーやステートマシンによるルールベース手法)
私は新規に、未来予測が行えるワールドシステムをデザインし、その未来予測の結果として高い報酬を得られる行動を選択する仕組みを考えだしました。(オープンワールドモンテカルロ木探索)

ただ、私が考える手法を実現するには、オープンワールドを部分空間で区切ってシミュレートできるという、まったく新しいデザインで一から作り上げる必要があるため、これまで考えた人はいても実装の時間的制約の問題から実現した人はいません。
ちょっと試してみる、のハードルが高くてできない研究なのです。

…ということで、引き続きオープンワールド(マイクローワールド)を作っていきます。