概述
这里的“集合”是指Blender场景中的集合。你可以在“大纲视图”面板中看到 图标的,就是集合,可以看做是文件夹,用于分类和整理场景中的对象。
获取场景的集合
>>> C.scene
bpy.data.scenes['Scene']
>>> C.scene.collection.name
'Scene Collection'
获取集合的对象
>>> list(C.scene.collection.objects)
[]
可以看到,“场景集合”下没有直接的子对象,所以返回一个空集。
>>> list(C.scene.collection.all_objects)
[bpy.data.objects['Cube'], bpy.data.objects['Light'], bpy.data.objects['Camera']]
all_objects
会忽略层级关系,将所有层级中的对象全部列出。
使用具体名称获取集合下的对象
>>> D.collections["Collection"].objects
bpy.data.collections['Collection'].objects
>>> list(D.collections["Collection"].objects)
[bpy.data.objects['Cube'], bpy.data.objects['Light'], bpy.data.objects['Camera']]
遍历输出集合下的对象名称
>>> objs = D.collections["Collection"].objects
>>> for obj in objs:
... print(f"obj name is:{obj.name}" )
...
obj name is:Cube
obj name is:Light
obj name is:Camera
这里,使用的Python的格式化字符串f-string形式。
创建和添加新的集合
>>> c = D.collections.new("c2") # 创建一个新的集合,并命名为c2
>>> C.scene.collection.children.link(c) # 添加到场景的大纲视图
总结
本节介绍Blender中的集合,以及在Blender Python中的获取以及创建。内容不详之处,后续改进。