【Blender×Python】オブジェクトのモディファイア情報を取得する方法について徹底解説

Blender

「bpy」とは、PythonからBlenderの機能を呼び出すことができるBlender Python APIのことです。Blenderはオープンソースの3Dアニメーションソフトウェアであり、「bpy」を使うことでBlenderの様々な機能をPythonスクリプトから呼び出して利用することができます。本記事では、「bpy」を用いたオブジェクトのモディファイア情報を取得する方法を紹介します。

# modifiersプロパティによるオブジェクトのモディファイア情報の取得
"Object".modifiers

下記の様な内容で悩んでいる/困っている場合に使える方法を参考までにご共有させて頂きます。

・Blender上で、どの様にPythonを使うの?
・Blender上のPythonで、どの様にオブジェクトのモディファイア情報を取得するの?

また、「bpy」を使用する上で基礎的な情報は下記の記事で紹介しております。
他の「bpy」のクラスや関数について気になる方はこちらの記事をご覧ください。

modifiersプロパティによるオブジェクトのモディファイア情報の取得

“Object”.modifiersプロパティの基本構文

"Object".modifiers
→ ObjectModifiers: bpy_prop_collection

“Object”.modifiersプロパティの使い方

import bpy

CubeObject = bpy.data.objects["Cube"]
CubeModifiers = CubeObject.modifiers

print(f"Cube Modifiers:\n{CubeModifiers} {type(CubeModifiers)}")
for key, value in CubeModifiers.items():
    print(f"[{key}] Name: {value.name}, Type: {value.type}")

CubeModifierList = [CubeModifier for CubeModifier in CubeModifiers]
print(f"Cube Modifier List:\n{CubeModifierList}")
Cube Modifiers:
<bpy_collection[3], ObjectModifiers> <class 'bpy_prop_collection'>
[Subdivision] Name: Subdivision, Type: SUBSURF
[Bevel] Name: Bevel, Type: BEVEL
[Wireframe] Name: Wireframe, Type: WIREFRAME
Cube Modifier List:
[
    bpy.data.objects['Cube'].modifiers["Subdivision"], 
    bpy.data.objects['Cube'].modifiers["Bevel"], 
    bpy.data.objects['Cube'].modifiers["Wireframe"]
]

まとめ

「bpy」(Blender Python API)は、Pythonを使ったBlenderの開発に非常に役立ちます。この記事では、オブジェクトのモディファイア情報を取得する方法を紹介しました。ぜひ活用してみてください。

関連検索ワード

How to get modifiers of object data?

関連キーワード

blender, python, get, modifier, object, 取得, モディファイア, オブジェクト