|
執筆バージョン: Unreal Engine 5.6
|
こんにちは。
皆さんは「短く折りたたまれたメインマテリアルノード」を見たことがありますか?
今回はSetMaterialAttributesノードについて見ていきたいと思います!
SetMaterialAttributesとは
SetMaterialAttributesを使うと、マテリアルの全要素を一つのノードで管理できるようになります。
これを使用すると、マテリアルから必要な要素だけを取り出してブレンドができるようになります。

使うと何がいいのか?
最初は「普通にノードを繋げていけばいいのでは?」と思っていました……。
しかし、MaterialFunctionと一緒に使うことで、他のマテリアルで再利用でき、保守しやすくなります。
例:鉄のマテリアルに「塗装の剥がれ」と「溝の汚れ」を追加する場合
▼MaterialFunctionを使用しない場合

▼SetMaterialAttributesを含むMaterialFunctionを使用する場合

マテリアルの基本的な要素はそのままで、後から「エッジの塗装剥がれ」「溝の汚れ」といった機能を追加できるので、
管理が圧倒的にしやすくなりました!
作成してみる
ここでは、新たに「水垢」の要素を追加してみましょう。
1.ベースのMateril作成
①コンテンツブラウザから新規Materialを作成します。
・Detailsの☑Use Material Attributeをするとメインマテリアルノードが折りたたまれます。

②次に、SetMaterialAttributes ノードを追加し、必要な属性を追加して繋ぎます。
・Detailsの⊕ボタンを押してインプットを追加します。プルダウンから属性を選びます。

2.MaterialFunctionを作成する
①コンテンツブラウザからMaterialFunctionを作成します。
・FunctionInputを追加して型をMaterialAttributes型に設定します。
・その後に、GetMaterialAttributesで値を変更する属性をプルダウンから選びます。

②Output ResultノードにSetMaterialAttributesを繋いで変更する属性を選んで結果を繋げます。
今回はMetallicとBaseColorを追加して選びます。変更しないものはMaterialAttributesを通して素通りするように設定します。

3.Material Functionを繋げる
作成したFunctionを繋げてみます。
・Material Function Callを呼び出して先ほど作成したMaterial Functionを選びます。


これでマテリアルに水垢の要素が追加されました!

おまけ:他マテリアルへの流用
他のマテリアルにも簡単に流用できます。

今回のように要素を分けて管理しておくことで、
ゲーム全体の中での質感や汚れの方向性を検討することができるようになります。