データブロックとObjectまたObject-Dataとは

Sponsored Links

Pocket

Blenderのデータブロック、ObjectとObject-Dataについて調べてみました。

以下の内容はBlender Python APIドキュメント、公式ドキュメントをたどってまとめたものですが、間違って解釈している可能性があります。もし間違っている場合はご指摘いただけたら幸いです。

Blenderのオブジェクトは次の2つの要素からできています。

  1. Object:位置、回転角とサイズを保持する。
  2. 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をデータブロックごとの表示に変更することで視覚的に確認できます。

Pocket

Sponsored Links

コメントを残す

メールアドレスが公開されることはありません。