Specialize Compositon Arc - Bug (or expected behaviour)?


I was playing around with a specialize composition arc setup and ran into the following behaviour:

The specialize stops working when I have two levels of “nested-ness”, so two levels of payloads/references. If I have just one level, it behaves as expected.
The even stranger thing is, that if I don’t change the prim path location of the prim that has the reference, it doesn’t break. So it seems like that after two levels some namespace mapping is not valid? It happens with both “internal” (arc points to a prim within the asset
and “external” specializes (arc point to a prim outside of the asset root prim) (see the examples below):

Here is a Houdini .hip file showing the problem (I had to .zip it due to .hipnc not being allowed here):
CompositionSpecializeBug.zip (9.2 KB)

Here is the USD content from the Houdini scene as .usda files:
Robot.zip (4.3 KB)

Files that show the problem start with “VIEW_”, view them in UsdView or Houdini, and select the CorrodedMetal prim and check the properties.

I’d expect the “specialize” arc to work the same way in terms of recursive-ness as the “inherit” arc, but this does not seem to be the case.

Is this intended or a bug? (If yes I can file a GitHub bug.)

Any pointers would be highly appreciated :slight_smile:


Hey @LucaScheller, at first glance this looks like a bug. I wouldn’t expect multiple levels of referencing/payloading to change the strength ordering like this. If you wouldn’t mind filing that bug on GitHub that’d be super helpful. Thanks!

  • Sunya

Here you go: Specialize compositon arc fais to work with multi-level referencing. · Issue #2971 · PixarAnimationStudios/OpenUSD · GitHub

Thanks for taking the time to respond!