Unreal 4.24 Universal Scene Description (USD) support

Starting up a thread here to explore 4.24 preview’s USD support.

Just beginning the testing process - here’s an initial test I’ve done so far:

  • Create a new project in UE4.24 and enable the USD Importer plugin

  • USD Stage tab will now be available from the Window menu.

  • From within the USD Stage tab, using File | Open to open Pixar’s USD Kitchen Set scene (found at Downloads) opens a live USD scene which can be seen in level.

  • These are USD assets viewable in Unreal.

  • Actions | Import can be used to import the USD assets as a collection of skeletal meshes.

  • Testing with City Set failed. (Issue UE-84696)

  • Testing with the Human Female USDSkel example opened successfully but treated her as a static mesh. Will be experimenting with this some more.

Is anyone aware of any existing documentation on the plugin so far? Otherwise for those few of us probably experimenting with this right now, let’s share what we figure out.

1 Like

Instanced city set issue logged as Unreal Engine Issues and Bug Tracker (UE-84696)

following up the thread, but I am with work to the roof and can’t check this right now. Hopefully soon I will take a look into this aswel, since I have high interest on this tech successfully integrated.

hopefully some unreal dev can add some notes here for users interested in USD!!

I’m really hoping this would be able to maybe work seamlessly with the new solaris in the upcoming houdni
would be nice to have some cross platform parity with instances in tact!

I have yet to try any kind of USD file myself, since I don’t code and just play around with tools available to users.

That’s exactly what I’m planning to do - when I run tests on it I’ll just post what I discover, and we can start to document and figure this out together.

Interesting… Will need to check this out.

I’m also highly interested in this!

I’d even like to know what the plan is regarding the USDLevelInfo node vs. the UsdStageActor.

A few things I’ve found:

  • You can enable/disable local edits in Unreal by:

    • right-click the *-session.usd layer in the Layers panel, and select “Edit”.

    • make some changes on individual parts of the USD stage.

    • right-click the original root layer .usd file in the Layers panel, and select “Edit”.

    • toggle the eyeball next to the *-session.usd layer to toggle the changes you just made

  • If you right-click the *-session.usd layer, you can add other USD files as sublayers.

    • they’ll show in the UI but I’ve found their actual behaviour is unpredictable

Anyone else tried banging on layering/composition within Unreal? I’d love to be able to export the session layer Unreal is tracking.

Im interested too. Exploring USD right now.

I’m trying it on macOS (fully loaded iMacPro), and while I see the Settings->Plugins->Importers->USD Importer and I toggle it on and restart Unreal, I don’t see anything “USD” under my Windows menu. Any tips on what exactly I should be looking for? Excited to start throwing some USD assets into the mix…

Is there any information about using Unreal Shaders with USD? There could be a primvar for a shader name, that unreal would look for and use and default back to display color if it cant find any.

@anonymous_user_50a63268

I am having the exact same issue. I tried reinstalling UE4 and using different project templates but nothing works. I am using Mojave 10.14.6. I am also a Houdini18 user. Houdini works just fine with USD and will be my DCC of choice for USD. I am in the process of building a USD pipeline and would love for UE4 on the Mac to be my realtime app for this pipeline. Can someone please help the MacOS users. Thanks!

is anyone using a build of maya’s usd? from the autodesk maya usd?

this is what i was hoping to test unreal and solaris with

I was able to get a “USD Preview Surface” to work in unreal.

https://graphics.pixar.com/usd/docs/UsdPreviewSurface-Proposal.html

I was able to grab the USD sample from the above page, save it as a usd file in a folder. Then I made :

mat_baseColor.png
mat_clearcoat.png
mat._metallic.png

in that same folder. Loaded up the usd in the stage window and it worked.

The Clearcoat image is not being used but it’s a start.

It would be great if there was a automatic way to swap to unreal shaders in the scene if the names matched. Hopefully someday.

Hi,

A couple of pointers:

City Set is using point instancers. Support for those is coming in the next release.

If you load the “walk” or “keep alive” version of the Human Female, when you go into the details of the USDStage Actor, you will see a level sequence. It will be setup to match the start time and end time of the stage. You can play or scrub the level sequence to change the USD time code and see the animation playing.

We don’t currently ship binaries of the USD SDK for Mac and Linux. This is something that we are looking at. Linux support has been commited to our dev-virtualproduction branch on GitHub, see commit 30ec98a045677ed48b83186b53e612a1059683dc and 7f4baa1fb96afd950bb753993723f0f3b2dc75b2.

We currently support diffuseColor, metallic, roughness and opacity as inputs for the preview surface. We also load displayColors as vertex colors and assign a vertex color material if a USD Shade Material isn’t available.

We’re still actively working on our USD integration. Thanks for your interest!

yay a dev saw the thread!

Hi JayemD

is the point instancer coming out in 4.25? or some point release? or is it on github for some kinda daily build for USD?
also, will there be a way for say, foliage or something work as output USD?
same question about landscapes for USD as well

thanks!

@JayemD Where exactly does the USD Importer expect to find the USD binaries? For those of us on macOS that feel adventurous, we can use our USD binaries we’ve downloaded already or compiled ourselves. Just need to know where to put them!

Not working with Houdini generated scenes. Syntax error on “append payload” string. If I manually replace “payload” to “references” in *.usda file, everything is ok.

Yes point instancer support is in the development stream right now so it will make it in 4.25.
I guess by USD output you mean exporting UE foliage / landscape to USD? Right now, we’re only exporting static meshes and scene hierarchies. We’ll add more exporting capabilities in the future.

See UnrealUSDWrapper.Build.cs for how it’s setup on Win64. You’d have to mimic that for Mac.

We’re still on USD 19.01. It’s possible that Houdini is on a newer USD version. We’ll move to the latest USD SDK in the near future.

What about Hydra render delegates support. That would be very awesome

I just tried exactly the same but I always get a grey plane, could you share your .usd file?