我想在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)
Run Code Online (Sandbox Code Playgroud)
现在什么是完美的,将是这样的:
obj.getCustomProperties
Run Code Online (Sandbox Code Playgroud)
有没有办法用Blender Python模式做到这一点?
谢谢,丹尼尔
sam*_*ler 10
假设我们向对象'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] )
Run Code Online (Sandbox Code Playgroud)
您可能还会注意到我测试obj.type而不是obj.name,它可以由用户更改,并且名称中可能还存在多个带有数字扩展名的项目.
| 归档时间: |
|
| 查看次数: |
4759 次 |
| 最近记录: |