Page MenuHome

Alembic integration improvements
Open, NormalPublic

Description

Design task to coordinate the Alembic project.

Order of importance:

  • Very Important - These we should handle before the next release.
  • Somewhat Important - These issues would be nice to do as soon as possible
  • Less Important - Extra polish, nice to have
  • ? Incomplete - Tasks needing more details before implementing.

Open Bugs

Improvements

New Features

These features are related, in the sense that implementation would be possible (or at least easier) when T69046 is finished:

Other new features:

Design Tasks

Details

Type
Design

Related Objects

Event Timeline

Sybren A. Stüvel (sybren) triaged this task as Normal priority.

Hi Sybren,

I'm using alembic every day so many thanks for all your work and effort.

What I've noticed is that collections are ignored while exporting (flattened out). I think including/supporting collections might be a nice (and probably quick) improvement in order to keep the same hierarchy in other packages. I'm currently using a custom export operator, converting all the collections to empties before exporting the scene to alembic, which essentially is faking a group but is in fact just a quick and dirty workaround. Exporting heavy scenes just takes a few seconds longer so there is no real issue by that. However, in case there is any chance supporting groups/collections by default, would be a nice of course. In case you support that idea and you think I can help on that, providing or testing some files, just let me know. What do you think?

Thanks & Cheers,
Christian

We're thinking of ways of including collections into the exported hierarchies, both for USD and Alembic, but it's not an active task at the moment. It's unfortunately not a quick thing to do, because:

  1. Objects can be in multiple collections at once, and with different visibility states.
  2. Collections can be instanced into the scene multiple times.
  3. Empties can instance random subsets from a collection.
  4. The parent/child hierarchy of objects in the scene is separate from the collection hierarchy, and thus collection boundaries can cross parent/child boundaries.

Because of the above points, there is no clear one-to-one mapping that will always work. The USD exporter currently supports case 2. from the above list, and properly handles cases where an object in an instanced collection has a parent outside that collection. I think that it's best to first get the USD exporter into master, then alter the Alembic exporter to use the improvements I made for USD, and then we can improve the way we handle collections.

Hey Sybren,

many thanks for that explanation, makes sense. Just thought, that's an easy thing to do and would improve it drastically consistency wise...

Thanks again,
Christian