Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What is going on with this article?
@EGJ-Nori_Shinoyama

[UE4]Custom Primitive Dataを使ってAuto Instancing機能を活用する

More than 1 year has passed since last update.

image.png
UE4.23からAuto Instancing機能が搭載され、上記の様に同一マテリアルの同一オブジェクトをレンダリングする際にインスタンシングされる(一つのドローコールにまとめる)様になりました。

下図の様にドローコールがLOD単位でひとまとめにされます。便利。
image.png

しかし、以下の様にマテリアルインスタンスを各オブジェクトに設定するとインスタンシングされません。(めんどくさかったので先頭の6つのオブジェクトしかやっていません。)
image.png
image.png

参考: 使用した親マテリアル
image.png
この様に異なったマテリアルインスタンスにしてしまうとインスタンス化はできないのですが、それだけだとちょっとパラメータが違うだけのオブジェクト達も常に別々にドローコールされてしまいもったいないです。UE4ではそれを解決するCustom Primitive Dataという手法を用意しています。

親マテリアルの変数を選択すると設定に、"Use Custom Primitive Data"という項目があります。こちらにチェックをいれます。
image.png

するとマテリアルの変数がCustom Primitive Dataという名前に変わります。
image.png

このCustom Primitive Dataはマテリアル単位で設定するのではなく、各Mesh Component単位で値を設定します。それぞれのメッシュのRenderingカテゴリの中に"Custom Primitive Data"という項目があると思うので、そこに今回設定したい色をそれぞれ設定します。 (この項目は4.24から。4.23ではC++/BPのみから設定可能?)
image.png

すると、別々のマテリアルインスタンスにすることなく、下図のように一つのマテリアルを用いながらも、Custom Primitive Dataをマテリアル内で参照することで、マテリアルインスタンスと同様の効果を得ることができます。
image.png

同一マテリアルなので、下図のようにAuto Instancingが機能しており、それぞれのメッシュのパラメータが違っていてもドローコールがまとめられています!
image.png

ご参考になれば幸いです。

7
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
EGJ-Nori_Shinoyama
Epic Games Japan, Developer Relations Lead 篠山範明 ※免責事項※ 可能な限り正確な情報を掲載するよう努めていますが、必ずしも正確性を保証するものではありません。掲載された内容によって生じた直接的、間接的な損害に対し、一切の責任を負いかねますので、ご了承ください。
epicgamesjapan
Unreal Engine の提供、開発サポートを行っています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
7
Help us understand the problem. What is going on with this article?