11月 19, 2021

Rival Peak の AI


Sol Sliwinski、Senior Software Engineer、Pipeworks Studios

Rival Peakは、新しいタイプのMILE(大規模インタラクティブ・ライブ・イベント)です。すべてのライブ配信がFacebook上で行われ、視聴者が配信される出来事に対し、リアルタイムでさまざまなアクションを行うことができます。 Rival Peakの世界には、12人のAIキャラクターが登場します。そこでは、視聴者ひとりひとりのアクションが――ときには集合的な効果をともなって――世界に影響を与えることができます。いわば、私たちが創ったのはバーチャル・テラリウムのようなものです。 Rival Peakを一言で表すなら「ハンガー・ゲームとザ・シムズの融合」と言えるでしょう。Genvidの開発した、インタラクティブな類を見ないライブ配信テクノロジーを使用することにより、視聴者はRival Peakの世界の神であるかのように、さまざまな方法でAIの住人を助けたり、あるいは障害を与えたりすることができます。

Rival PeakのAIは、Pipeworks Studiosが5年の歳月をかけて一から作り上げたFORNAP(一次回帰数的アクションプランナー)と呼ばれる独自所有のシステムをベースにしています。そのFORNAPは、GOAP(ゴール指向プランニング)を含む、初期の「自動計画」テクノロジーをベースとしています。 そのFORNAPは、GOAP(ゴール指向プランニング)を含む、初期の「自動計画」テクノロジーをベースとしています。 ビデオゲームのキャラクターから現実世界のロボットにいたるまで、人工的「エンティティ」の行動を制御する上で、この「自動計画」と呼ばれる人工知能の一種は、長年にわたりさまざまな形で用いられてきました。

FORNAPの開発においては、解決すべき大きな問題が2つありました。 1つ目は、プラン検索の際の検索スペースを減らすことです。 2つ目は、STRIPSのような古典的なプランナーによる世界のモデル化方法である一階述語論理形式とは対照的に、連続的な実数値量について推論する能力を追加したことです。


暖を取ることをAIキャラクターが目標として選択した場合の、複合プランのイメージ

FORNAPはもともと、より伝統的なRPGのようなゲームでNPCを動かすために作られたものです。しかしながらRival Peakでは、FORNAPを広範囲に修正、拡張し、AIキャラクターの行動や振る舞いの自律性を一部排除して、その意思決定プロセスを視聴者にゆだねるようにしました。 つまり、Rival Peakとは、AIキャラクターが視聴者からのアクションに影響を受けたり反応したりする、リアリティテレビ番組のようなものなのです。

FORNAPで制御されたキャラクターは、状況に応じて目標を変えたり、今後の計画を立てたり、自分の(そして視聴者が誘導した)好みに基づいて計画に優先度をつけたり、他の目標や計画がすぐに実行できないときは探索したりなど、さまざまな行動をすることができます。 キャラクターは、自分にとって最も重要な目標を決定し、その目標に達成するために考えられる数千の方法を、自分の知識と環境に基づいて判断します。 FORNAPは創造的で予測不可能であると同時に、決定論的でもあります。 プランナーの上層には、パスファインディング、ゲームロジック、アニメーションロジックなどの従来型のシステムによるシミュレーションが存在します。 プランナーは個別のスレッドで実行され、シミュレーションとは非同期で更新されます。 さらに、FORNAPはシミュレーションの状態から完全に独立しているため、AIのスケールアップはとても容易で、複数のマシンへスケールアップすることもできます。

そして、インタラクティブなリアリティテレビ番組に相当するものを制作するために、このFORNAP AIエンジンに向けて、ドメインに依存しないカスタムドメインが構築されました。 また、Rival Peak専用のシミュレーションとAIライブラリも構築しました。 以上をまとめると、高レベルのAIスタックは次のようになります。

  • シミュレーション:Rival PeakのAIライブラリは、エージェントとなるUnityのゲームオブジェクトに向けてリクエストを作り出します。これは、Rival Peakのシミュレーション環境の中で実際に物理的な事象が起こる場所です。 これは、Rival Peakのシミュレーション環境の中で実際に物理的な事象が起こる場所です。
  • AI ライブラリ:ドメイン依存のアクションと世界の状態の集合体であり、Rival Peakのキャラクターが何を知り、何ができるかを定義しています。
  • FORNAP:ドメインに依存しないプランナーで、未処理の状態であればどんなゲームでも使用できます。

以前のプロトタイプでは、アクションが秒単位で計算されていたため、重大な不具合が頻繁に発生し、酷い状況になることが多々ありました。それは、キャラクターが毎日8時間も行動し続けるRival Peakのようなドラマチックで長時間配信型の大規模なインタラクティブ体験には使用できないものでした。 まず、12人のAIキャラクターの間に社会的なつながりが存在するように、社会的な行動モディファイアを追加しました。 現在のFORNAPが使われる以前は、お腹が空いていたキャラクターは他のAIキャラクターを食べようとしていましたが、Rival Peakでは共食いがタブーであるなど、ある程度の社会常識が存在しています。


ナビゲーションシステムのストレステストのイメージ。特に狭い空間でのエージェントの挙動をテスト

Rival PeakのAIにはその他にも、既存の目標やニーズ、行動、ステータス効果を各キャラクターの行動に合わせて変更するなどのオーグメンテーションが用いられています。 また、Rival PeakのAIは、スコアイベントやカメライベントを駆動させるための全く新しいサポートを必要としました。イベントのフラッギングでは、毎週の要約番組「Rival Speak」に収録するために、数多くの瞬間を「Bロール」として撮影するイベントフラッギングも必要でした。 さらに、Rival PeakのAIのプランナーとゴールシステムを拡張し、インタラクティブなライブストリーム・オーバーレイを介した間接的な視聴者の入力をサポートしました。 各AIキャラクターの次のゴールやアクションについて定期的な投票を行うことに加えて、視聴者は、食べ物や材料を集める、謎を解くなど、キャラクターの行動にかかる時間の長さにも影響を与えることができます。 Rival Peakの住人はほぼ自律的に行動できる一方で、何千人もの視聴者からの絶え間ない入力が、タスクやゴールの優先順位付けから各キャラクターの問題解決能力の速さや正確さにまで、すべてに影響を与えます。

AIの住人は、キャラクターがどのように決定するかを制御するさまざまな優先度を包含した、ゴールとニーズの組み合わせにより行動します。 この優先度は、多くの場合、性格的特徴として現れるもので、それがさらに、手元にあるアイテム(インベントリ)、物理的および感情的な状態の条件などと併せて考慮され、ゴールがどのように割り当てられ、優先順位を付けられ、追求され、達成されるかが決まります。 ここでユニークな点は、視聴者は個人的、集団的な行動を通じてストーリーを形成し、推進する役目を担っており、観者の側に登場人物のゴールを変えるための無数の方法とチャンスが与えられていることです。

Rival Peakの12人のAIキャラクターに適度な自律性を持たせるためには、多岐にわたる優先度と制約が必要となります。例えば、以前のFORNAPプロトタイプの初期段階では、水分補給の必要性をエージェントに理解させようとしていました。 その最初の設定では、中程度に喉が渇いているエージェントに空の水筒と水溜りが与えられました。 問題に対して適切に制約が設定されていなかったため、当のエージェントは水筒を無視して、水溜まりから直接飲むことを考案しました。 そのため、これは練り直さなければ、ということになりました。

同様に、以前のFORNAPで共食いが問題になった当初は、エージェントを「肉の容器」としてモデル設定していました。そのため、空腹を満たすために、肉を「取り出す」という発想が生じました。 初めてこの状況に遭遇したとき、私たちはエージェントが空腹を感じ始めたとたんに(多くの場合陰惨な方法で)自殺し始めるという空恐ろしい様子を目撃することとなりました。 このケースでも、やはり問題に対して適切に制約が課されていませんでした。

食人行為と同様に、オリジナルのFORNAPプロトタイプに存在していた戦闘も削除しました。 さまざまな種類の対立がRival Peakには存在しないというわけではありません。しかし本質的には、それらは当初よりはかなり少なくなっています。 私たちは、代わりに挨拶や会話、冗談を言ったり、イチャイチャしたり、助けを求めるなどさまざまな社会的な交流に焦点をあて、戦闘をそうしたものと置き換えました。

Rival PeakでAIキャラクターが達成しようとするゴールは数多くあります。例えば上層レベルのゴールの例を挙げると、栄養補給や水分補給、保温、探索、障害物のクリア、食料や資源の収集など枚挙にいとまがありません。 各個人の、または共同体としてのゴールを達成するために、キャラクターには数十種類のアクションの選択肢が与えられます。

Rival Peakでは、「プロジェクト」を極めること、つまりこの世界全体の背後にある謎の真相に迫ることが究極のゴールとなります。 Rival Peakとは、視聴者である皆さんが観察し、影響を与えている仮象のビデオゲームなのでしょうか、それともここには独自の動機と手段を持つ、もっと大きな力を備えた黒幕が存在しているのでしょうか? 12人のAIキャラクターはこうしたメタ的切り口に気付くことはなく、仮に知っていたとしても、彼らは生き延びることや自分たちの周囲の環境を探索することで精一杯です。究極の謎を解き明かす役割は、視聴者に託されているわけです。

各キャラクターには、典型的な性格(「ひょうきん」、「短気」、「浮気性」など)があり、それは他のキャラクターとの差異化に役立てられており、またそれが、意味のある行動やプロットに基づくステータス効果、各キャラクターの行動の選択肢を決定しています。 そして、現実の人間と同じように、AIの住人12人は、各々のゴール を持っています。 これらのゴールには、人付き合いや謎を解くことから、保護(自分自身、家、友人)、休息、治癒、回復、生活(食料を集め、食事をし、水を飲む)ことまで多岐にわたります。 そうしたゴールがキャラクター達の行動の原動力となっていますが、そのゴールはさまざまな形で視聴者の影響を受けます。その代表的なものが、APE(オーディエンス・パーティシペーション・イベント)と呼ばれる視聴者参加イベントです。 APEについては、同僚であるGreg Reinmuthのエッセイをお読みいただければと思います。APEとは、視聴者がキャラクターに影響を与え、ストーリーを動かす最大の可能性を秘めた瞬間であると言っていいでしょう。

一般的にはRNG(ランダム・ナンバー・ジェネレータ)で処理されるインスタンスの多くを、視聴者の「クラウドソーシング」による決定に置き換えることによって、Rival Peakはある種の総括的な社会実験を行っていると言えます。その決定は、ここでは集合的なものでも個々のものでも「ウィンターを観察している視聴者だけが、彼女が森で見つけた謎のベリーを食べるかどうかを投票する」ことができます。 視聴者全員が神に等しい力を持つこの場所で、皆さんはRival Peakの12人の住人たちに楽園を創ることも、世紀末の荒野を創り出すこともできます。

私たちは何百万人もの視聴者が集合的に、あるいは個人として裁判官や神のような存在となることができて、楽しくて予断を許さない「見逃せないTV番組」のような手法でストーリーやキャラクターに影響を与られる、「ロスト」と「サバイバー」を融合したようなエピソード形式のインタラクティブなアニメを作り出すことを目標にしてきました。 はたして成功したのでしょうか? その答えは、今回初めて、視聴者皆さんの手にゆだねられることとなります。