In previous versions of Unreal Engine (up to 5.5), exporting a LevelSequence as USD with Level included would automatically generate an Assets folder in the same directory as the exported USDs for sequence and level. This structure allowed for clean, relative referencing between the sequence, level, and associated assets.
In the current version, users can manually specify the location of the Assets folder. However, if a user tries to replicate the previous directory structure—placing the Assets folder in the same directory as the level and sequence—the resulting references are either non-relative or point from the Unreal binary (.exe) location. This breaks the portability and clarity of the exported data.
Additionally, we’ve encountered another significant issue. Unlike the previous version, which preserved the original folder hierarchy from the Content Browser, the current implementation exports all assets into a flat Assets folder without subfolders. This loss of structure makes asset management and organization more difficult. While this can be nice to have it would be best to keep it optional.
Request:
Would it be possible to fix/restore the following functionality?
Support for relative paths when placing the Assets folder in the same directory as the level and sequence (as in previous versions).
Preservation of the original folder hierarchy within the Assets folder during USD export.
These features/bugs are really crutial for our USD pipeline.
Hit export level sequence and set type USDA and destination to for example C:/unreal_export/{sequence_name}.usda
Updating AssetFolder variable in export options will result in:
Leaving value as it is will result in level usda with invalid reference paths for prims referencing things from Assets. Leading from {engine_installation_folder}/Engine/Binaries/Win64 to the export location (E.g. ../../../../../unreal_export/TestExportLevel.usda)
Putting absolute path to export location (E.g. C:/unreal_export/Assets) will result in absolute path in the level usda prim references.
Putting relative path explicitly (./Assets) will result in correct reference paths in level usda but the assets will be saved next to the engine binaries ({engine_installation_folder}/Engine/Binaries/Win64)
I’ve tested your repro steps in 5.6 and up and I do get asset paths like in your screenshot but I’m not sure why you say it’s invalid. I’ve moved the export folder to other locations and the stage can still load the referenced assets (also tested with usdview). The path looks different from previous version so that might be unintended and I’ll log a jira to investigate that further, but there’s no error when loading the exported usda. For reference, in the code it still automatically computes an Assets folder next to the exported usda file (see attached image) so I’m not sure why you would need to manually specify the location of the Asset Folder to replicate the previous directory structure (placing the Assets folder in the same directory as the level and sequence) since it already does that.[Image Removed]As for why the assets are exported flat in the Asset Folder, that was intended to fix an issue where the asset path could become too long if the assets were organized in too deep folders with long names in the Content Browser and they would not be loadable in USD. We’ll see if we can add an option to re-introduce the previous folder hierarchy to the export.
Thank you for your response! It looks like the references work correctly at first. However, if you move the entire exported folder to a different location — for example, if you zip it and send it to someone else — the references break.
My exported folder was `D:\tmp\ExportTest` and then I moved everything to `D:\tmp\ExportTestValidate` and I got this warning:
Warning: in _ReportErrors at line 3309 of C:\a\OpenUSD\OpenUSD\pxr\usd\usd\stage.cpp -- In </Root/SM_SkySphere>: Could not open asset @D:/tmp/ExportTest/Assets/SM_SkySphere.usda@ for reference introduced by @D:/tmp/ExportTestValidate/TestExportLevel.usda@</Root/SM_SkySphere>. (instantiating stage on stage @D:/tmp/ExportTestValidate/TestExportLevel.usda@ <0000020EA43B6050>) Warning: in _ReportErrors at line 3309 of C:\a\OpenUSD\OpenUSD\pxr\usd\usd\stage.cpp -- In </Root/Floor>: Could not open asset @D:/tmp/ExportTest/Assets/SM_Template_Map_Floor.usda@ for reference introduced by @D:/tmp/ExportTestValidate/TestExportLevel.usda@</Root/Floor>. (instantiating stage on stage @D:/tmp/ExportTestValidate/TestExportLevel.usda@ <0000020EA43B6050>)The script I have used for the test:
Thanks for sharing your export. I can see the same error after exporting to the same location as you and renaming the export folder. I didn’t see this behavior before when I exported to another deeper location and moved the export folder elsewhere, so it seems where it was first exported has an effect… I’ve added this info to the Jira I logged.
thank you for your time. May I just ask if this Jira ticket is public? If so, could you please share the link with us so we can keep track of its current status?