こんにちは、トナカイです。
今回は、Blenderのノードの使い方について解説します。
ノードを使うことで色々な質感を表現できるようになります。この記事ではノードの基本的な使い方と、使い方の例としてグラデーションをかけたリンゴを作ります。
※Blender4.0で動作確認をしました。
ノードとは
ノードとは、オブジェクトの色や質感を設定するボックスです。
ボックスの1つ1つがノードです。グラデーションを設定するノードやテクスチャの向きを設定するノードなど、様々な種類のノードがあります。
ノードを組み合わせて使うことで、複雑な質感が表現できます。
ノードは、シェーダーエディターから操作することができます。
「色を設定するだけなら、わざわざシェーダーエディターを使わなくても、マテリアルプロパティで設定すればいいのでは?」と思うかもしれません(トナカイは思いました)。
単純な着色であればマテリアルプロパティのみで対応できますが、グラデーションや髪の毛のハイライトなど、複雑な設定をする場合にはシェーダーエディターを使うほうが想定通りの仕上がりになります。
シェーダーエディターの表示方法
シェーダーエディターは、画面左上にある「エディタータイプ」から表示できます。
シェーダーエディターを開くと、以下の画面が表示されます。
ノードを編集する際は、この画面から操作します。
ノードの基本的な使い方
デフォルトで表示されている「プリンシプルBSDF」を例に、ノードの使い方を解説します。
色を変えてみましょう。
プリンシパルBSDFにある「ベースカラー」の横の四角をクリックすると、カラーサークルが表示され、色を調整することができます。
※マテリアルの出力の対応を見やすくするために、画面を分割しました。
プリンシプルBDSPのベースカラーと、マテリアルプロパティのベースカラーが対応していることが分かります。
- シェーダーエディターを使う時には、「ノードを使用」にチェックを入れておきましょう。チェックがないと、ノードの設定が反映されません。
- 3Dビューポートの「シェーディング」の設定は「マテリアルプレビュー」にしておくと、実際の質感に近い状態で表示されます。
ノードの追加方法と繋げ方
ノードは、シェーダーエディター上でShift+Aを押すと追加できます。
ノード同士を繋げる時には、ノードの横についている点を長押しし、別のノードの端子までドラッグします。
このようにノードを繋げることで、マテリアルを作りこむことができます。
ノードの具体的な使い方:グラデーションを例に解説
ここからはノードの具体的な使い方として、グラデーションの作り方を解説します。
立方体やUV球にグラデーションをかけるだけでは少し寂しいので、リンゴを作ることにしました。
果実部分はUV球から作りました。枝はカーブのベベルでできています。
※カーブの使い方は、以下の記事をご覧ください。
果実部分にグラデーションをかけています。
葉っぱと枝の部分はシェーダーエディターを使わず、マテリアルプロパティで色を付けるのみにしています。
作ったノード
ノードの組み合わせは以下の通りです。まずは実際に作ってみたいという方は、こちらを参考にノードを設定してみてください。
各ノードの意味
テクスチャ座標
調べてみましたが、よく分かりませんでした……。
XYZ分離
グラデーションの方向を設定するために追加しました。
画像ではZの端子からデータを出力しています。
もしXの端子から線を繋げればX軸方向にグラデーションがかかりますし、Yの端子から出力すればY軸方向にグラデーションがかかります。
グラデーションの方向は「マッピング」というノードを使うことでも設定できます。
ただ、立方体メッシュではうまくいくのですが、リンゴのような球体メッシュではグラデーションの向きを変えられませんでした。
そのため、今回はマッピングではなくXYZ分離を使って上下方向にグラデーションがかかるようにしています。
カラーランプ
色を調整するためのノードです。
中央にあるバー(カラーストップ)を左右に動かすことで、グラデーションのかかり具合を変更できます。
一番下の色がついたボックスを選択すると、カラーパレットが出てきて色が変更できます。
マテリアル出力
マテリアルを出力するためのノードです。これがないと、真っ黒なマテリアルが表示されてしまいます。
シェーダーエディターを使う時の注意:fbxファイルをエクスポートするだけではUnityで表示されない
Blenderの利用者の中には、「作成したモデルをUnityで表示させたい」という方もいるのではと思います。
シェーダーエディターを使ってマテリアルを表示させる時は、fbxファイルをエクスポートするだけではUnityで表示できないという点に注意が必要です。
例えば、この記事ではシェーダーエディターでグラデーションを作ってみました。しかし、これをfbxファイルに変換してUnityにインポートすると、下の画像のように表示されてしまいます。
茎と葉っぱの部分には色がついていますが、果肉部分に設定したグラデーションは反映されず、真っ白になってしまいました。
マテリアルプロパティで設定した色は、fbxファイルをUnityにインポートするだけでもオブジェクトに反映されます。
しかし、シェーダーエディターを使って作成したマテリアルは、そのままではUnityに表示させることができません。
シェーダーエディターで設定したマテリアルは、ベイクという作業で作成した画像ファイルをUnityにインポートすることで表示できるようになります。
ベイクの詳しいやり方は、以下の記事を参考にしてください。この記事で作成したリンゴをもとに、ベイクの手順を解説しています。
まとめ
ノードを使うことでマテリアルの詳細な調整が可能になります。
マテリアルプロパティだけでは表現できない質感がある場合には、シェーダーエディターを使うことも検討してみてください。