アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE5】マテリアルのSwitchノードを試す

Switchノードを試します(^^♪

今回はUE5.2から追加された、

Switchノードに設定されたSwitchParamで設定された値に、

合わせて渡すマテリアル情報が変化するノードを紹介します。

※UE5.3を使用して説明していこうと思います。

※書き間違え等あればコメントください!

Switchノードの説明

Switchノードとは上記でも説明した通り、

SwitchParamで設定された値に合わせて渡すマテリアル情報が変化する、

Enumに似たマテリアル用のノードになります。

IFなどのノードに似たような使い方をするかと思います。

マテリアルグラフで右クリックして検索に「sw」と入れると、

Switchノードが候補として出てくるので選択します。

Switchノードの候補検索

実際にノードを設定するとSwitchノードが作成されます。

ノードの詳細で設定できる値などを紹介します。

Description → ノード名

Const Switch Value → Switchでの初期の値

Const Default → Switchのデフォルト値
※分岐に当たらない値の場合はデフォルト値が適応

Inputs → 各分岐で+ボタンで追加してゴミ箱で分岐を削除できます。

Input Name → 分岐ごとの分岐名

※Defaultが-1の場合はInput[0]がSwitchValueが0になる。
 なのでDefaultが0の場合はInput[0]が1になります。

Switchノードの各種設定

実際にInputsで+ボタンを選択してInputNameを設定すると、

Indexが増えてそれに合わせて接続点が増えSwitchできる種類を増やせます。

Switchノードの整数値SwitchValueは値の1ごとに区切られています。

小数点ありの場合は小数点を無視した整数の値で区切られます。

設定したそれぞれの値に合わせて色が変化するようになります。

※Switchノードはすべての接続点に接続していないとエラーになります。
 すべての接続点にちゃんと接続してあげてください。

各種Switchの設定

MaterialInstanceを作成してSwitchParamを変更して、

Switchの表示がどのように切り替わるか動画にしてみました。

・目次に戻る

ScalaParamでSwitchを切り替える

BPでキャラクターのLineTraceに当たった時に、

ScalaParamを切り替える処理を作って動的に変えてみたいと思います。

そのために先ほど作成したマテリアルからMaterialInstanceを作成します。

MaterialInstanceの作成

まずキャラクター側でLineTraceを飛ばす処理を作ります。

キャラクターからカメラの方向に向かって飛ばす処理になります。

LineTraceに当たった指定のActorの色を変更してます。

キャラクターからカメラの方向に向かってLineTrace

続いてLineTraceに当たった時に値をランダムに変更する処理を作ります。

処理としてはLineTraceの当たった時のカスタムイベントを作成して、

MaterialInstanceを作成してその中のScalaParameterを、

-1~2のランダム数値を渡すというものになります。

MaterialInstanceを取得してScalaParameter

実際にLineTraceを飛ばして色を変えてみたのがこちらになります。

白いボックスの色がランダムに切り替わるのが分かるかと思います。

これでSwitchノードの説明を終了します。

何か分からない部分等ありましたらコメントぜひお願いします!

・目次に戻る