Collecting usd dependencies

   394   1   0
User Avatar
Member
143 posts
Joined: 6月 2019
Online
I'm trying to wrap my head around dependencies on composed stage.

Currently I have two orthogonal goals.
1. Save composed stage and collect locally all its dependencies so it's self-contained.
2. Build a recursive dependency tree of an asset (final one that is not meant to be used in composition) to consume it in external environment.

What can I do in Solaris here without custom scripts?

For the first goal I've tried Copy All Assets to Referencing Layer Directory processor on flattened stage. The main problem it's collecting dependencies inside one directory, so in my case it clashes all the time (same names across different textures). Is there a way to customize output directory further? For example, for flattened stage I could use prototype prim path that uses asset as a subdirectory. Flattened prototypes seem smart and this could minimize clashes.

Also if you use Component Builder you have thumbnail in asset info. This thumbnail recognized as dependency which is a bit weird. For me it's an edit time stuff that shouldn't leak. Not sure, but I think asset info shouldn't be used for dependency track except payloadAssetDependencies field. This is even defined in asset info schema: https://openusd.org/release/glossary.html#usdglossary-assetinfo [openusd.org]

For the second goal I guess the question is if I write custom output processor, does it walk recursively all layers and references/payloads. Is it even possible? Currently I have a feeling that at least for payloads the depth is basically one.

Would love to hear any suggestions or insights. Thanks in advance
User Avatar
Member
22 posts
Joined: 9月 2012
Offline
I'm interested in the same question. Seams like something that should be build in into USD ROP. "Copy All Assets to Referencing Layer Directory" doesn't copy any textures that I reference in Karma Builder shader. It only copy textures from COPs for me.

Edit 2025.07.07 12:25PM: I figure out the problem. The order of Output Processor matters. "Use Relative Path" should come after "Copy All Assets...".

Also I found where those scripts are located "C:\Program Files\Side Effects Software\Houdini 20.0.547\houdini\husdplugins\outputprocessors"

I wonder if you can make your own base on default localizeassets.pythat will create sub-folders to avoid name collisions.
Edited by kif11 - 2025年7月7日 03:32:41
  • Quick Links