見出し画像

blender 4.2 マテリアルの基本と応用 | カラー、粗さ、起伏

周囲をみると、いろいろなモノがあって、それらはみな質感が異なり、一瞥するだけで、木、金属、ガラスなどでできていると判別できます。それらの多様な質感を、CGでは「マテリアル」と呼びます。

ここでは、blender のマテリアル機能について、主要な3要素である、表面色、表面の粗さ、起伏に関する基本から応用までを紹介します。


環境 Blender 4.2.0 , Mac Mini M1 OS 14.4



基本


マテリアルの設定は、おもにマテリアルプロパティ画面、あるいは、シェーダーエディター画面で行う。どちらか、または、両方で行っても同期し、同じ結果が反映される。

マテリアルプロパティ画面
シェーダーエディター画面。いずれかの画面を シェーダーエディターに


マテリアルの作成

新規マテリアルを作成するには、どちらも上記画面の「新規」ボタンをクリックする。

マテリアルプロパティ画面

マテリアル名は任意に変更できる。また、後述のように、右上の + ボタンを押すことにより、マテリアルを追加、ひとつのオブジェクトに複数のマテリアルを設定できる。

また、黄色のドットのボタンは、左から、フェイクユーザー、コピー、削除。

データ節約のため、blender ではそのマテリアルが適用されているオブジェクトが存在しない(削除された)場合、終了後、付随するマテリアルも削除される。フェイクユーザーを ON にすると、オブジェクトが存在しなくてもマテリアルのみ保護される。

シェーダーエディター画面

シェーダーエディターでは、ノードと呼ばれるさまざまな機能を持ったパーツを追加 ( Shift + A )、接続できる。デフォルトでは、マテリアルの主要ノードである「プリンシプル BSDF」のみがマテリアル出力の「サーフェス(表面)」に接続されている。

通常、デフォルトの状態から、プリンシプル BSDF の各値を変更したり、シェーダーエディターで、各種ノードを接続することで、さまざまなオブジェクトの質感を表現する。



カラー

基本


オブジェクトの表面色。通常は、プリンシプル BSDF の ベースカラー で設定する。

マテリアルの適用結果は画面右上の「マテリアルプレビュー」で確認する。

ひとつのオブジェクトに異なるカラーを設定したい場合は、「編集モード」で、異なる面に、それぞれマテリアルを設定する。

編集モード。カラーを変更したい面を選択し、+ ボタンで新規マテリアルを作成、
ベースカラーを設定した後、「割り当て」をクリックする

厳密にいえば、異なるベースカラーを適用したというよりは、ベースカラーの異なる「マテリアル」を適用している。このため、半分はガラス、半分は金属、というような使い方も可能だ。

応用

上の方法では、オブジェクト面の境界のみマテリアルを分割できるが、テクスチャ(画像)の、白黒のエリアでマテリアルを分ける方法もある。

左 波テクスチャ 右 ボロノイテクスチャ
テクスチャのみの状態。上の場合、黒のエリアがオレンジのマテリアルに、
白のエリアが青のマテリアルが別々に適用される。もちろん白黒画像ファイルでもよい。
シェーダーエディター。波テクスチャの場合。
カラーランプは、コントラストの調整。

「ディフューズ BSDF」は、プリンシプル BSDF のベースカラー機能のみ独立したシェーダー。見やすくするため使ったが、もちろんプリンシプル BSDF でもよい。
波テクスチャなどの生成(プロシージャル)テクスチャの詳細については、怖くない生成テクスチャ を参照してください。


カラー(テクスチャ)

基本

よりリアルな質感を表現するため、実際の表面画像をベースカラーに適用することも多い。

ベースカラーの黄色のドットをクリックし、「画像テクスチャ」を選択、
ダウンロードするなどしたテクスチャ画像を指定する

フリーのテクスチャ画像の入手先として、AmbientCG PolyHaven などがある。

大理石 布 ウッド

UV は、球オブジェクトのデフォルトを使用している。カスマイズした形状のオブジェクトでは別途、UV 展開が必要。詳細については、UV 展開の基本 を参照してください。

画像テクスチャを適用しただけで、その質感を表現できることもあるが、より正確な表情を出すには、後述の、粗さ、ノーマル(起伏)、メタリック などの値を、その素材にあわせ調整する。


応用

デフォルトでは、画像テクスチャの配置は UV マップによって決まり、UV エディター上で細かく制御することができるが、単純な形状で、UV 展開を行う必要がなさそうな場合は、下のノードが手早い。

左は、マッピングノード 回転 X 90
シェーダーエディター。テクスチャ座標ノードからは「オブジェクト」で接続

マッピングノードの、位置、回転、スケールで、テクスチャの制御ができる。全体の制御のみなので、テクスチャのタイプや、オブジェクトの形状が複雑な場合などには適さないこともある。

カラー調整

また、シェーダーノードには、カラー調整に関するノードも豊富で、画像ファイルじたいを変更しなくても、基本的な色調整が可能だ。

RGBカーブ HSV カラーミックス
RGBカーブノード。画像の明度やコントラストを調整
HSVノード 画像の色相や彩度を調整
ミックスカラーノード。特定の色、あるいは別の画像を混合する

もちろんすべてのノードを接続して細かな調整も可能。


粗さ


現実のモノの表面にはかならず、起伏や凹凸があり、たとえば同じ木材でも生木のときと磨かれたときのなめらかさは異なる。そのような素材や状態によって特有の表面の「粗さ」を設定することで、より本物らしい質感を表現できる。


基本

プリンシプル BSDF の 粗さ は、表面のなめらかさを表す値で、値が小さいほどなめらかに、大きいほど粗くなる。

左 デフォルト 0.5 右 粗さ 1.0

左のマテリアルがあまり布にはみえないのは、値が 0.5 と中間値で、光をすこし強く反射しているからだ。布は通常、表面に細かい凹凸があり粗く、光をあまり反射しない。

左 デフォルト 右 粗さ 0.0

逆に、大理石の表面は通常は磨き込まれているので、粗さは低くなめらかで、光をよく反射する。値を変更することで、よりリアルな表情になる。


応用

ノイズテクスチャなどを使い、粗いエリアとなめらかなエリアを混在させ、すこし汚れや擦れの混じった現実感のある表面を表現することもできる。

左 粗さ 0.3 中央 ノイズテクスチャによる粗さのノイズ 右 ノイズテクスチャのみ
テクスチャを 粗さ に接続。
画像の黒いエリアがなめらかに、白いエリアが粗くなる。

表面に模様があったり、HDRI などの背景光が映り込んでいるとあまり目立たないが、細かな差がリアル感を増す工夫にもなる。

粗さ の値はおもに、マテリアル表面の「光沢」、すなわち、光をよく反射するかしないかの操作に利用されるが、さらに、IOR、メタリックの値によっても光沢の強さを操作することができる。

IOR

左 デフォルト IOR 1.5 右 IOR 2.0

IOR は光の屈折率を表す値で、大きいほどより広い範囲の鏡面(表面)反射が強くなる。なお、 IOR は素材によって固有の値があり、物理的な正しさを求める場合に参考できる。材料の屈折率一覧表

Metallic

左 デフォルト メタリック 0 右 メタリック 1.0

メタリックの値は、その素材が金属であるかないかを決定する値で、通常は 0 あるいは 1.0。値が大きほど、金属の特質のひとつである強い鏡面反射が反映される。上の大理石は金属ではないので、物理的には正しくなくなるが、より光沢を増したい場合に値を上げることもある。

メタリック、IOR については、プリンシプル Principled BSDF 全解説 ですこし詳しく解説しています。


ノーマル


ノーマル(法線)は、オブジェクトの面の向きのことで、マテリアルでは、表面の起伏、凹凸を擬似的に(形状には起伏は生じない。後述のディスプレイスメント以外)表現する機能。
現実のモノには、必ず表面の凹凸があるはずなので、リアルな質感の表現には欠かせない。

基本

Normal Map

面の向きを擬似的に操作し、みための起伏を与える。

中央 ノーマルマップ適用後。右はノーマルマップテクスチャ画像

ノーマルマップテクスチャ画像は、通常、青赤の情報をもったテクスチャで、配布されているファイルでは、ファイル名に Normal を含む事が多い。

テクスチャを接続したノーマルマップノードを、ノーマル に接続

Bump

面の高さを擬似的に操作し、みための起伏を与える。

中央 バンプマップ適用後。右はバンプマップテクスチャ画像
テクスチャをバンプノードの「高さ」を経由し、ノーマルに接続 強さ 0.3

バンプ用のテクスチャ画像は、通常、白黒の情報をもったテクスチャで、配布されているファイルでは、ファイル名に Bump あるいは Displacement を含む事が多い。

Displacement

面の高さを擬似的に操作し、みための起伏を与える。あるいは、形状を直接操作し、ジオメトリによる起伏を与えることも可能。

中央 擬似的なディスプレイスメント適用。右ディスプレイスメントマップ画像
画像テクスチャノードを、ディスプレイスメントノードの「高さ」に接続、
マテリアル出力の、ディスプレイスメントに接続する。スケール 0.5
ディスプレイスメントノード スケール 0.2

デフォルトでは起伏は擬似的で、形状はきれいな球のまま。ここから、形状じたいに起伏を与えたい場合は、マテリアルプロパティ > 設定 > ディスプレイスメント で、「ディスプレイスメントとバンプ」あるいは「ディスプレイスメントのみ」を選択する。

オブジェクトは、適度に細分化されている必要がある。また、EEVEE では 4.2 以降のみ、形状のディスプレイスメントが適用される。

応用

起伏の表情は、テクスチャ画像を外部アプリで編集して変更を加えることもできるが、リアルタイムで編集を行いたい場合は下の方法がある。

形状のディスプレイスメントのみ適用した平面
マテリアル
  • いずれかのウィンドウを、「UV エディター」とし、新規画像を作成する。

名前は「Mask」とした。カラーは、#AEAEAE 白黒中間
  • マテリアルを下のように変更。

左上は画像テクスチャノード。上で作成した「Mask」を指定
中央は、カラーミックス(乗算)係数 1.0
  • マテリアルプレビューで、テクスチャペイントモードに変更。

  • ブラシで変更したいエリアをなぞる。

ブラシのカラーの白寄りは起伏が大きくなり、黒寄りは起伏が少なくなる。
レンダープレビュー。地形の編集にも使えそうだ。

もとのテクスチャ画像ファイルには影響を与えず、起伏を調整できる。細かい変更がむつかしい、ノイズなど生成テクスチャの調整にも有効だろう。


PBR マテリアル


PBR(Physically Based Rendering 物理ベースレンダリング)マテリアルでは、カラー、粗さ、起伏、の要素をすべて画像テクスチャで制御し、物理的に正しいマテリアルを簡易に作成することができる。

ネット上でダウンロードできるマテリアルの多くは、各種テクスチャマッピングファイルが付属している。ここでは、Ambient CG の Rock030_1K を使用する。

ただし、手作業ですべてのテクスチャ画像を適用するのはすこし煩雑なので、アドオン NodeWrangler の自動機能を使う。

編集 > プリファレンス > アドオン で node 等で検索、Node Wrangler をチェック
  • 新規マテリアルを作成、プリンシプル BSDF を選択

  • Shift + Ctrl + T キーを押す

シェーダーエディター画面
  • ファイル指定画面になるので、PC上のテクスチャ画像を全選択。

  • マテリアルプロパティ > 設定 > サーフェス > 「ディスプレイスメントとバンプ」を選択

自動生成されたマテリアル シェーダーエディター
  • とくにディスプレイスメントが強すぎるので、適宜、ディスプレイスメントノードのスケール、ノーマルマップノードの 強さ の値を低くする。

ディスプレイスメント スケール 0.1 ノーマルマップ 強さ 0.5

マテリアルのカラー、粗さ、起伏を自動的に手早く設定できるのは便利だ。


まとめ


とくに無機物的な素材のマテリアルについては、おもに、カラー、粗さ、起伏 の 3 要素を適切に設定することで、リアルな質感を表現することができるでしょう。
それ以外では、有機物的な、すこし透明がかっているマテリアルなどがありますが、それについては別途紹介できればと思います。参考まで。



この記事が気に入ったらサポートをしてみませんか?