Could someone please take a look at my workflow and tell me if there is a way to use omniverse that is better than a traditional FBX/GLTF/USD export please?
I should also add I know that I can right click on the USD in Unreals content browser and then Import USD to convert it over to a static mesh. But this removes all the benefit of using Omniverse to me. As I was hoping I could use Omniverse to build a level and place meshes in unreal to say for example block out a level for a game or for virtual production but then later down the line replace those USD files with more polished assets and just with a few clicks of an omniverse button see those changes propagate into the Unreal engine viewport. If I have to manually convert the USD to a static mesh and then place the actors again it seems pointless to use omniverse. I should just stick to using Blenders default USD export or FBX right?
Please let me know if I am missing any info as when using Omniverse and a localhost nucleus server the .USD that I get in unreal is not really usable at the moment and differs in the experience to just exporting a .USD using blenders built in USD exporter and then importing that .USD into unreal manually without Omniverse and Nucleus and that workflow does work more or less as expected as shown towards the end of the attached video capture I recorded. I can see the materials displayed as I would expect and see the material and parent material that has been generated. I would like a better way to automate the master material and the way the material instance is applied but that is another topic.
I do also realize that complex blender shaders are not supported but I can always bake textures from more complicated shader setups down to PBR if I can get this workflow going somehow.
@dirkteucher I’m happy to report that this is merely a workflow issue!
When you export the mesh + material from Blender you need to specify that the Material Prim Path be a child of the Default Prim Path — this way when a USD file is referenced by the Unreal Connector (when you drag and drop a USD asset it makes a reference) it will be find the Material prim that is bound to the mesh. When referencing USD files, the Unreal Connector currently only uses the defaultRoot as the reference prim path.
Note, I reported this issue to the Blender Connector team and they are considering a change to put the Materials prim under the defaultPrim by default.
Thank you for the detailed video and I hope you can continue to enjoy creating with Omniverse! If there are any other issues that I didn’t address please point them out to me.
First of all. Wow it is working and that is a game changer in terms of speed to transfer files from Blender to Unreal. Amazing.
I would have never guessed to change the default stage settings to “/root/Looks” , so thank you that is now doing what I was hoping it could.
I also hope you change the default settings for future updates to the Blender Omniverse exporter plugin, I am sure anyone else who tests this will have the same problem and will be scratching their heads in puzzlement.
I will also just add that if I then make changes to the mesh or material in blender and send to Omniverse and overwrite the existing USD with the new changes then in Unreal I have to go to the outliner and select the OmniverseStageActor and then in the details panel I have to click the “Use selected Asset from the content browser” next to the USD property and I have to make sure that I have the USD selected in the content browser to see my changes update in the viewport. It would be great if the changes just updated with a right click and refresh of the USD instead as it does currently with .FBX
Even so, this is a real hidden gem as it is for sending lots of files at the same time. I am sure a lot of people will want to use this workflow when they figure it out. Fantastic.