Blender Python チートシート

やあ

自分が必要になった時に更新するチートシートなので期待しないでください。

bpy.object

オブジェクトを取得

def get_object(name : str):
    return bpy.data.objects[name]

特定のオブジェクトを選択/選択解除する

obj = get_object("Cube")
# 選択
obj.select_set(True)
# 選択解除
obj.select_set(False)

オブジェクトの現在のアクション名を取得

obj = get_object("HumanArmature")
print(obj.animation_data.action)

オブジェクトからボーン一覧を取得

obj = get_object("HumanArmature")
for elem in obj.pose.bones:
    print(elem)

オブジェクトの特定のボーン名を変更

obj = get_object("HumanArmature")

pre_bone_name = "Arm"
pose_bone = obj.pose.bones.get(pre_bone_name)
if pose_bone is not None:
    pose_bone.name = pose_bone.name.replace(pre_bone_name, "LowerArm")

ボーン名を変更し、全アクションのボーン名も変更する

こちらにまとめています。
pto8913.hatenablog.com

オブジェクトの特定のボーンのペアレントを変更する

こちらにまとめています。
pto8913.hatenablog.com

ボーンを揃える

pto8913.hatenablog.com

ボーンを追加する

pto8913.hatenablog.com

bpy.data

オブジェクトの名前一覧を取得

for elem in bpy.data.objects:
    print(elem.name)

全アクションを取得

for anim in bpy.data.actions:
    print(anim)

特定の名前のアクションを削除

anim_name = "Jump"
bpy.data.actions.remove(bpy.data.actions.get(anim_name))

全アクションを削除

全部消えます

for anim_data in bpy.data.actions:
    bpy.data.actions.remove(anim_data)

全マテリアルを取得

for mat in bpy.data.materials:
    print(mat)

フェイクユーザーを使用していないマテリアルを削除

for mat in bpy.data.materials:
    if not mat.id_data.use_fake_user:
        bpy.data.materials.remove(mat)