Keep Mesh Pivot Point AND World Location

I want to preserve the location and pivot point of each mesh after dragging it into the editor.

I’m building an archviz scene with hundreds of meshes and don’t want to eyeball everything.

Meshes are being exported from Blender in .fbx format.

I’ve tried exporting multiple meshes in a single .fbx then → “Import into level”. This works, but if I edit one of the meshes that was in the group in Blender then “Reimport”, UE crashes.

Alternatively, if I import all meshes individually then drag them into the editor, I have no easy way of positioning them exactly where they were in my Blender scene.

This has really been holding me back from advancing in UE. Any help would be appreciated.

Hi, I understand your trouble. Unreal, after all, is still a game engine. So the scene is made from many assets that are created in Blender or other 3d tools and imported one by one into Unreal with their pivot at the center of the object most of the times. Then in Unreal an artist puts them in place. Reimporting them is no problem that way.

Why am I telling you that? - Because it helps understand how Unreal works. It’s not meant to be a render engine where the scene is built somewhere else and then imported as a whole. Although this is possible but not common and frankly I think Unreal is a way better tool to assemble your scene than Blender or 3ds max.

Your problem is the crash. It shouldn’t crash. Is there a message in the log why it crashes?

I usually try to place all meshes at 0,0,0 in Unreal if I get a large scene that is already assembled and I only have to import it into Unreal. This way you always know where the meshes sit. If that’s not possible you can duplicate one of the meshes in the scene and then replace it with another one so the other one sits in the same relative position.

I appreciate your response. While that may be a good workflow for a large open world game, where there are many organic elements, I don’t think it’s suitable for archviz - which UE has templates for.

Imagine a highrise building with dozens of doors. Each door needs to be placed precisely on its hinge so it rotates correctly - it has both a world space location and a pivot point.

Imagine having to precisely place every one of those doors in UE by hand after zeroing its hinge in Blender. It’s just not practical at all.

I just think world space location and pivot point should be independent of each other - like they are in Unity. .fbx supports this but UE doesn’t implement it.

Regarding the crash, I’m still not sure. Someone suggested installing the “Editor Symbols for Debugging” in another post to see a clearer crash report. I’ll give that a try.

I just discovered that you can select a single object from an imported .fbx scene and its individual pivot point is intact. You can either double click the object in scene or select it from the “Details” window. I have no idea how I missed something so simple…

Unreal Engine isn’t even remotely better than blender for positioning objects in a scene. It’s a terrible unreal engine bug that imports the center of origin in the middle of the stage and in this way maintains the global position of the object… In engines like Godot Engine it doesn’t work like that, because it is very necessary that the imported objects maintain its global position and the pivot point at its original location.

1 Like
1 Like

I’m not sure if this is relevant, but there is a property in the Actor class called ‘Pivot Offset.’ Have you experimented with this?

I never saw that as a bug. It doesn’t effect the way I’m working at all. I see max or blender as a modelling tool. I’m assembling the scene in unreal. I doubt it will ever change otherwise it would have already.

I have a script for 3DSMax that moves the selected objects to 0,0,0, exports as FBX, then moves them back to their position in Max. A second button in the script copys the names of the objects and their world position to the clipboard, which can be pasted directly into the editor of UE5.

This places a cube with the corresponding object name at the exact world position as it had in Max. You then can replace the static mesh of the cube actor with the static mesh you exported from Max. Everything is now in exactly the same place as it was in Max, with the pivot point preserved.

If anyone wants this script let me know, although I have no solution for the Blender workflow

Hello! very interesting solution, could you share it with me?
ingibitor900@gmail.com
thx!