How to put sublayers under a parent layer in Solaris

   1374   5   2
User Avatar
Member
129 posts
Joined: Sept. 2021
Offline
Hi!


Imagine I have two sublayers in Solaris:



I want them to be in a parent layer so that they can be controlled together but also specifically if needed. I figured out that I can drop down a stage manager and use the plus button to create a parent group and then drag the two under them:


The apparent issue with this is that in order to move both sublayers, I had to flatten the stage, and the resulting .usd file is bigger for some reason (it doesn't just reference the box.usd and sphere.usd files from disk anymore).

If I drop down another stage manager and deselect the flatten option, I'm only able to edit the strongest layer, and so I end up with a wonky scene graph:


Another issue for me with using the stage manager is that it requires manual dragging and dropping. I'm looking for a solution that can automatically add a parent grouping to any sublayers passed into it.


I'm super new to USD and I'm trying to wrap my mind around it. Thanks!
Anson
Edited by AnsonSavage - Sept. 1, 2023 14:05:27

Attachments:
scene_graph_before.png (7.8 KB)
flattened_stage.png (23.7 KB)
wonky.png (24.8 KB)

User Avatar
Member
130 posts
Joined: Jan. 2015
Offline
Reference node is better if you want to change the structure of the scene graph, it will remove the top layer of the referenced file tho. So you can't have multiple objects at the root of the usd file you are referencing.
User Avatar
Member
333 posts
Joined: April 2018
Online
AnsonSavage
Imagine I have two sublayers in Solaris:

You can't, because "sublayers" (as primitives) don't exist in Solaris. "Sublayer" is a verb/action to overlay prims with stronger opinions onto existing prims with the same paths in your scene.

For example, you can "sublayer" animated transforms onto existing static geometry, and then that geometry will be animated.

What your first screenshot is showing is two "components", which is just a type of USD primitive.
Edited by eikonoklastes - Sept. 2, 2023 01:59:03
User Avatar
Member
129 posts
Joined: Sept. 2021
Offline
eikonoklastes
AnsonSavage
Imagine I have two sublayers in Solaris:

You can't, because "sublayers" (as primitives) don't exist in Solaris. "Sublayer" is a verb/action to overlay prims with stronger opinions onto existing prims with the same paths in your scene.

For example, you can "sublayer" animated transforms onto existing static geometry, and then that geometry will be animated.

What your first screenshot is showing is two "components", which is just a type of USD primitive.
Ah fascinating, thanks for explaining some of that terminology, I was confused about that.

So, if I want to nest two components under the same path or primitive or whatever I'd call it, how could I do that?

Thanks!
Anson
User Avatar
Member
333 posts
Joined: April 2018
Online
AnsonSavage
So, if I want to nest two components under the same path or primitive or whatever I'd call it, how could I do that?

As mentioned earlier in this thread, the Reference LOP will allow you to define the path to insert incoming geometry.

For existing prims, use the Stage Manager LOP to rearrange your Scene Graph Tree. I know you said that it's not ideal, but USD isn't built for rearranging the scene graph like you'd expect. It expects the scene structure to be in place already when you import, or you to build it from scratch yourself, in an environment like Solaris.
Edited by eikonoklastes - Sept. 3, 2023 08:55:36
User Avatar
Member
129 posts
Joined: Sept. 2021
Offline
Ah, I didn't know what words to use, but I realized I was looking for the restructurescenegraph node! It creates a new parent prim.

Attachments:
2023-09-16_16-10.png (59.0 KB)

  • Quick Links