Autodesk / maya-usd

A common USD (Universal Scene Description) plugin for Autodesk Maya
759 stars 202 forks source link

Allow mayaUSDImport command to import point instancer to maya instancer #3391

Open BigRoy opened 10 months ago

BigRoy commented 10 months ago

Is your feature request related to a problem? Please describe.

Currently there seems to be no import translator functionality for a USD Point Instancer. Additionally, even though you can "Duplicate as USD data" from a maya instancer you cannot convert back with "Edit as Maya data"

Describe the solution you'd like

Allow instancer to be converted with its prototypes to maya data, preferably also supporting animated point data.

Describe alternatives you've considered

Potentially a custom import chaser for mayaUSDImport or register a custom USD translator which would also allow the Edit as maya data functionality.

However, from a Maya perspective I'm still not sure how trivial that'd be since I don't know what nodetypes/datastructures are available to maya to have time samples point data with e.g. attributes, etc. that can be saved/embedded with the maya scene file.

Also, I believe custom USD import translators are C++ only?

Additional context

I assume the lack of this is mostly due to Maya's native tools to be lacking in regards to the Instancer (and its editability) of just point data that can also be animated since I believe by default there's no data structure in which one can interactively add/remove points with transforms easily other than particles which aren't meant for manual editing. MASH does provide some tools, but those as far as I know would still disallow trivial storage for animated data local to the scene.

swillisart commented 10 months ago

I agree. Points ideally would be translated as a nParticles with attributes per-particle and an alternative option for maya locators with attributes.

@BigRoy You can author an import chaser via python here: https://github.com/Autodesk/maya-usd/discussions/1909

BigRoy commented 10 months ago

Points ideally would be translated as a nParticles with attributes per-particle and an alternative option for maya locators with attributes.

I'm not sure I'd totally agree since as far as I know there's no way for nParticles to storage point data per frame within the scene - as such the import would not be able to import animated particle data. If you know of a Maya node that is capable of storing that without requiring e.g. XML cache files on disk I'd be happy to learn about it and prototype a Python Import chaser.

maya-usd-git-sync[bot] commented 10 months ago

Issue synced internally to EMSUSD-832