アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE4】マテリアルとマテリアルインスタンスの簡単な紹介

マテリアルとマテリアルインスタンスについて

マテリアルなどを説明してこなかったので、

今回はマテリアルとマテリアルインスタンスを説明していこうと思います。

マテリアルの作成について

まずはマテリアルファイルを追加します。

コンテンツエディタを右クリックしてマテリアルを選択します。

f:id:yoshikata1990:20190520225851p:plain

マテリアルファイルの追加

マテリアルファイルを追加したらマテリアルファイルを開くと

マテリアル用のノードを反映するメインのマテリアルノードがあります。

f:id:yoshikata1990:20190523215944p:plain

マテリアルファイル

メインマテリアルの入力で設定できる説明については、

マテリアル入力の説明はリファレンスで見るのが分かりやすいです。

api.unrealengine.com

個人的によく使い覚えておきたいマテリアルノードを少し紹介していきます。

Constant(定数)

これはどのようなマテリアルを作るときも使うことになると思うので、覚えておきましょう。

左上が1つの定数を指定するもので右上が2つ(色で言うと赤と緑)の扱いです。

左下が3つ(RGB)です。右下が4つ(RGBA)となります。

1つの定数の場合はメインマテリアルに直接接続して値を指定しておいたり、

この後説明する演算などで使われたりします。

2つの場合は2つの定数を指定するマテリアルノード(TexCoord)などで活用しています。

3つの定数や4つの定数は固定した色を指定するときに使ったりします。

f:id:yoshikata1990:20190525082615p:plain

Constant(定数)

このノードを検索して追加するときは、「C」を入力すると一番最初に指定されます。

f:id:yoshikata1990:20190525084201p:plain

Cキーで検索をかけた場合

テクスチャとマスク

マテリアルを作成する上でテクスチャを使って凹凸を表現したり、

マスクを使ってRGだけにしたりとかする事があります。

そういった場面で使われるのが下記のTextureSampleとMaskです。

※Maskの正式名称はComponentMaskです。

f:id:yoshikata1990:20190525084234p:plain

テクスチャサンプルとマスク

TextureSampleの出力値はテクスチャ内の色(RGB・1色ごと・RGBA)になっています。

MaskはRGBAの最大4つの値を持てます。値のValue数をあわせたりするときに使えたり活用するところは多くあります。

追加する場合は、TextureSampleでは「Text」まで打つと検索に引っかかります。ComponentMaskは「Mask」と打ちましょう。

四則演算(Add・Subtract・Multiply)

マテリアルにも四則演算がありこちらも良く使います。

色の計算で見るとAddは単純にRの加算しています。

白(R:1,G:1,B:1)の箇所はAddしても色の変化はありません。

Multiplyでは白い箇所を赤くしています。

色のある箇所(白の箇所)を赤色にしています。

Subtractでは全体に赤を減算しています。

白い箇所は赤色がなくなっているため青緑になっています。

f:id:yoshikata1990:20190525095838p:plain

四則演算結果

追加する場合は、Addでは「ad」まで打つと検索に引っかかります。Multiplyは「Mu」まで打つと検索に引っかかります。Subtractは「su」まで入力すると表示されます。

lerp(LinearInterpolate)

lerpは線形補完と呼ばれるを行うノードになります。

入力先はAlpha(下の画像では画像をアルファに設定しています)があり、

AとBではそれぞれ指定した画像の赤の色が使われている箇所にAの値が使われて、

赤色が使われていない箇所にはBが適応されていきます。

f:id:yoshikata1990:20190526075701p:plain

lerpの簡単なサンプル

追加する場合は、lerpは「l」で検索に引っかかります。

他にもブレンドなどもっと説明する必要がありますが、

もっと細かい説明を他のタイミングで説明していこうと思います。

簡単なマテリアルを作る

今回は簡単なマテリアルを紹介していきます。

下の画像は簡単な金属っぽいマテリアルになります。

f:id:yoshikata1990:20190526083659p:plain

メタリックなマテリアル

ベースカラーに色を加算してピンク色を作り、

メタリックを1にして光沢を出しつつ、ラフネスを下げて反射する形にしています。

完成したマテリアルのサンプルがこんな感じになります。

f:id:yoshikata1990:20190526084739p:plain

メタリックのサンプル

マテリアルインスタンスにして管理する

マテリアルを作成した後でマテリアルはそのままで、

マテリアルに設定した値などを切り替えたりすることが多々あるので、

マテリアルインスタンスで指定した値を切り替えするようにします。

スイッチなどもあるのでぜひ使っていきましょう。

マテリアルファイルを右クリックしたときに、

一番上にマテリアルインスタンスを作成が出るのでそれを選択します。

f:id:yoshikata1990:20190526091417p:plain

マテリアルインスタンスの作成

マテリアルインスタンスのファイルを作成したら、

マテリアルインスタンス用に元のマテリアルファイルを改造します。

先程のメタリックのマテリアルにSwitchやConstantを、

パラメーターに変更したりします。

f:id:yoshikata1990:20190526095105p:plain

パラメータ変更とスイッチの追加

Constantで設定したパラメータはParamとして、

定数から変数に変更することができます。

変更方法は、右クリックでパラメータに変更を選択が可能です。

f:id:yoshikata1990:20190526101052p:plain

パラメータ変換

SwitchParamについては、StaticSwitchParameterが正式名称で

TrueとFalseでそれぞれ適応したいパラメータを指定します。

デフォルトはFalseの状態になります。

設定したマテリアルのパラメータやスイッチなどは

マテリアルインスタンスで変更できます。

※紹介しているのは一部です。

f:id:yoshikata1990:20190526102709p:plain

マテリアルインスタンスのパラメータ設定

上記の画像のようにパラメータを変更するだけで、

下の画像のように全く別のマテリアルを作ることができます。

f:id:yoshikata1990:20190526102828p:plain

マテリアルインスタンスでパラメータ変更後

マテリアルインスタンスについては通常のマテリアルと同様に、

スタティックメッシュなどにマテリアルの代わりとして設定することができます。

f:id:yoshikata1990:20190526103255p:plain

マテリアルインスタンスの適応

下の絵はベースのマテリアルと設定を変更したマテリアルインスタンスを、

それぞれ適応した場合の画面になっています。

f:id:yoshikata1990:20190526103540p:plain

ベースのマテリアルとマテリアルインスタンス

マテリアルインスタンスは一つのベースを使い、

パラメータやスイッチなどの設定次第で様々なことができるので、

ぜひ活用してみてください\(^o^)/

最後に

今回はマテリアルブレンドや下の動画のマテリアルレイヤーなどの、

説明は行っていないので、そちらの説明も今後していけたらと思います。

※いつやるんだろう(;^ω^)・・・

www.youtube.com

いろいろな動画でマテリアルの説明は行われているので、

ぜひレベルアップしていきましょう(・∀・)