【Blender】 いらないシェイプキーをまとめて削除する
使わないシェイプキー(Maya, Unity で言うブレンドシェイプ)が大量にあってファイルサイズが無駄に肥大化している場合、Python スクリプトで一括削除すると便利です。
シェイプキーが設定されているメッシュが m_avg オブジェクトにあり、Basis シェイプキー以外を削除したい場合は以下のようなスクリプトを実行します。
import bpy # 消したいシェイプキーが存在するメッシュのオブジェクト名 target_name = "m_avg" # 当該オブジェクトを選択する bpy.data.objects[target_name].select_set(True) # シェイプキーのリストを取得する shape_keys = bpy.data.objects[target_name].data.shape_keys.key_blocks # シェイプキーのリストを逆順に舐める # (先頭から消すとインデックスがずれるので後ろから消す) for i, shape_key in reversed(list(enumerate(shape_keys))): # 消したくないシェイプキーは除外する if shape_key.name != "Basis": # シェイプキーを選択して、削除 bpy.context.active_object.active_shape_key_index = i bpy.ops.object.shape_key_remove()