[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

0
11


 人々を狂暴化させる菌の蔓延によって文明が崩壊した世界において,守られるべき少女から復讐心に溢れる戦士へと成長したエリーの旅を描いた「The Last of Us Part II」。PlayStation 4のエクスクルーシブタイトルとして2020年度の販売本数が400万本を超え,,多くのゲーマーを魅了した作品だ。

 本作は,1つ1つのコンバットシーンが濃く,非常に陰惨で,ナイフを振り回して相手を切り刻んだり,タイミングを間違えると自分の顔に武器が迫ってきたりするといった様子が見られる。そんな本作のメレーアクションについて,Naughty DogのゲームプログラマーであるMin-Lun Chou(ミン・ルン・チョウ)氏が,「Melee AI in ‘The Last of Us Part II’」(Last of Us Part IIにおけるメレーAI)というセッションをGDC 2021で行った。

復讐に燃えるエリーのナイフ攻撃は,相手が徐々に切り刻まれていくようで非常に残忍だったが,こうした表現の裏で,かなりの試行錯誤が繰り返されたことは言うまでもない
画像集#001のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

メレーコンバットを制御するAIシステムの概要

 チョウ氏はまず,2016年の同社の別作品「アンチャーテッド 海賊王と最後の秘宝」が,敵キャラクターは短い“Attack Tells”,つまり攻撃のモーションを起こしてからプレイヤーキャラクターにダメ―ジを与えるモーションが非常に短く,相手の攻撃はほぼ毎回ヒットするようになっていたことを紹介した。相手の攻撃を止めるには,相手のモーションよりも先にプレイヤーが攻撃を加えなければ,ダメージを受けてしまう仕様だったのだ。

 そのため,チョウ氏ら開発チームが,「The Last of Us Part II」で優先して改良したのが,プレイヤーに敵キャラクターのアクションを見極める時間を与えることだったという。素人目にはゲームプレイが簡単になってしまうような気もするが,これによって戦闘が単にボタンを押して相手より先に攻撃を繰り出すだけでなく,よりスキルが必要になるメレーアクションへと昇華し,銃器を使ったアクションと同等に価値のあるものになったと満足しているそうだ。

ターゲットにメレーアクションが届く範囲の規定を解説するNaughty Dogのゲームプログラマー,ミン・ルン・チョウ氏
画像集#002のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

 プログラミング的な観点から見ると,戦闘は「Melee Attack」および「Melee Moves」というデータを規定することから始まる。「Melee Attack」と「Melee Moves」は,その名称どおり、実際に敵NPCがメレーのアクションを選択し,攻撃を行うか,攻撃を行うための移動に入るかのパフォーマンスデータとして定義付けられた。こうしたメレーアクションは,「すでに別のアクションが作動している」「メレーでは届かない位置にいる」といった,アクションの始まりと終わりのコンディションが整っていなければ動作しない。

画像集#005のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

 メレーアクションの開始条件が規定されると,次は開始を認識したNPCたちの行動を制御する「Melee Behaviors」のAIコードが反応する。Melee Bahaviorsは,Melee Attackの上位レベルにあるものだという。それぞれのNPCがメレーアクションを始めるにあたって,その行動パターンは,キャラクターのタイプやシチュエーションに合わせて用意された“攻撃リスト”によって決まる。
 また,NPCはプレイヤーキャラクターなどターゲットに近付いてメレーアクションに入るか,特定の距離を保つかといった判断も行える。加えて,NPCは走るのか,歩くのかといった行動パターンや,コンディションに参加するのか回避するのかも選択できるという。

画像集#006のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

 また,本作のステージには,「Strafe Sots」と呼ばれるNPCがアクションを起こす座標がいくつも指定されており,マップ上に点在する多くのオブジェクトがアクションの妨げにならないよう,自動調整される。Strafe Slotsは,オープンな場所ではプレイヤーキャラクターを中心に16の放射線が伸びており,その放射線の間(スロット)にNPCが自動的に入り込む。途中に障害物がある場合は,妨げられている放射線を避けて位置を変えるというトラッキングを行い,これがパスファインディングのロジックとして機能している。
 民家の軒先など,周囲に壁や柵のある状況ではさらに複雑なプロセスになるが,高い位置と低い位置のメレーアクションのパターンがそれぞれに用意されていることで,例えば腰辺りまでの柵で高い攻撃を仕掛けられると,プレイヤーキャラクターは落ちそうなほど上半身をのけぞらせて耐えるといった緊迫感のある動作につながっていくのだ。

画像集#007のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック 画像集#008のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック
画像集#009のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

水滴や流血を表現したリキッド・リボン・シミュレーション

 GDC 2021では,Naughty Dogの開発陣による「The Last of Us: Part II」の複数のセッションが行われている。緊迫感のあるコンバットを,ビジュアル面で補佐する役目を担っていたのが,グラフィックスプログラマーのArtem Kovalovs(アーテム・コヴァロフス)氏だ。「Enhancement of Particle Simulation Using Screen Space Techniques in ‘The Last of Us Part II’」(The Last of Us Part IIにおける,スクリーンスペースを使ったパーティクルシミュレーションの強化)と題されたコヴァロフス氏のセッションでは,静的/動的オブジェクト上でリキッドシミュレーションを実現したテクニックが紹介されていた。

グラフィックス担当プログラマーのアーテム・コヴァロフス氏は,スクリーンスペースを活用した水滴や流血表現について解説
画像集#003のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

 本作の舞台であるシアトル近郊は,一年のうち半年ほどが雨季という地域であり,本作における水面や雨などの表現はかなり凝っている。
 雨粒の撥ね上がりから説明し始めたコヴァロフス氏は,伝統的な手法として2Dパーティクルを発生させるエミッターを,水面や車のボンネットの上といったゲームマップのオブジェクト上に配置していくという作業を挙げ,これは非常に時間がかかるプロセスだと述べた。そこで本作では,Depth-Buffer,G-Buffer,モーションベクター,オブジェクトIDといった情報が用意されたスクリーンスペースを利用したという。
 スクリーンスペースとは,文字どおりプレイヤーが見ている画面のことであり,2Dピクセル座標に限定された“空間”のことだ。例えば車のオブジェクト上で雨が跳ね上がっている場合,車とカメラの間にキャラクターが割り込んでくれば,撥ね上がりを表現するピクセル効果がキャラクターと重なってしまう“ゴースト”が発生してしまうことがある。本作においては,2Dスプライトのポジションをトラッキングする仕組みを使って解決を試みたことで,雨の撥ね上がりはマップ上の静的なオブジェクトだけでなく、動的なキャラクターにもうまく乗っかかったという。

画像集#010のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック 画像集#011のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

 水滴の流れ落ちる“ドリッピング効果”はGPU制御のパーティクル効果だが,これについては紐状になったパーティクルをいくつも横つなぎしてリボンを作成し,それを状況に合わせて短い周期で出現させていくという手法「リキッド・リボン・シミュレーション」が採用されている。
 リキッド・リボン・シミュレーションでは,実際に水滴が落ちる様子まではシミュレーションできないため,これは別のGPUパーティクルで表現した。キャラクターが動いていてもある程度の大きさになるまではオブジェクト(衣服や皮膚,髪の毛,バックパックなど)に付いており,やがて切り離されてカメラの向いている方向に合わせて落下するというのも,スクリーンスペースの利用によるものだ。

デバッグツールを使って,リキッド・リボンに色付けした様子
画像集#004のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック

 このリキッド・リボン・シミュレーションを,ほかのビジュアル表現に応用したものが,メレーのナイフや銃器での攻撃で発生した傷口から血が流れる流血表現だ。雨水であれば,ほぼ瞬間的にパーティクルが消えてしまうので,スクリーンスペースでも問題はなかったが,特定のキャラクターの例えば頬などに傷ができて流血しているという,より半恒久的なリキッドについては,プレイヤーキャラクターが別方向を見た瞬間にうまくトラッキングできなくなってしまう。パーティクルには,どのオブジェクトにくっ付いているかという“記憶”がないからだ。
 そのため,UVマップ(3Dキャラクターのテクスチャに利用することを目的にした,X/Y/Zとは異なるU/V値で座標を表現したもの)で生成された傷のスプライトをレンダリングのターゲットとし,オブジェクトID Bufferを活用してどのトライアングルに属するのかを規定して,キャラクターからの流血を半恒久的に表現するテクニックを使ったという。血のしたたりは,水滴と同じ生成と落下のシミュレーションが使われている。

 コヴァロフス氏は,「こうしたテクニックは水滴や流血表現だけでなく,ほかのトリックにも利用できるはず,これからもさまざまな効果に応用していってほしい」と語ってセッションを結んでいた。

画像集#012のサムネイル/[GDC 2021]「The Last of Us Part II」の雨と血にまみれたリアルな情景と,泥臭いメレーアクションを実現させたテクニック