Best practise for assembling larger structures from static meshes?

I’m working on a project which has a lot of environment content which is ultimately constructed from the same assets (planks, posts, wall segments, etc). I’m wondering whether we would be better off exporting/importing these individual elements as their own static meshes and assembling the structures in-engine. I feel as though from a level design perspective this gives us a lot more control. However, I’m concerned that there might be other performance or engine limitations which would arise from doing this.

Essentially, my question here is… Is there any negative trade-off with assembling larger structures from base components (static meshes) rather than exporting the entire pre-assembled structure from the 3D package of choice.

The only area I think would be different is collision and materials. I would be applying the same material to multiple static meshes, instead of one material to one static mesh. Collision would be applied on a per-component basis, rather than the entire structure, also.

The benefits would be that each component can be treated as such in a blueprint actor for the structure. We could animate or destroy individual components of the structure. We can create slight alterations to each structure (or even add randomisation through blueprints where needed. Obviously making use of these benefits comes with their own costs, but I’m more interested to know if there is a cost associated with the simple act of assembling structures in-engine through blueprints (or ‘loose’ static mesh placement in the level).

Anyway, just throwing this question out there to see if there is anyone with information about something like this.

Thanks!

The big tradeoff is going to be performance. If you are populating the environment with large structures exported from a 3D app that are made up of small repeated elements, the small pieces will be all unique geometry when they could be instances.

I would as much as possible construct in the editor using instances.

You can build materials that modify themselves in some way per instance to make the instances look unique.

You can create modular objects that have no collision or physics or strip them of their collision and physics, and build simplified collision and physics for the larger structures you create in editor from these smaller objects. You can still have versions of the small objects that have their own collision and physics properties if necessary.