Blender 2.78: Alembic
This adds basic Alembic support through import and export operators, and data streaming through cache constraints and modifiers.
Import and Export operators
Those operators are found respectively in the `File -> Import` and in the `File -> Export` menu.
This reads an Alembic archive and creates objects in the current Blender scene. The object hierarchy is also set based on the hierarchy present in the file.
- Supported object types:
- Empties (including Maya locators and the likes)
- Points (read as a Mesh object with only vertices)
The importer automatically adds a cache modifier and/or cache constraint (see below) to the imported objects if the "Is Sequence" option is checked or either the data, the parent transform or both are not constant in the Alembic archive.
This creates an Alembic archive based on the active scene.
- Supported object and data types:
Cache File Data-Block
Since Alembic archives might be referenced by multiple modifiers and constraints at once, and in order to simplify keeping each and every of these potential cache file users in synchronisation, a new data-block, CacheFile, was added. This data-block stores various properties related to cache files. Although it is added during this project, this data-block shall remain separate from any Alembic specific properties, with some possible future exceptions ; the reason being that other file (cache) formats, such as OpenVDB, might be used in the feature in a similar fashion as the Alembic caches.
This data-block is made available through the new "Mesh Sequence Cache" modifier and the new "Transform Cache" constraint (see below). It supports animations (keyframes, drivers...), and is hooked to the dependency graph, such that objects which depend on it are updated when necessary.
The cache file properties are (see the "Mesh Sequence Cache" UI or the "Transform Cache" UI):
- Is Sequence: defines whether or not the cache is split into a sequence of files.
- Override Frame: defines whether to choose a custom frame to lookup the data inside the cache (by default the current scene frame is used)
- Frame: the frame used to lookup the data
- Scale: value to shrink or enlarge objects with respect to the world's origin. This is only applicable through a "Transform Cache" constraint.
A refresh operator (next to the "File Path" property) is available, to reload the file pointed to by the data block, and to recreate the object path list that is used to select the object in the cache constraint and cache modifier.
Data animations are supported by a new modifier, "Mesh Sequence Cache", similar to the "Mesh Cache" modifier. Despite its name, this modifier supports meshes and curves. It also handles file sequences, as well as meshes and curves with varying number of vertices/control points.
The modifiers properties are:
- Object Path: the path to the Alembic object inside the archive
- Verts/Faces/UV/Color: the type of data to read for a mesh object respectively: vertices, polygons, UV layers and Vertex Color layers.
To be able to stream animations made at the transformation matrix level (for example rigid bodies, or camera movements), a new constraint, "Transform Cache", was added. It is similar in usage as the mesh cache modifier, just operates on a different type of data. The scale property only affects the object through this constraint.