パッケージ
The Last of Us公式サイトへ
読者の評価
92
投稿数:27
レビューを投稿する
海外での評価
95
Powered by metacritic
お気に入りタイトル/ワード

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

    定期的に記事を追いたいタイトル/キーワードを最大20件登録できます

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

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

    LINEで4Gamerアカウントを登録
    [SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
    特集記事一覧
    注目のレビュー
    注目のムービー

    メディアパートナー

    印刷2013/07/24 14:31

    ニュース

    [SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?

    画像集#010のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
     SIGGRAPH 2013の開催2日目である7月22日(現地時間)には,PlayStation 3(以下,PS3)用サバイバルアクションゲーム「The Last of Us」で使われた,グラフィックス表現を解説するセッション「Lighting Technology of “The Last of Us”」が開催された。
     ここではセッションの中から,とくに4Gamer読者にも興味深いと思われるポイントに絞ってレポートしたい。


    世界観の設定上,必然となった間接光表現をいかに実現したか


     The Last of Usとは,細菌によって人類がゾンビ化し,文明が崩壊してしまった後の世界で,不思議な絆で結ばれた中年男性と少女の2人の主人公がサバイバルを繰り広げるというPS3用のアクションゲームだ。筆者もクリアするまでプレイしたが,いわゆる「普通のゾンビもの」では括れない,「愛と激情の物語」であることを思い知った。プレイしていない人はぜひともプレイしていただきたい。

    Michal Iwanicki氏(Programmer,Naughty Dog)
    画像集#003のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
     それはさておき,このゲームは文明崩壊後という設定があるため,電気による照明で照らされたシーンはほとんどない。講演を担当したNaughty DogのゲームプログラマーであるMichal Iwanicki氏は,「間接光による照明主体で,魅力的なグラフィックスを見せる」ためにはどうすればいいのか,思い悩んだそうだ。

    The Last of Usでは世界観の都合から,間接光表現を多用する必要があった,という説明スライド
    画像集#004のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
     間接照明,あるいは大局照明(グローバルイルミネーション)とも呼ばれるこの表現は,PS3では取り扱いにくいテーマである。基本的に,GPUが持つレンダリングパイプラインでは,直接光による照明計算しか行えない仕組みなので,そもそも間接照明は取り扱えないのだ。
     レイトレーシングならば表現可能だが,PS3の性能では荷が重すぎる。PlayStation 4(以下,PS4)の世代になればGPU性能が大幅に上がるので,何か特別な処理系を実装することで,間接照明/大局照明に取り組むこともできそうだが,PS3用のゲームに導入するのは無理がある。

    画像集#002のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは? 画像集#006のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
    The Last of Usでの間接光表現の例となるスクリーンショット

     そこでThe Last of Usでは,PS3で実現できるフェイク手法を実装することとなった。
     まず,静的な光源が生み出す間接光には,ライトマップを使用している。ライトマップとは,複雑な大局照明を事前に計算し,そのライティング結果をテクスチャに描き込んでおいて,実際のレンダリングでこれを貼り付ける手法のこと。これはPS2時代からあったテクニックだ。

     ただし,Naughty Dogがやる以上,ただのライトマップで終わってはいない。まず自社開発のツールを使い,シーンの各地点にやってくる全方位の間接光の情報を,球面調和関数として計算する。ここでの球面調和関数とは,全方位の光のエネルギー量(数値分布とも言える)を,非可逆圧縮するテクニックだと思ってもらっていい。

    画像集#007のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは? 画像集#008のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
    間接光でディテールやハイライトを出すには,ただのライトマップでは不十分,というスライド

     この球面調和関数として計算した間接光を,そのままテクスチャに描き込む手法もあるが,The Last of Usではそれに止まらず,計算された間接光から,「全方位からの間接光の平均値」(環境光)と「球面調和関数で表現された間接光のうち,最も強い1方向だけ」を選択して,テクスチャに描き込む手法を採った。
     左下のスライドで言うと,環境光(Ambient term)はPS2時代からあるライトマップに相当し,それに加えて「選択された1方向のライトマップ」(Directional term)も使うのが,The Last of Usの手法というわけだ。

    画像集#009のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは? 画像集#024のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
    The Last of Usの特徴的なライトマップを図示したスライド(左),その計算に関する説明スライド(右)。左のスライドにあるとおり,一般的な環境光のライトマップ(Ambient term,右上)と,選択された1方向のライトマップ(Directional term,右下)の2つを使っている

     1方向だけを選択することがなんの役に立つかと言えば,これによって,間接光による「柔らかな鏡面反射」の効果が出せるのだ。鏡面反射は視線との位置関係で見え方が変わるので,自動車のモールドや岩壁のデコボコのような,法線マッピングで表現される微細な凹凸表現に対して,淡いスペキュラハイライト(鏡面反射による光沢)を出せるのだ。
     この手法を用いると,暗いシーンでも微細な凹凸表現に対して,微妙な陰影を間接光の色で表現できるので,淡い光が充満しているような雰囲気を演出できるようになる。

    間接光によるスペキュラハイライトが出ているシーンの例。壁のタイルを見ると,微妙な陰影が表現されているのが分かる
    画像集#011のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?


    間接光によるソフトシャドウの生成は,

    SSAOとは別の手法で実現


    間接光によるソフトシャドウが欲しい,という例で示された画像。赤枠内がソフトシャドウ
    画像集#012のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
     こうした手法を駆使したことで,The Last of Usの環境光表現は,PS3世代としては,なかなか上等なものを実現できた。ところが,この手法がうまくいったことでIwanicki氏は,この淡い環境光がもたらす「柔らかい影」(ソフトシャドウ)を表現したくなってしまったのだという。

     環境光が落とす影を表現する手法としては,画面座標系のポストプロセスで行う「Screen Space Ambient Occlusion」(以下,SSAO)が有名だ。実際にSSAOは,Naughty Dogが手がけた「アンチャーテッド」シリーズでも採用されていた,馴染みのある手法である。
     しかし,The Last of UsではSSAOではなく,前述したライトマップの適用時に,ライトマップに対して「第三者の遮蔽物」があるかないかを探査して,遮蔽物があれば,暗くするといった処理系を実装した。

    遮蔽物を探査して,存在するなら暗くするという手法の説明スライド。灰色の円が遮蔽物。環境光(Ambient term)と1方向のライトマップ(Directional term)では,遮蔽のされ方が異なるので,遮蔽状況を計算して影の濃淡を決める
    画像集#013のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?

     第三者の遮蔽物というとイメージしにくいかもしれないが,分かりやすい例はキャラクターモデルによる遮蔽だ。しかし,遮蔽計算を多数のポリゴンからなるキャラクターモデルに対して行うと,とてつもなく計算量が増えてしまい,実用的ではない。そこでIwanicki氏は,キャラクターモデルそのものではなく,それに形状を似せた「球の集合体」(以下,遮蔽球)に対して,遮蔽計算を行うことにしたのだという。もちろん,正確な形状の影にはならないが,もともと環境光による影は淡く薄いものなので,多少不正確でも問題はないという判断をしたとのことだ。

    あるキャラクタの遮蔽球を可視化したショット。右のワイヤーフレームモデルを見ると,大小さまざまな赤い球体を組み合わせて人型になっているのが分かる。The Last of Usのソフトシャドウは,この遮蔽球の集合体の形状で描かれているわけだ
    画像集#014のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?

     前述したように,The Last of Usのライトマップは全方向からの間接光の平均値とした環境光と,その方向情報を持っている。そこでまず,環境光の遮蔽については,このライトマップを適用しようとしているピクセル位置から見た全天球が,近くに存在する遮蔽球によって,“どのくらいの割合で遮蔽されているか”を求める。遮蔽球がピクセル位置の近くに存在したり,あるいはたくさんあるならば,遮蔽率が上がってそこは暗くなる。すなわちソフトシャドウになると計算できるわけだ。

    ソフトシャドウの計算手法を解説したスライド。環境光に対しては,対象となるピクセルから“全方位の何%”が遮蔽されているかを求め,1方向に対しては,その方向をどのくらい遮蔽しているかを求める
    画像集#015のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?

     ライトマップの方向情報についても,これと同様に遮蔽テストを行う。ただし今度は,ライトマップが持っている「1方向」に,遮蔽球があるかどうかで遮蔽率を求めるのだ。こちらも遮蔽物があれば暗くなる。

    「1方向」の遮蔽は,その方向の角度による鋭さを,アーティストのセンスで適宜変えられる。角度を鋭くすれば,シャープな影が出るという説明と見本の画像
    画像集#016のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?

     こうした処理によってソフトシャドウを描くと,たとえば人物の足元付近には比較的濃い影が出て,投射距離が長くなるにつれて淡くなるといった表現が可能となる。手法はだいぶ異なるが,結果としてはSSAO的な陰影が実現できるというわけだ。

     ちなみに,シーン内に配置された大道具オブジェクトなどは,遮蔽球で計算しようとすると大量の球が必要になり,結果的に処理負荷が増大してしまう。そのため,それらは球ではなく,解像度の低い3Dテクスチャ(ボリュームテクスチャ)で遮蔽情報を表現しているとのこと。また,環境光による影は淡いものなので,影生成はメイン画面のレンダリング解像度の縦横半分,面積比では4分の1という解像度で行っているとのことだ。

    画像集#017のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
    遮蔽球によるソフトシャドウ生成は,「Cell Broadband Engine」のSPUによって計算されている。このスライドは,そのアルゴリズムを解説したもの
    画像集#018のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
    大道具オブシェクトなどは遮蔽球ではなく,遮蔽情報を3Dテクスチャで表現している場合もあるというスライド

    画像集#019のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは? 画像集#020のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
    これらのスクリーンショットで描かれているソフトシャドウは,上記の手法によって生成されたもののようだ


    懐中電灯による間接光表現は

    Reflective Shadow Mapsで実現


     セッション最後のQ&Aでは,「動的キャラクタへの環境光ライティングや,主人公が懐中電灯を持ったときに起こる間接光表現はどうやっているのか」という質問が寄せられた。それに対してIwanicki氏は,「Reflective Shadow Maps」(以下,RSM。関連リンク,英語)という手法を使ったと答えた。

     RSMとは,エアランゲン・ニュルンベルク大学(Friedrich-Alexander Universität Erlangen-Nürnberg)のCarsten Dachsbacher氏らが,2005年に発表した技術である。名称に“Shadow Maps”とあるので,影生成の手法かと誤解しそうだが,影生成の話ではない。

     シャドウマップとは,光源を視点としてシーンの深度情報だけでレンダリングすることで,遮蔽物までの距離分布を表したものだ。これは「影か否か」の判断データとして用いられる。
     これに対してRSMでは,深度情報だけでなく,ワールド座標系の座標情報や法線ベクトル,拡散反射のライティング結果(アルベド,反射率)をレンダリングする。これによって生成されるデータは,「その光源が,シーン内を直接照らした照明結果を,方向や位置情報付きで格納したもの」と言える。

    左から深度情報,ワールド座標系の座標情報,法線ベクトル,拡散反射による光束をレンダリングしたもの
    画像集#021のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?

    光源からの直接光と,RSMによる間接光の両方によるライティングに配慮した最終レンダリング結果の例。天使像の右側が淡い緑色を帯びているのが,RSMによる緑色の壁からの間接光の表現
    画像集#022のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?
     光源から直接ライティングされたもの同士が,さらに相互にライティングしあったものが間接光による照明だ。それならば,「これからレンダリングする対象のピクセル」を直接光でライティングしたうえで,RSMに記録された間接光――質問の例なら,懐中電灯で照らされた壁など――を光源にしたライティング結果を使ってさらにライティングすると,間接光照明を計算したことになる……というのが,RSMの理屈である。

     The Last of Usでは,プレイヤーキャラクターを赤い壁に近づければ,赤い間接光の影響を受けるし,懐中電灯で赤い壁を照らすと,周囲が若干赤味を帯びる。こうした表現は,RSMによって実現されていたというわけだ。

    RSMによる間接照明効果だと思われるスクリーンショット。直接光で照らされた部分が,2次光源となって周囲を照らしている表現がRSMによるもの
    画像集#023のサムネイル/[SIGGRAPH]文明崩壊後の世界を間接光で描いた「The Last of Us」のライティングシステムとは?

    SIGGRAPH 2013 公式Webサイト

    • 関連タイトル:

      The Last of Us

    • この記事のURL:
    今すぐできる G123のゲーム

    提供:G123

    4Gamer.net最新情報
    スペシャルコンテンツ
    注目記事ランキング
    集計:04月15日~04月16日
    4Gamerからお知らせ