LogoMark.png

Blender/Materials のバックアップ(No.1)


Materials

Blender 3.0

オブジェクトの材質(色・質感)のことをマテリアルと言います。Blenderでは、このマテリアル設定をシェーダーエディタのメインウインドウにあるノードエディタを使って設定します。従来型のプロパティーエディタでも設定可能ですが、レンダリングエンジンの Cycles と Eevee はノードツリーを使用するため、ノードエディターの利用(Use Nodes)がデフォルトになっています。



はじめに

2DCGでは、ラスター系(Photoshopなど)でもベクター系(Illustrator)でも、ピクセルや図形に設定するのは色(RGB値)と透明度(α値)のみですが、3DCGの場合は、基本的な色のみならず、光の拡散、鏡面反射、透過・屈折、発光といった、シェーディングに関する細かい設定が必要になります。

マテリアルに関するデータ自体が大きなデータセットになるため、赤いプラスチック・銅・ガラスなど、マテリアルには個別に名前を付けて、オブジェクトとの紐付けを簡単にできるように管理します。例えば「ガラス」と名付けられたマテリアルデータは、シーンに登場する複数のガラス素材のオブジェクトにリンクされて利用されるのが一般的です。



マテリアルの設定方法

Shading ワークスペースの利用

マテリアルの設定を行う場合は、Shadingワークスペースを使うのが効率的です。TopBar の ワークスペース選択から Shading を選択すると シェーダーエディタを含むワークスペースが表示されます。

マテリアルの新規作成

新規のオブジェクトは、オブジェクトデータ(頂点座標等)を持っていますが、マテリアル情報は持っていません。オブジェクトに色を付けるには、マテリアルデータブロックをリンクする必要があります。この初期操作は、以下のいずれかの方法で実現できます(後者を推奨)。

PropertyEditor > Material Property > New(または既存のものを選択)
ShaderEditor > Header > Material > New(または既存のものを選択)
Material.jpg

右図は、オブジェクト(Cube)にマテリアル(Material)が設定されている場合のデータの階層構造です。これは、Outliner の画面で個々のオブジェクトの項目をプルダウンして確認することができます。


NodeEditor を使う

シェーダーエディタのメインウインドウは NodeEditor になっています。

ShaderEditor.jpg

右図は、オブジェクトに新規のマテリアルを設定(New)した直後の画面で、シェーダーノードのひとつである Principled BSDF と、アウトプトノードのひとつである、Material Output の2つのノードが表示されています。

個々のノードには、ソケットと呼ばれる連結部分があって、マウスドラッグで同じ色同士のソケットを接続します。ノードは大きく3種類あって、ソケットは以下のように配置されています。

一般に、入力側ノードを左、出力側ノードを右に置いて、左から右へと処理が進むとイメージすればよいでしょう。右図の例では、ShederNode の出力が Material Output の Surface に接続されています。

Shading Parameter

オブジェクトの色や質感は、以下のような項目の値を設定することで、調整ができます(Principled BSDF ノードの場合)。


付記:Smooth と Flat

メッシュオブジェクトには、レンダリング時の陰影付けの方法について、二つの選択肢があります。ひとつはポリゴンの形・境界が見えるようにするフラットシェーディングで、もうひとつは隣り合うポリゴンの法線を補完して境界部分の陰影を滑らかにするスムーズシェーディングです。以下いずれかのメニューを使って設定します。

Header > Object  
オブジェクトの上で右クリック > コンテクストメニュー 

AutoSmooth について
例えば「Cylinder(円筒)」は、側面部分のみをスムーズにして、側面と上面・底面に関しては、90度の角度を維持したいのが普通です。単純に Shade Smooth を適用しただけでは違和感のある見た目になるので、このような形状の場合は、例えば「30度以内の緩やかな傾斜部分のみスムーズにする」といった処理が必要になります。この場合、以下のようにして AutoSmooth を適用して下さい。

PropertyEditor > オブジェクトデータプロパティ(▽)> Normals
AutoSmooth にチェック(角度は自由に変更可能です。デフォルト30度)



複数マテリアルの定義

マテリアルの設定は、ひとつのオブジェクトにひとつのマテリアルをリンクするのが簡単ですが、ひとつのオブジェクトに複数のマテリアルを持たせることが必要になる場合もあります。以下の2つの方法があります。

EditMode で面ごとに定義

MaterialAssign.jpg

複数のオブジェクトを JOIN する

例えば、本体がアルミで、取っ手が木材の「鍋」をつくる場合、全体の形をつくってから塗り分けるのではなく、本体と取っ手を別のオブジェクトとしてモデリングし、マテリアルの設定まで行ってから、2つのオブジェクトを JOIN すれば、結果的には、複数のマテリアルを持ったオブジェクトが完成します。



ShaderNodes

以下、Blender に用意されているシェーダーノードを紹介します。鏡面反射や透明ガラス等に特化したノードが用意されているので、最適なノードを選択するだけで、それらの質感は簡単に設定することができます。