def gather_skin(armature_uuid, export_settings): """ Gather armatures, bones etc into a glTF2 skin object. :param blender_object: the object which may contain a skin :param export_settings: :return: a glTF2 skin object """ blender_armature_object = export_settings['vtree'].nodes[ armature_uuid].blender_object if not __filter_skin(blender_armature_object, export_settings): return None skin = gltf2_io.Skin( extensions=__gather_extensions(blender_armature_object, export_settings), extras=__gather_extras(blender_armature_object, export_settings), inverse_bind_matrices=__gather_inverse_bind_matrices( armature_uuid, export_settings), joints=__gather_joints(armature_uuid, export_settings), name=__gather_name(blender_armature_object, export_settings), skeleton=__gather_skeleton(blender_armature_object, export_settings)) # If armature is not exported, joints will be empty. # Do not construct skin in that case if len(skin.joints) == 0: return None export_user_extensions('gather_skin_hook', export_settings, skin, blender_armature_object) return skin
def gather_skin(blender_object, export_settings): """ Gather armatures, bones etc into a glTF2 skin object. :param blender_object: the object which may contain a skin :param export_settings: :return: a glTF2 skin object """ modifiers = {m.type: m for m in blender_object.modifiers} if not __filter_skin(modifiers, export_settings): return None armature = modifiers["ARMATURE"].object joints = __gather_joints(blender_object, export_settings) skin = gltf2_io.Skin( extensions=__gather_extensions(blender_object, export_settings), extras=__gather_extras(blender_object, export_settings), inverse_bind_matrices=__gather_inverse_bind_matrices( blender_object, export_settings), joints=joints, name=__gather_name(blender_object, armature, export_settings), skeleton=__gather_skeleton(armature, joints, export_settings)) export_user_extensions('gather_skin_hook', export_settings, skin, blender_object) return skin
def gather_skin(blender_object, export_settings): """ Gather armatures, bones etc into a glTF2 skin object :param blender_object: the object which may contain a skin :param export_settings: :return: a glTF2 skin object """ if not __filter_skin(blender_object, export_settings): return None return gltf2_io.Skin( extensions=__gather_extensions(blender_object, export_settings), extras=__gather_extras(blender_object, export_settings), inverse_bind_matrices=__gather_inverse_bind_matrices( blender_object, export_settings), joints=__gather_joints(blender_object, export_settings), name=__gather_name(blender_object, export_settings), skeleton=__gather_skeleton(blender_object, export_settings))