Autodesk / Autodesk/maya-usd

Sharing a single Maya reference node across multiple USD variant selections

Open
#3,623 8 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.