【Blender Python】5.Blender场景中的集合

概述

这里的"集合"是指Blender场景中的集合。你可以在"大纲视图"面板中看到 图标的,就是集合,可以看做是文件夹,用于分类和整理场景中的对象。

获取场景的集合

python 复制代码
>>> C.scene
bpy.data.scenes['Scene']
python 复制代码
>>> C.scene.collection.name
'Scene Collection'

获取集合的对象

python 复制代码
>>> list(C.scene.collection.objects)
[]

可以看到,"场景集合"下没有直接的子对象,所以返回一个空集。

python 复制代码
>>> list(C.scene.collection.all_objects)
[bpy.data.objects['Cube'], bpy.data.objects['Light'], bpy.data.objects['Camera']]

all_objects会忽略层级关系,将所有层级中的对象全部列出。

使用具体名称获取集合下的对象

python 复制代码
>>> 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']]

遍历输出集合下的对象名称

python 复制代码
>>> 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形式。

创建和添加新的集合

python 复制代码
>>> c = D.collections.new("c2")              # 创建一个新的集合,并命名为c2
>>> C.scene.collection.children.link(c)      # 添加到场景的大纲视图

总结

本节介绍Blender中的集合,以及在Blender Python中的获取以及创建。内容不详之处,后续改进。

相关推荐
小明.杨4 分钟前
Django 中时区的理解
后端·python·django
陈奕昆35 分钟前
五、【LLaMA-Factory实战】模型部署与监控:从实验室到生产的全链路实践
开发语言·人工智能·python·llama·大模型微调
程序猿小三1 小时前
python uv的了解与使用
开发语言·python·uv
T0uken1 小时前
【Python】UV:单脚本依赖管理
chrome·python·uv
郭逍遥1 小时前
[工具]B站缓存工具箱 (By 郭逍遥)
windows·python·缓存·工具
alpszero2 小时前
YOLO11解决方案之物体模糊探索
人工智能·python·opencv·计算机视觉·yolo11
伊织code2 小时前
PyTorch API 6 - 编译、fft、fx、函数转换、调试、符号追踪
pytorch·python·ai·api·-·6
struggle20252 小时前
continue通过我们的开源 IDE 扩展和模型、规则、提示、文档和其他构建块中心,创建、共享和使用自定义 AI 代码助手
javascript·ide·python·typescript·开源
来自星星的坤2 小时前
深入理解 NumPy:Python 科学计算的基石
开发语言·python·numpy
小声读源码3 小时前
【技巧】使用UV创建python项目的开发环境
开发语言·python·uv·dify