2022-08-15(更新)

【Geometry Nodes】ジオメトリノードのマテリアル系ノード全種【Blender】

ジオメトリノードでマテリアルを設定するノードをすべて紹介する。

Article Image
使用ソフトウェアバージョン備考
Blender3.2

はじめに

ジオメトリノードのメニューからマテリアルに分類してあるノードをすべて紹介する。

マテリアルカテゴリ

理解しやすい順番で解説するので上から順に読んでもらえればと思う。

加えてジオメトリノードからマテリアルパラメタを変更する方法も一番下に掲載する。

事前準備

マテリアルは赤、青、黄の3種類を予め作っておく。

マテリアル3種を確認

Set Materialノード

日本語:マテリアル設定

最も基本のノード。

Set Material外観

マテリアルをセットする

ノード一番下にマテリアルをセットして繋ぐことでジオメトリノードにマテリアルを設定する。

赤をセット

上の例では赤をセットしたので

赤いBOX

赤のマテリアルが適用された。

Selection

日本語:選択

こちらのソケットを使うことで、ジオメトリの一部分だけにマテリアルを適用することができる。

ノード例

上はZ座標が0より大きくなっている箇所だけに赤を適用する例

上だけ赤に

Selectionの理解が必要なので次の記事も参照

【Geometry Nodes】Selection(選択)って何【Blender】 | 謎の技術研究部

Switchを使って切り替える

日本語:スイッチ

MaterialにSwitchを繋いだノード

MaterialのソケットにはSwitchノードを繋いで複数のマテリアルを切り替える事ができる。

しかし、このソケットはフィールドではないため上のSelectionのように部分的に塗り分ける用途では使えない。

どちらか片方のマテリアルをジオメトリ全体に適用する場合に限定されるので注意。

フィールド(ひし形ソケット)の概念は次の記事で解説。

【Geometry Nodes】フィールドって何?PositionやIndexの使い方【Blender】 | 謎の技術研究部

Set Material Indexノード

日本語:マテリアルインデックス設定

Set Material Indexノード外観

設定されているマテリアルを切り替えるノード。

複数のマテリアルを繋ぐ

このノードは複数のマテリアルを数珠つなぎに設定し、その後ろに配置する。

数珠つなぎのマテリアル

Material Indexを切り替える

上の状態でMaterial Indexを切り替えるとマテリアルが変化する。

少しわかりにくいので動画で解説。右下に注目。

このように繋いだ順番でIndexが設定されるので、このノードで切り替えることができる。

マテリアルスロットを直接指定する方法

ここまでははジオメトリノードだけでマテリアルをセットする方法。

マテリアルタブのマテリアルスロットに直接自分でマテリアルをセットしておけば上のように数珠つなぎにしなくてもMaterial Indexを切り替えるだけでマテリアル設定することができる。

マテリアルスロットを設定

Selection

こちらもSelectionが使用可能。

Set MaterialSelectionと動作が全く同じものであるが、セレクトされてない箇所のマテリアルが残るので混乱しないように注意。

上だけ青にしたつもり

上だけ青にする例だが、この場合最後に適用されている黄色が残る。

黄色が残っている

Material Indexノード

日本語:マテリアルインデックス

Material Indexという赤ノードがあり、こちらを使うと「現在設定されているマテリアルの番号」が取れる。

したがって番号を演算/比較する場合に使用できるが、あまり多用するノードでもないと思うので参考程度に。

マテリアル番号-1

結果は青になる

Replace Materialノード

日本語:マテリアル置換

Replace Materialノード外観

こちらはOldに設定したマテリアルに対応するマテリアルをNewのマテリアルで塗り替えるノード。

したがって上のノード例では黄色になっている箇所が青になるので

青になった

全体が青になる。

あくまで上書き

上の例の場合は「黄」を「青」に置換している。

つまり、そもそも何もマテリアルが貼られていないジオメトリにこのノードを使用しても変化がないので注意。

Material Selectionノード

日本語:マテリアルで選択

特定のマテリアルが塗ってある箇所だけを選択するノード。

例えば次のように三種類のマテリアルが塗り分けてあるとして

塗り分けのノード例

3色になっている

赤い部分だけExtrude Meshする、といったことが可能になる。

Extrude Meshノード

赤だけ押し出された

様々な利用法

このノードは上のようにジオメトリノード内でマテリアルを塗り分けた場合だけでなくモデリングの時点で塗られているマテリアルからも選択を生成することができる。

特定の箇所を明示的に選択する一つのオプションになる。

残念ながらいい例が思いつかないが、様々な活用法がありそうだ。

他にもウェイトペイントや頂点グループを使うという別の方法もある。

マテリアルにデータを送る

上のノード郡ではマテリアルをジオメトリに貼り付けることはできるが、細かいパラメタ調整ができない。

マテリアルノードに数値を送って色などを変化させる場合は次の手順で行う。

Group Outputに出力したい数値を繋ぐ

アウトプット

データ形式や名前変更などはNキーを押すとサイドにタブがでるので

詳細設定

こちらで設定

GeometryNodesのモディファイア設定でOutput Attributesに名前を付ける

ジオメトリノードのモディファイア側Output Attributesにデータが表示されている。

名前を付ける

ここで改めて名前を付けないと正しくマテリアル側に送れないので注意。

ここではValueでアウトプットしてるデータをfacとしてマテリアルに出力する。

名前は好きなもので良いのでfacでなくても良い。アルファベットが好ましい。

Attributeノードを使用してデータを受け取る

マテリアル側のAttributeノード

マテリアル側でAttributeノードを追加して上で命名した変数名で受け取る(ここではfac)

今回は型がFloatなのでFacのソケットで良いが、VectorならVectorソケットを使用する。

アトリビュートやデータのアウトプットに関しては次でも解説しているのでそちらを参照してほしい。

【Geometry Nodes】アトリビュートの概念とGroup Output(グループ出力)ノード【Blender】 | 謎の技術研究部

実行結果

上の例を実行すると次のようになる。

ジオメトリノードから出力された値を使って、マテリアル内部の値を変化することができた。

以上

マテリアルに関するノードはそれほど多くないため、ひとまとめのページにした。

マテリアルのコントロールは見栄えの良い作品にしようと思ったときには避けては通れない知識だ。

ぜひとも使っていただければと思う。



この記事をシェア


謎の技術研究部 (謎技研)