ノードのコード確認をどうしたらよいのか探していたけど
"MaterialEditorでSave して Window > Shader Code > HLSL Code"
でチェックできる!ようやく発見した。
CalcPixelMaterialInputs関数内に主に記述されている部分。
MaterialExpressionはひとつひとつクラスとして定義されています。
クラス定義はEngine\Source\Runtime\Engine\Classes\Materials\フォルダに配置されています。
クラスの実装はEngine\Source\Runtime\Engine\Private\Materials\MaterialExpressions.cppにまとめられています。
↑
だそうです。
※ノード内の処理がブラックボックス!
Shaderのコードで多少確認できるけど、VectroExpressionとかScalarExpressionとかどこからデータが来てるの。
UE4 マテリアル(シェーダー)の値を視覚的に確認するデバッグノード
ドキュメントの情報が不足していて、どういう処理がされてるのかわかりづらいのが現状…
UnrealEngineのShaderスクリプトの記述については主に2つ方法があるっぽい。
Custom ノードのプロパティに記述する(ちょこっとしたものであれば簡単)
自作シェーダーを読み込んで使う
使用するにはいくつかおまじないが必要になる。(今後のアップデートでもっと簡単になることを願う…)
"UE4.xx/Engine/Source/Runtime/Engine/Classes/Materials"以下にノードのヘッダファイルがある。
いろいろ試してたけど迷宮入りしかけ…
Unrealって便利ですごいけど、結構中身がブラックボックスっぽい感じがある…(調べようと思ったら調べられるけど、めんどう…)
Unityのライブラリって割とすぐに参照先を検索していけば、すぐにたどれるのにもどかし…
→HLSLスクリプトの確認で何となくは確認できるけど、中身を修正したうえでカスタムノードとして使いたい…
→ノードを選択
→デフォルトだと左ウィンドウにある"Material Function"を選択→"編集"(もしくは、ノードをダブルクリック)
これで、ノードの中身(ノード群)がどうやって使われているのかをチェックすることができる。
→既存のノード自体をいじってしまうと、今後反映された状態になってしまうので、新規で"マテリアル関数"を作成して
そこに必要なノードをコピペすればOK。
→上位層からの入力値を取得したい場合は、"FunctionInput"を配置して設定する
→"MaterialFunctionCall"ノードで作成したマテリアル関数を選択したら使用できるようになる。(ドラッグ&ドロップでも可)