I’m converting some legacy assets so I have to deal with ABC files. While working with them I have found a strange behavior.
I have an ABC file that I have exported from Maya.
The Maya node that I export consists on a transform and its mesh called like:
When I open the exported ABC file with the usdview the root prim is called “node” and the type is Mesh, the prim representing the transform is gone and the one representing the shape now it’s called like its transform node, it looks like USD has merged both nodes into a single one.
Now I import that same ABC file in Maya and it has the transform node and the shape node.
Is USD merging for any reason those 2 nodes together or is Maya creating an extra node when importing the ABC?
If I query the ABC file a node called “/node/nodeShape” appears on the file so it looks like USD is merging them.
Do you have any idea about what’s happening and how to avoid it?
All Gprims are Xformable in USD, whereas in Maya and Alembic they are not. Given that the number of prims on a stage is a key scaling factor for large scenes, we designed both the original Pixar usdMaya export and our usdAbc Alembic translator to “collapse” shapes up into their parent Xform/Transform namespace locations, bringing all the properties along. If you fully import a USD scene into Maya, Xformable Gprims will properly “split” into Transform/Shape pairs.
This has never been problematic for us beyond an initial adjustment period (and we hugely benefit by having our scenes be almost half as small in prim count), but we have occasionally heard confusion/concerns from others who are still in a dual Alembic/USD pipeline, with substantial Alembic tooling. So we built in an “env setting” that can be used to disable the behavior of the Alembic translator, USD_ABC_XFORM_PRIM_COLLAPSE. Set that to 0 and you should get your Xforms back.
Thanks for the tip!
I understand the benefits of having less prims in the hierarchy but unfortunately in this case we need to disable that feature to be able to work with legacy assets.