TextureArrayに対して実行可能なDrawMaterialToRenderTargetプラグイン[UE][Plugin]

TextureRenderTarget2DArray のSlice(配列の要素)を指定して DrawMaterialToRenderTarget ができるUEプラグインの公開.

これは何

テクスチャ配列アセットの要素に対してマテリアル描画を実行できるプラグイン.
UE標準のDrawMaterialToRenderTargetノードとほぼ同じで, TextureRenderTarget2DArrayとその何番目にDrawするかを指定できる.

NglDrawMaterialToRenderTargetArraySliceノード

内部で一時テクスチャの生成やコピーをする必要があったため, ゲーム中にリアルタイム利用するような用途向きではない点に注意.
エンジン改造無しで実装するためにこうなったが今後修正できるかもしれない(未定),

動作確認 UE5.1 Win64

導入

リポジトリの NglTextureRt2dArrayUtil をコピー

ue_plugin/distribution/NglTextureRt2dArrayUtil at main · nagakagachi/ue_plugin · GitHub

自身のプロジェクトに Plugins ディレクトリを作成し, その中に上記Githubの NglTextureRt2dArrayUtil ディレクトリをコピーペーストする.


プラグインが読み込まれているか確認

プロジェクトを開いて 編集/プラグイン のウィンドウを開き, NglTextureRt2dArrayUtilプラグインが有効になっていればOK.

サンプル

プラグインコンテンツのEditorUtilityWidget EUW_DrawToRenderTargetArraySample を右クリック->エディターユーティリティウィジットを実行 で簡易サンプルが起動する


  1. ウィンドウ左側にマテリアルと描画先Array要素番号(Slice Index)を指定.
  2. ウィンドウ右側に書き込み先のTextureRTArrayアセットを指定。
  3. Runボタン を押すとArray指定要素にマテリアル描画が実行される.

下図はWidgetでSlice 0番に対して実行して, エディタでTextureRTArrayの Slice 0 を表示して結果を確認している様子.


出来上がったTextureRtArrayをテクスチャ配列アセットに変換するなどご自由に.

最後

役にたった場合はGithubのStarや使ったよというメッセージを貰えると嬉しいです!

そもそも作った理由はエディタでマテリアルを使って自由に色々なテクスチャ配列を作りたかったため.
面白い使い方やもっと良い機能案があればご連絡ください.


以上...