【发布时间】:2017-11-15 01:24:00
【问题描述】:
我在 bpy.data.objects 中有几个对象,在 bpy.data.cameras 中有几个摄像头; 摄像机链接到一些对象。 我如何知道每个摄像机链接到哪些对象? 如果有一段代码证明了这一点,我将不胜感激。 非常感谢, 伊格尔
【问题讨论】:
我在 bpy.data.objects 中有几个对象,在 bpy.data.cameras 中有几个摄像头; 摄像机链接到一些对象。 我如何知道每个摄像机链接到哪些对象? 如果有一段代码证明了这一点,我将不胜感激。 非常感谢, 伊格尔
【问题讨论】:
Blender 对其数据使用object oriented 方法。
对象类包含通用属性,例如对象的位置。然后它使用它的 data 属性使用特定于对象类型的类来存储对象特定的数据,这些数据类型中的每一个都是ID的子类
bpy.data.objects 是Object class 实例的列表。
>>> type(bpy.data.objects['Camera'])
<class 'bpy_types.Object'>
bpy.data.cameras 是链接到相机对象数据属性的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')
【讨论】: