confusion about reference in USD/Solaris

   1364   2   1
User Avatar
Member
6 posts
Joined: 4月 2025
オフライン
I was following a simple USD tutorial and i ran into a weird issue that i dont understand.

here is the node grah i build






on the left side i create several meshes and use a stage manager to put them all under /set
so i have a prim structure like this
-set
    -cube
    -grid
    -rubberytoy
after that, i use a USD Rop to save it to "$HIP/geo/set.usd"

then in the middle part of the graph, i use a reference node to reference from "$HIP/geo/set.usd", and i set prim path to /shot/set, and reference prim as /set. this reference node works well, then a add a cam and some transform.
now the stage looks like this:
-shot
    -cam
    -set
        -cube
        -grid
        -rubbertoy
lastly, i use another USD ROP to save it to "$HIP/geo/shot.usd". and i set default prim to /shot.

then i was trying to reference "$HIP/geo/shot.usd" again in a new reference node. the node prompts error with






"In : Could not open asset @_Projects/asset_pipeline/geo/set.usd@ for reference introduced by @c:/Software/Houdini_Projects/asset_pipeline/geo/shot.usd@. (recomposing stage on stage @anon:000000005E76A000:LOP:rootlayer@ )
In : Could not open asset @_Projects/asset_pipeline/geo/set.usd@ for reference introduced by @c:/Software/Houdini_Projects/asset_pipeline/geo/shot.usd@. (instantiating stage on stage @c:/Software/Houdini_Projects/asset_pipeline/geo/shot.usd@ )
Targeted missing explicit primitive: /root/shot"

I am so confused why it's not working. i am basically doing the same reference as i did in the middle of the graph.

here is the houdini file
Edited by richardbao - 2025年5月22日 05:19:40

Attachments:
asset_pipeline.hiplc (264.5 KB)
Screenshot 2025-05-22 170432.png (81.3 KB)
Screenshot 2025-05-22 170808.png (126.9 KB)

User Avatar
Member
38 posts
Joined: 9月 2014
オフライン
ok.

so what you have here is a multi root level prims.
a reference is designed to bring in one root and bring it into a path.
a sublayer will allow you to bring in multiple root prims, but you cant change the prim path.

i would suggest for your set , that you make sure all your assets live behind /set, so grid3 lop's primpath should have `/set/grid3` etc.
so ideally in your scenegraph tree, you want to see that you only have one root level prim called `/set`.
once you save this usd out , you can reference in the set usd and nest its prim/primpath under `/shot/set`.


hope that helps.

edit: i added a test scene to show the setup im trying to explain.
Edited by KWatts - 2025年5月22日 15:43:24

Attachments:
test_shot.hiplc (252.2 KB)

User Avatar
Member
6 posts
Joined: 4月 2025
オフライン
Kym Watts
ok.

so what you have here is a multi root level prims.
a reference is designed to bring in one root and bring it into a path.
a sublayer will allow you to bring in multiple root prims, but you cant change the prim path.

i would suggest for your set , that you make sure all your assets live behind /set, so grid3 lop's primpath should have `/set/grid3` etc.
so ideally in your scenegraph tree, you want to see that you only have one root level prim called `/set`.
once you save this usd out , you can reference in the set usd and nest its prim/primpath under `/shot/set`.


hope that helps.

edit: i added a test scene to show the setup im trying to explain.


Thanks for helping, but i might have some wrong concept about root. i did not really get what you said about multi-root here. in my scene grah/stage graph. there is only one root, which is ”/shot“, i tried to compare your hip file with mine and even try to make them llok the same but still got the same error, that really confuse me. do you min help elaborate it bit more? thank you~
  • Quick Links