※この記事で使用しているUnrealのVersionは04.22.1 です。

※記事が長くなってしまったので、2ページに分けて投稿します。@ページ2

前編はこちら

※この記事のサンプルプロジェクトは以下URLにアップされています。
サンプルプロジェクト

前編では、Pythonを使ってマテリアルインスタンスのパラメーターをいじくりました。
後編は、それをより使いやすくしてみたいと思います。

AssetActionUtilityを使う【★★☆】

AssetActionUtility(Blutility)を使うことで、Pythonはより使いやすくなります。
まずはBlutilityを使えるようにします。

エディター左上の「Edit」→「Editor Preferences」から、 「Editor Utility Blueprints(Blutility)」の項目のチェックを入れます。

そして、コンテンツブラウザ左上の「新規作成」から「Editor Utilities」→「Blutility」を選択して、Blutilityクラスを作ります。

選択する親クラスは「Asset Action Utility」にしてください。

このアセットは、右クリックから「Edit Blueprint」を選択しないと、中身を編集することはできません。

作成できましたら上記方法で開きブループリントを書いていきます。

※Customeventの詳細で「Call in Editor」の項目にチェックを入れるのを忘れないでください。

関数 Make Argmentの中身

「py ~~~」というコンソールコマンドで実行できる、というところに着目すれば、ブループリントからコンソールコマンドを実行できる「Execute Console Command」という関数を使うことで、ブループリントからもPythonコマンドを実行することができます。

ここまで作成できましたら、一度ブループリントグラフは閉じましょう。

コンテンツブラウザ上で、編集したいマテリアルインスタンスを選択した上で、右クリック→「Scripdted Actions」→「Edit MIScalar Parameter(作ったカスタムイベント名)」を選択します。

そうすると、新たにMap型の変数を入力できるウィンドウが出てくると思います。

そこに、パラメーターの名前と値を入力して「OK」を押します。

これで、選択しているマテリアルインスタンスのパラメーターは一括で編集されます。

ちなみに・・・

今回のマテリアルインスタンスのパラメーターを編集するスクリプトは、わざわざPythonで書かなくても、Blutility上のBlueprintですべて実装可能です。
以下実装ノード(Blutilityに記載)

Pythonは、外部との連携や、ネイティブを絡めたりするときに使うといいなと思いました。

長くなってしまいましたが以上です。

前編はこちら

※この記事のサンプルプロジェクトは以下URLにアップされています。
サンプルプロジェクト