Hi Alex,
There is no right answer to this question. Several methods are applicable.
But the simplest way, IMO, is to load the various shot usd layerStacks as separate sublayer nodes, all connected into a switch node that is driven by a context option. It could also be a single sublayer node with the context option being inserted in it’s file
parameter if all the shot usd files have the same location and no version number. Or use an custom HDA to load the proper usd file per shot based on the context option.
Then, by changing the context option manually in the Context Options Editor, it loads a different shot inside the node graph. Make sure this button is activated. It will update the playbar range automatically from the range defined inside the usd file.
If you prefer to have all shots appended in the timeline, you can set the time offset parameter in the sublayer nodes and use the Edit Context Options LOP in time based mode. It’s tedious to set by hand but a script can do it nicely. This way, when the play head reaches a certain frame, it swiches the context option which triggers the right usd file to be loaded and all the right switches in your node graph.
Here is a screenshot of a simple setup for a sequence of 7 shots.
All shots are loaded at the top. Then all lights are added for all the shot in a common trunk. Any other override could be added there.
Then shots are spread into branches for shot overrides. Only the shots with overrides need their own branch, all other shots cen be connected to the fallback input of the switch.
Then everything is brought back into a common trunk for defining the render settings, AOVs and the collections, which can be used to create the render passes/layers.
Finally, branches are created for passes with their respective overrides.
In this example, the number of shots is pretty low so we created a Render ROP per shot under each pass. Each ROP is setup with the right context option inside it so it always renders the right shot. For larger number of shots, a PDG setup could be required.
So, inside the usd files themselves, you only need to set the time range. The rest happens in Solaris. The key is to use context options and switch LOPs in “by name” mode.
F