西川善司の3Dゲームファンのための「YEBIS」講座
“KAWASE式”のあの人が手がける「ポストエフェクト・ミドルウェア」の神髄に迫る!
会場:シリコンスタジオ本社 |
「ポスト処理」、「ポストプロセス」というキーワードを耳にしたことがあるだろうか。一般に映像製作においてポストプロセスというとポストプロダクションのことを指し、編集、音声ミキシング、マスタリングまでのことを指すが、ゲームグラフィックスにおいては主にレンダリング結果への「後化粧」のことを言うことが多い。
最も身近なコンピュータを使った「後化粧」処理と言えば、撮影した写真へのレタッチ(フォトレタッチ)だろうか。フラッシュ撮影で赤目になった部分を修正したり、色調を変えたり、あるいはピンぼけを先鋭化したり、隠したい部分を逆にピンぼけにしてみたり……。こうした処理をPCでやったことがある人は多いはずだ。最近のプリクラもそうだ。撮影した写真の人物の回りをふんわりした光で満たしたり、美肌化処理したり、付け睫毛を付加したり、強制二重目蓋化、巨眼化など、プリクラの「後化粧」処理はかなりアグレッシブだ。
今回取り上げるシリコンスタジオのミドルウェア「YEBIS(エビス)」は、ジャンルや目的こそ違うが、そのような処理系を司るものになる。ただし、フォトレタッチソフトウェアではないので、ポストプロセスの対象はリアルタイムレンダリングされたグラフィックスだ。もちろん本連載で取り扱うのだから、主には3Dゲームグラフィックスということになる。
今、プレイしているゲームが比較的リッチなグラフィックスを有するPS3、Xbox 360、あるいはPCゲームだとしたら、そこには何らかのリアルタイム・ポストプロセスが介入した結果の映像を見ていると思って間違いない。YEBISはそうしたゲームグラフィックスのポストプロセスをリアルタイムに行なうミドルウェアになる。
【著者近影】 | ||
---|---|---|
2011年12月に左耳下にあったしこりが最近大きくなったと思いMRIで調べてもらったところ、耳下腺腫瘍と診断された。腫瘍とはいえ、良性との診断のため、緊急手術の必要はなく、2012年1月にラスベガスで開催されたInternational CESの取材から帰ってからの入院となった。全身麻酔の後、意識を失って、次に目を覚ました瞬間には摘出手術は終わっていた。摘出された検体はウズラの卵よりも大きく、虫の幼虫みたいな形をしていてかなりグロテスクだった。ラスボスの第2形態みたいな感じ。今は点滴の針が打たれた右手を使えずに、左手で原稿を打っている状況。右手が使えないとせっかく持ってきたPS Vitaも3DSもろくに遊べない。執刀医も女医さんで、看護師はみんな美人揃いということで入院したのに、インフル予防でみんなマスクをしちゃってて面白くない(笑)。現在、極めて禁欲的な生活を実施中。写真は術後、1番顔が腫れていたときのもの。ブログはこちら |
■ 「YEBIS」が得意とするポストプロセスとはなにか?
3Dゲームグラフィックスは、描画対象の3Dモデルにやってきた光を元に、その3Dモデルに割り当てられた素材表現のシェーダーを動かして、視点位置から見えうる陰影の結果を計算で求めながら描画していく。しかし、これだけでは描画結果は「いかにもCG」っぽく、見た目としての豊かさに欠ける。現実世界では、肉眼ならば情景を眼球を通して見ているし、映像ならばカメラで撮影されたものを見ているのだが、CGはそうした事までを配慮して映像が作られていない。
そうした写実的な見え方を極限までシミュレーションで再現しようとするアプローチもあるが、リアルタイム性が重視されるゲームグラフィックスでは現実的とは言えない。リアルタイム3Dグラフィックスにおけるポストプロセスは、そうした正攻法では難しいグラフィックス表現を画像処理的なアプローチで再現しようとするものになる。
また、ゲームグラフィックスの場合は、現実世界に近いリアルな映像だけを作るものではなく、どちらかと言えば映画的な、映像作品的な芸術性を重視したり、演出効果の高い結果を求められることもある。普通のレンダリング手法で作られた映像は、一定のアルゴリズムやシミュレーションの結果として算出された映像なので、ゲームのコンテンツ側(ストーリー進行など)に連動した情緒的な表現が自動的に乗ることはない。ポストプロセスは、そうした無機質なレンダリング結果に対して、映像の作り手/ゲームの作り手の感性を反映させる手立てとしても活躍する。
本稿はミドルウェア「YEBIS」の紹介ではあるが、「最先端のゲームグラフィックス向けのポストプロセスとはこうなっている」という視点で見てもらっても興味深いはずだ。まずは、興味を持ってもらうためにも、YEBISのサンプルの映像をご覧頂こう。動画の形で提供されているが、いずれもリアルタイムにレンダリングされているものであることを注記しておく。
【YEBISのサンプル映像】 |
---|
最初の2シーンは、ポストエフェクトなしの通常レンダリングの結果とポストエフェクトありの比較になる。後半はYEBISならではの光学エフェクトの数々の紹介となっている |
YEBISの効果をオン/オフと交互に見せるデモ映像 |
■ YEBISのリード開発者はゲーム業界有名人のあの人!
川瀬正樹氏(シリコンスタジオ、R&D統括本部、リサーチグループ、リード・ソフトウェア・エンジニア、シェーダ・アーキテクト) |
ぶんか社が2002年にXbox向けにリリースしたカーアクションゲーム「DOUBLE S.T.E.A.L.」 |
本題に入る前に、今回のお相手の川瀬正樹氏の紹介を軽くしておこう。一般読者はともかく、「リアルタイム3Dグラフィックスベースのゲーム開発に携わる業界人で、川瀬氏の名前を知らなければモグリ」とも言われるほど、川瀬氏は業界の著名人だ。
前回のBISHAMON編でも触れたが、日本のゲーム市場は初代Xboxが流行らずに、PS2が延命されたこともあって、ゲーム開発の最先端現場がプログラマブルシェーダー技術へスムーズに移行できず、欧米に対してやや遅れをとってしまった期間がある。この期間、川瀬氏は日本のゲーム開発シーンに向けて積極的に実践的なプログラマブルシェーダー技術情報を発信し続けた人物の1人だ。
川瀬氏は学生時代から、それも3Dグラフィックスレンダリングをアクセラレーションできる環境がPCに整う前から、3Dグラフィックス技術開発を趣味で行なっていたため、ネット上の開発コミュニティではすでに有名人だった。そんな川瀬氏の名が世界中に知られるきっかけになったのは、ぶんか社ゲームズが初代Xbox向けに発売した「DOUBLE S.T.E.A.L.」が世に出てからだ。
最近のゲームグラフィックスと比較しても見劣りしないこの映像こそが「DOUBLE S.T.E.A.L.」のものだ。この「DOUBLE S.T.E.A.L.」は、初代Xboxが日本で発売された今から10年前の2002年に、本体発売後、ほとんど間を置かずに発売され、プログラマブルシェーダーグラフィックスを見慣れていなかった当初のゲームファン達のドギモを抜いた。その映像のクオリティの高さに感動し、また同時にどういう仕組みでこういう映像が出ているのかを理解できずに動揺した人も多かったようだ。
間を置かずに同年のゲーム開発者会議CEDEC2002には、この「DOUBLE S.T.E.A.L.」のグラフィックスの仕組みを隠すことなく開示。今でこそCEDECでこうした実在タイトルの技術情報を開示することは珍しくないが、当時は極めて異例の発表だった。ある意味、最近やっと定着しつつある「基本情報は開示し合って日本ゲーム開発シーン全体の底力を上げよう」という風潮はこの時の「DOUBLE S.T.E.A.L.」の発表が発端の1つとなったような気がする。
翌年、アメリカで開催されたGDC2003でも川瀬氏は「DOUBLE S.T.E.A.L.」で使用されたプログラマブルシェーダー・テクニックを発表。日本のゲーム開発シーンではまだ「プログラマブルシェーダーとはなんぞや?」という発展途上の段階だったのだが、川瀬氏はこの時から世界に向けて情報を発信していたのだ。
川瀬氏の発表したプログラマブルシェーダーベースの応用系グラフィックス技術は多岐にわたるが、なかでも縮小バッファ技法をベースにしたエフェクト描画のテクニックは世界でKAWASE式(KAWASE METHOD)と呼ばれるほど有名になった。
現在でも氏の発表した技術は多方面で応用改変されたり、参照されることが多く、GDCやSIGGRAPHのリアルタイム3Dグラフィックス技術の論文発表では“KAWASE”の名前を耳にする。その後、ぶんか社はゲーム事業から撤退。川瀬氏は「DOUBLE S.T.E.A.L.」の開発チームのコアメンバーの何人かと共にシリコンスタジオに移籍する。
「シリコンスタジオに移籍して最初に取り組んだのが、このYEBISです。当時も今も、リアルタイム3Dグラフィックス、ゲームグラフィックス向けのポストプロセスに特化したミドルウェアはYEBISしかないと思いますが、競合がいない分野と言うことで開発に着手しました。自分が趣味と実益を兼ねてこうした分野の研究開発を色々とやっていたので、技術デモ等の蓄積が有りました。なので、それらを系統立ててミドルウェアとして再構成すれば時間を掛けずに開発できるだろうという目論みもありました。実際、最初のプロトタイプの制作だけなら1カ月も掛かりませんでした。まぁ、その後、製品化できる状態まで仕上げるのには結構時間が掛かりましたけど(笑)」(川瀬氏)
現在、川瀬氏は、YEBISだけでなく、シリコンスタジオが手がけるミドルウェア全体の開発を広く技術支援しているが、依然とYEBISに対しては深い関わりを持ち続けており、最新技術のリサーチを行なって、その技術をYEBISの機能として搭載する際の開発実務及びディレクションなどを行なっている。
【DOUBLE S.T.E.A.L.】 | |
---|---|
■ YEBISがもたらす至極のポストエフェクトの数々
YEBISは、リアルタイム3Dグラフィックス、それも主にゲームグラフィックスに特化したポストプロセスのミドルウェアだ。主に取り扱うポストプロセス内容がエフェクトということもあり、「ポストエフェクト・ミドルウェア」とカテゴライズされている。
ポストプロセスが「後化粧」だということは冒頭で説明したが、実際のゲームグラフィックスにおいてはどういう効果をもたらしているものなのか、ピンと来ていない人も多いかもしれない。ということで、小難しい技術話より何より、実際に、元画に対してどのようなエフェクトが掛けられるのかを、画面ショットや動画と共に見ていくことにしよう。
「最初のYEBIS、バージョン1.0は2006年頃にリリースされています。幾度かのバージョンアップを経て現在は2009年にリリースした1.5となっています。1.0ではグレア、ブルームを初めとした基本的なHDR(High Dynamic Range)エフェクト、被写界深度を初めとした基本的な光学系表現などのベーシックなエフェクトなどが搭載されていました。バージョン1.5時点では、ガウシアンブラー、モーションブラーの他、小絞りぼけ(エアリーディスク)、周辺減光、レンズディストーションのような、より高度な光学系表現が追加されています」(川瀬氏)
もっとも基本的なポストエフェクトは、レンダリング結果を別の色調に変化させるものだ。まさにフォトレタッチに通ずる物になる。
【色調変化】 | |
---|---|
元のレンダリング結果(左)、モノクロ(右) | |
セピア調(左)、バイオレンス調(右) |
【リアルタイムでの色調変化(動画)】 |
---|
色調をリアルタイムに変更している様子 |
バイオレンス調に関しては補足説明が必要だろう。単体で見たときには意味が伝わりにくいが、例えば、通常のゲーム展開では通常の色調だが、敵からの攻撃を喰らってダメージを受けたときや戦闘シーンになったときに、こうしたコントラストの強めの濃い色調に変えれば、プレーヤーに危険な状況が迫っているということを伝えることができる。
被写界深度の表現は、フォトリアルな映像作りには必需品であり、また、演出面でも、視聴者(プレーヤー)が、画面のどこを見ればいいのかをわかりやすくする演出手段としても重要な役割を果たす。
【被写界深度】 | ||
---|---|---|
フォーカス近。人物に焦点が合っている(左)、フォーカス中。この焦点距離に対象物が何もないため全体がボケている(中央)、フォーカス遠。背景に焦点が合っている(右) |
また、被写界深度を意図的に操作し、フォーカスが合う範囲を極端に狭くすることで、まるでミニチュア撮影をしたような効果を出せる。
【ミニチュア撮影風】 | |
---|---|
元のレンダリング結果(左)と、ミニチュア撮影風(右) |
YEBISのポストエフェクトの機能の中でも特に魅力的なものの1つとして挙げられるのがグレア(光芒)表現だ。
「グレアは幾つかのプリセットが用意されていてこれを使用することもできますが、『光芒の筋の本数をいくつにする』とか『伸びる光芒の色の変化をどうするが』と言ったような細かな調整やカスタマイズも可能です」(川瀬氏)
下の画像は、元のレンダリング結果に対してYEBISに内蔵されているプリセットのグレアを適用した例だ。アーティスティックであり、同時にリアリティも感じさせられる説得力の高さこそがYEBISのウリになっている。
【レンズフレア】 | ||
---|---|---|
元のレンダリング結果。左下にはみ出ている白い部分(太陽)が高輝度な発光情報を持っているという状況(左)、円状のブルーム(中央)、4方向の光芒とばらつきの多いレンズフレア(右) | ||
6方向の光芒とレンズフレア(左)、歪形フレアとレンズフレア(中央)、スミアとレンズフレア(右) |
【様々なグレア効果(動画)】 |
---|
様々なグレア効果を動画で見せるデモ映像。単なるブルームから、レンズフレアの付加、複数の光芒が分色している様子などを見ることができる |
レンズフレアは高輝度な情景を捉えたときにレンズ内反射で起きる虚像現象の一種だ。YEBISでは比較的正確な虚像を算出して合成している。歪形フレアはレンズに光源が直射した際などに起こる、水平方向に長く伸びる光芒だ。スミアは、CCD/CMOSイメージセンサーの受光画素が飽和を起こしてそれが伝搬してしまう現象で、携帯電話のカメラやコンパクトデジタルカメラに起こりやすい。実体験を持つ読者もいるのではないだろうか。
モーションブラーはスピード感を演出したり、動体の軌道をわかりやすくする効果もあり、昨今のゲームグラフィックスでは目にすることが多いポストエフェクトだ。
【モーションブラー】 | |
---|---|
元のレンダリング結果(左)と、モーションブラー適用(右) |
YEBISでは、シーンのピクセル単位の移動ベクトルを取得してブラーさせる比較的まじめな手法と、過去フレームを薄く残しつつ現在フレームを上書きしていくPS2時代にもよく見られた「フィードバックブラー」も利用できる。下のフィードバックブラーのサンプル画面ショットでサイケデリックな見栄えのやつは、フィードバックブラーをただ掛けるだけでなく、同時に色調変調までを加えた例だ。
【フィードバックブラー】 | ||
---|---|---|
元のレンダリング結果(左)、フィードバックブラーを画像の回転/拡大と共に適用(中央)、フィードバックブラーを回転/拡大/色相/彩度/コントラスト変化などと共に適用(右) |
YEBISのバージョン1.5で搭載された新しい光学系エフェクトは、川瀬氏が実際のレンズで起きている光学現象を研究し、こだわりを持って実装した機能で、映像効果として説得力が高いものになっている。
なかでも「レンズディストーション」(歪曲収差)は、YEBISならではのユニークなポストエフェクトだ。歪曲収差は、映像の外周に行けば行くほど膨らんだり、萎んだりしてしまう光学現象で、ズームレンズや広角レンズに特に起こりやすいとされる。なお、膨らむ歪みを「樽型歪み」、萎む歪みを「糸巻き歪み」と呼び、写真愛好家からは忌み嫌われる存在だ。YEBISでは、このエフェクトを用いると、直接的には「そうした歪み」をレンダリング結果に与えることになってレンズっぽさを出すことができるだけなのだが、うまく使うとレンダリング結果の「CGっぽさ」を低減できる。
一般的なリアルタイム3Dグラフィックスでは、仮想空間に配置した3Dモデルをカメラから捉えたカメラ空間に展開する処理が行なわれる。その際に実行されるのが透視投影変換だ。この処理系で、仮想空間内に立体的に展開されていた3Dオブジェクトは、映像フレームとしての2D平面に投影されることになる。しかし、実はこの処理系がCGと「現実視界の広がり方」との大きな隔たりを生んでいる。CGでは、この透視投影変換の副作用により、映像の外周になればなるほど、地図のメルカトル図法のような面積が広く描かれてしまう現象が顕著になるのだ。
YEBISの歪曲収差のポストエフェクトを、レンダリング結果に適量与えると、CGっぽい「映像外周の伸び」を低減する効果が得られるのだ。
「この歪曲収差のポストエフェクトにはあえて異常なパラメータを与えることで分厚いレンズを覗き込んだような不思議な映像効果を作り出したりもできます(笑)」(川瀬氏)
【レンズディストーション(歪曲収差)】 | ||
---|---|---|
元のレンダリング結果。映像外周が透視投影変換の弊害で間延びしてしまっている(左)、歪曲収差を与えた結果。実際の視界に近い映像になった(中央)、あえて異常な歪曲収差パラメータを与えた例。分厚いレンズを覗いたような不思議な映像になる(右) |
周辺減光(ビネット)も、何気ないエフェクトだが、YEBISの特徴的な機能の1つだ。これはカメラのレンズで撮影した時に、捉えた像の外周が中央部よりも暗くなる現象を再現したものだ。YEBISでは、シェーダーの効果で疑似的に外周を暗くしているのではなく、撮影レンズの筒の長さと直径、そして絞り値のパラメータ等を与えることで求められる光学的に意味を持った周辺減光が実践される。
例えば、下の画面ショットでF128の結果が示されているが、ややフォーカスが甘くなっているのがわかるはずだ。これは実はF128というピンホールカメラ(トイカメラ)に近い、極小径絞りにして撮影した結果が再現されている。こういう口径の小さな光学系では被写界深度は深くなるものの、絞りによる入射光の回折の影響が支配的になって、光学的な解像度が低下してしまうのだ。これは特に「小絞りぼけ」と呼ばれる。
「これは、望遠のスコープらしく見せるために決め打ちの丸い黒マスクを適用しているわけではなく、長い筒に小口径のレンズをはめたというパラメータによるシミュレーションの結果、鏡筒によるケラレが発生して、こういう、丸い黒マスクの中に像が表れているんです。一見難しそうですが、写真や光学に詳しい人ならばむしろYEBISの実現方式の方がわかりやすいかも知れません」(川瀬氏)
【周辺減光(ビネット)】 | ||
---|---|---|
鏡筒によって少し周辺減光している状態(左)、望遠鏡のような長い鏡筒の望遠レンズを絞り(F値)、F5.6の状態とした場合。ターゲットスコープ的なニュアンスの表現ができる(中央)、同じく望遠鏡のような長い鏡筒の望遠レンズを絞り切ったF128という設定での結果。絞り込むことで鏡筒の影(ケラレ)はくっきり見えるが、回折によって画像全体がボケている(右) |
【周辺減光シミュレーション(動画)】 |
---|
光学に基づく周辺減光シミュレーション。後半は絞り具合を変化させることで周辺減光だけでなく被写界深度も変わっている点に注目 |
こうしたレンズのような光学系のシミュレーション的ポストエフェクトは、被写界深度の表現に対しても行なう事ができる。
下は、絞り値(F)、ピント位置、レンズの焦点距離(f)の値を与えて被写界深度の表現をYEBISで行なわせた例だ。よく見比べないとわかりにくいが、ピント位置を前後させると画角(焦点距離)が微妙に変化している。これは実際のレンズでも起こりうる現象だが、YEBISではこれがちゃんと再現されるのだ。イベントシーンなどで、スパイカメラがズームイン/アウトを繰り返しながらせわしくピントを合わせるといった演出はYEBISならば、かなりリアルに再現が可能だ。
【光学系ポストエフェクト】 | ||
---|---|---|
F:1/1.68、ピント位置:82.5cm f:103.5mm(左)、F:1/1.68、ピント位置:98.0cm f:106.7mm(中央)、F:1/1.68、ピント位置:127.9cm f:110.9mm(右) |
このほか、地味ながらも色々と応用が利くボカしフィルターとして「ガウシアンブラー」も搭載されている。これは画面全体を一様にボカすことができる機能になる。
一般的にはガウスボカしフィルタと呼ばれることも多いガウシアン・フィルタ(Gaussian Filter)は、あるピクセル色の影響を外郭に行けば行くほど弱めて散らすようにぼかすフィルタのことだ。画像処理ソフトのぼかし機能として定番で実装されていることが多い。
このガウシアン・フィルタを用いたブラー、ガウシアンブラーは、大きなブラー半径のブラーをやろうとすると負荷が高すぎてリアルタイム用途が難しい。そこで、YEBISでは、「川瀬式MGF(Multiple Gaussian Filter)」と呼ばれるテクニックの発想を拡張して応用し、任意のブラー半径のガウシアンブラーをリアルタイム機能として提供している。
補足説明が必要だろう。川瀬式MGF技法とは、ボカし対象を複数の異なる低解像度バッファに抽出して、これに対してガウシアン・フィルタを適用し、バイリニアフィルタで拡大して大きさを揃えて合成するテクニックだ。
「YEBISではMGFと似たような考え方に基づいて、『ガウス半径が大きい場合はバッファの解像度を落とす』という工夫を行なっているため、大きさ制限なしで、いくらでも大きなブラー半径のガウシアンブラーをリアルタイムにかけられるようになっています。ただ、単純にブラー半径に依存して解像度を変更するだけだと、ブラー半径を滑らかに変化させたりした場合に解像度の切り替え部分で少しポッピングが発生してしまうため、ミップマップのように近傍2レベルの解像度でブラーを適用した後、結果を補間しています」(川瀬氏)
画面ショットで示した「標準偏差 σ=64 のガウシアンブラー」のような、巨大なガウスブラーはリアルタイムで適用するのが極めて難しいが、YEBISではこうしたテクニックにより、さらに大きなサイズでも問題なくリアルタイムパフォーマンスで結果を出力できるのだ。
【ガウスフィルタ】 | ||
---|---|---|
本来はフィルタ径を大きく変えていく形で複数回のガウスフィルタを実行したいが、それでは負荷が高すぎるので、フィルタ径をそのままに低解像度のバッファで実行することで代用するのが川瀬式MGF。縮小バッファ技術の応用形の1つでもある |
【ガウシアンブラー】 | ||
---|---|---|
ガウシアンブラーをかけていない状態(左)、標準偏差 σ=16 のガウシアンブラー(小規模ブラー)(中央)、標準偏差 σ=64 のガウシアンブラー(大規模ブラー) |
「縮小バッファがらみで言えば、YEBISでは縮小バッファを利用したときに出てしまうジャギーを目立たなくする工夫を入れています」(川瀬氏)
縮小バッファ技法とは、半透明エフェクトの重ね描きを低解像度次元で集中的に行なって、これを最終出力解像度に拡大して、メインのレンダリング結果にα合成するというものだ。低解像度の映像を拡大すればジャギーが出るのは確かに当たり前だ。
「詳しくはCEDEC2009で発表しているのでそちらの資料を見て欲しいんですが、1度、中間的な解像度でわずかにボカしてから拡大することでジャギーをかなり低減できるんです。グレアや被写界深度などの各種エフェクトは、YEBISでも縮小バッファ技法を用いていますが、ジャギーがほとんど目立たなくなっていると思います。これはこのテクニックの恩恵です」(川瀬氏)
【縮小バッファのアーティファクト(ジャギー)軽減効果の比較】 | |
---|---|
そのままバイリニアで拡大したもの(通常の方法:アーティファクト発生)(左)と、縮小バッファのアーティファクトを拡大/ブラーで軽減した結果(右)。効果を判りやすくするため、敢えてかなり縮小したバッファ(ジャギーの目立つ画像)で比較している |
「近日リリース予定のバージョン2.0では、DirectX 11への対応がなされています。ゴッドレイ(光筋)、色収差、ヒートシマー(空間歪み表現)、FXAAに代表されるポストプロセス型のアンチエイリアス処理などが追加されています」(川瀬氏)
光筋は、高輝度部分から光源の照射方向に光が筋のように溢れ出すエフェクトだ。これは一見するとボリュームレンダリングのように見えるがポストエフェクトだ。
高輝度な光源を遮蔽しているマスクを、シーンをレンダリングした後に残っている深度バッファから生成する。次に高輝度な光源を画面上の高輝度光源の位置から放射状にブラーを掛けるが、これを描き込む際にマスクで抜く。こうすることで光と影がシーンの遮蔽物の影響を受けつつ放射状に伸びる様が実現されるのだ。
【光筋のポストエフェクト】 | |
---|---|
元のレンダリング結果(左)と、光筋のポストエフェクトを付加した結果(右) |
下の画面では、ややわかりづらいかも知れないが、高輝度部分から同心円状の虹色の光環(光冠)が見える。これは「コロナ」として知られる大気の粒子による回折リングを表現したものだ。ただし、これはシミュレーション結果によって生成されたものではなく、アーティスティックな意図を持って付加されたものになる。YEBISでは、こうした光環を、多重リング上に出力したり、強さ、大きさ、減衰割合、分散の向きまで制御できるようになっている。応用次第では暈(かさ)やレンズ形状光輪(Lenticular Halo)などのニュアンスを出す目的でも利用できる。
【光筋のポストエフェクト その2】 | |
---|---|
元のレンダリング結果(左)と、光筋のポストエフェクトを付加した結果(右) |
「この手法は、遮蔽物の形状が単純な場合には一様に太い光筋が出てしまいがちですが、マスクにノイズを付加することで、細く鋭い筋が出るように工夫しています」(川瀬氏)
「色収差」とは、結果だけを言えば、光がレンズを通ってきたことによって色ズレを起こしてしまう現象のことだ。原因は色によって光としての波長が違うためで、波長が違えば屈折率が異なる。つまり、レンズを通り抜けた光は色によって異なる焦点で結像したり、焦点位置が変わったりしてしまう。これが色収差の原因だ。デジタル一眼レフカメラのレンズなどのカタログを見たときに「異常分散レンズ」というキーワードを見たことがあるかも知れないが、あれはそうした色収差を低減させる工夫になる。
YEBISでは、倍率色収差と呼ばれる像の中心からずれればずれるほど色収差が大きくなる表現をサポートしている。いかにもガラス越し(レンズ越し?)で見たような結果が得られるので演出で活用すると面白そうだ。
【色収差表現】 | |
---|---|
元のレンダリング結果(左)と、外周に行けば行くほど色ズレを起こす色収差表現(右) |
「ポストプロセス型のアンチエイリアス処理」は、デプス情報などを見ずに、実際のレンダリング結果の輝度変化などを見て、画像処理的にアンチエイリアス処理を行なうものだ。これは比較的、低負荷で、固定的な負荷予算で実装できることから、昨年あたりからPS3、Xbox 360向けのゲームを中心に、この手法の採用が大ブレークしている。こうした流れをうけて、YEBISでも、このアプローチのアンチエイリアスをサポートするようになったようだ。
「ポストプロセスによるアンチエイリアス処理は、MSAA(マルチ・サンプル・アンチエイリアス処理)では低減しきれないジャギーを低減できるメリットもあります」(川瀬氏)
ごく一般的に用いられるアンチエイリアス処理であるMSAAは、深度バッファを参照して判断される輪郭部に対してジャギー低減が施されるものだ。YEBISに限らず、一般的なポストエフェクト処理では、このアンチエイリアス処理の範疇外の各種マスク処理をともなった描画を行なったりするため、MSAAが掛からないという弊害が起こりうる。
実際、YEBISの被写界深度表現におけるピンぼけ部分のボカし処理において、レンダリング結果の前後関係を無視した滲み出しを防止するために、マスク処理を行なっているが、そのマスクの境界部分ではMSAAが適用されない。しかし、FXAAに代表されるポストプロセス型のアンチエイリアス処理は、単なる画像処理なので、そうしたマスク境界部分に残ったジャギーもしっかり低減してくれるのだ。
【ポストプロセス型のアンチエイリアス処理】 | |
---|---|
元のレンダリング結果(左)と、ポストプロセス型のアンチエイリアス処理適用後(右) | |
拡大した元のレンダリング結果(左)と、ポストプロセス型のアンチエイリアス処理適用後の拡大画面(右) |
■ ミドルウェアとしてのYEBIS
デモを行ないながら解説する川瀬氏 |
YEBISはミドルウェアなので、ゲームプログラムへの組み込み工程が必要になる。グラフィックス系のミドルウェアというとゲームプログラム側のグラフィックスエンジンとの統合/連携が難しそうなイメージがあるが、この辺りはどうなのだろうか。
「YEBISはポストプロセスに特化したミドルウェアなので、グラフィックス系のミドルウェアとしてはかなり組み込みやすい部類に属します。極端なことを言えば、既に完成しているゲームに対して組み込む事すら、現実的に可能です。YEBISの新規カスタマーがYEBIS導入の検討の際によくやられているのが、完成済み・リリース済みの過去作品に組み込んでみる、という実験ですね。こんなに簡単に組み込めるんだと言うことを再確認して頂いてます」(川瀬氏)
YEBISは、ゲームプログラム側のレンダーターゲットを受け取って、あとは指定されたパラメータに従ってその内容を加工するだけなので、独立性が高い。ゲームプログラム側のグラフィックスエンジン部はYEBISがないという想定の下で、普通にレンダリングすればいいだけなのだ。
より具体的にいうと、ゲームプログラムのレンダリングを司るコードブロックに対し、「ここからここまでのコードでレンダリングしている結果に対してYEBISでポストプロセスを掛ける」という「begin~end」的な指定の仕方でいいのだ。
「導入しやすい長所としてはもう1つ、ポストエフェクトは処理の所要時間が比較的見積もりやすい点です。また、パフォーマンスもパラメータを調整することで容易に詰めていくことができます」(川瀬氏)
ポストエフェクトはできあがった画像に対する加工処理になるため、基本的にはシーンの複雑性には依存しない。なので、各フレームごとに処理時間の揺らぎが少ない(≒ほぼ一定)のだ。だから、ゲームを設計する際、フレームレートを決定して、1フレームあたりのレンダリング所要時間を見繕って、その中で何msをポストエフェクトに掛けられるかを想定し、その予算の範囲内でリッチなポストエフェクトを盛り込んでいけばいいのだ。
前段で見てもらったように、YEBISには様々なHDR(High Dynamic Range)レンダリングベースのポストエフェクトが実装されている。ということは、ゲームプログラム側のレンダリングパイプラインはHDRを意識した設計にしなければならないのだろうか。
これについて、YEBISは、大きく分けて3つのソリューションを提供している。1つは「リアルHDRレンダリング」だ。このソリューションでは、RGBが各16ビット浮動小数点(FP16)で表されるフォーマットでレンダリングされたものにポストエフェクトを行なう。YEBISに入力する加工前のゲームグラフィックスはFP16で表されるHDR情報を有している必要がある。こちらのソリューションはもっとも妥協の少ないハイクオリティなポストエフェクトが得られるものになり、主にハイスペックハードウェアが想定されるPCゲームやアーケードゲームなどに用いられることが想定される。
2つ目は「シミュレーテッドHDRレンダリング」だ。こちらはRGBが各8ビット整数の一般的なLDR(Low Dynamic Range)フォーマットを用いるものだが、輝度レンジを圧縮してHDR情報を取り扱うことを想定している。輝度レンジを圧縮してRGB各8ビット整数バッファで取り扱う概念は、本連載「ヴァルキリープロファイル2」編でも取り扱っているが、YEBISではこの手法を一歩進め、輝度レンジの圧縮を非線形で行なっている。具体的には、暗い部分はほとんど圧縮されず、非常に明るい場所が大きく圧縮されるトーンマップのような滑らかな関数が用いられており、「ヴァルキリープロファイル2」編で挙げているような、マッハバンドはほとんど発生しない。
ゲームプログラム側のグラフィックスエンジンは、シーンのレンダリングをこのYEBISの想定する輝度レンジ圧縮型のHDR方式で行なう必要がある。このソリューションは処理負荷が軽い割には、HDR情報をちゃんと取り扱えるパイプラインになるため、ポストエフェクトのクオリティも高くできる特徴がある。「リアルHDRレンダリング」がやや取り扱いにくい、PS3やXbox 360といった現行機と相性がいいソリューションだ。
3つ目は「疑似HDRレンダリング」だ。こちらもRGBが各8ビット整数のLDRフォーマットを用いるものだが、「ゲーム側のグラフィックスは全くHDRを意識しない作りであっても良い」という懐の深いソリューションになっている。つまり、ゲームプログラム側は全くHDRを意識しないLDRのレンダリングパイプラインでいいと言うことだ。
このソリューションではYEBIS側は、入力されたLDRフレームを解析して、HDRっぽいフレームに仕立て上げてくれる。ざっくりとした例を挙げるとすれば8ビットで表される0~255のうち、255に近ければ近いほど、より高輝度とみなして処理を行なう。ここでもシミュレーテッドHDRレンダリングのときのように非線形関数を用いており、「240以上を高輝度とみなす」というような敷居値処理ではない点が特徴だ。既存のLDRレンダリングベースのゲームプログラムをHDR風に仕立て上げるのに役立ちそうなソリューションだと言える。
「物理的には正しくないですが、それらしい効果が得られます。」(川瀬氏)
【シミュレーテッドHDR(左)とリアルHDR(右)の比較画面ショット】 | |
---|---|
敢えて差が出やすい高輝度成分を含む画像で比較している。この程度の高輝度成分であれば、ほとんど見劣りすることなくシミュレーテッドHDRでも表現可能だという |
【HDRなし(左)と疑似HDR(右)の比較画面ショット】 | |
---|---|
LDR でレンダリングされた映像でもかなりそれらしく仕上げることができる疑似HDR |
YEBISは、前回取り上げた「BISHAMON」とは違い、デザインツールのようなツールは存在しない。そのため、レンダリング結果に対してYEBISのポストエフェクトをどういったパラメータで盛り込むかというデザイン作業に関しては、YEBISを、ゲーム開発スタジオ(ないしはゲーム開発チーム)内で使用している各種ツールに統合させて使用することになる。
前述した「疑似HDRレンダリング」的対応を選択する場合など、簡易的にYEBISを利用するならば、アーティストの手をほとんど借りず、プログラマだけで見栄えの良いグラフィックスを作り込んでしまうこともできるかも知れない。実際、YEBISが用意しているプリセットやサンプルをそのまま利用しているYEBISカスタマーも多いとのことだ。
「YEBISは、提供されているポストエフェクトの1つ1つが、クオリティとパフォーマンスの調整幅をとてつもなく広いレンジで持っている点も大きな特徴です。その時点で、速度が重くて使い物にならないほどの高品質やリッチなエフェクトを掛けることもできるんです。その時点では無理でも、ハードウェアの進化で近未来的にそれがリアルタイムに使えるようになったりすることはよくあるので、将来を見据えた実験や開発にも対応できます」(川瀬氏)
この特性は、いわば「時間的耐用力が高い」ということができるかもしれない。その「時間的耐用力の高さ」を現在の時間軸に展開することだってできる。そう、ハードウェア性能の異なる複数のプラットフォームへの展開だ。1度YEBISベースのエフェクトを組み込んだゲームグラフィックスは、そのパラメータを変えるだけで、各プラットフォームの性能に合った表現に容易に調整が可能だ。
例えばあるゲームをPS3とPS Vitaでマルチプラットフォーム展開しようとした場合、両ハードはプログラマブルシェーダー3.0(Shader Model:SM3.0)相当なので、両者のグラフィックスアーキテクチャ世代は同じではあるが、言うまでもなくパフォーマンスはPS3の方が上だ。そこでPS3ではYEBISのポストエフェクトをリッチに使い込み、PS Vitaで動作させるバージョンではこれをクオリティをやや落してパフォーマンスを稼ぐ方向で調整するのだ。ゲーム開発者はPS3とPS Vitaとでポストエフェクトを各プラットフォームごとに最適化せずともよく、それぞれYEBIS上のパラメータを調整するだけでいいので楽ができ、ひいては開発コストと開発時間を短縮ができるというわけだ。
■ おわりに
未来について語る川瀬氏 |
YEBISはミドルウェアという性格上、どのタイトルで採用されていると言うことがあまり公になっていないが、2012年1月時点でシリコンスタジオが明らかにしているものとしてはスクウェア・エニックスの「ガンスリンガーストラトス」、コーエーテクモゲームスの「真・三國無双6」、日本一ソフトウェアの「魔女と百騎兵」などががある。
また、現在はPS3、Xbox 360、Windows PC、Linux PC、パチンコ/アーケードゲームを初めとしたアミューズメント系の組み込み分野などのプラットフォームに対応している。今後は、AndroidやiOS機器のようなスマートフォンへの展開も計画されている。さらに、シリコンスタジオが昨年送り出したオールインワン型ゲームエンジン「OROCHI」では、YEBISが標準のポストエフェクトエンジンとして組み込まれたことで、さらに対応範囲が広がっていきそうだ。なお、PS Vitaへの対応は、現状では、OROCHI経由での対応となるようだ。
今そこにあるゲームグラフィックスを最上位のビジュアルクオリティに仕立て上げられるYEBISは、いうなれば一流のメーキャップアーティストだ。日本発の至極のグラフィックス技術がパックされたYEBISには、今後の進化の方向性にも期待が掛かる。最後に、川瀬氏にこの辺りを覗ってみた。
「今後は、これまでCEDECなどで発表してきた技術でまだ実用化されていない効果を実装していくことを考えています。また、DirectX 11以降の新しいフィーチャーでポストプロセスに活用できそうなものについてさらにリサーチを続けていく予定です。あと、ポストエフェクト専用のミドルウェアは世界的にも珍しい存在なので、海外への展開も進めていきたいですね」(川瀬氏)
【ガンスリンガーストラトス】 | |
---|---|
【真・三國無双6】 | |
---|---|
【魔女と百騎兵】 | |
---|---|
(C)copyright.Silicon Studio all rights reserved.
□「3Dゲームファンのためのグラフィックス講座」バックナンバー
http://game.watch.impress.co.jp/docs/series/3dcg/
(2012年 2月 17日)