Blenderのシェーダーエディタ(Shader Editor)

概要

Blenderでテクスチャマッピングを例として、シェーダーエディタを用いてシェーダーツリーを編集し、レンダリングする手順を説明する。シェーダーエディタの基本操作、テクスチャ座標の使用、粗さの設定、バンプマップの設定について、具体的な操作手順を示す。

目次

  1. 前準備
  2. Blenderのシェーダーツリー

関連する外部ページ

サイト内の関連情報

前準備

Blenderは,3次元コンピュータグラフィックス・アニメーションソフトウェアである.3次元モデルの編集,レンダリング,光源やカメラ等の設定による3次元コンピュータグラフィックス・アニメーション作成機能がある.

メニューの日本語化を行っておくと使いやすい.「編集(Edit)→プリファレンス(Preferences)→インターフェイス(Interface)→翻訳(Translation)」で設定できる.

Blenderのシェーダーツリー

マテリアルプレビューモード、HDRI環境の設定

マテリアル(3Dオブジェクトの表面特性を定義する設定群)を3Dビューポートで確認するために、3Dビューポートをマテリアルプレビューモード(マテリアル調整のための表示モード)に変更する。あわせて、HDRI環境(3Dビューポートを照らすHDRI画像による照明)の設定も行う。

  1. まず、マテリアルプレビューモードに切り替える。

    3Dビューポート右上に並ぶビューポートシェーディングのアイコンのうち、左から3番目の「マテリアルプレビュー」をクリックする(ショートカットキー:Zでパイメニューを開く、Shift + Zで直前の表示モードと切り替え)。

    ビューポートシェーディングでマテリアルプレビューを選択

    マテリアルプレビューは、EEVEEとHDRI環境を用いて3Dビューポートを描画する表示モードであり、立体のマテリアルの調整やテクスチャのペイントに適している。

  2. 次に、HDRI環境の設定を行う。ビューポートシェーディングのアイコンの右にある下向き矢印のアイコンをクリックするとポップオーバーが開く。「シーンのワールド」のチェックを外すと、Blenderに内蔵されているHDRI環境の一覧から選択できるようになる。ここでは、一番左のcity.exrを選ぶ
    HDRI環境の一覧からcity.exrを選択

シェーダーエディタを使ってみる

シェーダーエディタは、マテリアルに関する設定をシェーダーツリー(マテリアルの外観や特性を定義するノードの接続関係図)の編集で行うことができるエディタである。マテリアルの詳細設定を行う際、プロパティのマテリアル画面と比較して視認性が高く、設定を行うことができる。

シェーダーエディタの例1
シェーダーエディタの例2
  1. Blenderのワークスペースを「シェーディング(Shading)」に変更する。
    ワークスペースの変更メニュー
  2. Shading」のワークスペースに変わるので確認する。
    Shadingワークスペース

    下側の画面は、シェーダーエディタ(Shader Editor)になっている。この中には、シェーダーツリー(Shader Tree)が表示されている。シェーダーツリーでは、互いにノード(特定の機能や処理を持ったシェーダーの構成要素)が接続されている。現在は、「プリンシプルBSDF」(物理ベースのシェーディングモデルを実装した標準的なマテリアルノード)と「マテリアル出力」の2つのノードが接続されている。

    シェーダーツリーの初期状態
  3. シェーダーエディタを使用して、シェーダーツリーの編集が可能である。ノードの移動は、マウス操作で行うことができる。
    ノードの移動

    ノードの削除は、削除したいノードの右クリックメニュー(ノードコンテキストメニュー)で実行できる。

    ノードの削除メニュー

    ノードの追加は、メニューから行うことができる。

    ノードの追加メニュー

    ノード間の接続は、マウス操作で編集できる。

    ノード間の接続

演習

シェーダーツリーを、次の3つのノードを使用するように設定する。

  1. 「レンガテクスチャ」(レンガのパターンを生成するテクスチャノード)
  2. 「プリンシプルBSDF」
  3. 「マテリアル出力」

次のように操作する。

  1. 「レンガテクスチャ」を追加する。「レンガテクスチャ」は、メニューの「追加」の「テクスチャ」の下のメニューから追加できる。
    レンガテクスチャの追加メニュー
  2. 「レンガテクスチャ」を追加したら、下の図のように接続する。「レンガテクスチャ」の「カラー」を、「プリンシプルBSDF」の「ベースカラー」に接続する。
    レンガテクスチャの接続
  3. 3Dビューポートで、確認する。
    レンガテクスチャ適用後の3Dビューポート
  4. 「レンガテクスチャ」の「色1」、「色2」、「モルタル」の色を調整する。色は自由でよいが、「モルタル」は、「色1」と「色2」よりも暗い色になるように設定する。
    レンガテクスチャの色調整

    3Dビューポートの表示を確認しながら、色の調整を行う。

    色調整後の3Dビューポート

この時点でのBlenderファイル: 01a.blend

テクスチャ座標のノードを使用

テクスチャ座標」(3Dオブジェクト上でテクスチャが配置される位置を指定する座標系)のノードを作成し、その出力を、テクスチャのノードの「ベクトル」(方向と大きさを持つ数学的要素)につなぐ。このとき、次の2つの違いを確認する。

UV座標を使用した例
オブジェクト座標を使用した例
  1. テクスチャ座標」を追加する。「テクスチャ座標」は、メニューの「追加」の「入力」の下のメニューから追加できる。
    テクスチャ座標の追加メニュー
  2. テクスチャ座標」を追加したら、下の図のように接続する。「テクスチャ座標」の「UV」を、「レンガテクスチャ」の「ベクトル」に接続する。これは、「テクスチャ座標」の「UV」を使用するための設定である。
    UV座標の接続
  3. 3Dビューポートで、確認する。
    UV座標適用後の3Dビューポート
  4. 今度は、下の図のように接続する。「テクスチャ座標」の「オブジェクト」を、「レンガテクスチャ」の「ベクトル」に接続する。これは、「テクスチャ座標」の「オブジェクト」を使用するための設定である。
    オブジェクト座標の接続
  5. 3Dビューポートで、確認する。
    オブジェクト座標適用後の3Dビューポート

この時点でのBlenderファイル: 01b.blend

テクスチャを用いた粗さ(Roughness)の設定

テクスチャを用いて、粗さ(表面の微細な凹凸による光の散乱度合い)を設定する。ここでは、レンガは粗さが低く(なめらか)、モルタルは粗さが高く(ざらざらした質感)なるように設定する。

粗さ設定後の3Dビューポート
  1. カラーランプ」(特定の入力値に応じた色の変換や分布を制御するコンバーター)を追加する。「カラーランプ」は、メニューの「追加」の「コンバーター(Converter)」の下のメニューから追加できる。
    カラーランプの追加メニュー
  2. カラーランプ」を追加したら、下の図のように接続する。「レンガテクスチャ」の「カラー」と、「カラーランプ」の「係数(Fac)」をつなぐ。「カラーランプ」の「カラー(Color)」と、「プリンシプルBSDF」の「ベースカラー」をつなぐ。
    カラーランプの接続
  3. 3Dビューポートで、確認する。
    カラーランプ適用後の3Dビューポート
  4. カラーランプの反転を行う。

    カラーランプ(ColorRamp)では、画素の色や明るさを変更することができる。

    カラーランプ」のノード内のメニューで、「カラーランプを反転」を選択する。

    カラーランプの反転メニュー
  5. カラーランプにより、反転するので確認する。
    反転後の3Dビューポート
  6. ゲージを調整し、モルタルは白、レンガは黒になるように調整する。
    カラーランプのゲージ調整
    ゲージ調整後の3Dビューポート
  7. 「カラーランプ」のカラーを、「ベースカラー」から「粗さ」につなぎなおす。
    粗さへの接続
  8. 回転させて、モルタルの部分は粗さが高く、レンガの部分は粗さが低いことを確認する。
    粗さの効果確認

演習

次のように「カラー」と「ベースカラー」を接続する。ほかは変更しない。結果を確認する。

カラーとベースカラーの接続
接続後の結果

Blenderのシェーダーツリーを用いた、バンプマップの設定

バンプマップ(Bump Map)(表面の凹凸を実際の形状変更なしに表現するテクスチャ技術)を設定する。

バンプマップ設定後の3Dビューポート
  1. 次の手順で、「レンガテクスチャ」を「ノイズテクスチャ」(ランダムなパターンを生成するテクスチャノード)に変更する。
    1. カラーランプの調整を元に戻す。左端が白、右端が黒になるようにする。
      カラーランプの初期状態への復帰
    2. ノイズテクスチャ」を追加する。「ノイズテクスチャ」は、メニューの「追加」の「テクスチャ」の下のメニューから追加できる。
      ノイズテクスチャの追加メニュー
    3. 下の図のように接続する。このとき、「レンガテクスチャ」は不要なので削除する。
      ノイズテクスチャの接続
    4. 表示を確認する。
      ノイズテクスチャ適用後の3Dビューポート
  2. バンプ」(表面の凹凸効果を生成するノード)を追加する。「バンプ」は、「追加」から「ベクトル」の下にある。
    バンプノードの追加メニュー
  3. カラーランプ」を追加する。「カラーランプ」は、メニューの「追加」の「コンバーター(Converter)」の下のメニューから追加できる。
    カラーランプの追加メニュー
  4. 下の図のように接続する。「バンプ」の「ノーマル」(表面の法線方向を示すベクトルであり、光の反射計算などに使用)は、「プリンシプルBSDF」の「ノーマル」につなぐ。
    バンプノードの接続
  5. これで、バンプの効果を確認する。
    バンプ効果の確認
  6. バンプの「距離」(バンプによる凹凸の強さ)を変更してみる。
    バンプ距離の変更
  7. バンプの距離が変化したことを確認する。
    バンプ距離変更後の3Dビューポート
  8. 立体を回転して、バンプの効果を確認する。
    回転後のバンプ効果
  9. HDRI環境を別のものに変更して、バンプの効果を確認する。ビューポートシェーディングのアイコンの右にある下向き矢印のアイコンから開くポップオーバーで、別のHDRI環境を選択できる。

演習

ベースカラーは、ノイズテクスチャを利用するが、虹のような色ではなく、単色(輝度が変わる)に変更する。

  1. HSV(色相/彩度/明度)」(色の調整を行うノード)を追加する。これは、「追加」から「カラー」の「色相/彩度/明度」から追加する。
  2. 次のようにつなぎ、「カラー」は自由に設定する。
    HSVノードの接続
    HSVノード適用後の3Dビューポート

この時点でのBlenderファイル: 01c.blend