Improvement of processing speed of Blueprints arranged in large numbers

A large number of Blueprints are placed as Child Actors in the construction script. It is assembled so that the shape changes with reference to the placed position information. I want to put out about 4000 in number. At runtime, the closer the camera is, the heavier the Blueprint Actor is, while the farther the distance is, the lighter the Blueprint Actor is. Display switching is performed using Set Actor Hidden In Game in Bluprint. It works without any problem when the number of arrangements is about 500, but the processing becomes very heavy as the number increases.

Does the Blueprint placed even when hidden at runtime place a processing load?

I would like to know if there is an improvement method.

Blueprints are about 10 time slower then native code, at least thats what Epic is saying. If performance of blueprint does not cut then you have to options, try enabling nativisation, which convert blueprint in to C++ code:

https://docs.unrealengine.com/en-US/Engine/Blueprints/TechnicalGuide/NativizingBlueprints/index.html

Problem is it’s not perfect and it only happens on during packaging, you will see effects only in packaged game

Or go full C++ and move some heavy code from blueprint to C++.

If actors dont have blueprint code that nothing you can help, in that case actor runs on full C++ (engine code) and there other preformance reason.

Same if you talking about spawning actors, spawning is heavy process and if you loop it gonna do it during single frame and will definitely freeze, in that case either spread spawning in to multiple frames or hide freeze in artisitc way (make it so player don’t notice that game froze)

thank you for your answer.

The objects are just placed and there is nothing special to do at runtime. Objects are placed as Child Actors in the construction. The tree is procedurally generated using Spline mesh, so the capacity is reasonably large.
Only trees close to the camera use procedurally generated trees, and far away a static mesh is displayed. Therefore, Draw has no problem, but even if it is not displayed, the processing of the object continues or the processing of the CPU is very heavy. Please let me know if there is a way to stop the processing that the object is doing at the same time as hiding.

Please let me know if there is a way to stop the processing of Child Actor like “gameObject.SetActive (false);” of Unity.

That would be Tick Enabled in Unreal.

You can try using Instanced Static Meshes instead of child actors and components, if they don’t need to interact or behave independently.

Also keep in mind that AFAIK culling can’t cut out any of the children if they’re all part of the same actor. Making them separate actors might allow the engine to cull them from rendering when they’re not visible or at least not in the frustum.