自分へのメモを兼ねてQitaに残しておきます。
今回の話は、秘密でも何でもなく、知っている人は既に知っていると思いますが、長年さわっていて、改めて気づいた事を書きます。
調査環境
UnrealEngine 5.3.2
SetMaterialとは
この記事では以下のノードを指します。
使用頻度も高いと思われ、『スタティックメッシュ』『スケルタルメッシュ』『ジオメトリキャッシュ』『フォリッジ』等のモデルアセットのマテリアルをブループリントから変更できるノードです。
気づいた事
ここからが本題で結論になります。
このSetMaterialノードの引数の三つ目は、変更するマテリアルを設定して実行します。もし、『何もマテリアルを設定せず』に実行するとどうなるのでしょうか?
答えは、各メッシュデータのアセットに設定されているメッシュがセットされます。
ここで実験してみました。
このレベルは、椅子(スタティックメッシュ)、車(スケルタルメッシュ)、フォリッジ(スタティックメッシュフォリッジ)となっています。
それぞれ、『SetMaterialで赤いマテリアルに変更』にしてみました。
スタティックメッシュを変更
スケルタルメッシュを変更
フォリッジを変更
その後、『SetMaterialに何もマテリアルを指さず実行』したものが次の画像です。
このようにアセットに設定されているマテリアルが貼り張り直されます。
少なくとも、『スタティックメッシュ』『スケルタルメッシュ』『スタティックメッシュフォリッジ』では元のマテリアルがセットされています。
最後に
先入観で、『DefaultMaterial(アクタを配置して最初に貼られているグレーのマテリアル)が貼られる』か『実行に失敗する』かだろうと思っていましたが、実際の動作は違いました。
今までは、わざわざ、元のマテリアルをキープしておいて、変更とかやっていましたが、そんな事しなくても良かったのですね。今後のブループリントに作り方もすっきりしそうです!