PBRに関わるマテリアル、テクスチャマップの基礎知識

3DCGを学んでいて避けては通れないマテリアルやテクスチャの話。特に最近主流のPBRベースのレンダリングでは多くに人の共通知識として、必須な知識。だが断片的には詳しくても「マテリアルやテクスチャ全体としての基本的な解説」というものがなかなか見つからない。なので今回は、サブスタンス3Dペインター(Substance 3D Painter)というPBRの業界標準ツールと、UE5での実装の2つの観点から、マテリアルとテクスチャについて解説してみようと思う。

大和 司

サブペにもUE5にも縁がないと思ったBlender使いの皆様にも、必ず役に立つ知識だと思います😍 BlenderのプリンシプルBSDFもPBRベースですから!

(約 6,000文字の記事です。)

更新履歴
2025/08/30 公開

目次

物理ベースレンダリング、PBR

Physical Based Rendering、これについては各自でGoogleなどで調べてみて。詳しい解説サイトが山ほど出てくるので。

いきなりで申し訳ないが、サブペでは以下のPBRの基本要素を「チャンネル」と呼んでいる。あえてチャンネルという呼称を付けているのは、次の「メッシュマップ」と明確に区別するためだろう。

大和 司

なおチャンネルという単語自体は3DCG業界の一般的な共通単語「ではありません」。あくまでもサブペの独自ルールです。ですが、サブペはPBRマテリアルの主要ソフトなので、右に倣っておいて間違いないです。また以下の解説でも理解しやすくなるので、今はそんなもんだと思っといて👍

PBRの基本要素を「チャンネル」と呼ぶ

チャンネル(Channels)、これはサブペで色を塗ろうとすると必ず付いてくる項目。絶対に必要な前提条件、くらいに思っておけばい。

  1. Base Color(ベースカラー、別名:アルベド、要するに地の色)
  2. Roughness(ラフネス、粗さ、紙やすりから鏡面仕上げまで自在)
  3. Metallic(メタリック、金属度、基本的に0か1かの二択
  4. Normal(ノーマル、法線、面の傾き情報。紫色のアレ)
  5. Height(イト、高さ、疑似的なでこぼこ情報。Normalと違って浮き沈み情報のみ。発音はヘイトじゃないぞ!ハイトな。)

ここまではBlenderのプリンシプルBSDFの学習でもよく出てくる話。ここからがややこしい。

このチャンネルには、-1~+1、0~1、0~100、0~255等のような数値を入力することもできる。(入力範囲は各種ソフトの実装による。)ゲームエンジンの場合はさらに、以下で解説する「テクスチャマップ」を入力することもできる。それらをノードで演算させて入力することもできる。
(サブペではマップ入力+マップレベル全体の0~100%の調整のみ)

大和 司

逆にこのチャンネル相当の入力項目がないシェーダーは、残念ながらPBRベースではないです。でもマテリアルやテクスチャを理解する上ではこの記事が役に立つでしょう😊

メッシュマップとは?ベイクとは?

メッシュマップ、これもサブペの定義の用語であり、3DCG業界の一般的な単語ではない。だが理解のための区分けとしてはとても分かりやすい。

ベイクは3DCGの一般的な用語。

メッシュマップ(Mesh Maps)メッシュの形状に基づいて得られるマップ。主にベイクして初めて作られるマップ。メッシュマップは例えば代表的なものとして以下のマップがある。

  • Normal Map(法線方向)
  • Ambient Occlusion Map(凹みに入り込む光の減衰)
  • Curvature Map(曲率、角の尖り具合)
  • World Space Normal / Position Map(ワールド座標情報)、などなど。
大和 司

要するにベイクして初めて得られるマップは全てメッシュマップだと思っていい。

そもそもベイクって何?

ベイクとは、メッシュの形に応じた「各種情報をマップ化する」作業のこと。

大和 司

ちょっと何言っているのか分かんない😭

落ち着いて読み進めて欲しい。

3DCGをやっていれば必ず聞いたことのある「bake, ベイク」という単語。パンでも焼くのか?3DCGでのベイクはオーブンなどで焼くという意味よりも、マップデータを焼き付ける=マップデータを確定させる、という意味合いが強い。

「一時的/動的なものを、熱や光などを加えて確定させる」 というニュアンスで、ベイクと呼ばれるようになったようだ。

写真暗室でフィルムの内容を印画紙に焼き付けて写真にする、というイメージでいいだろう。Photoshopしかり、なぜか3DCGは写真に関わる表現が多い。

このベイク作業の意味、分かるようで分からない人のほうが大半だと思う。実際、Blenderを学んでいてもベイクが登場するのはかなり後半だったり、教材によっては出てこなかったり。

大和 司

それだけ「複雑で面倒臭い概念」「そもそもベイクの成功と失敗、修正方法」自体が、物凄く初心者に説明しにくい😭

ベイク作業の実感としてはサブペを学んでベイクボタンを押してもらうのが一番早い。なかなか頭だけで理解することが難しい。だが触ってみればすぐ分かる概念。ベイクで確定させた各種マップの意味や使い方と絡めて、ようやくベイク全体の意味が分かる気がするのだ。

ま、とりあえずベイクの言葉の意味と目的は分かった。んでベイクをする意味って何なの?

メッシュの形に応じた「各種情報をマップ化する」ため

例えばこれはアンビエントオクルージョンマップ(AOマップ)。当然ながらベイク処理によって初めてマップとして取得できるマップ。

この影っぽい色は、影ではない。この消化器に360度、あらゆる方向から光を浴びせかけてみて、光の回り込みにくい場所が黒っぽく表現されている、それがAOマップ。なので特定の光源から得られた直接影とは根本的に違う。

つまりAOマップは「環境光の回り込みにくい場所をマップで表現した画像」と言える。

なので、消化器というオブジェクト自体はモデリングが終わった時点でそこにあるものだが、AOマップはその形状をサブペでベイク処理して初めて得られるマップなのだ。

AOマップは、例えば暗い部屋の隅っこに消火器を置いたとき、さらに暗い影の部分を演出できる。影の中の影。現実世界ではグローバルイルミネーション(GI)の影響で暗くなるのだが、3DCGではGI演算が弱いゲームエンジンではAOマップで陰影を強調することでリアル感を出せる。あるいはGI性能が低い場合の補助的な陰影強調にも使える。

またベイク後にメッシュを変形させた場合、例えばメッシュ形状の大幅変更後では、ベイクされたAOマップがおかしくなる。なのでベイク後に再びDCCツールで形状を変更した場合、ベイクし直さないと正しいAOマップではなくなっているのだ。

同様にノーマルマップなども、ハイポリメッシュからローポリメッシュにノーマルマップをベイクすることで初めて得られる。ローポリのUV領域に対してハイポリが持っていた法線情報をマップ化するためにベイクするわけだ。

大和 司

つまり「メッシュ形状に依存しているマップを生成する作業」をベイクと呼び、ベイクによって得られたマップのことをメッシュマップと呼ぶ。サブペではね😊

メッシュの形状に依存せずにいつでも自由に変更できる項目が「チャンネル」。いつでも自由に調整可能。

それに対してメッシュの形状に依存する情報を画像として確定させる作業がベイク。そのベイク作業によって確定した画像がメッシュマップ。あとでメッシュ形状を変更したらメッシュマップは全てベイクし直し(ワンクリックだけど)。

テクスチャ、マップ、画像ファイルの違い

ここら辺が曖昧な人は多いだろう。そして曖昧なままだと、いつかどこかで詰まる。特にゲームエンジンを学び始めると、この違いをしっかり理解できていないと詰む。

大和 司

私はUE5を学んでいるので、UE5の例で話をします。Unityだとまた細かい所の作法が違うようですが、だいたいの概念は一緒なはずなので、何かしらの学びの役に立つ事でしょう。

まずテクスチャ、この単語は概念が広すぎて、実は「語尾に何かしらの単語が付くべき」表現だ。

  • テクスチャファイルなのか、
  • テクスチャマップなのか、
  • テクスチャ構造なのか、などなど。

要するに「テクスチャ」だけだと、UV展開後に必要なマップ全般を指しているので、かなりぼんやりした表現になる。

(テクスチャ)マップは、1つのファイルのことじゃない!

まずこれは私もしばらく勘違いしていた。まずテクスチャマップは、1つの画像ファイルのことじゃない。jpg, png, tgaという画像ファイルの意味じゃないこの理解が重要。

UE5の場合、というかゲームエンジンの場合は動作の軽量化のために、グレースケールのテクスチャマップを、1つの画像ファイルのRGB+アルファチャンネル=4チャンネルに無理矢理押し込むというチカラ技を歴史的に採用している。詳しくは「Packed Texture」で検索してみて。

なので例えばハイトマップやAOマップは、それぞれをわざわざ1つずつの画像ファイルにするのではなくて、Packed Textureのどこかのチャンネルに埋め込む、というか格納している結果になる。

大和 司

Packed TextureのRGBAチャンネルと各種メッシュマップの話をし出すと永遠に話が終わらない。各自のゲームエンジンとテクスチャマップの接続方法について調べてみてください。

なので1つのテクスチャマップ=1つの画像ファイルとは限らないという理解が重要。

もちろん人や現場によっては目的に応じて、あえて特定のマップを1つの画像ファイルとして独立させていることもある。

Packed Textureはゲームエンジン特有の技法

なのでBlenderを学んでいても知り得ないマップの管理手法なのだ。実際私もUE5やUnityを学ぶまでは出会わなかった。

大和 司

「なんで1つのマップを1つの画像ファイルにしないいの?」「なんで複数のマップを無理矢理1つの画像ファイルに押し込むの?と疑問だったが、これは諸事情によりゲームの高fpsをたたき出すための、涙ぐましい努力と歴史的背景があるのです。あとは各自で調べて。

マップはRGBAの4種盛りか、グレースケールの1種盛りか

大和 司

以下では、アルファ無しのRGBの画像もRGBAの画像だと見なして話を進めます。

上記の事情で、話が前後してしまったのだが、マップはRGB+Alphaの4種類の画像情報で1つのマップもあれば、グレースケールにより実質1種類の画像情報しかないマップもある。

  • ベースカラーではRGBAの4チャンネル全部を使ったベースカラーマップもある。
  • ノーマルマップはRGBの3種類を使って1つのマップを構成している。アルファは未使用。
  • ハイトマップやAOマップはグレースケールなので、もし画像化してもR=G=Bなのでグレースケール画像1つ分の情報しかない。アルファは未使用。

もしマップを画像化すれば、RGBA全部を使ったカラフルな画像も、グレースケールの地味な画像も、データとしてはRGBAの4種類の画像情報を持つことになってしまうのだが、グレースケールなマップを1つのチャンネルとして扱えば、1つの画像ファイルに最大で4チャンネル分のマップを格納できる。

なので1マップ=1画像ファイルではないのだ。ベースカラーのように1マップ1画像のマップもあれば、R:AOマップ+G:ラフネスマップ+B:メタリックマップ+アルファ:空き=1つのPacked Texture ファイル、ということもある。

大和 司

Packed TextureのRGBAに何のマップを入れるかは、特に業界標準的な決まりはなくて、チーム全体としてのルール決めによって運用されることが多いらしい。

そういうわけで「あれれ~、AOマップの画像ファイルがないぞ~。」なんて時にはそれはPacked Textureファイルのどこかのチャンネルに格納されているわけです。

実はハイトマップの別名称

これが初心者大混乱の元だったので、最初にズバッと答えを。

  • ハイトマップ、それはマップ内の相対的な高低差をグレースケールで表現したマップ
  • ディスプレイスメントマップの中身は、ハイトマップ
  • バンプマップの中身は、ハイトマップ
大和 司

ぢゃあなんで3つも単語が分かれているのか?💢

  • ディスプレイスメントマップ、これは「ディスプレイスメント・マッピング手法」でハイトマップを使ってね、という指示や意図を、マップに命名しただけ
  • バンプマップ、これは「バンプマッピング手法でハイトマップを使ってね、という指示や意図を、マップに命名しただけ

ややこしすぎる~。どちらも中身はハイトマップなわけよ。だからPBRの基本チャンネルの中にきちんと「Height(高さ)」というチャンネルが用意されている。そのチャンネルに接続されるマップがまさにハイトマップなのだ。

だからディスプレイスメントマップだろうがバンプマップだろうが、マテリアルノードの構成の仕方でどっちにでもなる。どっちでも使える。ややこしい。

ファイルでもチャンネルでもない、データ上のマップ

1例として、シャドウマップというマップの概念がある。これはグレースケールマップではあるのだが、どこかに画像ファイルとして存在するわけではない。主にシェーダーの事前計算のために必要で、VRAMのメモリ上で、データとして扱われるマップ。人が触る類いのマップではない。リアルタイムで描画更新されていくマップらしい。(詳しくは各自で調べてみて)

ところがユーザーさんが勝手に命名した「シャドウマップ」という画像ファイルや、マテリアルノードの接続口があったりするから大混乱😭 それってどんなマップ?となるが、業界標準的なマップではなくて、ユーザーが勝手に作った「影の描画領域をグレースケールでペイントし『常に影を強制する領域を指定したマップ』」だったという。

大和 司

もちろんマテリアルノードを自分で組んで「とある目的のために、普通はそういう近い方をしない特殊な使い方専用のマップ」をつなぐようにすれば、そりゃそういうヘンテコなマップも登場しうるのだが、事前にそういう説明がないと目が点になる。初心者ならなおさら「そんなマップは業界標準としてあるのか・ないのか?」を調べることになる。

なので業界標準で使われている既存の専門用語を、勝手に上書きして説明されると聞き手は大混乱する。プロや事前知識がある人ほど大混乱。だからマップ関連の単語は適切な単語名と正しい知識で説明するように心がけよう。

まとめ

  1. サブペではPBRに必須の固有要素を「チャンネル」と呼ぶ(業界標準ではない)
  2. ベイクとは、メッシュの形状に応じて定まる色んな情報をマップに変換する作業
  3. ベイクによって初めて作成されるマップのことをメッシュマップと呼ぶ(業界標準ではない)
  4. メッシュマップはオブジェクトの形状を変更したら全部ベイクし直し
  5. 1つのマップは必ずしも1つの画像ファイルではない
  6. 複数のグレースケールマップを1つの画像ファイルに押し込むPacked Texture
  7. ディスプレイスメントマップもバンプマップも、中身はハイトマップだった
  8. ファイルではなくVRAM上でデータのみで扱われるシャドウマップ

多分ここまで理解できれば、あとで出会った謎のマップ、これについてもあまり苦労しないと思う。

大和 司

今回の記事で出てこなかったマップ名は、おそらく特殊用途のマップになると思うので、あとは各自で調べてみてね。特に3DCG業界で一般的なマップなのか、あるいはどこかの誰かが勝手に作り出したオリジナル・マップなのかは、見極めが重要。

今回の創作活動は約3時間15分(累積 約4,394時間)
(1,074回目のブログ更新)

ご支援のお願い

筆者はAmazonアソシエイト・プログラムに参加しています。
以下の商品名や画像アイコンをクリックしてからAmazon様で何かお買物をして頂ければそのご購入総額の1~2%が私に寄付されます。クリック後に別の商品のご購入でもOKです!誰が何を買ったかは私に通知されませんのでご安心下さい😊

また当サイトは楽天アフィリエイト、バリューコマース Yahoo!ショッピング アフィリエイト、および第三者配信の広告サービス(Googleアドセンス)を利用しています。

著:鬼木拓実, 著:玉ノ井彰祥, 著:大澤龍一, 著:黒澤徹太郎, 著:留目貴央
¥3,018 (2025/05/21 21:47時点 | Amazon調べ)

【他の関連記事を絞り込む場合】
下の カテゴリ名 タグ名 をクリックして下さい

目次