オススメ機能
Twitter
お気に入り
記事履歴
ランキング
パッケージ
アサシン クリード ユニティ公式サイトへ
レビューを書く
準備中
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
「生き生きとした18世紀のパリ」を表現してみせた「Assassin\'s Creed Unity」の群集とイベント制御手法
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2015/03/14 00:00

イベント

「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

画像集#002のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
 日本でも高い人気を誇るのステルスアクションゲームAssassin's Creedシリーズ。GDC 2015では,その最新作である「Assassin's Creed Unity」(PC / PS4 / Xbox One,以下,ACU)で実装されたNPCや群集の制御手法にまつわる技術を解説するセッション「Designing systemic crowd events on Assassin's Creed Unity」(アサシン クリード ユニティにおける群集イベントの設計)が開催された。
 NPCの制御に関して興味深い内容が盛り込まれていたセッションだったので,その概要をレポートしたい。


ACUにおけるNPC制御のポイントは

「4徒党群集システム」にあり


 Assassin's Creedシリーズは,今や定番ジャンルとして確立したステルスアクションゲームに属するが,ほかの同ジャンル作品と決定的に違うのは,「陰に隠れる」のではなく「群れに隠れる」ことを歴代シリーズ共通のテーマにしてきたことである。

Christine Blondeau氏(Game Designer,Ubisoft Montreal)
画像集#030のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
 ACUは,18世紀末のフランス革命時代におけるパリを舞台にしており,市民階級の発言力が高まってきた社会を描いている。対応プラットフォームをPlayStation 4(以下,PS4)やXbox Oneといった新世代機に移したACUでは,そうした社会を舞台とする以上,歴代のシリーズ作品のように「気ままに歩いているだけの群集」という表現から脱却したリアリティが求められたと,講演を担当したUbisoft MontrealのゲームデザイナーであるChristine Blondeau氏は説明する。
 そこで,群集表現の目標として掲げられたのは,「実際に人が生きているかのようなパリの街並み」。具体的には,街に暮らす市民がそれぞれに意志を持って行動しているかのような群集表現の実現だった。

ACUでは群集表現の開発目標として,「人が生き,その息づかいが聞こえるようなパリの街並み」を掲げた
画像集#003のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 ただ,ACUはあくまでもゲームであるため,リアリティだけを追求した群集シミュレーションを実装しただけでは意味がない。「プレイしたときの分かりやすさ」も重要になるという。そこでACUでは,パリの街に暮らす群集NPC(プレイヤー以外の市民など)を4つのFaction(徒党,派閥の意味)に分類した。

 1つめはExtremist(過激派)で,トラブルメーカー的なNPCだ。後述するAllyやCivilian,プレイヤーが操作する主人公に対しては攻撃的な態度を取るが,衛兵との争いは避けようとするAIが実装されている。
 2つめはAlly(自警団)で,Civilianを意識的に守るような習性が与えられている。ゆえに過激派とは揉めがちで,両者が鉢合わせるといざこざが起こりやすい。主人公はCivilianと見なされているので,自警団のNPCは主人公を支援するような行動を取ることが多いのも特徴だ。
 3つめはGuard(衛兵)で,いわゆる警察官的な立場のNPCだ。中立的な態度を取り,自警団と過激派の揉め事を見かけると仲裁に入るし,仲裁がうまくいかない場合は戦闘モードに突入することもある。主人公に対しても中立だが,剣を抜いて歩くような挑発行為をしたり,目の前で殺人を行うと,殺した相手が善人だろうが悪人だろうが「平和を乱す者」と認識して攻撃を仕かけてくる。
 4つめはCivilian(市民)で,中立的な立場で最もかよわい存在だ。

 この4徒党群集システムを実装したことで,パリの街中で平和な場所もあれば,争いごとが起こる場所もあるといった具合に,平穏と混沌が入り乱れる「生きた街並み」がそれなりに表現できたと,Blondeau氏は振り返っていた。
 また,4徒党群集システムは,リアルな街の表現だけでなく,ACUのゲーム性にも大きく貢献しているそうで,Blondeau氏はいくつかの事例を紹介した。たとえば,一度に相手をするのは困難なほど多くの過激派軍団に追いかけられたときに,大勢の衛兵が警備している地域に逃げ込めば,過激派対衛兵の戦闘を誘発させて難を逃れられるというテクニックが使えるという。
 つまり,4徒党群集システムを理解すると攻略にも応用できるわけで,ゲームとしてもよくできているように思えた。


行動に目的を持つNPC達と,NPC同士の相互インタラクション


 ゲームにおけるNPCといえば,ごく最近のゲームであっても,決められたルートを巡回するか,あるいは立ち止まってプレイヤーから話しかけられるのを待つ程度の制御しかされていないものを見かける。その程度の制御しかされないNPCは,ほとんどロボットのようで,ACUのリアルなグラフィックス表現に見合わない。

 そこでBlondeau氏らは,ACUのNPC制御に,ゲーム世界の住人達が思い思いの行動をしているかのように見える仕組みを盛り込むこととした。
 とはいっても,完全な自律行動を実現するのは処理負荷面で現実的ではないし,なによりゲームとして扱いにくくなってしまう。そこで,4徒党群集システムのように,NPC達の行動を3つの行動ジャンルに分けて制御するという簡略化したモデルを導入したのだ。行動ジャンルとは,NPCに与えられた使命や役割とイメージすればいい。

 1つめの行動ジャンルは「Wanderers」(徘徊者)だ。これはいわば「モブ」と呼ばれる種類のNPCがとる行動で,要は当てもなくフラフラと歩き回る行動である。ちなみに,徘徊者達の密度や移動方向は,レベルデザイナーによって綿密に指定できるようになっているそうだ。

徘徊者は,目的もなしに行動するモブ的な行動ジャンル
画像集#006のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 2つめの行動ジャンルは「Object Carriers」。日本語に訳すと「ものを運ぶ人」だろうか。職業や階級によって運ぶものは変わるが,特定の場所から場所へと何かを運ぶ行動を繰り返すという,目的を持った行動だ。ちなみに,運ぶのは物だけでなく,罪人や犯罪者といったNPCがNPCを運ぶような行動も含まれている。

「何かを運ぶ」という,はっきりした目的意識を持った行動ジャンルがObject Carriersだ
画像集#007のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 3つめの行動ジャンルは「Crowd Stations」,意訳すると「人目を引く行動」といったところか。これは他のNPCを立ち止まらせたり,彼らの興味をひくような行動をするといった行動ジャンルである。徘徊者達に声をかけて立ち止まらせるような商店の客引きのような行動,と言えば分かりやすいだろうか,この行動ジャンルには客引きのほかに,踊り子や大道芸人,近くにいる人にやたらと文句を付ける変人なども含まれているという。

定職についているNPCには,基本的にCrowd Stationsが与えられている
画像集#008のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

大規模なカーニバルなどが行われている場合,その領域全体のNPCがCrowd Stationsの行動を取るため,さらに多くの徘徊者達を引きつけることになる
画像集#009のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 このように,3つの行動ジャンルをNPC達に与えることによって,それなりに混沌とした街の様子を演出することはできたとBlondeau氏は説明する。
 だが,これでもまだ十分ではないと考えたACU開発チームは,行動ジャンルに加えて「相互インタラクションAI」なる仕組みを導入することで,3種類の行動ジャンルで制御されるパリの住民に多様性を与えて,より複雑な自律行動をしているかのように見えるようにしたそうだ。

 徘徊者同士の相互インタラクションでは,たとえば,気のあうもの同士が出会えば挨拶したり,仲違いをしてケンカを始めたりする。店のようなCrowd Stationに興味をそそられれば,店主と会話をすることもあるそうだ。ユニークなのは,男女のNPC同士が出会って気が合うと,カップルになって手をつないで歩き出したりすることもあるという。


NPCを巻き込んで展開も変わるイベントミッション


 ACUには,本編ストーリーの進行に大きく影響しない数多くのサブミッションがあり,それらは大抵の場合,NPCを巻き込んだイベントのような体裁をとる。Blondeau氏はそれを「Crowd Events」と呼んでいた。さしずめ「群集巻き込み型イベントミッション」といったところか。

Crowd Eventの仕様を説明したスライド
画像集#011のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法 画像集#012のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 Blondeau氏は,Crowd Eventにもさまざまな種類があることを説明した。
 Crowd Eventには,戦闘や目的地到達,隠密殺害,公衆面前での殺害といった具合に,7種類のテンプレートが用意されている。ゲーム中では7種類のテンプレートを基本として,下に示したチャレンジ要素を組み合わせることで,イベントミッションのバリエーションを増やしているそうだ。

  • Tackle the Thief(盗人を捕まえろ)
  • Kill the Criminals(犯罪者を殺せ)
  • Catch&Kill the Criminals(犯罪者を捕まえて殺せ)。これは「捕まえろ」型と「殺せ」型の複合イベント
  • Executions(処刑せよ)
  • Protect Civilians(市民を守れ)
  • Stealth Kill the Messenger(密かに殺せ)
  • Scare Away the Bullies(威嚇でいざこざを収めよ)
  • Help the Beggars(物乞いを助けよ)

画像集#013のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
「盗人を捕まえろ」のイメージ
画像集#014のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
「犯罪者を殺せ」のイメージ

画像集#015のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
「犯罪者を捕まえて殺せ」のイメージ
画像集#016のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
「処刑せよ」のイメージ

画像集#017のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
「市民を守れ」のイメージ
画像集#018のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
「密かに殺せ」のイメージ

画像集#019のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
「威嚇でいざこざを収めよ」のイメージ
画像集#020のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
「物乞いを助けよ」のイメージ

 これらのイベントミッションは,4徒党群集システムを中心としたACUのNPC管理システム全体(以下,NPC群集システム)によって,難易度を左右できるような設計となっているそうだ。たとえば,「密かに殺せ」を衛兵が一杯いる場所で実行しようとすれば,当然のごとく難易度が高くなるといった具合である。
 また,イベントミッションをクリアするための道筋も,複数用意されるという。群集達の行動は,ある程度ランダム要素を含んでいるため,同じようなイベントミッションを繰り返しプレイしたとしても,同じ展開になるとは限らない。たとえば「犯罪者を殺せ」イベントで,ターゲットである犯罪者の悪事を衛兵が見ていたりすると,衛兵が犯罪者を攻撃して,プレイヤーは手を汚すことなくイベントミッションをクリアできる,ということもあるそうだ。

 ACUのNPC群集システムは,リアルなモブキャラを演出するだけでなく,ゲーム戦略にも関わる要素にまで昇華しているわけで,大変興味深いシステムといえよう。


違和感のないNPCの出現や消去を実現するイベント制御の仕組み


 さて,このようにACUでは,NPCの群集を巻き込んだイベントミッションが多数存在するが,その制御は,独特なシステム構造で実現されているとBlondeau氏は述べる。それは「モジューラシステム」と呼ばれるもので,おもに3つの機能ブロックに分かれている。

PCを巻き込んだイベントミッションの制御は3つの機能ブロックで動作している
画像集#022のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法
 1つは「Intro」(イントロ)ブロックと呼ばれるもので,ミッションの開始を制御するものだ。プレイヤーのゲーム進行状況やプレイヤーが今いる場所,昼夜といった時間,前回こなしたミッションからの経過時間(頻度)といった要素をもとにして,適切なイベントミッションを発動させるという。
 2つめは「Challenge」(チャレンジ)ブロックというもので,始まったミッションに対して,必要なNPCを生成したり動かしたり,あるいは不要なNPCを消去(講演ではAquisition,回収と表現)するといった制御行う。実質的に,ミッション遂行機能ブロックといっても差し支えないだろう。
 3つめは「Resolution」(解決)ブロックで,ミッション目標を達成したかを判断する機能ブロックだ。ACUでは,プレイヤーが何もしなくてもNPC同士のインタラクションによって勝手にミッションが解決してしまうこともあり得るので,ミッションの成功や失敗の判定をさまざまな要件に基づいて厳密に行う必要がある。そのため,独立した機能ブロックとして構成してあるそうだ。ミッションが成功,または失敗したときの報酬や懲罰イベントの発動もここで行われる。

具体的なイベント制御に関わる要素を示したスライド
画像集#023のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 Blondeau氏は,イベントミッションの制御システムを開発するにあたって気を使ったのが,NPCの出現(生成)と消去(回収)だったと振り返る。
 たとえば,「盗人を捕らえろ」ミッションでは,プレイヤーからやや離れた位置に盗人が現れるのだが,街中をぞろぞろと歩く群集の中から,ごく自然な形でNPCの1人が逃げ出すという形で表現されているのだという。プレイヤーから見れば,「イベントが始まったから盗人NPCが出現した」といういかにもゲーム的な処理ではなく,「盗人が逃げたからイベントが始まった」というように見えるので,プレイヤーは自然な印象を受けるだろう。
 しかし実際には,イベント制御システムがイベント開始のタイミングで,盗人のNPCをシーンに出現(生成)させているのだという。しかし,何もないところにNPCを突然出現させては台無しだ。そこでどうやっているかというと,プレイヤーの視界から遮蔽されている「見えない場所」に,盗人NPCを出現させているそうだ。

 複数人のNPCが出現するイベントなどでは,演算処理やメモリコストの関係から,すでにシーンに存在するNPCを消去(回収)しなければならない場合もあるが,こんなときでも,道を歩いていたNPCが突然が消えたら不自然に見える。そこでこのような場合にも,同じようにプレイヤーから見えるか否かの判定を行って,見えない位置にいるNPCを消去させてから,イベントに必要なNPCを適当な場所に出現させているとBlondeau氏は説明した。ゲーム的な処理を,違和感なく見せる工夫が,ACUにおける自然なイベント演出を実現しているといえよう。

イベント制御におけるNPC消去の説明で使われたスライド。水色の線で囲まれたNPCはプレイヤーの視界にいるので,彼らは消去できない
画像集#024のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 出現のときに注意しないといけないのは,シーンには斜面や階段といった高低差があることだ。これを吟味しないと,階段や机の中にNPCを出現させてしまったり,背景オブジェクトにめり込んだ状態で登場してしまったりと,身動きできないNPCが出てきてしまう。
 そこでACUでは,シーンのナビゲーションメッシュ(Navigation Mesh)を探査して,適切な場所にNPCを出現させる処理を取り入れているとのこと。ここでいうナビゲーションメッシュとは,ゲーム内のキャラクタが“どこを歩けるのか”をポリゴンなどで構成したデータで,AIの経路探索や移動可能領域探査などに利用されるものだ。

屋外でのNPC出現はナビゲーションメッシュを参照して,地面や建物にめり込んで出現しないようにしている。参照しないとこれらの画像のように,階段にめり込んで出現してしまうこともあり得る
画像集#025のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法 画像集#026のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 ただ,NPCが異常な出現の仕方をしても,プレイヤーからは絶対に視認されないと確信できる条件,たとえば,外から見えない建物の屋内にNPCを出現させるときは,テーブルや壁にめり込んだ状態で出現することもあるそうだ。その辺は無駄な処理を増やさないよう,臨機応変に対応しているのだろう。

NPCの出現ポイント処理の例で示されたスライド。少し分かりにくいが,NPCの出現位置を示す赤い球体が建物内にもある。上下方向の位置が適当に見えるのは,めり込んだ状態でも出現するからだろう
画像集#027のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 また,NPC同士のインタラクション,たとえばNPC同士の小競り合いが発生しているところに,新たなイベント用NPCを出現させてしまうとイベントがおかしなことになってしまうので,NPCの出現処理はそうした条件も加味して行っているとのことだ。

このスライドのように,NPCが別のNPCを処刑しようとしているようなところにイベントNPCが出現してしまっては非現実的すぎるので,このような場面には出現ポイントを作らないように処理しているそうだ
画像集#029のサムネイル/「生き生きとした18世紀のパリ」を表現してみせた「Assassin's Creed Unity」の群集とイベント制御手法

 セッションの概要は以上となる。筆者が初めて,ACUをプレイしたときには,NPCの群集制御に極めて複雑かつ高度な仕組みを導入しているように見えて,とても驚かされた。しかし,要素別に噛み砕いて説明されてみると,意外にも基本的な要素の積み重ねだけで実現されていたことが分かり,一層感心させられたものだ。
 シンプルなAIモデルを組み合わせながら,NPCの相互インタラクションによって多様性を演出するというACUの手法は,スケーラブルな設計のシステムだといえる。このシステムをさらに拡張していくだけでも,より複雑なNPC制御も実現できそうではないか。
 Assassin's Creedシリーズは群集表現を大きなテーマとしているので,今後登場する新作においても,新たな群集表現テーマに挑戦してくれるはずだ。シリーズの新作が登場したときには,そうしたポイントにも目を向けてみると,また違った面白さがあるのではないだろうか。

「アサシン クリード ユニティ」公式サイト

GDC公式Webサイト

4GamerのGDC 2015関連記事一覧


  • 関連タイトル:

    アサシン クリード ユニティ

  • 関連タイトル:

    アサシン クリード ユニティ

  • 関連タイトル:

    アサシン クリード ユニティ

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:06月18日〜06月19日