ご挨拶
皆様、初めましてこんにちは。今回コラムを書かせて頂く事になりました、株式会社ディッジの瀬崎と申します。
私は弊社でテクニカルエキスパートデザイナーとして、ツール技術面での社内教育を行いながら、現場にて3DCG制作をしております。
さて、皆さん「PBR」「UDIM」「アーノルドレンダリング」をご存じでしょうか?
業界内でも「PBR」「UDIM」という言葉を聞く事は決して珍しくなくなって来ており、今後スタンダードな物になって行く事は必然だと思います。
実は、かく言う私も日々勉強をしつつ理解と技術を深めている次第でございます。
今回のコラムでは、私と共に 「PBR」「UDIM」「アーノルドレンダリング」について勉強していこうではありませんか、といった主旨になっております。
まず「PBR」とは何なのか? を理解していきましょう。
「PBR」とは「フィジカルベースドレンダリング」の略称になります。
「物理ベースシェーダー」「物理ベースレンダリング」というと聞いた事もある方もいらっしゃるかもしれませんね。
簡単にご説明致しますと、「物理的に正しいシミュレーション」を行いシェーダー制作していくシステムと思って頂けたら良いのではないかと思います。
●現実世界では「光の強さ」に対して物体の表面はどのようなシミュレートをしているのか?
●物体の表面は光沢を帯びているのか、はたまたザラザラしているのか?
●物体の表面に施された質感は環境光に対してどのようなシミュレートをしているのか?
◎現実世界の物質は色々な情報の中でその存在を構成しております。
上記の様々な要素をシミュレートして制作されたシェーダーを使いレンダリングや実機で描画する事を「PBR」と言います。
実際に案件仕様では「PBRベースシェーダーで制作」といった事もあります。
そして私が今回コラムの主題の一つにPBRを選んだ理由として
なぜ今PBRが注目されているの?
なぜゲーム業界に浸透してきているの?
PBRで制作するとどのようなメリットがあるの?
と言った疑問点を感じたからです。
それでは一つ一つ考察していきましょう。
なぜ今PBRが注目されているの?
これについては導入費用対効果による処が大きいと思っています。
PBRが浸透する以前から物理ベースという概念は存在していました。ただ現在と比べてシミュレート方法がかなり複雑でした。また導入費用も破格なものでした。
以前と比べて比較的簡単に導入する事ができる様になり、色々な作品に使われそのクオリティが注目されてきたのではないでしょうか。
また、PBRが存在していたの?と思われる方もおられると思いますがPBRは概念としてはっきりとしたものがなく未だ完成されたシステムではありません。○○だからこれはPBRだね!と言った明確な事が言えないといった感じでしょうか。これからも名前は変わらずとも進化はしていく発展途上なシステムです。
なぜゲーム業界に浸透してきているの?
これにつきましては圧倒的に導入費用対効果に尽きると思います。
ある有名なディレクターが言われておられたのですが自分らで作った制作物と物理ベース「スキャンデータを含める」で作った物とを比べるとクオリティを含め表現したい物がダイレクトにアプローチ出来ると言われておられましたがそこに一つの答えがあると思います。
制作現場ではもっと岩っぽく、もっと錆びた感じを、等と抽象的な指示が飛び交っていますが「物理ベース」はある種一つの答えを持っているのでそれをたたき台にして進めていくと、トライ&エラーが容易に行えるので好まれて使われているのではないかと思っています。
PBRで制作するとどのようなメリットがあるの?
これについてはワークフローチャートが簡略化できる事があると思います。
ゲーム案件を例に話を進めさせて頂きますが現在世に出ているゲームは主に「unity」「アンリアルエンジン」というゲームエンジンからビルドされて皆さんが実際にゲームをプレイできる環境にもっていく、という流れが主流になっていると思います。
つまり最終的にはゲームエンジンで描画される物がFIXデータになるのです。それは質感やライティング等も含めて全てに言える事です。
ペインターソフト、DCCツール上で自分の思い描いた描画がなされていても最終的にゲームエンジンでそれが表現出来なければ意味がありません。最終的に各ソフトでルックを合わせる作業が発生するのです。
Mayaで描画されたルックがそのままゲームエンジンで描画できればそれが一番なのですがこの工程は中々大変な作業です。
ですがその工程をPBRベースにしてワークフローを組めば容易に行える事が最大のメリットです。
それはMayaでも出来るの?と言った質問があったとしましょう。
勿論できます・・・・・がこの点に付いては
私か執筆する第3.4回目のコラムにて詳しくは説明したいと思います。
さて、これからはPBR概念を理解していきましょう。
「PBRベースでのデータ制作」では新しいお約束事がありますので理解していきましょう。
「PBR」においてはシェーダーマップの考え方が少し違う考え方になってしまいます。
「PBR」では従来のシェーダーマップに追加して「アルベド」「メタリック」「ラフネス」等あまり聞きなれないマップで形成していきます。
「PBR」において「アルベド」「メタリック」「ラフネス」はオーソドックスなマップでその他のマップもあります。
※「グロッシネス」「シャイネス」等
この説明では分かりづらいので、これからなるべく分かり易く補足していきたいと思います。
「ベースカラー」と「アルベド」マップの違いとは
ここでは細かい事は抜きにして大きな違いを説明していきますね。
まず「ベースカラー」には「アンビエントオクルージョン」「ライティング情報」等を含む事もありましたが
「アルベド」にはそのような情報を含める事は基本的に致しません。
「アルベド」はベースのカラーのみといった解釈の方が分かりやすいかもですね。
※後述に少々分かりづらいかもしれませんが「比較」の画像を準備致しました。
何故かと言うと最初に触れました現実世界の要素のシミュレートを従来までは「ベースカラー」を使い目視で調整してきました。 つまりは見た目での調整を「ベースカラー」で行っていたのですね。
「アルベド」では基本ベースカラーのみで、質感等は他のシェーダーマップで形成していきますので「ベースカラーマップ」みたいに情報を加筆していく必要は必須ではないのです。
むしろ良かれと思って加筆した情報が他のチャンネルマップで形成されたシミュレート値を壊してしまう事もあります。
かといって全く手を加えては駄目という事ではありません。
CGの難しい部分ですね。
「PBR」での「スペキュラーマップ」の役割
当初、私は「PBR」のシェーダーマップに「スペキュラーマップ」「メタリックマップ」がある事に違和感を感じました。私は「メタリックマップ」が最新のシステムで「スペキュラーマップ」は古いシステムなんだなぁと思っていました。
私が何故そう考えたのかと言うと「スペキュラーマップ」とはまだCGの歴史が浅い時代に擬似的に反射値を表現する為に作られたシステムだと思っていたからです。
ですが「PBR」において「スペキュラーマップ」「メタリックマップ」は両方とも役割を持っています。
「PBR」での「スペキュラーマップ」は大きなカテゴリーに分けるとしたら鏡面反射を表現するマップになります。
「メタリック」「ラフネス」とは何か
「メタリック」とは「金属製」を表すパラメーターマップになります。
表面の光沢値をコントロールするマップになります。
100%に近くなるほど光沢率が上がっていきます。
「ラフネス」は表面の「粗さ」を表すパラメーターマップになります。
「ラフネス」の「粗さ」はバンプマップでの「粗さ」とは意味合いが違います。
「ラフネス」の「粗さ」は、表面の質感を凸凹にするような「粗さ」ではなく、その物体に対して表面がツルツル感を帯びているのかザラザラ感を帯びているのかを表現します。
物凄く抽象的にはなりますが空気感に対しての表面の質感です。
後述の「メタリック」「ラフネス」の画像をご覧いただければ分かりやすいと思います。
「メタリック」の値を0%~100%までに設定した画像を用意致しました。メタリックの数値が高くなる程光沢を帯びていくのがお分かりになると思います。
「ラフネス」の値を0%~100%までに設定した画像を用意致しました。ラフネスの数値が高くなる程マットな質感を帯びていくのがお分かりになると思います。
「メタリック」「ラフネス」の値を0%~100%までに設定した画像を用意致しました。
ラフネスの数値を常に0%に設定し「メタリック」の値が100%になっていくほど鏡面反射率が上がっているのがお分かりになると思います。
簡単な説明ではありますが、上記の様に各パラメーターを設定していきながら質感を設定していきます。
そもそも「メタリック」「ラフネス」にパラメーターを設定しているのは何故?
当然上記の様な疑問点はありますよね。
この部分を明確にしていかないと「PBR」は理解できないと言っても過言ではありません!
唐突になりますが皆さんはこの世の物質全てが実はグレーであるという事はご存知でしょうか?
意外にご存知ではなかった方もいらっしゃるのではないでしょうか。
※自ら光を放つ物質等は例外です
皆さんの身近な果物のリンゴを思い浮かべて下さい。
赤い色をしていますよね?
勿論そうなのですがそれでは何故赤いのか?って聞くと答えられる方はグンッと減るのではないでしょうか?
答えは自然界にある「可視光線」の赤い色だけを反射させて他の色は吸収しているからなのです。
可視光線とはなんなのかと言うと「虹」を思い浮かべて下さい。
「紫色」「青色」「緑色」「黄色」「橙色」「赤色」「水色」が虹色と呼ばれていますよね。
世の物の殆どの物が実はグレーで可視光線&光によって私達は色を認識しています。
また可視光線を受ける物質には「光」の吸収率と散乱率をもっています。
ここからは「可視光線」を「光」として説明をしていきます。
比較的簡単な御説明をしますと「物体の持つ厚さは光の吸収率と散乱率」と関係があります。
更に深く考察するならば「光の吸収率と散乱率」=「光の透過度」になると思います。
人間の耳を思い浮かべて下さい。耳は人体では比較的薄い形状になっています。
後ろから強い光を当てると耳は光が透過して皮膚下にある血管や肉の赤身が見えます。
一点方向から強い光を当てた場合、同じ人体でも薄い部分は血管や筋肉の赤みが見え胸等、比較的厚い部分は皮下組織までは視認しづらくなります。
「光の入射角と反射角」を考察していきましょう。
勿論、光を受ける物質は光を反射します。
光の入射角に対して反射角が等しくなるほど物質の表面は綺麗なハイライトになります。
これは金属等、表面の粗さが滑らかな程顕著になります。
逆に光の入射角に対して反射角が不規則になる程ハイライトは不鮮明になっていきます。
これは表面に凹凸がある錆びた金属等、表面の粗さが粗くなるほど顕著になります。
大げさに言うとこれは現実世界でのお約束事になります。
更に言うと数学的に計算式で計算できるのです。
つまり何が言いたいかと言うとこの世の中のほぼ全ての物が決められた数値をもっているのです。
現実世界の決められた「数値」をより正確にシミュレートしてレンダリングするのが「PBR」なのです!!
更に詳しく掘り下げていくと現実世界の各物質が持つ数値をCGで再現できる様に各数値として決められています。
※各ゲームエンジン等に寄って多少の差異はありますのでご注意を。
リンゴを例に出すと「ラフネス」値が〇〇%「メタリック」値が〇〇%とした指針があるので「ベースカラー」で行っていたように見た目での調整とはまた違った詰め方になりますよね。
極端に言えば「リンゴ」を制作する上で決められた数値を設定すれば、それは「物理的に正しいリンゴのレンダリング」なのです。
これこそが「PBR」なのです。
上記の様に制作する対象物の持つ特性を理解し、各チャンネルの数値を探っていきながらのワークフローになると思います。
※対象物の特性を理解する事の例を挙げると階段はどこに汚れがたまりやすいのか?金属でも人が触る事が多い部分とあまり人の手に触れる事のない部分はどういう違いがあるのか等もそうですよね。
「PBR」には環境光のシミュレートも大事
物体の「物理的に正しい数値」が認識できたとしても現実世界になくてはならない環境光も「物理的に正しいシミュレーション」に大切な要素になります。
現実世界での一番大きな光源はもちろん太陽になりますよね。
CG世界で太陽を正確に言えばポイントライトになります。
シーンの構成にもよりますがポイントライトで太陽の光を表現するのは難しいので「平行ライト」で表現するケースが多いと思います。
「キーライト」「フィルライト」等お聞きになられた事はあると思いますが「各CGツール」で既存に用意されたライトを使ってそのシーンにあった世界観を生み出しているのです。
仮にその世界観がフォトリアルな物であればより大変な制作過程になります。
それでは現実世界での光を考察して行きましょう。
「懐中電灯」を思い出して欲しいのですが光というのは永遠に光の強さが保たれる事はありません。
遠くにいけば行くほど光の力は弱くなっていくのです。
つまり光は徐々に光の強さがを減衰していっているのです。
それと同時に光は拡散していきます。末広がりになっていき光で照らされる範囲が広がっていきます。
これは「空気が光に影響を与えている」からです。
「光と空気」は密接な関係にあるのです。
簡単に御説明すると光は空気に乱反射しているのです。
そして光は物体に反射して間接光を生み出します。
ご自分の机の下をご覧になると差異はありますが真っ暗なエリアはほぼないと思います。
真っ暗な世界というのは全く光が存在しない、光が全く届かない部分なのです。
物体が持つ特性を理解したとしてもその物体に影響を与える環境光がシミュレートできていないと「物理的に正しいシミュレート」とは言えませんよね。
それでは「CG上で物理的に正しい光」とはなんだよ!
という事なのですがそれをシミュレートするのが「イメージベースドライティング」です。
(IBL)という略称なら聞いた方もあるのではないでしょうか。
CG空間上に半球状、あるいは全球のオブジェクトを作り「HDRIの環境マップ」を貼りライティングを行います。
「HDRIの環境マップ」で何故ライティングが行われるかと言うと「HDRIの環境マップ」自体が光源なのです。
簡単に仕組みをご説明すると画像の輝度情報によって明るい部分からは強い光を、暗い部分からは弱い光を発する仕組みです。
後述に「サブスタンスペインター」にデフォルトで搭載されているHDRI環境シーンを準備致しました。
下記のシーンには「3DCGツールでのライト」は一切含まれておりません。
「HDRIの環境マップ」自体が光源となりシーン内のオブジェクトに影響を与えているのがお分かりになるのではないでしょうか。
この様に上記技法で「表現したい環境空間」をシーン内で再現できます。
「HDRI画像」とは特殊な技法の下、制作された画像になります。
つまり自分の再現したい空間を「HDRIの環境マップ」として準備すればその空間がシミュレートできます。
それでは「PBR」を整理していきましょう。
「PBR」とは現実世界にある要素をCG上でシミュレートして描画する技法である。
↓
「メタリック」「ラフネス」等の数値を物質の性質から読み取り質感を表現する。
↓
「HDRI画像」を用いて表現したい空間内をシミュレートする。
↓
「PBR」の主旨である「物理的に正しいシミュレーション」シーンの完成。
以上が「PBR」の簡単な説明になります。