-
Notifications
You must be signed in to change notification settings - Fork 69
ShotSet Workflow and Layers
Editing/Serialising layers is used to support the Environment workflow. See https://github.com/AnimalLogic/AL_USDMaya/blob/develop/docs/workflows.md#environment-specific-workflow.
In this workflow we reference in a set, and have an already existing "shot set override" layer where we make per shot modifications to the set. Currently USD files areset up like this:
def Environment "EnvironmentRoot" (
add references = [
@ark:/JOB(peter)/SHOT(zda01_020)//ASSET(environment)/STAGEASSET(scenery)
@ark:/JOB(peter)/STAGE(testset)/STAGEVAR(wall_test01)?path=root.usdc@,
]
)
- Find the layer we wish to target by looking through referenced layers at a certain Prim path and pick the wanted layer whose metadata tag matches the one we want.
- If there is no layer, we create a "stub" (this is an alternative workflow which I'm hoping to eliminate by checking in an empty v001 of our shot override when we create the shot - as it's complicated and error prone process that involves messing with our asset resolver.
- Set it as the current EditTarget. The EditTarget is set up with what is called a MapFunction which maps edits from a prim path on one layer to a prim path in another layer, this is currently done via a command . This allows the ShotSetOverrides layer to not have to know the whole hierarchy chain from the shots root to the environment prim.
- User makes changes in maya, only the changes that affect the prim at the point in the shot where the edittarget is setup via the MapFunction is recorded.
- If the user saves the maya scene, we serialise the edited layer into the Maya scene
When a scene is reloaded, the original layer on disk will be loaded. We then replace it with the contents of the layer as serialised in the maya scene - so there's some doubling up of work going on.
Which hopefully can be fixed by firstly loading the saved layers into memory, then open the shot's USD file. Deserialise ProxyShape
At any time we can choose to publish the shot set layer to our AMS. However in our scene, we are still referencing the original layer file with it's overrides. Current there is no way to easily reset this process other than building the scene from scratch.