Blender 2.78 saw basic Alembic support for both import and export. The initial patch was provided by DwarfLabs, and was then integrated into Blender by Kévin Dietrich. For the previous month, I (Sybren) have been working on bringing Alembic to the next level, and that work isn’t done yet. This means that things are going to change; for the better, of course, but it may also mean requiring a re-export of your Alembic files. In this blog post I want to sketch my plans, and collect feedback from you, our dear Alembic users.
The final goal of my work is to be able to take an animated character, like Hendrik IJzerbroot a.k.a. Agent 327, and export it to Alembic for further processing in either Blender or other software. Furthermore, we want to be able to take animated characters from other software and load them into Blender. This includes support for:
- Instanced geometry
- Dupli-groups and dupli-objects
- Hair and particle systems
Furthermore, we want to change the workflow so that it will be easier to re-export characters by coupling export settings and collections of exported objects, giving the artist more control over what is exported exactly, and automatically (re-)apply certain modifiers and materials upon import.
Part of this work can be done for Blender 2.79 already, while other parts will have to wait until Blender 2.8.
Ideas for Blender 2.79
Blender 2.79 should be a stable release. As such, I’ll only try and do bugfixes and non-invasive improvements here. For example, I’ve fixed some bugs with coordinate transformations (we use Z=up in Blender, but Y=up in Alembic files). As a result, once those fixes are in the master branch (and thus in Blender 2.79), files will export & import differently. If you exported your files from Blender, you may have to re-export them to have any benefit of those fixes.
My questions to you are:
- Is it okay for you if you have to re-export your Alembic files when switching to Blender 2.79?
- What does your pipeline look like? What software do you use to generate and import your Alembic files?
More detailed plans are available on my personal wiki page.
Ideas for Blender 2.8
Blender 2.8 will introduce the concept of collections, which we could use to determine which objects get exported to which Alembic file. Furthermore, these collections could contain information about which modifiers to bake into the mesh (“skip the final subdivision modifier”), or to toggle between render-enabled and viewport-enabled modifiers.
We also want to work on a tighter integration between Blender’s data model and Alembic (or other cache formats), to be able to stream data from Alembic into the scene, without requiring the complex setup of constraints and modifiers that the current importer sets up. Together with other Blender devs we’ll look into an improved in-memory caching system for Blender 2.8.
I’ve already been working on supporting instanced geometry (i.e. multiple objects using the same mesh data) and dupligroups (i.e. empties that duplicate a group). These changes are more likely to be included in Blender 2.8 than 2.79, since they really introduce new features and should be tested thoroughly before release.
My question to you: what are important features for your workflow?
Work on Alembic support in Blender is an ongoing process. What is really important at this moment, are your feedback and actual production-level Alembic files. We need both to be able to support actual film production scenarios. Of course we will treat all files as confidential, although we would also welcome some files we can use in public test cases & benchmarks.