[UE5] 作成中のマテリアルの途中経過を、ノードでプレビュー(表示)する

Post 2024年4月10日水曜日

UE4 UE5 UI (UMG) Unreal Engine

 今回も小ネタ。


お約束
この記事作成にあたって使用した主なUnreal Engine バージョンUE5.3.2

本日のゴール

マテリアルの途中経過を表示する


マテリアルをいじっているときに…

マテリアルを弄っているときに、計算が多すぎて

「いまどんな結果なんだ?」ってわからなくなることありません?

僕はあります。


一番シンプルな方法は、途中経過を知りたいノードで右クリックして「プレビューを開始」を押すことです。

これで途中の結果がわかります。


なーんだこれでいいじゃないかと思う方がほとんどでしょう。

あるいはノードの右上の三角形の下みたいなやつをクリックするだけでもプレビューが見れます。


これじゃあ更新されない!という方は右クリックしてリアルタイムプレビューを有効にすればよいのです。


今回の話はこれで終わりです。ありがとうございました。


ではなく、一応Customノードの解説をします。(参考:おかずさんのブログhttps://pafuhana1213.hatenablog.com/entry/2015/02/15/152312)


弄らなければならないのはこの三箇所


Codeには表示したいことを書きます。コードです。

Output Typeは、このCustomノードに入れる内容の数字が何次元の数なのかを選びます。基本的にはCodeをいじればいいので、脳死でFloat4を選んでおけばいいです。

(例えばR値だけならFloat1ですし、RとG値ならFloat2, R,G,Bの3つならFloat3, R,G,B,Aの4つならFloat4)

Input Nameは適当に名前をつけます。上記のコードで使うので覚えやすい名前がいいですね。おかずさんのブログを参考にuvとでもしておきましょう。



Code:
return float4(uv.x, uv.y, 0, 0);

と入力し、Output TypeはCMOT Float4を選びます。


この場合、2次元のベクトルに対応してプレビューがされます。

2次元のベクトルって例えば何?というと、TextureCoordinateとかですね。



一方で3次元のベクトル値を使う場合、例えば (R,G,B)の場合は表記を変える必要があります。

Code:

return float4(uv.x, uv.y, uv.z, 0);


4次元の場合はreturn float4(uv.x, uv.y, uv.z, uv.a);

1次元の場合はreturn float4(uv.x, 0,0,0);


というわけで、小回りが聞くわけじゃないですが、

逆に今自分が扱っている情報が何次元の情報なんだっけと調べるのにちょっと役に立つノードの紹介でした。


実際にはCustomノードは自分で色々コードを作れるのでもっといろいろできると思います。


おしまい