Sharing a single Maya reference node across multiple USD variant selections
- Dominant language
- Wolfram Language
- Stars
- 905
- Forks
- 223
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 17
Description
**Is your feature request related to a problem? Please describe.**
As of maya-usd 0.26.0, when an "autoEdited" `MayaReference` prim exists under multiple usd variants, maya-usd variant selection will swap maya references this way:
https://github.com/Autodesk/maya-usd/assets/40573039/369029f7-2cf1-4722-89c0-c518fcb414a0
- Upon selecting variantB, a new maya reference node is created for `/Scene/Component{Rig=VariantB}/MayaRig` MayaReference prim.
- Reference edits made to the previous reference are not applied to this new one.
- The initial rig reference created for `/Scene/Component{Rig=VariantA}/MayaRig` remains loaded, yet it becomes invisible in both the outliner and viewport.
We aim to leverage this variant pattern to offer multiple levels of detail of rig for the same asset. We want to allow artists to begin with a basic level of detail and later enhance their rig to include additional controllers, deformers, etc. However, the current system falls short as it does not preserve reference edits when switching between different LOD, hindering the ability to switch back and forth efficiently.
**Describe the solution you'd like**
Our ideal solution would be to maintain a single reference node across all variant selection paths, with the ability to update its file path based on the selected variant. This approach would:
- Ensure that edits to the reference are consistently reapplied,
- Automatically unload data from the previous reference.
If feasible, we are open to developing internally a custom `MayaReference` reader/updater to achieve this. But, based on my initial understanding, integrating such functionality with the existing PrimReader/Updater logic appears to be complex and not straightforward.
**Additional context**
Here is the USD scene we used for testing maya reference variants:
[maya-usd_variant_ref_workflow.zip](https://github.com/Autodesk/maya-usd/files/14329762/maya-usd_variant_ref_workflow.zip)
As an example, in native maya, this functionality can be achieved through the use of `proxy references`. This is the method we used historically in animation scenes:
https://github.com/Autodesk/maya-usd/assets/40573039/ffd13d23-6d05-4e9d-a386-0b4c28c9f1c3
Best Regards,
Julien
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the variant workflow from maya-usd_variant_ref_workflow.zip and read the existing PrimReader/Updater logic for MayaReference. Done means one reference node is shared across the variant paths, reference edits persist when switching selections, and data from the previous reference is unloaded.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100