一部武器の色を変更したくならないか(`・ω・´)
今回はレイヤーマテリアルを活用して、
テクスチャのRGB要素を元に色を変更するマテリアルを作ってみます。
下記動画をだいぶ参考にしました。
https://www.youtube.com/watch?v=HJA0Ti6_r7A&t=1648s&pp=ygUSbGF5ZXIgbWF0ZXJpYWwgdWU1
※UE5.7で試している形になります。
※書き間違え等あればコメントください!
各種モデルとテクスチャの準備
今回活用させていただいたモデルについてですが、
下記の無料配布アセットのモデルを活用しています。
※このモデル単体がとても大きいので同じようなことをしたい場合は、
Scaleをめちゃくちゃ小さくすることをおすすめします。
コンテンツブラウザのfabの所からSKSで検索して、
そこからコンテンツブラウザで追加しています。
下記リンクの説明がとても分かりやすいのでこちらも参考にどうぞ。
📰Fabの使い方(ダウンロード方法,ライセンスなど)を解説! Megascansも取得しておこう [UE5入門 #3-21]

それから今回はレイヤーマテリアル用にUVに合わせた画像を、
下記画像を私の方で作成しました。
ダウンロードして今回試していただければと思います。

活用しているモデルと画像は以上です。
それでは実際にマテリアルを作成していきます。
レイヤー関連マテリアルの作成
それでは実際に作成していきます。
その前に上記のRGBのレイヤーテクスチャを、
コンテンツブラウザに配置しておきます。

まずblend用のマテリアルを作成します。
コンテンツブラウザ右クリックして、
マテリアル項目 → レイヤー → マテリアルレイヤーブレンドを選択します。

マテリアルレイヤーブレンドを作成したら、
ダブルクリックしてレイヤーブレンドの編集画面を開きます。
今回は上記のRGBマスク用のテクスチャの色情報を、
「ChannelMaskParameter」でRGBを切り分けています。

あとはBlendMateriaAttributesのalphaに接続して、
レイヤーブレンドのマテリアルの設定は完了になります。

続いて一番下の改装になる想定のレイヤー用のマテリアルを作成します。
コンテンツブラウザ右クリックして、
マテリアル項目 → レイヤー → マテリアルレイヤーを選択します。

活用するテクスチャを追加していきます。
テクスチャはモデル側で用意されているBaseColorのテクスチャと、
メタリックやラフネスなどをまとめたテクスチャを活用します。
※ベーステクスチャは「TextrueObject」をパラメータ化して活用していて、
まとまっている方は「TextureSampleParameter2d」にしています。

あとは「MF_Default_Body」というエンジン側で用意されている、
関数に各種情報をつなげていきます。
BaseColorTexture → BaseColorTexture(T2d)に接続

まとまったテクスチャのR → OcclusionStrength(S)に接続
まとまったテクスチャのG → MetalicFactory(S)に接続
まとまったテクスチャのB → RpoughnessFactory(S)に接続

あとは「MakeMaterialAttribute」を追加して各種ピンを接続して、
「InputMaterialAttributes」に接続して完了になります。

最後に作成するのは先ほどのレイヤーマテリアルブレンドと、
レイヤーマテリアルを活用するためのベースのマテリアルを作成します。
コンテンツブラウザ右クリックして、マテリアルを選択します。

マテリアルを開いたら「Use Material Attributes」をONにします。
これでマテリアル属性に変更します。

変更したらマテリアルの情報を追加していきます。
行っていることは「Material Attribute Layers」から、
Normalの情報にノーマルテクスチャ情報を追加している形です。
これで必要なマテリアルのデータの作成は完了ですが、
ベースのレイヤーマテリアル以外レイヤーを作成します。
マテリアルレイヤーの追加は上記と同様になります。

今回は簡単な色変更のマテリアルを作ります。
MaterialAttributeを作成してベースカラー・メタリック・ラフネスの、
各種パラメータを追加していて色と質感を変更するマテリアルになります。

今回RGBで色を変更しているのが、
先端の木目・マガジン・ボディ部分の3箇所なので、
先ほど作成したもの含めもう2つコピーします。

これで準備は完了なので次に実際にマテリアルの設定を行っていきます。
レイヤーマテリアルの設定と追加
上記で今まで作成したマテリアルレイヤーブレンドや、
マテリアルレイヤーなどを活用するためにマテリアルを右クリックして、
マテリアルインスタンスの作成をします。

選択して作成出来たらマテリアルインスタンスを開き、
マテリアルレイヤーの背景の▶を選択して開き、
レイヤーアセットにベースとなるマテリアルレイヤーを指定します。
※これがベースのレイヤーになりこのマテリアルの上に色が重なります。

それが完了したら⊕ボタンを選択して、
レイヤーアセットとブレンドアセットを選択できる項目が追加されます。
ブレンドアセット → 変更する場所を示す場所の設定
レイヤーアセット → 変更する場所にどのような見た目を適応するかの設定
こんな感じで覚えておけば良いのかなと感じました。
実際にパラメータを設定していきましょう!
レイヤーアセットに上記で作成したレイヤーマテリアルを指定します。
指定するとマテリアルすべて黒くなりますが正しいので大丈夫です。
続いてブレンドアセットも上記で作成したレイヤーブレンドを指定します。
あとはレイヤーアセットの「VECTOR PARAMETER VALUES」である、
BaseColor項目を変更することで、
ブレンドアセットのMaskTextureの赤色の部分の色が変化するかと思います。

これでマテリアルレイヤーを活用した武器の色分けマテリアルの完成です!
他のレイヤーを追加する方法も説明しておきます。
再度⊕ボタンを押してレイヤーアセット・ブレンドアセットの項目追加、
ブレンドアセット「VECTOR PARAMETER VALUES」項目をBlueに変更します。
そして再度レイヤーアセットのBaseColorを変更します。

以上でマテリアルレイヤーの説明は以上になります。
もう一個マテリアルレイヤーを追加して色などを変更した結果の、
マテリアルを設定した武器と通常の見た目が下記画像になります。
※上が変更後、下がデフォルトになります。

動画でのマテリアルレイヤーの設定も載せておきます。
分かりにくい部分などありましたら動画にてコメントください。
最後に
いかがでしたでしょうか?
今回マテリアルのブレンド方法からレイヤーマテリアルの、
作成までざっくり行ってみました。
今回もだいぶ長い記事でしたが何かの助けになれば幸いです。