def get_deformer_fn(object_name=""): """ get a blendshape deformer fn :param object_name: <str> object name to get get blendShapeDeformer function set from. :return: <OpenMaya.MFnBlendShapeDeformer> object type. """ m_blend_obj = None if object_utils.is_transform(object_name): shape_obj = object_utils.get_shape_name(object_name)[0] m_blend_obj = get_connected_blendshape(shape_obj)[0] elif is_blendshape(object_name): m_blend_obj = object_utils.get_m_obj(object_name) return OpenMayaAnim.MFnBlendShapeDeformer(m_blend_obj)
def create_blendshape(mesh_objects, name=""): """ creates a new blendShape from the array of mesh objects provided :param mesh_objects: <tuple> array of mesh shapes. :param name: <str> name of the blendshape. :return: <OpenMayaAnim.MFnBlendShapeDeformer> """ blend_fn = OpenMayaAnim.MFnBlendShapeDeformer() if isinstance(mesh_objects, (str, unicode)): mesh_obj = object_utils.get_m_obj(mesh_objects) blend_fn.create(mesh_obj, origin, normal_chain) elif len(mesh_objects) > 1 and isinstance(mesh_objects, (tuple, list)): mesh_obj_array = object_utils.get_m_obj_array(mesh_objects) blend_fn.create(mesh_obj_array, origin, normal_chain) else: raise ValueError("Could not create blendshape.") if name: object_utils.rename_node(blend_fn.object(), name) return blend_fn