[Request] Data streaming by Layer/Tag

It would beneficial if we could stream data in level based on Layers on Tags.

Instead of streaming level in or out, we could choose which elements of level to stream based on to which layer they belong to or what tags they have assigned.

It would be beneficial, because often all what is needed to load are some background objects and terrain in beetween, all smaller proprs are not needed, because they can be hardly noice by player over big distances. It could be achieved by assining objects to load to specific layers or tags.

How would tags work ? Each object on scene could have assigned tag. Object could be called by tag with Blueprints or Code. It could be used to finding/selection object based on tag and then executing some action on them trouch blueprints, or setup interaction between objects that have specific tags assigned.

Actors already have the concept of Tags which can be specified in the property details panel. There is a HasTag function and if you want to check if a given Actor has a tag. You could wrap that up with Get All Actors of Class inside a macro if you wanted to make a find by tag function in blueprints.

Streaming in a subset of actors in a level is not something that is reasonable to do. The relationship between a level and its actors is not conducive to loading partial sets in different batches. If you wanted a behavior similar to what you’re describing I would probably look at layering a few streaming levels with each set of actors you’d want to bring in independent chunks and stream each level in at the point you were thinking you’d specify the tagged set of actors to be loaded.

Cryengine have a feature called Layer Streaming, it is more general used that unlike Unreal separate the Level Streaming function and in editor only layer control hidden and shown. Layer Streaming can perform level streaming, in editor group control, and even code control at the real time, and it can import export for cooperate purpose, very easy and straight forward. Control the actor by tag is not very handy and GetAllActorClass also affect the performance, hope Unreal can have the same solution like Cryengine’s.