I have a question on the best practice for scene building in UE4. In our current engine our artists could build their entire scene in 3ds max and import it “as is”. Every mesh would have their normal pivot point somewhere in the mesh and extra data would give the position and orientation of the objects. Now it seems we cannot do that out of the box with Unreal Engine 4, so 1 guy proposed to put the pivot of every mesh to the world’s origin (0, 0, 0 with no orientation) so when importing a mesh it would “fall in place” directly. My instincts tells me it is a bad idea but I’m not sure if I’m right and why. Perhaps there will be issues with culling bounding box, or physic processing ?
You can do that, however if you have meshes that get reused (like say a pillar, or props like chairs and stuff like that) then it means that those copies will be loaded into memory. Typical process is that you would import one into UE4 and then place copies of it into your scene, they would all reference the single object from the content browser which means it would only keep one in memory. If the object is low-poly, then it’s not a big deal because the memory use isn’t very much, but in certain cases it can save a lot of memory.
There are some tools that can help you to layout your scene in 3ds Max and then place your objects into UE4 in the same position so that you can use copies like that. I made a script for it here: 3ds Max Object Placement Scripts - Community Content, Tools and Tutorials - Unreal Engine Forums
And I think there was another 3ds Max script/plugin that’s a bit more comprehensive, it’s somewhere here on the forums but I can’t remember the thread title.
Also consider that as far as I know you cannot alter the pivot point of an object when exporting from Max to Unreal, it will always be World 0,0,0 no matter what you set (you might be able to change it manually once you imported it to Unreal but it’s a pain). It could also rise problems when you want to reuse assets from your imported scene, since the pivot point of the object you want to reuse might be far away from the object itsef (being at 0,0,0), depending on the size of your scene. I would recommend using the methold what darthviper107 suggested (import assets one by one and instance them in the engine), because this seems to be the supported workflow by the engine developers.
Right, I didn’t think about asset re-usability, it is a strong argument.
I’ll check out the scripts that darthviper is talking about to help with the import, I’ll see what I can do with it.