BPからマテリアルレイヤーを変更したい

キャラクターのスキンを変更できるようにマテリアルをブレンドして使用しているのですが、このブレンドに使用しているマテリアルレイヤーをBPから変更したいです。マテリアルを丸ごと変える方法だと、マテリアル毎にキャラクターのテクスチャや画像マップを貼らなければならないので、ベースの部分をマテリアルレイヤーで作ってそれを変えたい別のレイヤーとブレンドすることでスキンを変えようと思っています。
マテリアルレイヤーを使用しているマテリアルインスタンスの取得はできましたが、そこで使用されているレイヤーの取得と変更を行う項目が見当たりません。このマテリアルレイヤーの変更をBPから行うにはどうすればよいでしょうか?

どのような構成でマテリアルレイヤーをブレンドして利用されているのか完全に推察がつかないままの回答で恐縮ですが、ゲーム中キャラクターのスキンを変更したいのであればマテリアルをそっくり変更するのではなくスキン用のマテリアルアセットで、予め変更したいスキンのテクスチャを必要分用意し、lerpノードのA・Bにそれぞれスキンのテクスチャを繋ぎ、AlphaにScalar Parameterを繋ぎ、BP側でダイナミックマテリアルインスタンス機能から上記のScalar Parameterを指定して値を変更する方法などが無難だと思われます。


ただ、マテリアルパラメータコレクションを利用して、マテリアルレイヤーブレンドのAlphaを変更する方法もあるので紹介します。

具体例として下図2枚のようにMaterial Attribute Layersを設定した単純なマテリアルからインスタンスを作成し、そのマテリアルインスタンスのレイヤーパラメータで設定したレイヤーアセット2種(VectorParameterでそれぞれ色を指定しただけのマテリアルレイヤー)をブレンドアセットに設定したマテリアルレイヤーブレンドのマテリアルパラメータコレクションを変更して切り替える方法をとります。

  1. コンテンツブラウザで「追加/インポート」を選択し、マテリアル・テクスチャ欄の「マテリアルパラメータコレクション」を選択して作成する。(MPCTestと命名した)

  2. 作成したマテリアルパラメータコレクションを開き、Scalar Paramaters欄の+をクリックしてParamater Nameに任意の文字列を入力(例ではScalar Alphaと命名)

  3. マテリアルレイヤーブレンドを開き、右クリックして検索窓に「Collection Parameter」とタイプして出たノードを追加し、詳細のCollection欄プルダウンメニューから先ほど作成したマテリアルパラメータコレクションを選択し、Parameter Nameを2で設定した文字列で設定する。図のようにBlend Material AttributeのAlphaにCollection Parameterを繋ぐ。

  • BP上のキー入力イベントや任意のイベントから「Set Scalar Parameter Value」ノードを使用して上記のマテリアルパラメータコレクションの数値を変化させることでマテリアルレイヤーを切り替えることが可能です。

325564-layermat01.gif

質問者ではないですがとても助かりました。
丁寧なご説明ありがとうございます。