見出し画像

マテリアルのパラメーターについて

外部からマテリアルを操作するには、マテリアルパラメータを作成しなければならない。「ブロック崩し」のときにもこの設定が必要です。

ただ、マテリアルで「Parameter」と検索してみると。。。

Parameterの種類は豊富

画像1

ここでは「Vector Parameter」を使います。このノードは「RGBA」を操作することができます。Parameter 式 ※色々な違いは後日記載

2つあるマテリアル インスタンスの違いとは?

下記の図で使用している、
ダイナミック マテリアル インスタンス(Dynamic Material Instances)
というのを説明するには、マテリアル インスタンス(Material Instances)も同時に考えると理解しやすい。
Material Instanceの作り方

マテリアル インスタンス(Material Instances)は、親のマテリアルを活用して派生系のマテリアルと使う際に用いられる。親をいじれば、子も変わる。

画像2

では、ダイナミック マテリアル インスタンス(Dynamic Material Instances)は?

ゲーム実行中に変更できるマテリアル インスタンス (親マテリアルから作られる子マテリアル) のこと

UE4 のマテリアル入門 (9) ダイナミック マテリアル インスタンス (その 1)

外部から触るための準備:インスタンス作り

インスタンスは「Construction Script」でつくります。

画像3

画像4

左のCube変数をエディタ内に入れて、Create Dynamic Material Instance (ダイナミック マテリアル)とつなげる。

これでこのアクタがレベルに生成されると
マテリアルの変数「NewVar_0」もつくられるので、これを他からいじればよいことになる。

ターゲットの指定について

マテリアルを使用しているアクタの中でブループリントを記述する際にはターゲットの指定は問題なくできるが、レベルブループリントでこちらをいじろうとするとやっかいのである。

アタクの中に条件式を記載する場合と、椅子などに近づいたら色を変えるなどと、レベルブループリントで行う場合、レベル上に色々な障害物を自動生成するなどレベルでも操作したくなる。

「ブロック崩し」では、レベルでブロック配置のロジックを記載しているので、レベルの方でマテリアルを操作している。

画像5

SpawnActor でclassを指定しているので、マテリアルを結びつけると自動でターゲットが指定できる。

備考:
レベルかアクタか?どちらに記載するのが効率的か?まだ勉強不足
「ブロック崩」しで考えると、アクタの方に生成ロジックをもたせて、レベルでは全体のシーンの流れにするほうが管理しやすいかな?
この辺は後ほど。

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