Basic Alembic support
All in all, this patch adds an Alembic importer, an Alembic exporter, and a new CacheFile data block which, for now, wraps around an Alembic archive. This data block is made available through a new modifier ("Mesh Sequence Cache") as well as a new constraint ("Transform Cache") to somewhat properly support respectively geometric and transformation data streaming from alembic caches. A more in-depth documentation is to be found on the wiki, as well as a guide to compile alembic: https://wiki.blender.org/index.php/ User:Kevindietrich/AlembicBasicIo. Many thanks to everyone involved in this little project, and huge shout out to "cgstrive" for the thorough testings with Maya, 3ds Max, Houdini and Realflow as well as @fjuhec, @jensverwiebe and @jasperge for the custom builds and compile fixes. Reviewers: sergey, campbellbarton, mont29 Reviewed By: sergey, campbellbarton, mont29 Differential Revision: https://developer.blender.org/D2060
This commit is contained in:
@@ -181,6 +181,9 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
|
||||
layout.prop(md, "cache_format")
|
||||
layout.prop(md, "filepath")
|
||||
|
||||
if md.cache_format == 'ABC':
|
||||
layout.prop(md, "sub_object")
|
||||
|
||||
layout.label(text="Evaluation:")
|
||||
layout.prop(md, "factor", slider=True)
|
||||
layout.prop(md, "deform_mode")
|
||||
@@ -215,6 +218,22 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
|
||||
row = split.row()
|
||||
row.prop(md, "flip_axis")
|
||||
|
||||
def MESH_SEQUENCE_CACHE(self, layout, ob, md):
|
||||
layout.label(text="Cache File Properties:")
|
||||
box = layout.box()
|
||||
box.template_cache_file(md, "cache_file")
|
||||
|
||||
cache_file = md.cache_file
|
||||
|
||||
layout.label(text="Modifier Properties:")
|
||||
box = layout.box()
|
||||
|
||||
if cache_file is not None:
|
||||
box.prop_search(md, "object_path", cache_file, "object_paths")
|
||||
|
||||
if ob.type == 'MESH':
|
||||
box.row().prop(md, "read_data")
|
||||
|
||||
def CAST(self, layout, ob, md):
|
||||
split = layout.split(percentage=0.25)
|
||||
|
||||
|
Reference in New Issue
Block a user