Sponsored Links
Blenderのデータブロック、ObjectとObject-Dataについて調べてみました。
以下の内容はBlender Python APIドキュメント、公式ドキュメントをたどってまとめたものですが、間違って解釈している可能性があります。もし間違っている場合はご指摘いただけたら幸いです。
Blenderのオブジェクトは次の2つの要素からできています。
- Object:位置、回転角とサイズを保持する。
- Object-Data:Objectが保有するデータ以外のデータを保持する。
Pythonスクリプティングにおいて、bpy.context.objectなどで取得できるbpy.types.Object(ID)クラスは、上述のObjectを表し、Object(ID).dataはObject-Dataを表しています。
例えばbpy.types.Mesh(ID)クラスは前述のObject-Dataを表しています。
これらObjectとMesh(ID)などはデータブロックの種類の一つです。ObjectはObject-Dataにリンクしているので、ObjectデータブロックがMeshデータブロックを保持するというような仕組みになっています。そのためobject.dataというようにObjectデータブロックからリンクしているObject-Dataへアクセスできます。
例として、キューブを追加したとき、そのデータはObject(オブジェクトデータブロック)とキューブの頂点情報などを保持するObject-Data(この場合はMeshデータブロック)が作成されるということになります。
ObjectとObject-Dataの関係はOutlinerをデータブロックごとの表示に変更することで視覚的に確認できます。
Sponsored Links