目次
※この記事で使用している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にアップされています。
サンプルプロジェクト