Question about modular design and collision setup

I’m trying to create a building with several modular elements (wall piece, corner piece, and the like). Depending on the size and complexity of the building, it could be composed of literally 100s of these modular pieces. I have a few questions regarding this design:

  1. Is this actually a good design for good performance? There could be lots of polygons that are never displayed (unless somehow this is accounted for in the modular pieces)
  2. For convenience I duplicate and group 4-6 wall pieces so it is easier to build large blocks of walls. Eventually there would be groups of groups for convenience. Are there any issues with this approach when importing this hierarchy into the engine?
  3. I could be doing something wrong but Unreal doesn’t seem to be importing custom collision when the main model is made up of lots of pieces and groups like I described above. For example, I have a group named House_01 that’s the modular building and a separate custom mesh called UCX_House_01 for collision. When I export these 2 objects and import into the engine, it seems to be ignoring the custom collision mesh (I tried House and UCX_House as well as House and UCX_House_01 as well to make sure I’m not using the wrong names). Nothing seems to work. The only way I got this to work is by converting all the pieces and groups making up the house into a single Editable Poly (House_01) and then export both the meshes. What am I missing here?

Any other useful information and pointers here would be greatly appreciated.

  1. you have to take the name from the mesh!! not the group name -> so you will have to go into the group - get all names - add the names to the collision models

1 Certainly

Performance issues is a case of cause and effect and is something that you can’t predict as to a general rule. In most cases you have to track it down based on the context of what was done and my rule of thumb is to get a design into the engine as soon as possible just to see what happens.

Once you have something in UE4 it then gives you the opportunity to see visually how you can break down a building, for example, in to smaller sub-components as part of the whole using the one big block of polygons as a proxy.

The trick here is each instance of the same object has the same foot print of copy so if say 100 windows of the building use the same kind of window, and you copy a modular version 100 times and the performance impact will be equal to the single window.

2 In general this is how UE4 wants you to work by using and importing secondary assets that has abilities that UE4 does not have or does not support out of the box. This is why full FBX support is so important, as it is a full feature DCC wrapper, which gives one access to a much larger asset pool of ready made models as well as tool sets already available.

3 Collision support in UE4 in my opinion is much better than UDK but does take a bit of thinking of how to best take advantage of this requirement.

As an example, and with in a context, I’ve made an entire environment of where I know I want the players to stay with in that environment and I encased the entire area with a single collision mesh and exported it using a proxy object. Keep in mind a said the name of the collision object has to match the name of the object so I called the proxy “collision” and the collision mesh “UCX_collision.

Overall though UE4 is Star Trek technology that takes advantage of a modular approach be it in assets or applications that has been available for years and Epic helping Blender to improve it’s connectivity is a better approach than trying to include such features with in the edit environment.

So the short answer is yes your going in the right direction and every thing else is just solving the context of the problem with in the moment.

Last bit of advice.

Learn and understand the difference between top down or bottom up design. Google it.

It’s a rather import subject as anytime you talk to someone they are thinking in one of the two possible directions with in a design and usually you can figure out how to build something from the bottom up from a feature that was added from the top down.

Thanks so much for all the responses as well as the advice. Very helpful and much appreciated! I have some follow up questions.

Following up on my original question and design, I might have a small room made up of these pieces: corner_piece_001, corner_piece_002, corner_piece_003, corner_piece_004, wall_piece_001, wall_piece_002, and so on. So the room might be built with 20 modular pieces (majority of them instanced from a wall_piece). In this case there also need to be 20 collision meshes right? (UCX_wall_piece_001, UCX_wall_piece_002, etc)

In this case it seems like it might be easier to build a script that can duplicate each mesh and renamed it per the collision naming conventions. Does that make sense?

Yupo, some good scripts out there already :slight_smile:
://www.scriptspot/3ds-/scripts/ucx-collision-creator