Multiverse is designed so that it is always possible to perform overrides at any stage the pipeline preserving a non-destructive workflow.
Overrides can be set in Multiverse MEOW and, after being written to a USD override, they can be layered in a Compound, and overrides can also be overridden with other overrides.
This guide will explain what Overrides are and focus on a practical example.
# Basic Concepts
Creating Overrides is the process of "composing" over specific attributes of a primitive with different value which can be layered in a non destructive way.
The Layering guideline already mentioned related concepts, so we should already can see where this goes.
Let's just say we have an animated character in a scene and then there’s a small change to move several parts of it in the scene without the need of "going back" to animation: we can override a particular object to transform it to different position and rotation. After that we can output the overrides as a new USD file which we can layer later on top of the animated character to apply the latest changes without the need of writing the whole animation changes from scratch.
Advantages of Overrides are:
- Allow multiple departments to work together and combine each overrides to assemble final asset.
- Allow non-destructive changes by using overrides in conjunction with Layering.
# Practical Example
We’re going to start by overriding material assignments. Below is a sample where
we override the material assignments for an animated character using MEOW and
save the override using +Write Override as
Next we override the position of the necklace and save the override as
croc_necklace_over.usda. Since the character is animated make sure to write
"Frame Range" in the "Time Settings" of the Write Override UI.
In a new scene let’s layer this override: below is an initial render with no layers added. It will render the character using default material.
croc_mat_over.usda now we can render the animation with
materials assigned to the character.
croc_necklace_over.usda will translate the necklace t th desired
The workflow is pretty simple. From here we can write it as another composition that consists of all of those changes as one single asset using Write USD Composition, and use it in some other scenes. If there are any changes for the overrides, we don’t need to write the composition instead just rewrite the overrides and the composition will pick up the latest overrides.
# Auto-sync compound after writing
When writing overrides using "Write USD Override", and we turn on "Auto-sync Compound after Writing" the overrides written will be automatically added up to the compound as a layer. This is useful when we want to immediately write the Compound as a new composition with applied overrides.
Please remember that the Auto-Sync feature will automatically layer the written overrides, and as a consequence it will also remove existing overrides assigned through MEOW on the Compound which exist in Maya.
The workflow can be summarized this way:
Read a USD asset.
Create overrides using MEOW. These overrides exist in Maya for now.
Write the overrides using "Write USD Override" and save it as a new USD file.
As per the warning above: overrides will move from Maya to USD so the MEOW will not display those overrides anymore.
- Manually layer the override to the original USD asset: if needed as an asset write the overridden asset as a new composition, if only affecting a single scene there’s no need to write as separate USD file.
- If we want to apply the overrides immediately, turn on Auto-sync compound after writing.
Overrides is yet another powerful process that allows non-destructive editing but also can be used to create "variations" which allow an asset to switch multiple states. It could be variation of materials, mesh, both and many other possibilities.