Blender python 使用面向對象的方法處理其數據。
對象類包含泛型屬性,如對象的位置。然後,它使用它的數據屬性來使用特定於對象類型的類來存儲對象特定數據,每個數據類型都是 ID 的子類
bpy.data.objects是 Object類實例的列表。
>>> type(bpy.data.objects['Camera'])
<class 'bpy_types.Object'>
bpy.data.camera連結到攝像機對象數據屬性的 Camera 類實例的列表。
>>> type(bpy.data.cameras['Camera'])
<class 'bpy.types.Cameras>
objects類包含了 cameras類,只有 objects類才能使用移動、縮放和旋轉等操作,如果注意到這一點,燈光、照相機等等都是這樣處理的,在大綱視圖點打開物體左側的三角標處,上面是 objects類,下面就是本類,這是學習 blender python要知道 的要點
同樣是包含網格對象數據的網格類實例的列表。bpy.data.meshes
>>> 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')