[MAYA-126190] Parented models into skeleton hierarchy don't export
Describe the bug Any parented models into a skeleton hierarchy are ignored at USD export.
Use cases:
- Eye parented to bone in face.
- Hook attached to the end of an arm.
Steps to reproduce Steps to reproduce the behavior:
- Load attached arm-ball.ma
- Select group1 in outliner
- Export Selection to Maya USD. No adjustment of options. Save USDA.
- Use usdview or look at usda text to see ball at the end of skeleton is not included.
Expected behavior The ball shape to be included in the export.
Attachments Attached is arm-ball.ma which is a skinned cylinder to a 2-bone skeleton with a ball attached to the last joint.
Specs (if applicable):
- Windows 10
- Maya 2022.3
- Maya USD Plugin 0.18 (binary installer downloaded from github)
Additional context
More about parenting models into skeletal hierarchy.
-
https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2020/ENU/Maya-GettingStarted/files/GUID-12DAD3E2-E4D6-4CAC-BE5A-88EF49074A2B-htm.html
-
Maya FBX export properly exports parented models into a skeleton hierarchy.
arm-ball.zip Maya scene of arm and ball.
As reference, here is the Omniverse USDA export of the same arm-ball.ma scene which has the ball included. What is preferred is to maintain the parent/child relationship so when the bones move, any parented models move as well.
Thank you @PatrickPalmer for reporting this issue. I have tested this on my end and I am experiencing the same issue. We haven't yet implemented too much support for USD Skel, but I have logged the issue internally so that we can discuss it as a team and hopefully start some work on this.
Any news on this?
Hello! I noticed on that file from omni-verse that the ball is also bound to the skeleton. Was the ball skinned before exporting or that was done during export automatically?
I'm asking because one of the challenges is to properly transform the meshes that are children of joints. A joint doesn't have an actual prim representation in usd, they are all put together as an attribute in the Skeleton prim. So it's not possible for them to have children once it has been exported.
A possible solution here is to evaluate all transforms over time and apply to the mesh before export. Another particular point to consider is round tripping.
Do you have a particular opinion on how you would like this to work?