Alembic round-tripping

   976   2   0
User Avatar
Member
3 posts
Joined: Aug. 2018
Offline
I'm a bit confused by some of the documentation on Alembic round-trip. Let me break down my scene for you:

1. I have a character from Maya, imported as an Alembic Archive, I have unchecked “Build hierarchy using subnetworks”. I do this so I can…

2. …Merge the entire archive into a new geo node, using an object merge. I use the path “/obj/alembicarchive1/*” in order to pull in all the pieces.
3. I unpack the object merge with an unpack node, so that I can subdivide and polyextrude it. I now have the mesh looking the way I want.
4. I put an OUT null on the end of my chain, so I can set this as my SOP path.

Now I just want to export the alembic, with the same hierarchy it came in with, so that I can re-import it into maya for rendering. How can I get this to respect the original paths?

If I use the OUT net, and select my OUT null as SOP path, I re-import the alembic into houdini and see it comes in as a single object, with the only path “/geo1/OUT”
If I export just the original archive with no object merge and modifications, it comes in with paths, however it has switched the “:” for “_”, which I think may screw up the maya namespaces, right?
On the object merge, I find that I can select “Create per-primitive path” or “pack geometry before merging”, and this gives me a path, but it is not the same as the original.

It appears I can get the paths to work if I use the alembic SOP, and skip the archive entirely. However, I feel like I am missing out on some of the benefits of the alembic archive.

I guess what I am asking is, what is the WAY to do this? Is there no industry standard method for round-tripping alembics to and from Maya with the alembic archive?
User Avatar
Member
7763 posts
Joined: Sept. 2011
Offline
Alembic archive has issues when used for round tripping. Load the whole file with an alembic sop. Unpack only the shape to be changed, ensure the path attribute is preserved through all modifications. When exporting, set the alembic rop to “Build Hierarchy from Attribute”. Set Packed Transform to “merge with parent transform”.

Unfortunately transforms on group hierarchies will be flattened down to just the last transform. The Alembic archive can preserve the group transform hierarchy but mangles the namespaces and inserts an extra group (unless collapsing non-animating identity geometry objects) and shape name in the path.
Edited by jsmack - May 12, 2020 17:30:25
User Avatar
Member
3 posts
Joined: Aug. 2018
Offline
Thanks, I'll keep that in mind. That should work for our pipeline.
  • Quick Links