gpt4 book ai didi

python - 我如何用 Python 读出 Blender 中的自定义属性?

转载 作者:太空狗 更新时间:2023-10-29 20:20:14 44 4
gpt4 key购买 nike

我想使用 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 模式下做到这一点?

谢谢,丹尼尔

最佳答案

假设我们向对象“Cube”添加了一个名为“testprop”的自定义属性 - 您可以在 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,它可以由用户更改,而且名称中可能存在多个带​​有数字扩展名的项目。

关于python - 我如何用 Python 读出 Blender 中的自定义属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21265676/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com