#author("2023-05-10T12:16:55+09:00;2022-07-19T10:45:50+09:00","default:inoue.ko","inoue.ko") *第4回 マテリアル [[3DCG演習/2023]]|''2022.07.19 -'' ~ ***解説動画 //#youtube(egQqy2cTqO8) //-録画済み動画です。再生して視聴してください。 //-以下名簿が表示されます。''既読確認(出欠確認)''をお願いします。 &fontawesome(far fa-hand-point-right); __[[既読確認>]]__ ~ ***CONTENTS #contents2_1 ~ ~ **はじめに マテリアルの設定について体験する前に、体験用のシーンを作成します。 -Cubeを変形して、床と壁をつくります。 -床の上に、立方体、球体、その他のオブジェクトをいくつか配置します。 -アウトライナーのリストを使って、それぞれの名称を確認します。 -カメラとライトを調整して、無地の状態でレンダリングしてみます。 ~ ~ **マテリアル オブジェクトの材質(色・質感)のことをマテリアルと言います。Blenderでは、このマテリアル設定をシェーダーエディタのメインウインドウにあるノードエディタを使って設定します。従来型のプロパティーエディタでも設定可能ですが、レンダリングエンジンの Cycles と Eevee はノードツリーを使用するため、ノードエディターの利用(Use Nodes)がデフォルトになっています。 2DCGでは、ラスター系(Photoshopなど)でもベクター系(Illustrator)でも、ピクセルや図形に設定するのは色(RGB値)と透明度(α値)のみですが、3DCGの場合は、基本的な色のみならず、光の拡散、鏡面反射、透過・屈折、発光といった、シェーディングに関する細かい設定が必要になります。 マテリアルに関するデータ自体が大きなデータセットになるため、赤いプラスチック・銅・ガラスなど、マテリアルには個別に名前を付けて、オブジェクトとの紐付けを簡単にできるように管理します。例えば「ガラス」と名付けられたマテリアルデータは、シーンに登場する複数のガラス素材のオブジェクトにリンクされて利用されるのが一般的です。 ~ ***マテリアルの設定方法 マテリアルの設定を行う場合は、Shadingワークスペースを使うのが効率的です。TopBar の ワークスペース選択から ''Shading'' を選択すると シェーダーエディタを含むワークスペースが表示されます。 ~ ***マテリアルの新規作成 新規のオブジェクトは、オブジェクトデータ(頂点座標等)を持っていますが、マテリアル情報は持っていません。オブジェクトに色を付けるには、マテリアルデータブロックをリンクする必要があります。この初期操作は、以下のいずれかの方法で実現できます(後者を推奨)。 PropertyEditor > Material Property > New(または既存のものを選択) ShaderEditor > Header > Material > New(または既存のものを選択) #image(Blender/Material.jpg,right,30%) 右図は、オブジェクト(Cube)にマテリアル(Material)が設定されている場合のデータの階層構造です。これは、Outliner の画面で個々のオブジェクトの項目をプルダウンして確認することができます。 ~ #image(Blender/ShaderEditor.jpg,right,30%) ***NodeEditor を使う シェーダーエディタのメインウインドウは NodeEditor になっています。 右図は、オブジェクトに新規のマテリアルを設定(New)した直後の画面で、シェーダーノードのひとつである Principled BSDF と、アウトプトノードのひとつである、Material Output の2つのノードが表示されています。 個々のノードには、ソケットと呼ばれる連結部分があって、マウスドラッグで同じ色同士のソケットを接続します。 ノードは大きく3種類あって、ソケットは以下のように配置されています。 -入力系ノード:右側に出力ソケット -編集系ノード:左側に入力ソケット+右側に出力ソケット -出力系ノード:左側に入力ソケット ~ ***Shading Parameter Blenderには様々なシェーダーが用意されていますが、デフォルトは Principled BSDF(Bidirectional Scattering Distribution Function:双方向散乱分布関数)と呼ばれる PBR(Physically-Based Rendering:物理ベースレンダリング)シェーダーです。これに用意された各種のパラメータを設定することで、様々なオブジェクトの色や質感を設定することができます。 -BaseColor:マテリアルの色 -Metalic:金属(金属であれば1、そうでなければ0) -Specular:鏡面反射 -Sheen:布などの柔らかなもののエッジ付近の反射量 -Roughness:粗さ -IOR(Index of Refraction Values):屈折率 -Transmission:透過(1.0 で透明物体) -Emission:発光 -Alpha:α値(0で透明、1.0 で不透明) //-PBR(Physically-Based Rendering):物理ベースレンダリング //-BSDF(Bidirectional Scattering Distribution Function):双方向散乱分布関数 //BSDF = BRDF(反射成分) + BTDF(透過成分) //--Reflection:反射 //--Transmission:透過 //--Refraction:屈折 ~ ~ **複数マテリアルの定義 マテリアルの設定は、ひとつのオブジェクトにひとつのマテリアルをリンクするのが簡単ですが、ひとつのオブジェクトに複数のマテリアルを持たせることが必要になる場合もあります。以下の2つの方法があります。 ~ ***EditMode で面ごとに定義 #image(Blender/MaterialAssign.jpg,right,30%) -対象オブジェクトを選択した状態で、プロパティエディタの Material Property パネルを開きます。 -マテリアルスロットで [ + ] をクリックして、使用するすべてのマテリアルを登録します。 -EditMode に入って、マテリアルを与えたい面を選択した後、マテリアルスロットに登録されたマテリアルを選択します。 - Assign を押すと、選択された面にそのマテリアルが適用されます。 ~ ***複数のオブジェクトを JOIN する 例えば、本体がアルミで、取っ手が木材の「鍋」をつくる場合、全体の形をつくってから塗り分けるのではなく、本体と取っ手を別のオブジェクトとしてモデリングし、マテリアルの設定まで行ってから、2つのオブジェクトを JOIN すれば、結果的には、複数のマテリアルを持ったオブジェクトが完成します。 ~ ~ **参考:ShaderNodes 以下、Blender に用意されているシェーダーノードを紹介します。鏡面反射や透明ガラス等に特化したノードが用意されているので、最適なノードを選択するだけで、それらの質感は簡単に設定することができます。 -''Principled BSDF'':Disney "principled" BRDF に基づいたシェーダ(汎用) -Diffuze BSDF:拡散反射物体に特化したシェーダー -Specular BSDF:鏡面反射物体に特化したシェーダー(Eevee Only) -Glass BSDF:ガラス物体に特化したシェーダー -Glossy BSDF:光沢のある物体に特化したシェーダー -Refraction BSDF:(透明)屈折物体に特化したシェーダー -Translucent BSDF :半透明物体に特化したシェーダー -Transparent BSDF :透過物体に特化したシェーダー -Subsurface Scattering:表面下散乱物体に特化したシェーダー -Hair BSDF:毛髪に特化したシェーダー -Toon BSDF:手描きアニメ風シェーダー(セルシェーディング) -Velvet BSDF:布のようなマテリアルに特化したシェーダー -Volume Absorption:光の吸収を表現するボリュームシェーダー -Volume Scatter:光の散乱を表現するボリュームシェーダー -Emission:光の放出を表現するシェーダー -Background:環境光を表現するシェーダー ~ ~ ~