使用ソフトウェア | バージョン | 備考 |
---|---|---|
Blender | 3.2 |
ジオメトリノードのメニューからマテリアルに分類してあるノードをすべて紹介する。
理解しやすい順番で解説するので上から順に読んでもらえればと思う。
加えてジオメトリノードからマテリアルパラメタを変更する方法も一番下に掲載する。
マテリアルは赤、青、黄の3種類を予め作っておく。
日本語:マテリアル設定
最も基本のノード。
ノード一番下にマテリアルをセットして繋ぐことでジオメトリノードにマテリアルを設定する。
上の例では赤をセットしたので
赤のマテリアルが適用された。
日本語:選択
こちらのソケットを使うことで、ジオメトリの一部分だけにマテリアルを適用することができる。
上はZ座標が0より大きくなっている箇所だけに赤を適用する例
Selection
の理解が必要なので次の記事も参照
日本語:スイッチ
Material
のソケットにはSwitch
ノードを繋いで複数のマテリアルを切り替える事ができる。
しかし、このソケットはフィールドではないため上のSelection
のように部分的に塗り分ける用途では使えない。
どちらか片方のマテリアルをジオメトリ全体に適用する場合に限定されるので注意。
フィールド(ひし形ソケット)の概念は次の記事で解説。
【Geometry Nodes】フィールドって何?PositionやIndexの使い方【Blender】 | 謎の技術研究部
日本語:マテリアルインデックス設定
設定されているマテリアルを切り替えるノード。
このノードは複数のマテリアルを数珠つなぎに設定し、その後ろに配置する。
上の状態でMaterial Index
を切り替えるとマテリアルが変化する。
少しわかりにくいので動画で解説。右下に注目。
このように繋いだ順番でIndex
が設定されるので、このノードで切り替えることができる。
ここまでははジオメトリノードだけでマテリアルをセットする方法。
マテリアルタブのマテリアルスロットに直接自分でマテリアルをセットしておけば上のように数珠つなぎにしなくてもMaterial Index
を切り替えるだけでマテリアル設定することができる。
こちらもSelection
が使用可能。
Set Material
のSelection
と動作が全く同じものであるが、セレクトされてない箇所のマテリアルが残るので混乱しないように注意。
上だけ青にする例だが、この場合最後に適用されている黄色が残る。
日本語:マテリアルインデックス
Material Index
という赤ノードがあり、こちらを使うと「現在設定されているマテリアルの番号」が取れる。
したがって番号を演算/比較する場合に使用できるが、あまり多用するノードでもないと思うので参考程度に。
日本語:マテリアル置換
こちらはOld
に設定したマテリアルに対応するマテリアルをNew
のマテリアルで塗り替えるノード。
したがって上のノード例では黄色になっている箇所が青になるので
全体が青になる。
上の例の場合は「黄」を「青」に置換している。
つまり、そもそも何もマテリアルが貼られていないジオメトリにこのノードを使用しても変化がないので注意。
日本語:マテリアルで選択
特定のマテリアルが塗ってある箇所だけを選択するノード。
例えば次のように三種類のマテリアルが塗り分けてあるとして
赤い部分だけExtrude Mesh
する、といったことが可能になる。
このノードは上のようにジオメトリノード内でマテリアルを塗り分けた場合だけでなくモデリングの時点で塗られているマテリアルからも選択を生成することができる。
特定の箇所を明示的に選択する一つのオプションになる。
残念ながらいい例が思いつかないが、様々な活用法がありそうだ。
他にもウェイトペイントや頂点グループを使うという別の方法もある。
上のノード郡ではマテリアルをジオメトリに貼り付けることはできるが、細かいパラメタ調整ができない。
マテリアルノードに数値を送って色などを変化させる場合は次の手順で行う。
データ形式や名前変更などはNキー
を押すとサイドにタブがでるので
こちらで設定
ジオメトリノードのモディファイア側Output Attributes
にデータが表示されている。
ここで改めて名前を付けないと正しくマテリアル側に送れないので注意。
ここではValue
でアウトプットしてるデータをfac
としてマテリアルに出力する。
名前は好きなもので良いのでfac
でなくても良い。アルファベットが好ましい。
マテリアル側でAttribute
ノードを追加して上で命名した変数名で受け取る(ここではfac
)
今回は型がFloat
なのでFac
のソケットで良いが、Vector
ならVector
ソケットを使用する。
アトリビュートやデータのアウトプットに関しては次でも解説しているのでそちらを参照してほしい。
【Geometry Nodes】アトリビュートの概念とGroup Output(グループ出力)ノード【Blender】 | 謎の技術研究部
上の例を実行すると次のようになる。
ジオメトリノードから出力された値を使って、マテリアル内部の値を変化することができた。
マテリアルに関するノードはそれほど多くないため、ひとまとめのページにした。
マテリアルのコントロールは見栄えの良い作品にしようと思ったときには避けては通れない知識だ。
ぜひとも使っていただければと思う。