スポンサーリンク
ホーム >  アンリアルエンジン4  >  マテリアル  >  マテリアルチュートリアル  >  マテリアルインスタンスとパラメーター
マテリアルインスタンスとパラメーター
パラメーターについて

Constant3Vectorは文字通りVector定数なので、ランタイム中に変更する事は出来ません。
ランタイム中に変更したい場合はVectorParameter等のパラメーターノードを使用する必要があります。


しかしマテリアルにパラメーターノードを使用して、ブループリントで変更しようとしてもパラメーターをセット出来ません。
マテリアルは基本的に一度コンパイルしたら変更を加える事が出来ません。
なのでパラメーターを用いて動的に変更したい場合は、作成したマテリアルからマテリアルインスタンスを生成する必要があります。

マテリアルインスタンスはコンパイルを必要としない為、変更時の動作が非常に軽いです。
マテリアルの場合は変更を加える度にプレビューに反映されるまで時間がかかり、Applyボタンを押して適用させる手順が必要ですが、
マテリアルインスタンスはパラメーターを変更したら即座に反映されます。
マテリアルインスタンスの生成

先程説明した通り、マテリアルインスタンスを生成するにも元となるマテリアルが必要です。
ContentBrowserで作成したマテリアル(M_Temp)を右クリックし、Create Material Instanceを選択します。


作成したマテリアルのM_Tempの語尾に_Instが付けられたマテリアルインスタンスのM_Temp_Instが生成されます。


M_Temp_Instを開くと、マテリアルインスタンスエディターが起動します。
マテリアルエディターとは異なり、パラメーターの設定しか出来ません。


DetailsのInColorParam(マテリアルエディターで名付けた名前)のチェックボックスにチェックを入れると、パラメーターを変更する事が出来ます。
色を変更すると即座に反映される事が分かります。

ブループリントでパラメーター設定

Actorブループリントを生成し、BP_Testと名付けます。
BP_Testを開き、Cubeコンポーネントを追加し、MaterialsにM_Tempを設定します(動作チェックだけなら別に設定しなくもいいですが)。


ブループリントでパラメーターを設定するには、ブループリントでダイナミックマテリアルインスタンスを生成してそれを適用する必要があります。


Construction ScriptでCreate Dynamic Material InstanceでM_Temp_Instのダイナミックマテリアルインスタンスを生成し、Cubeへ適用させます。
ダイナミックマテリアルインスタンスのパラメーターをSet Vector Parameter Valueで設定します。

コンパイルして、Viewportを確認し色が変わっている事を確認します。

プレイヤーが接近したらマテリアルを点滅させる

プレイヤーが接近したら赤色灯のようにマテリアル点滅に切り替えるActorを作成してみましょう。
やり方は色々ありますが、基本的にマテリアルで作成し、ブループリントでは単純に切り替えるようにします。

M_Tempを開き、マテリアルを変更します。
ScalerParameterの初期値は0にします。


BP_Testを開き、Create Dynamic Material InstanceのReturn Valueを右クリックし、Promote to Variableを選択して変数を作成し、MInstanceと名付けます。


生成したダイナミックマテリアルインスタンスを保存します。


BoxCollisionコンポーネントを追加し、Boxコンポーネントを選択しOn Component Begin Overlapの+ボタンを押します。


オーバーラップイベントノードが追加されるので、ダイナミックマテリアルインスタンスのパラメーターを変更する処理を追加します。
ScalarParameterに1を設定する事でLeapのAlphaが1になり、点滅動作になります。


ゲームをプレイすると、最初は緑色で、BoxCollisionの範囲に入ると赤点滅する事を確認します。
スポンサーリンク
検索
test
コンテンツツリー
スポンサー リンク


Top


inserted by FC2 system