Mirror building properly

Hi, what’s the easiest workaround to mirror this church? The Unreal Mirror Tool doesn’t work well for me. If I use the option to write into the input object, it creates a random mess of objects. If I choose to create new objects, the mirroring works fine, but the mirrored mesh keeps the original pivot point, which makes it hard to edit. If the pivot were mirrored too, that would be perfect.
Am I missing something, or could you suggest a better workaround?

I always advise to modify source assets in the program they were made in. If it’s a mesh, get a program specialized for meshes. That way the source file and the UAsset never mismatch, and you get the proper editor for the data type.

That aside, I don’t know of any mirror method in Unreal Engine. On some panels it is possible to alter the pivot point of a selected object (I’m aware it can be done on the Level panel). If you feel comfortable with a 3D editor like Blender, you can load the model into blender and activate its mirror modifier in a few clicks. There you can also easily set the pivot point, and export the mesh back into Unreal Engine.

I thought about exporting to Blender, but I’m not sure how to export multiple meshes. It’s built modularly, so each part of the wall and each pillar is made by hand from a bunch of assets from an asset pack. I’m not sure how to handle that in Blender.

I see, did the asset pack seller give the source files for the UAssets as well? Otherwise getting it to blender and back introduces a bunch of extra steps per model part.

It could be easier to use the UAssets as provided in the pack and finding a way to mirror in Unreal with adapted pivot points. Because the “full model” you say is built from parts like walls and pillars, It would make sense not to alter the pivot point of each part itself, but that you’d be able to set a pivot point per mirrored part on your level. (because one pillar might not mirror like another pillar in another church or room). So what you are looking for, is how to place a part on the level, then mirror that instance of that part individually on the level editor. Alternatively you might be able to do the same within an Actor type blueprint asset, so that you create a church building actor including all its parts.

Thing is, I’m not familiar with editing the pivot point or doing a mirror within Unreal Engine itself, as I work with source files most of the time. And I wonder, how does the seller of the asset pack approach this with his parts?

It’s a pack of FBX files.

I was thinking about writing a script that mirrors objects around a chosen point by transposing their location relative to that vector. Then, based on the angle, it would decide whether to flip on the X or Y axis. Since it’s Gothic style, all the angles are right angles, so everything is aligned in increments or decrements of 90° offset by -50°. But i dont know if that isnt some overcomplicated reinventing of wheel.

Probably. I’m testing something rn in the editor. It’s a good distraction because FAB is stressing me out.

Well isn’t this surprisingly hard to do in a blueprint editor for an Actor. I don’t see a mirror or flip option. Also if you try to duplicate a hierarchy of components (“side1” + children) (by copy paste or duplicate), the entire hierarchy is lost and components are dumped under the wrong component

I did find however, that if on this example I scale Y of “Side1” by -1, it mirrors. If you’re going to write a script, you might just want to put all components under a single “side” scene component (see how that pivot point is at 0,0,0), copy that hierarchy (if it works properly by code), then scale the newly created “side” component Y by -1. That should flip its entire hierarchy. Because I did this in a blueprint asset and not on the level, the result is that you can place the actor in a level fully built without further effort.

Note that it does even behave glitchy when Y scale is not 1 or -1:

I found the most elegant solution:

  1. Create a pivot point (ideally on a wall).
  2. Select all the meshes you want to mirror.
  3. Copy and paste them.
  4. Right-click → Transform → Mirror on the desired axis (e.g., Mirror X).

Note: Ideally, the mirrored meshes should be aligned correctly relative to the world origin for the best results.

My solution: