2017-11-13 2 views
1

私はbpy.data.objectsにいくつかのオブジェクトを持ち、bpy.data.camerasにいくつかのカメラを持っています。 カメラはいくつかのオブジェクトにリンクしています。 それぞれのカメラがどのオブジェクトにリンクされているかをどのように知ることができますか? 私は、それを実証するコードの一部にとても感謝しています。 多くのありがとう、 Igalオブジェクトとカメラの関連付けblender python

答えて

0

ブレンダーはobject orientedのデータへのアプローチを使用します。

オブジェクトクラスには、オブジェクトの場所などの一般的なプロパティが含まれています。その後、これらのデータ型のそれぞれがID

bpy.data.objectsのサブクラスはObject classインスタンスのリストであり、それはオブジェクトの種類に固有のクラスを使用して特定のオブジェクトデータを格納するデータプロパティの使用しています。

>>> type(bpy.data.objects['Camera']) 
<class 'bpy_types.Object'> 

bpy.data.camerasカメラオブジェクトのdataプロパティにリンクされているCamera classインスタンスのリストです。

>>> type(bpy.data.cameras['Camera']) 
<class 'bpy.types.Camera'> 

同様bpy.data.meshesメッシュオブジェクトデータを含むMesh classインスタンスのリストです。

>>> type(bpy.data.objects['Cube']) 
<class 'bpy_types.Object'> 
>>> type(bpy.data.meshes['Cube']) 
<class 'bpy_types.Mesh'> 

最初に作成されたオブジェクトと一致するデータインスタンスでは、一致する名前が使用されます。オブジェクト名は多くの場合、名前が変更されますが、データ名はしばしば放置されます。

import bpy 

obj = bpy.data.objects['Camera'] 

if obj.type == 'CAMERA': 
    print('The',obj.name,'object is a camera.') 

if bpy.data.cameras[obj.name] == obj.data: 
    print('It uses a camera data object with a matching name') 
関連する問題