ラフネスマップは、マテリアル上で反射がどれだけ鋭く、または広がって見えるかを制御します。一般的なメタル/ラフネス方式では、黒が滑らか、白が粗い表面を意味し、グレーはその中間です。シェーディングのパラメーターとして微細な表面のばらつきを表すもので、表面を盛り上げたり、溝を掘ったり、プラスチックを金属に変えたりするものではありません。
通常考えるべきなのは、表面のどこで反射が変わるかです。石床の磨かれた部分、取っ手の脂っぽい指紋、塗装パネルの乾いたほこりは、ベースカラーがほとんど同じでも別のラフネス模様を必要とします。
簡略化したGGXシェーディングモデルによる独自の解析図です。色、形状、IOR、カメラ、露出、サンプリングする光は固定しています。反射の広がりを説明するもので、Blenderの画面、実測マテリアル、レンダラーのベンチマークではありません。
ラフネスマップが実際に変えるもの
マイクロファセットモデルでは、微小な表面方向の分布としてマテリアルを表現します。滑らかな分布は集まった反射を生み、粗い分布はより多くの方向に反射を広げます。BlenderのPrincipled BSDF資料は、Roughnessを鏡面反射と透過の観点から定義しています。
マップを判断するとき、この区別は重要です。ラフネスが高いマテリアルも、特に浅い角度では光を反射します。暗く滑らかな物体は、周囲に明るい反射物がなければほぼ黒く見える場合があります。露出やメタリックを上げても、照明の手掛かりがない問題は解決しません。
長方形のエリアライト、明るい窓、明暗のある環境など、判別できる反射から始めます。均一に照らされた場面ではラフネスの違いが読み取りにくくなります。
| マップまたはパラメーター | 制御するもの | 解決できないもの |
|---|---|---|
| ベースカラー | マテリアルの色情報 | 反射のぼけや凹凸 |
| ラフネス | 各テクセルでの反射の広がり | 盛り上がった縁やシルエット |
| 法線またはバンプ | 照明に対する見かけの表面方向 | 実ジオメトリ、またはそれだけで反射をぼかすこと |
| メタリック | 金属または誘電体としての応答 | 一般的な汚れ、摩耗、ラフネス |
凹凸側の違いについては、バンプマップと法線マップの比較を参照してください。
黒・白とスムースネスの規約
正規化されたラフネスマップでは、0が滑らか、1が粗い表面です。8ビット画像の128は、データとして解釈した場合に約0.50です。64は約0.25ですが、特定の素材名に対する万能設定ではありません。
スムースネスは逆方向を使います。出力先が互換性のある正規化スムースネスを求める場合は、次のように変換します。
smoothness = 1 - roughness
8-bit smoothness = 255 - 8-bit roughnessしたがってラフネス0.25はスムースネス0.75になります。「gloss」と名付けられたテクスチャに適用する前に元データの仕様を確認してください。古いグロスマップは別の応答を符号化している場合があり、反転するだけで2つのレンダラーが一致するとは限りません。
独自の接続図です。右上の式は値の規約を変換し、下はBlenderのソケット名を示します。任意の0.35〜0.65という範囲は制作上の例で、実測したマテリアルのプリセットではありません。
写真から使えるラフネスマップを作る
写真には色素、表面仕上げ、照明、反射、カメラ処理が混ざっています。滑らかなプラスチックに印刷された黒い文字は、周囲の白いプラスチックと同じ粗さかもしれません。その写真をグレースケールにすると、色に基づく架空のラフネス差を作ってしまいます。
写真は領域や摩耗の手掛かりとして使い、必要な仕上がりを制作します。
- きれいな元画像を選ぶ。 硬い落ち影や白飛びのない、正面から均一に照らされた画像を優先します。関連マップを作る前に遠近を補正します。
- マテリアルの領域を分ける。 露出した金属、塗装、ほこり、濡れ、印刷部分を区別し、どの違いが仕上げを本当に変えるか決めます。
- 一定値から始める。 1つの材質領域に均一なラフネスを与え、想定照明で見ます。細部の前に全体の仕上がりを決めます。
- 控えめな変化を加える。 まず広い摩耗や手で触れた跡を加えます。細かな粒子は、想定する物体サイズで見える部分だけに加えます。
- 値の範囲を絞る。 試作の比較では、いきなり黒白を使うよりマスクを0.35〜0.65へ変換します。参照に必要な場合だけ範囲を広げます。
- 繰り返した結果を確認する。 複数のリピートと最終メッシュを調べます。色の継ぎ目が見えなくても、ハイライトが動くと光沢のある四角が繰り返し現れる場合があります。
手で触れる塗装パネルなら、よく擦れる部分は滑らかになり、積もったほこりは粗くなる、という仮説から始められます。ただし、これは参照と比較する芸術上の仮説です。研磨による摩耗で逆に粗くなる場合もあり、「摩耗」は固定のラフネス値ではありません。
可逆圧縮のグレースケール画像で保存するか、パックされたテクスチャの所定チャンネルを保ちます。一般的な変化には8ビットで十分なことが多いものの、滑らかな勾配に段差が出るなら、圧縮、値の範囲、解像度とあわせてビット深度も調べます。誤った材質解釈は画素を増やしても直りません。
Blenderでマップを接続する
以下はBlender 4.5 LTSの名称と一般的なPrincipledマテリアルを使う手順です。
- UV展開した物体を選び、Shader Editorを開いて、Principled BSDF → Material Output: Surfaceのマテリアルを作ります。
- Image Textureを追加してラフネス画像を開きます。
- 画像のColor SpaceをNon-Colorにします。ラフネスは数値データです。Blenderのカラーマネジメントガイドで、データテクスチャを色変換しない理由が説明されています。
- Image Texture: Color → Principled BSDF: Roughnessを接続します。RGBがすべて同じ値なら直接つなげます。パックされたテクスチャはSeparate Colorを使い、ラフネスを含むチャンネルだけ接続します。
- 他のマップと同じUV配置、想定スケールを使います。ベースカラーは別の画像ノードで接続し、通常のカラー画像なら一般にsRGBを使います。
- はっきりした反射で確認します。判定しにくくなる場合は法線とバンプを一時的に外します。
調整を制御するには、グレー値とRoughnessの間にMap Rangeを挿入します。From Min 0、From Max 1、To Min 0.35、To Max 0.65なら、結果はr = 0.35 + 0.30 × maskです。入力が想定範囲を外れる可能性があればClampを有効にします。Color Rampではより局所的な階調調整ができますが、急なランプは微妙な変化を消す場合があります。
効果を「強く」するためにラフネス画像をBase Color、Normal、Displacementへ接続しないでください。各入力は数値を別の意味で解釈します。
条件を固定して反射を確認する
この小さな場面は再現可能な診断に使うもので、レンダラー間の同一結果を保証するものではありません。
長方形のエリアライト1つの下に球と平面を置きます。ベースカラーは中立色1つ、Metallicは0、IORは固定にします。最初はコートとテクスチャによる法線を無効にし、露出、光源の大きさと位置、メッシュ、UVスケールは変えません。
まず0.15、0.45、0.80のような一定のラフネスを比較し、その後で値をマップへ置き換えます。球は反射形状を、平面は領域ごとのマスクや繰り返し模様を見せてくれます。視点を回す操作と光を動かす操作を分け、どの変化が不具合を生むか見極めます。
最後にベースカラーと法線を1つずつ戻します。元写真にある特定の明るい帯がないと自然に見えない場合、素材に焼き込むべきではない照明が元画像に含まれている可能性があります。
Unityへラフネスを正しく渡す
Unityの入力形式はレンダーパイプラインとシェーダーで変わります。単独のラフネスPNGが、そのまま使えるスムースネスマップになるわけではありません。
| 出力先 | 用意するもの | インポートまたはマテリアルの確認 |
|---|---|---|
| URP Litのメタリック方式 | ラフネスをスムースネスへ変換し、そのソースを選ぶ場合はMetallic Mapのアルファに格納 | Smoothness Sourceを合わせる。Smoothnessスライダーはマップに乗算される |
| HDRP LitのMask Map | Rにメタリック、GにAO、Bにディテールマスク、Aにスムースネス | Defaultで読み込み、sRGBを無効にする |
| 独自シェーダーまたはShader Graph | グラフ定義に従ってラフネスまたはスムースネスを用意 | チャンネル、反転、データ解釈を確認 |
Unity 6 URP Litの資料にはMetallic AlphaとAlbedo Alphaのスムースネスソース、乗数が記載されています。マップを余分に粗くせず確認するには乗数を1から始めます。書き出し時は実際のアルファチャンネルを保ってください。JPEGはアルファを持てません。
HDRPでは、Mask and detail mapsに記載された別のパック構成を使います。他のワークフローのORMテクスチャはHDRP Mask Mapではありません。画質を判断する前にシェーダーが要求するチャンネル構成を合わせてください。
よくある失敗を直す
| 症状 | 主な原因 | 最初の確認 |
|---|---|---|
| 全体が濡れて見える | ラフネスが低い、スムースネスを反転していない、データをsRGBで復号している | 一定値0.5に置き換え、規約と色空間を確認 |
| 全面が粉っぽい | 値が高い、または粗い側の狭い範囲に変化が集中している | 実チャンネル値を調べ、範囲変換ノードを一時的に外す |
| 印刷模様に沿って光沢が変わる | 材質の理由なくベースカラーの明るさをラフネスにしている | 比較用に、印刷部と下地を同じ仕上げで描く |
| 反射にだけ格子が現れる | ラフネスの端が連続しない、またはマスクの反復が目立つ | 動くハイライトで複数のリピートを見る |
| BlenderとUnityが違う | 規約、パック、乗数、照明、シェーダー応答の差 | 元マップを変える前に読み込んだチャンネルを確認 |
| 調整が効かない | 判別できる反射がない、UVやチャンネルが違う、コートが有効 | 既知のエリアライト反射を使い、基本のラフネス経路だけにする |
SeamlessCanvasで最初のマップを作る
写真からPBRテクスチャを作るツールはログイン後に無料でマップを生成します。SeamlessCanvasは私たちのサービスです。現在のラフネス出力は画像の輝度と局所コントラストから値を推定します。物理的な粗さを測定したり、すべての色素変化を表面仕上げから分離したりはしません。
均一な照明の元画像をアップロードし、ラフネスを生成して、上記のBlender手順で確認してください。文字や影による偽の変化を平らにし、その後でマテリアル内の全体的な範囲を調整します。法線と高さは別の経路で凹凸を担当します。
この流れはプロトタイプや編集できる初稿に役立ちます。写真の製品の仕上げを厳密に合わせる必要がある場合は、実測参照、条件を管理した撮影、専用のマテリアル制作を使います。繰り返せる元画像には、マップを生成する前に画像をシームレスにするワークフローを利用してください。
よくある質問
ラフネスはバンプマップと同じですか?
いいえ。ラフネスは反射の広がりを表し、バンプは高さの差から陰影法線を変えます。滑らかでも深い溝がある表面や、形状は平らでも粗い仕上げの表面があり得ます。
ラフネスはsRGBとNon-Colorのどちらにしますか?
Blenderでは数値ラフネスにNon-Colorを使います。ゲームエンジンではシェーダーとパックされたチャンネルに合うデータテクスチャ設定を使います。普通のベースカラー画像は通常のカラー画像経路です。
グロスマップは反転するだけで使えますか?
文書化されたスムースネス/グロス規約が、出力先のラフネスと補数の関係なら使えます。古いデータは注意して確認してください。「gloss」が別のパラメーター化を意味する場合があります。変換後は参照マテリアルと比較します。
ラフネスマップがほぼグレーなのはなぜですか?
狭いグレー範囲は意図されたものかもしれません。多くの仕上げには白黒マスクより控えめな変化が必要です。画像編集ソフトのコントラストではなく、モデル上の反射で判断してください。
公式資料
- Blender 4.5 Principled BSDF — シェーダーパラメーターと反射のラフネス。
- Blender 4.5 カラーマネジメント — カラー画像と数値データ。
- Unity 6 URP Litマテリアル資料 — スムースネスのソースと乗数。
- Unity HDRP 17 Mask and detail maps — チャンネルのパックと読み込み設定。
ドキュメントと製品実装は2026年10月22日に確認しました。数値例と解析図は学習用であり、実測プリセットではありません。