0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SetMaterialの秘密

Posted at

自分へのメモを兼ねてQitaに残しておきます。
今回の話は、秘密でも何でもなく、知っている人は既に知っていると思いますが、長年さわっていて、改めて気づいた事を書きます。

調査環境

UnrealEngine 5.3.2

SetMaterialとは

この記事では以下のノードを指します。

SetMaterialノード.png

使用頻度も高いと思われ、『スタティックメッシュ』『スケルタルメッシュ』『ジオメトリキャッシュ』『フォリッジ』等のモデルアセットのマテリアルをブループリントから変更できるノードです。

気づいた事

ここからが本題で結論になります。
このSetMaterialノードの引数の三つ目は、変更するマテリアルを設定して実行します。もし、『何もマテリアルを設定せず』に実行するとどうなるのでしょうか?
答えは、各メッシュデータのアセットに設定されているメッシュがセットされます。

ここで実験してみました。
このレベルは、椅子(スタティックメッシュ)、車(スケルタルメッシュ)、フォリッジ(スタティックメッシュフォリッジ)となっています。

元レベル.png

それぞれ、『SetMaterialで赤いマテリアルに変更』にしてみました。

スタティックメッシュを変更

スタティックメッシュだけ変更.png

スケルタルメッシュを変更

スケルタルメッシュだけ変更.png

フォリッジを変更

Foliageだけ変更.png

その後、『SetMaterialに何もマテリアルを指さず実行』したものが次の画像です。

元レベル.png

このようにアセットに設定されているマテリアルが貼り張り直されます。
少なくとも、『スタティックメッシュ』『スケルタルメッシュ』『スタティックメッシュフォリッジ』では元のマテリアルがセットされています。

最後に

先入観で、『DefaultMaterial(アクタを配置して最初に貼られているグレーのマテリアル)が貼られる』か『実行に失敗する』かだろうと思っていましたが、実際の動作は違いました。
今までは、わざわざ、元のマテリアルをキープしておいて、変更とかやっていましたが、そんな事しなくても良かったのですね。今後のブループリントに作り方もすっきりしそうです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?