89.マテリアルインスタンスの作成
ここからは、いつでも簡単にマテリアルのパラメーターを変更できる便利なマテリアルインスタンスを作成していきます。
🌟事前準備
ここからマテリアルの変化を見るために、SM_MatPreviewMesh_01というスタティックメッシュを使用していきます。
エンジンコンテンツなので、エンジンのコンテンツを表示にチェックを入れて、検索しましょう。
https://scrapbox.io/files/665746af75d21f001c16a8fb.pnghttps://scrapbox.io/files/665746b2659e9a001cc73f75.png
M_testみたいな適当な名前でマテリアルを作成し、ダブルクリックでマテリアルウィンドウを開きます。
そして、左上のマテリアルプレビューの右下にあるブロックのマークをプレビューします。
https://scrapbox.io/files/6657478e97e7bf001d03071a.png→https://scrapbox.io/files/665747eff20f8c001da60ef7.png
ボタンを押すと、現在選択中のスタティックメッシュがプレビュー用のオブジェクトとして反映されます。
使用するテクスチャは基本的になんでもいいですが、今回はT_Brick_Cray_BeveledのD,M,Nの三枚を使用します。
https://scrapbox.io/files/665749c4724bd4001d489902.png
まずはDのテクスチャ(ディフューズマップ)をベースカラーにつなげてみましょう。
https://scrapbox.io/files/66574afdf5387c001d2d7ebf.png
適用ボタンを押して、PreviewMeshのマテリアルのエレメント①を作成した『M_test』に変更します。
https://scrapbox.io/files/66574abef5387c001d2d7e2a.png
すると、メッシュの表面がブロック調になりました。
https://scrapbox.io/files/66574ad8da5f4d001c629865.png
続いて、Nのテクスチャ(ノーマルマップ)をNormalにつなげます。
https://scrapbox.io/files/66574bac86d728001c272251.png
ブロックに凹凸が付与されました。
https://scrapbox.io/files/66574bcd7f741e001cffb5f6.png
最後にMのテクスチャ(マスクマップ)を使います。
こちらは色々なテクスチャが格納されている便利なマップです。
Rにはラフネス。Gにはアンビエントオクルージョン、Bにはメタリックが格納されています。
なので、それぞれを正しいノードピンにつないでいきます。
https://scrapbox.io/files/66574c9c30e116001cb772bc.png
これで、ラフネス、メタリック、AOがスタティックメッシュに適用されます。
https://scrapbox.io/files/66574d27d2e199001cbaa5de.png
これで基本テクスチャの準備が完了しました。
🌟タイリングの調整方法
タイリングでテクスチャのサイズを調整することができます。
パレットから、TextureCordinateノードを引っ張ってきます。
U+左クリックでも同じことができます。
https://scrapbox.io/files/66574e9a4eaf19001c7e2522.png
パレットからMultiplyノードを引っ張ってきます。
M+左クリックでも同じことができます。
https://scrapbox.io/files/66575207a66e1e001d16633d.png
TextureCordinateノードをMultiplyのAにつなぎます。
続いて1+左クリックでコンスタント1Vectorノードを作成し、MultiplyのBにつなぎます。
https://scrapbox.io/files/6657528ce366a3001ccaa480.png
MultiplyのピンをD,N,MのテクスチャのUVsのピンにつなぎます。
https://scrapbox.io/files/6657537c7a96e9001dc84525.png
この状態でコンスタント1Vectorノードの値を5に変更してみましょう。
数値を大きくすると、プレビューモデルのテクスチャのサイズが小さくなりました。
https://scrapbox.io/files/665753d2b124f7001dcbbc96.png
逆に0.5のサイズにするとテクスチャサイズが大きくなります。
https://scrapbox.io/files/6657542e4dfd8a001d662902.png
それでは、いったんコンスタント1Vecotrノードの値を1に戻しておきましょう。
https://scrapbox.io/files/665754adb566df001c96c81b.png
🌟マテリアルの色の変更方法
今度はベースカラーの色をいつでも変更できるようにしていきます。
カラーを変えたいのでコンスタンスト3Vectorを3+左クリックで追加します。
さらにM+左クリックでMultiplyノードを追加して、下記の画像の通りにワイヤーをつなぎます。
https://scrapbox.io/files/665755b64e0c57001c0bc9b6.png
すると、メッシュが真っ黒になりました。
https://scrapbox.io/files/665755c6da5f4d001c62cec4.png
これで、Constant3Vectorノードで色を変更することで、ベースカラーの色も乗算で変更できるようになりました。
ひとまず、数値をすべて1にして、デフォルトの色に戻しておきます。
https://scrapbox.io/files/66575642b047760022090583.png
🌟ノーマルマップの調整
次はノーマルマップの凹凸の強さを調整できるようにしていきます。
パレットでFlattenNormalと検索し、FlattenNormalノードを引っ張ってきます。
NormalのピンをNormalMapのRGBにつなぎます。
https://scrapbox.io/files/66575818c375b3001d6fb103.png
さらにConstant1Vectorノードを1+左クリックで作成し、FlattenNormalのFlatnessのピンにつなぎます。
https://scrapbox.io/files/6657589cc96e56001d722a32.png
こちらのConstant1Vectorの値を変えることで、凹凸具合を変更することができます。
ためしに、数値を10にしてみましょう。
https://scrapbox.io/files/66575919e1b683001dbf3309.png
次は、-10にしてみます。
https://scrapbox.io/files/6657592f74c09f001c04bc04.png
このようにプラスの値にすると凹凸でいうと凸になり、マイナスの値にすると凹になります。
逆に0にすると、凹凸がまったくなくなります。
https://scrapbox.io/files/665759900a43de001c18c5ab.png
数値が1だと、デフォルトのノーマルマップの状態になるので、デフォルトのままにしたい場合は1に戻しておきましょう。
これでひとまず必要なノードがそろったので、適用を押して保存しておきましょう。
🌟マテリアルインスタンス化
マテリアルインスタンスを作成する方法は簡単です。
作成したM_Testのマテリアルを右クリックして、マテリアルインスタンスを作成を選択します。
https://scrapbox.io/files/66575a8fa73719001d44040e.png
名前をMI_Brick_Clayとします。
MIとはマテリアルインスタンスの略です。
基本的にマテリアルインスタンスを作成する際は、MIと冒頭につけましょう。
https://scrapbox.io/files/66575ac8710a2b001cf930cc.png
ダブルクリックすると、マテリアルインスタンスウィンドウを開けます。
https://scrapbox.io/files/66575b22e1b683001dbf37a9.png
マテリアルインスタンスは親のマテリアル属性を引き継げます。
引継ぎには、パラメーターという機能を使用します。
なので、必要な項目をパラメーター化していきましょう。
親であるM_Testを開きます。
Tilingのサイズを調整するConstant1Vectorノードを右クリックして、パラメーターに変換をクリックします。
https://scrapbox.io/files/66575b91bb5fbe001c12aa3e.png
ノードの名前をSizeに変更して、適用ボタンを押します。
https://scrapbox.io/files/66575bbe37f68d001c17cbde.png
もう一度、MI_Brick_Clayを見てみましょう。
パラメーターグループにSizeという項目が追加されました。
チェックボックスにチェックをつけることで、数値をいつでもここから変更することができます。
https://scrapbox.io/files/66575c69d7739a001c8d2b9a.png
忘れないうちにMI_Brick_Clayをドラッグ&ドロップでレベル上のプレビューメッシュにアタッチします。
https://scrapbox.io/files/66575cce37f68d001c17ce2b.png
この状態でSizeの数値を変えてみましょう。
レベル上のプレビューメッシュのテクスチャサイズをリアルタイムで変更できるようになりました。
https://scrapbox.io/files/66575d2d2ac6d6001d6b7b16.png
ほかの必要な箇所もパラメーター化していきましょう。
色を変えるためのConstant3Vectorをパラメーター化し、名前をColorとし、適用ボタンを押します。
https://scrapbox.io/files/66575d814e0c57001c0bdcb2.pnghttps://scrapbox.io/files/66575d88ad585d001ce22ba4.png
これで、ベースカラーの色をリアルタイムで変更できるようになりました。
https://scrapbox.io/files/66575ddb55fe02001d5624e2.png
最後にノーマルマップの凹凸を変更するConstant1Vectorをパラメーター化します。
名前をNormalとし、適用ボタンを押します。
https://scrapbox.io/files/66575e2c7a96e9001dc867df.pnghttps://scrapbox.io/files/66575e324e0c57001c0bddc4.png
MI_Brick_Clayを開き、Normalのチェックボックスにチェックをつけて、数値を変更してみましょう。
これで、凹凸具合もリアルタイムで変更できるようになりました。
https://scrapbox.io/files/66575ea2580470001d04c82b.png
試しに、ほかのスタティックメッシュにもマテリアルインスタンスを使用してみます。
アクタを配置でキューブを適当な場所に配置します。
https://scrapbox.io/files/66575f38a25bd5001d70b474.png
MI_Brick_Clayを右クリックして複製(CTRL+D)し、名前をMI_Cubeとします。
https://scrapbox.io/files/66575f72d0f15e00221199dd.png
MI_CubeをCubeにアタッチします。
https://scrapbox.io/files/66575fbbf15739001dd04009.png
MI_Cubeを開いて、パラメーターを調整してみましょう。
こちらもリアルタイムでパラメーターを変更できるようになりました。
https://scrapbox.io/files/66576014a009a2001dc0388f.png
🌟マスターマテリアルの作成
マスターマテリアルとはあらゆるマテリアルの親玉、メインになるマテリアルです。
まず、M_Testの名前をM_Masterに変更します。
そして、M_Masterを開いて、ディフューズマップ、マスクマップ、ノーマルマップの三つのテクスチャを右クリックでパラメーターに変換を選択し、パラメーター化します。
それぞれColor,Mask,Normalという名前にしましょう。
https://scrapbox.io/files/6657614ba009a2001dc03da1.png
適用ボタンを押して、M_Masterを右クリックし、マテリアルインスタンスを作成を選択します。
名前はなんでもいいです。今回はMI_Childとしました。
https://scrapbox.io/files/6657620ae287fe001da81e96.png
ダブルクリックで開いてみてください。
ディフューズマップ、マスクマップ、ノーマルマップのパラメーターグループが新たに追加されました。
https://scrapbox.io/files/66576280973acb001dc75a5b.png
これで、いつでもパラメーターからテクスチャを変更することができるようになります。
https://scrapbox.io/files/665762e0ff63d3001c7b560c.png
これでマスターマテリアルが完成しました。
今後マテリアルを作成する際は、M_Masterを右クリックし、マテリアルインスタンスを作成を選択すれば、簡単にテクスチャや数値を調整できるようになります。
《実践演習》
マスクマップのRoughness,AO,Metalicの値をパラメータでいじれるようにしましょう。
https://scrapbox.io/files/66576444fa07ba001d9114d7.png
《実践演習の答え》
https://scrapbox.io/files/66576497fb607e001d9b475c.png