Trouble with using USD for collaboration, overwriting models in Unreal

Hi, we’re working on a digital twin and we just started converting our models to .usd.
Our models are buildings which each has its own .usd file.
I can import a building as a .usd stage actor, and then import them in as .uassets.
Once I’ve done this I apply materials to the building, and put the static mesh in my scene.
But I’ve gone back to the model to do some changes and I’m wondering what the best way is to updating those changes to my static mesh in Unreal. Now after I’ve made the changes I have to import the .usd once more and then import it again as a .uasset, but it won’t override my existing mesh, so I have to apply all the materials once more…

My question is; how can I make this as modular as possible?
Say I have my mesh from .usd with applied materials, if one of my coworkers makes a change to the original model, how can I update that in Unreal without having to re-do a bunch of work?


The Omniverse USD plugin allows you to browse a Nucleus server to open USD files in the Unreal editor by double clicking on them. Technically the plugin is importing them, but you can think of it as opening because we allow you to edit the USD stage (xforms, materials). You can apply MDL materials from a server to the mesh, then save the USD using a right click menu from the Content Browser.

  • Double click a USD file to open it in the Unreal viewport
  • Find an MDL material in the Content Browser and apply it to the mesh. A material in the regular Unreal /Content folder that is not resident on an Omniverse server will not work correctly, it must be an MDL from the Nucleus server.
  • Find your open USD file in the Content Browser and Save it to Omniverse using the right mouse click menu.
  • At this point your USD model, resident on the Omniverse Nucleus server, will have the changes that were applied in Unreal. I opened the chair in Omniverse Create to demonstrate:

Also, note that I dropped a light into the stage so that the chair wasn’t too dark to see.

You could also do this LIVE between different Connectors and Omniverse Create, where the change to the model would immediately be seen.

Simple docs for saving USD files in Unreal

Let us know if this will meet your needs. If not, then let’s keep the discussion going.

Thank you so much for replying.
Yea, this is the method I first tried and it somewhat worked, that the material needs to be an mdl is something I wasn’t aware of, thanks.

If I’ve done all of this above, to get the building out in my world for use - do I then use the Building.usd directly from the Nucleus server? Or should I use the USD Stage import? That part confuses me a bit.

It all depends where you need to use your Building.usd. If you want to edit and use it as USD content (in Create, Blender, Maya, Max, etc) then you’d open Building.usd and leave it as USD. If you need it to exist as part of a packaged Unreal project the Epic USDImporter allows you to import USD assets and MDL files. We may be working on an “import to uasset” path with the Omniverse USD plugins, but we don’t have any concrete plans yet.

Okay, but lets say I use the USDImporter to convert the .usd to .assets in my project, what is then the easiest way to update that file in Unreal? The last time I tried this method I had to remove the last .uasset and then place in the updated one, having to reapply textures, positions, blueprints ect -