見出し画像

「入門」UE5/UEFNマテリアルの基本(計算のルールとデータタイプ)Part4

前回は、テクスチャーの基本について紹介しました。

今回は、四則演算の加算乗算を使って、データタイプの紹介をします。


新規マテリアルを作ろう

M_Mathというマテリアルを作り開きましょう。

使用するノード(ショートカットキー)
Constant(1), float型の1チャンネル
Constant2Vector(2), float型の2チャンネル 
Constant3Vector(3),  float型の3チャンネル
Constant4Vector(4), float型の4チャンネル
Add(a), 加算(足し算)
Multiply(m), 乗算(掛け算)
AppendVector, 値の追加(配列)
ComponentMask(使用しません)

計算できるもの出来ないものを理解しよう

Constant、Constant2、Constant3、Constant4は、Float型で浮動小数点の値を持つことができます。
以前の記事でも紹介しましたが、Constantの値が0の場合は黒で、1の場合は白になります。

では、Constantaddノードを使って、結果が1の白色にするにはどうしたらよいでしょうか?
答えは以下の通りです。

Constantノードの0.5を2つ用意してaddノードで足し算したらプレビューの球体が白色になります。(0.5+0.5=1)

因みに、マテリアルノードは、以下のショートカットキーで
(コピー)(貼り付け)(複製)できます。
Ctrl+C  コピー
Ctrl+V  貼り付け
Ctrl+D  複製

掛け算も同じ要領です。

0.5×0.5=0.25
もちろん
1×1で白色の1になります。

Constant2Vectorの計算

Constant2Vectorも考え方は、Constantと同じです。
以下の画像のようにノードを繋ぎます。

2つのConstant2Vectorノードがあります。
各値は、以下の通りです。
Rチャンネル 0.2 Gチャンネル 0.1
Rチャンネル 0.4 Gチャンネル 0.7

これをaddノードに入力すると以下のように計算します。
Rチャンネル 0.2+0.4=0.6
Gチャンネル 0.1+0.7=0.8
Rチャンネルは、Rチャンネル同士で計算して、GチャンネルはGチャンネル同士で計算します。

では、以下の場合はどうでしょうか?
ConstantConstant2Vectorの足し算です。

1チャンネルと2チャンネルの計算ですね。
答えは、以下の通りです。
R 0.2+0.5=0.7
G 0.4+0.5=0.9

Constantの値0.5を見てわかるように、Content2VectorのR,Gの両方のチャンネルに0.5を足しています。
これは、ConstantとContent3Vectorでも同じで、Constantの値をContent3Vectorの3つのチャンネルで四則演算します。

エラーが出るパターン

以下のようなContent2Vector、Content3Vectorでは、チャンネル数が合わないためエラーが出ます。
(Content4Vectorでもチャンネル数が合わなければ同じようにエラーが出ます。エラーが出ないのは上記のような、Constant+複数チャンネルは、チェンネル数が異なってもエラーが出ません。)

このエラー解決方法の一つとして、Appendノードを追加することで解決できます。

AppendのAの値に0.5、Bに0.2と0.1を入力することで、本来なら値が1つ(Constant)と値が2つ(Constant2Vector)を、Append(配列)した結果、Constant3Vectorの様な扱いになります。
0.5、0.2、0.1

もちろんAppendのAとB値を入れ替えることもできます。
これで、どの様な時に計算が可能か不可か理解できたと思います。
UE5でマテリアル作成をする時の、基礎の知識なのでぜひ覚えておきましょう。

まとめ

  • Constant+Constant2,3,4Vectorの計算は可能。

  • 複数チャンネル同士で、チャンネル数が違う場合はエラーが出る。(2ch+3ch、4ch+2chなど)

  • 解決方法は、チャンネルの数をAppendノードなど使って、チャンネル数を変換する。

  • ※今回の例の解決方法は一例です。

次回

次回は、マテリアルのWorldPositionOffsetを使用して、地面の凹凸を表現します。


この記事が気に入ったらサポートをしてみませんか?