I have been working on some new features and improvements to the Alembic importer, and it would be nice to get some user feedback to refine those features, so that everything is as nice and rock solid as can be.
For one, I added support for file layers which allow to override properties of an Alembic file in a non destructive/procedural way. Use cases include:
- updating a UV map (or any other attribute)
- substituting high-res / low-res version
- replacing the animation
- you name it
Here is an example where I add some animation to a character using a layer:
For this to work, the hierarchies in the layers have to match that of the base file. In the UI, layers are “reversed” (as usual with Blender): layers at the bottom of the list override data from layers at the top of the list.
Secondly, I added support for geometry sets in the modifier. This means a better support for curves (although the current limitations still exist), but also proper support for point clouds. The main benefit is it allows to use the point clouds, meshes, and curves directly from geometry nodes (by adding a geometry nodes modifier after the mesh sequence cache one).
Lastly, there is support for custom attribute import. For now this only works for meshes and point clouds as I lack examples for curves.
As some software may export data with no type information, an attribute remapping system is introduced which allows to define how data is supposed to be interpreted (UV map, vertex colors, etc.). It is also possible to read as vertex groups, although I feel like this is redundant given that all attributes are read, and geometry nodes may process data as they wish. Unfortunately for remapping to UV maps or vertex colors, the data is not on the original mesh datablock so you may not see them in the mesh data UI, but you may see them in the spreadsheet.
Here is a screenshot showing the remapping of the Cd (color) attribute from Houdini (which was written as floats instead of colors) for a point cloud object (point cloud rendering is not really supported by Workbench/Eevee, so the colors are not shown in the viewport):
Without remapping, the attribute cannot be loaded as type info is missing:
As an added bonus, it is also possible to render mesh attributes (defined with geometry nodes) in Workbench and Eevee:
Some builds (20th October) are available if you want to try those features, let me know if you have any issues:
The branch is called temp-abc-features for those who want to build directly.