初めにこちらをご確認ください。
元となるSubstanceを用意します。
このSubstanceは3つのFloatパラメーターと1つのInteger、1つのBooleanを持っています。
SBSARとしてPublishしてください。
作成したSubstanceファイルと適用したいモデルをUEに読み込みます。
読み込んだアセットをビューポートにドラッグして配置し、さらにそのアセットにSubstanceから作成されたマテリアルを適用します。
Material Instanceをダブルクリックし、パラメーターを表示します。
パラメーターを変更し、Substanceの結果が変化することを確認してください。
それではこのMaterial InstanceのパラメーターをBlueprintで変更できるようにします。
Bluepirnt作成します。
親クラスはActorにします。
任意の名前にします。
作成したBlueprintをダブルクリックしエディタを開きます。
イベントグラフタブをクリックしてください。
画面左側にある変数の横の+をクリックし、変数を追加します。
変数名をSubstanceに変更します。
変数の型をSubstance Graph Instance>Object Referenceに設定します。
コンパイルボタンをクリックします。
コンパイルするとデフォルト値を設定できるようになるので、ここでSubstanceから作成されたGraph Instanceを選択します。
今、設定したGraph Instanceのプロパティを開きます。
この中のRustというBoolean型のプロパティをBlueprintで変更します。
Blueprintエディタにて、先ほど作成したSubstance変数を選択し、ドラッグします。
Get Substanceを選択します。
作成したGet SubstanceにSet Iput Boolを接続します。
Identifierにパラメーター名を設定する必要があります。
Identifierが不明な場合は、パラメーター名にマウスのカーソルをおくと確認可能です。
Identifierに確認した名前を設定します。
イベントBeginPlayをSet Input Boolに接続します。
Set Input BoolからAsync Renderingに接続します。
Get SubstanceからAsync Renderingを接続します。
ここまでの設定ができたらコンパイルをクリックします。
次に保存をクリックします。
現在のRust設定は有効
Blueprintではオフに設定を変更します。
作成したBlueprintをビューポートにドラッグします。
再生をクリックすると
Rustがオフになりました。
最初にRustがオフで、Blueprintでオンに変更することもできます。
更に他のパラメーターも設定してみます。
Get SubstanceからSet Input Floatに接続します。
Identifierにパラメーター名を設定します。
Input ValuesにMake Arrayを接続します。
設定したい数値を入力します。
Set Input BoolからSet Input Floatに接続し、Set Input FloatからAsync Renderingに接続します。
コンパイル、保存の順にクリックします。
再生すると、BooleanとFloatが設定されたことがわかります。