2020年9月2日~4日まで、CEDEC公式サイトのオンライン上にて開催された日本最大のコンピュータエンターテインメント開発者向けのカンファレンス“CEDEC 2020”。開催3日目となる9月4日に開かれた“『ブループロトコル』のパーティバトルを支える集団制御AI”のリポートをお届けする。

自由に動き回るプレイヤーを自動でクラスタリング

 2020年4月23日~4月27日にかけてクローズドβテストが行われた『ブループロトコル』。バンダイナムコオンラインとバンダイナムコスタジオが共同開発する本作は、劇場版アニメのようなビジュアルが大きな魅力のひとつだ。見た目だけでなくバトル面も特徴的で、開発テーマは“パーティ VS パーティ”とされている。

 パーティ VS パーティと聞くと、オンラインゲームをふだんからプレイする人であれば、PvP(対人戦)を思い浮かべることと思う。だが、本作におけるパーティ VS パーティとは、“プレイヤーのパーティ VS エネミーのパーティ”を指す。

 エネミーも、プレイヤーと同様にそれぞれのロールに沿ったアクションを行い、それぞれがコミュニケーションを取りながら連携を取るのだ。言うだけなら簡単だが、オンラインゲームにおける連携は経験のあるプレイヤーでも難しいこと。それをエネミーがどのようにこなすと言うのだろうか。

 本件を解説してくれるのが、『ブループロトコル』でリードAIプログラマを務める長谷洋平氏だ。

 本作における戦闘の課題について、長谷氏は以下のようにまとめた。

 大前提は、まるでプレイヤーを相手にしているかのような戦術的なバトルを楽しめること。攻略法をガチガチに縛らず、予習や固定の仲間は不要で、その場に偶然居合わせたプレイヤーどうしがゆるく共闘できるくらいのカジュアルさを求めているという。

 また、そうした戦闘をたくさんのプレイヤーが同時に楽しめるよう、大量のエネミーを低負荷で動かす必要もあるとのこと。

 上の画像では、本作におけるAIヒエラルキーが示されている。このうち、おもに戦闘を制御するのがCombat CooridnatorとCharacterだ。

 さて、パーティ VS パーティが成立するためには、プレイヤーおよびエネミーの集団をパーティとして認識する必要がある。だが、インスタンスダンジョン内ならまだしも、フィールド上ではプレイヤーにしてもエネミーにしても、明確にどの集団がパーティかを見分けるのは難しい。

 そこで、プレイヤー集団の分析のために類似度をもとにグルーピングを行う“階層的クラスタリング”を使用。

 要するに、近くにいるプレイヤーどうしをパーティであると認識。また、実際にゲーム内機能でパーティを組んでいる場合には、距離が離れていてもパーティとして認識するようバイアスをかけてあるわけだ。

このように、フィールドにいるプレイヤーたちを自動的にグルーピングする。

 つぎは、エネミー側のパーティ形成だ。エネミーにはそれぞれ警戒範囲が設定されており、その中に入ったプレイヤーをターゲットして攻撃。ターゲットとなるプレイヤーが複数いる場合は、エネミーに用意されたターゲットリストにすべてのプレイヤーを格納し、その距離や敵意によってどのプレイヤーを狙うかが決定される。

 その際、先に定めたプレイヤー側のクラスター情報がターゲットリストに反映されており、これによってプレイヤーとエネミーのパーティがぶつかり合うようになっている。

 上の画像で青いスフィアで囲まれているのが、エネミーのパーティ。画面には4体のエネミーがいるが、すべて同一のスフィアに囲まれている。すこしわかりにくいが、画面奥の3体はもうひとり別のプレイヤーと戦っている。ここで画面手前のプレイヤーがこの場から離れると……。

 手前の1体だけがついてきて、クラスターがふたつに分裂。さらに、移動した先にいたエネミーが戦闘に加わり、新たなエネミーのパーティが形成された。

エネミーが状況に応じて最適な行動を選択するように制御

 ここから、エネミーそれぞれの細かい行動について、AIによる制御の仕方について説明がなされた。

 より専門的な領域へと入ってきたが、要するにCharacterという階層はさらに情報収集をするPerception、意思決定をするBrain、実際に制御するActionの3つに分かれている。そしてさらにBrainの中でも3つの階層に分かれているということだ。

 とくに重要なのが、どのようにすべきかを決めるHTN Planningだそう。HTNとは、日本語にすると階層型タスクネットワークのこと。わかりやすく、朝起きて家を出るまでのタスクをHTN Planningになぞらえて示したのが以下の画像だ。

 起きて、朝支度をして、家を出るという3つのタスクがあり、朝支度は着替えと朝食のふたつに分割されている。さらに朝食も準備と食べるに分けられ、準備もご飯を炊くのかパンを焼くのかの2択が用意されている。

 このように、各タスクを細かく分割していき、これ以上分割できなくなった時点で、見つかったタスクを先頭からこなしていくのがHTN Planningと呼ばれるアルゴリズムだ。

 また、ここにプリファレンスと呼ばれる制約を追加できる。たとえば、朝食準備の際にお米とパンの所持数を参照し、多い方を消費するという制約だ。これは、タスクの実行前にかかる制約“プリコンディションプリファレンス”と呼ばれる。

 反対に、タスク終了後の状態にかかる制約が“ゴールプリファレンス”。例として、洗いものの数が少なくなるよう制約をかけた場合、パンを焼いて食べる方が評価が高くなるとのこと。

 そして、タスクを実行する順番に影響を与えるのが“トラジェクトリープリファレンス”だ。着替えてから朝食を食べるのか、朝食を食べてから着替えるのか、どちらから行うかをこれによってコントロールできる。

 さて、それでは実際にこれらが『ブループロトコル』においてどのように活用されているのか。『ブループロトコル』のエネミーには、HTN Planningとプリファレンスを応用した“タクティカルスキル”と呼ばれるアクションがセットされているとのこと。

 たとえば、近接攻撃や遠距離攻撃、バフにヒールなど、さまざまなタクティカルスキルをエネミーにセットしておき、それらをどのような状況で使わせるかを、プリファレンスによって定義する。

 上の画像では、ガードスキルをセットされたエネミーが盾を構えているのに対して、セットされていない方は盾は持っているもののガードをしていないことがわかる。このように、エネミーはあらかじめセットされたタクティカルスキルのうち、その状況に応じたものを選んでアクションを起こすということだ。

AIがエネミーパーティの戦略・戦術を組み立てる

 いよいよ、エネミーのパーティ戦術に関してのパートに。最初はエネミーそれぞれに割り振られたロールについて。

 上の画像では、アタッカーのエネミーがプレイヤーを攻撃し、ヒーラーのエネミーがアタッカーに回復スキルを使用、ディフェンダーのエネミーはヒーラーを守るように盾を構えている。

 これだけでも、エネミーがしっかりとパーティを組んで戦っている様子が見て取れる。しかし、ただロールを設定するだけでは、複数のヒーラーが同一の対象に回復スキルを使ったり、複数のディフェンダーがひとりのヒーラーを守ったりと、不自然な戦闘になってしまう。

 それはそれでおもしろい気もするが……この問題を解消するのが、冒頭で話に出たCombat Coordinatorだ。Combat Coordinatorはエネミーたちから情報を収集し、それをもとに組み上げた戦術および命令をエネミーたちに与える。

 たとえるなら、実際に戦うエネミーたちは現場の兵士たちで、Combat Coordinatorは基地から指示を飛ばすオペレーターのようなものだろう。ちなみに、Combat Coordinatorの階層構造もCharacterとおなじだ。

 Combat Coordinatorは、集めた情報をもとに複数の戦略をリストアップし、その中でもっとも状況に適しているものを選択することができる。

 仮に、“けん制する”と“取り囲む”というふたつの行動が候補にあるとする。これを、現状(ここではプレイヤー集団との距離)と照らし合わせて、どちらが最適かを判断する。

 実際のゲーム画面を見てみよう。なお、開発用の画面のため、左上に“Holding(けん制する)”と“Surround(取り囲む)”の評価が表示されているので注目してほしい。

 プレイヤーとの距離が離れている場合はHoldingの評価が高く、魔術師系のエネミーが遠距離魔法で攻撃を行っている。

 そしてプレイヤーとの距離が近くなるとSurroundの評価が高くなり、3体がそれぞれまわりを囲むように陣形を展開しているのがわかる。

 また、Combat Coordinatorはパーティを形成するエネミーたちのロール管理も行う。先ほども話が出たように、必要以上にロールが被るとおもしろみの欠けた戦闘になってしまう恐れがある。

 そのため、エネミーそれぞれの希望や適性も加味したうえで、Combat Coordinatorがロールを割り振っていくのだ。ここまでくると、いよいよプレイヤーと大差がないように思えてくる。複数人でいっしょに遊ぶ際にロールが被ってしまい、装備やスキルをカスタマイズして片方が別ロールの役割を担うなんてことはオンラインRPGのプレイヤーならよくある話だ。

 大枠の戦略が決まったら、つぎは細かい戦術を設定する。これも、各エネミーから収集した情報によってCombat Coordinatorが最適なものを選択して命令を与える。

たとえばこの場合、攻撃の評価値を見ればアタッカーよりディフェンダーが攻撃するほうが評価が高い。しかし、ディフェンダー本人からすると防衛のほうが評価が高いため、ディフェンダーには防衛、アタッカーに攻撃の命令が出されている。

 なお、ひとつひとつの戦術はタクティカルスキルとして各エネミーが持っていて、攻撃や待機などの基本戦術のみCombat Coordinator自身が持っている。

 Combat Coordinatorは集めた情報によって戦術を組み立てるので、そのパーティで可能な戦術しか選択肢に上がらない。つまり、そもそも考えるだけムダな戦術は最初から考慮していないので、プランニングの効率が非常にいいのだ。

エネミーどうしがコミュニケーションを取り合って連携スキルを発動!?

 相手を攻撃するだけのシンプルな命令ならまだしも、複数のエネミーが連携して動くような命令は、コミュニケーションをしっかり取らなければ実行できない。では、エネミー間のコミュニケーションはどのように行われるのか。

 本作では、“タプルスペース”というものを利用しているそうだ。例を挙げて具体的に説明すると、HPの少なくなったエネミーが救援要請を発信。あらかじめ、回復を行えるヒーラーはタプルスペースに救援要請が届いた際に通知を受け取れるように設定しておく。

 こうして救援要請の通知を受け取ったヒーラーは、対象までの距離などをもとに評価値をタプルスペースに書き込む。そうして集まった情報をもとに、最終的にCombat Coordinatorがプランを決定。最適なヒーラーに回復の命令を与える。

 このタプルスペースを活用すれば、複数のエネミーが連携する戦術もスムーズに行えるようになる。そのひとつが、範囲バフだ。ここで例に挙がった範囲バフは、以下のような仕様となっている。簡単に言えば、範囲内にいるあいだ攻撃力があがる遠距離アタッカー用のバフだ。

 まずは、この範囲バフを使えるヒーラーがCombat Coordinatorに情報を提供。また、範囲バフを使うヒーラーと範囲バフを受けるアタッカーはタプルスペースに範囲バフ使用要請が届いた際に通知を受け取れるように設定する。

 そしてCombat Coordinatorが範囲バフの使用要請をタプルスペースに送ると、詠唱を行えるヒーラーと範囲バフを活用できる遠距離アタッカーがそれぞれの評価値を書き込む。それをもとにCombat Coordinatorが、範囲バフを詠唱するヒーラー、そして範囲バフを受けて攻撃する遠距離アタッカーを選び出し、実行の命令を出すという流れだ。

 この説明をもって、本セッションは終了となった。クローズドβテストの段階では、まだ本格的にこのパーティ VS パーティシステムが実装されていなかった。それだけに、実際にどのような仕組みになっているのか、どのような楽しみかたができるのか、記者個人としてもかなり気になっていた。

 本セッションを聞いている限りでは、もはややっていることは人間のプレイヤーと同等かそれ以上なのではないかと感じた。以前、ファミ通.comで行った開発陣へのインタビューでは、むしろエネミーが強すぎるのが問題で、バランス調整に難儀しているという話も出ていたくらいだ。

 そのときはエネミーが強すぎるという話に実感が持てなかったが、これでようやく腑に落ちた。ここまできっちりとコミュニケーションを取って、状況に適した戦略・戦術を指示できるなら、それこそ偶然出くわしたプレイヤーどうしでゆるく共闘するのは難しいだろう。

 個人的には難しければ難しいほど燃えるタイプなので、それはそれで興味があるが、本作の方向性としてはもう少しカジュアルに楽しめるものを目指すことだろう。同インタビューでは、インスタンスダンジョンの難易度の話題で、高難度を求めるプレイヤーとそうでないプレイヤーのどちらも満足できるような住み分けを考えているとも話されていた。筆者と同じような嗜好のプレイヤーはこちらを楽しみにしておくとしよう。

 話がそれてしまったが、本作のパーティ VS パーティは、プレイヤーが想像していた以上のクオリティのものを期待できる。また、今回例に上がったのは終始ゴブリンタイプのエネミーだったが、種族の異なるエネミーがどんな戦術を取るのかなど、楽しみが尽きない。次回のテストについては未定だが、完成したパーティVSパーティを体験できる日を楽しみに待ちたい。