BlenderPythonの基本(1) dataアクセス
1 2 3 |
|
BlenderPythonの全体図¶
BlenderのAPIは、ざっくりと書き出すとこのようになっています。
まず、すべての親クラスとして bpy_struct があります。
これは、直接このクラスを使うことはなく、継承したクラスを介して使用します。
たとえば、そのオブジェクトがさすポインタ( as_pointer )であったり、
カスタムアトリビュート関連の関数などがこれにあたります。
そしてそれを継承して、WindowであったりBlendDataCollections、Node(NodeEditorのノードなど)といった
Blenderを構成する各クラスが作成されます。
その中で、DataBlock関係のクラスは「ID」クラスを継承して作成されています。
userの指定、ノード名、といったDataBlockに関連する関数やプロパティは
このIDにまとめられています。
そして、このIDを継承したクラスが、各Data Block用のクラスです。
こののDataは、bpy.data の BlendDataオブジェクトから取得できます。
1 2 |
|
1 2 3 |
|
dataAPI¶
bpy.dataで取得できる値は、Blend-File Dataをみると構造がわかりやすいです。
例えば、 versionであれば
1 |
|
で、現在のバージョンのタプルを取得できます。
1 |
|
で、Meshを取得できます。
Mesh等は、bpy_collection という型になっていて、indexまたはNodeNameで取得できます。
1 2 |
|
bpy.data.objectsから関係オブジェクトを探す¶
例えば、コンストレインのようにオブジェクトに対して指定されるような
設定を取得したい場合。
1 2 3 4 5 6 |
|
Objectには、constraints があるので
これを利用して指定されたコンストレインオブジェクトを取得します。
Constraintのページを見ると、Blenderで対応しているConstraintの一覧があるので
プロパティや関数を使用すると、Pythonから取得したい値を取得することができます。