我如何与Python一起读取Blender中的自定义属性



我想使用Blender本身中的脚本模式读取搅拌器对象的自定义属性。到目前为止,我发现只有可能读取您在脚本模式下创建自己的自定义属性的可能性。但是我想读出我每只手标记自己的自定义属性。这意味着我没有局部变量可以使用。

我希望这是在以下上下文中:我有一个循环通过所有对象:

for obj in bpy.data.objects:
if not 'Camera' in obj.name and not 'Lamp' in obj.name and not 'Armature' in obj.name:
    #here I get the location of the current Object
    loc.append(obj.location)

现在是完美的,将是:

obj.getCustomProperties

有没有办法使用Blender Python模式来执行此操作?

谢谢丹尼尔

假设我们添加了一个名为'testprop'testprop'的自定义属性到对象'cube' - 您可以在python中访问该属性,为bpy.data.objects['Cube']['testprop']

如果您不知道属性名称,则可以通过调用对象的keys()获取可用自定义属性的列表。

这将导致以下内容打印自定义属性 -

bad_obj_types = ['CAMERA','LAMP','ARMATURE']
for obj in bpy.data.objects:
    if obj.type not in bad_obj_types:
        if len(obj.keys()) > 1:
            # First item is _RNA_UI
            print("Object",obj.name,"custom properties:")
            for K in obj.keys():
                if K not in '_RNA_UI':
                    print( K , "-" , obj[K] )

您也可能会注意到我测试了obj..type而不是obj..name,该名称可以更改,并且可以使用名称中的数字扩展名。

最新更新