Maybe this is helpful to others or to the Unreal Studio team?
Feel free to comment with any improvements, suggestions, best practices, or different experiences you might have!
(Note: I don’t claim this is a good or correct or model workflow - just claiming its our current one)
- we are using Revit but only for the very basic floorplan - not even using the windows, just the “hole in the wall” window etc.
- exporting to fbx and manually cleaning the mesh and adding details in Max and/or Blender
- assembling the scene in Max, materials are just base color textures
- using Datasmith to export meshes and basic materials to Unreal (no lights or cameras)
- In Unreal we take convert the exported materials to be instances of our base materials and swap out/delete the imported vray materials.
- Next we add the SunPosition plugin and set that up.
- We add lights and assign ies profiles,
- We go around and add all our interaction components to the imported mesh actors (ie paint change, light switches, doors, etc) and set their mobility based on their interaction type.
- Do build and test (aka goto step 2)
Some notes:
-
Overall we are very happy with this Unreal Studio tools, features, etc. and especially the current licensing terms.
-
We are mostly coming from a game development background rather than an architecture background and have C++ developers (myself included) and 3D modelers on staff
-
Unreal Studio is allowing us to grow into a new business area and we look forward to giving back to the community. As we develop our platform we will be releasing various models, code snippets, tutorials, etc under the CC0 (public domain) license.
-
Doing Revit->Unreal seems mostly useful if you either have a very large library of Revit meshes or your needs are very typical/generic. For our use its much easier to convey the basic floorplan using a Revit model and details using photos or artwork and then do the details in a mesh modeling program.
-
If the Revit->Unreal meshes are similar to the Revit->FBX meshes expect non-optimal geometry. Not totally insane, but definately not great.
-
When we import from Revit->Max/Blender we basically have to replace everything unless the revit model had all walls broken up by room due to our repainting feature expecting each room or each wall to be a separate mesh.
-
having a Revit import of the basic floorplan is a huge help with ensuring correct dimensions and ensuring things like window sil height are included. With just a 2d floorplan details like this are often missed, but with a Revit 3d floorplan we can ensure this info has been recorded.
-
Revit LT, I think, is probably enough features for what we are doing. I don’t know if it supports the datasmith plugin but I do think it supports FBX export so could be used in our current Revit->Max/Blender->UE4 workflow
-
If we use Blender we have to export from Blender to FBX, import that into Max and then use Datasmith from there.
-
I would LOVE a Cycles or Eevee (Blender rendering engines) material to UE4 material converter.
-
If you are going for super nice (and efficient) materials it seems better to use a Substance->UE4 worflow rather than a Substance->vray->UE4 workflow - espeically if you make heavy use of material instances and dynamic material instances (like we do). Better just to set a basic texture in Max so the person doing the UE4 import knows which materials go where, but swap them out in UE4.
-
I look forward to improvements in the sun positioning plugin! <3
-
We will be soon looking into if the python scripting can automate some of this process - for example swapping vray imported materials with ue4 materials based on their name and setting up our interaction components based on the names of imported meshes.
-
We have not figured out a good workflow for modifying specific already imported meshes in Max and reimporting. Because we modify almost everything after import there is a sense that reimporting the Datasmith file will overwrite our changes on everything so we are doing a new datamsith export with only the changed meshes, importing that into a different folder, then manually swapping out the meshes for the new imported ones.
-
I noticed today that Instanced meshes from Max say (Instanced) in UE4 - is this accurate and its actually an instanced mesh in UE4? If so that is very very cool.