【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中的获取以及创建。内容不详之处,后续改进。

相关推荐
hui函数15 小时前
Python系列Bug修复|如何解决 pip install 安装报错 Backend ‘setuptools.build_meta’ 不可用 问题
python·bug·pip
谢的2元王国15 小时前
prompt工程逐渐成为工作流的重要一部分:以下是一套多节点新闻处理外加事实增强的文章报告日志记录
python
寻星探路15 小时前
【算法通关】双指针技巧深度解析:从基础到巅峰(Java 最优解)
java·开发语言·人工智能·python·算法·ai·指针
向上的车轮15 小时前
如何选择Python IDE?
开发语言·ide·python
小北方城市网15 小时前
微服务接口设计实战指南:高可用、易维护的接口设计原则与规范
java·大数据·运维·python·微服务·fastapi·数据库架构
小鸡吃米…16 小时前
机器学习 - 亲和传播算法
python·机器学习·亲和传播
内存不泄露16 小时前
基于Django和Vue3的文件分享平台设计与实现
后端·python·django
没学上了16 小时前
SLM-多头注意力机制
pytorch·python·深度学习
CCPC不拿奖不改名16 小时前
计算机网络:电脑访问网站的完整流程详解+面试习题
开发语言·python·学习·计算机网络·面试·职场和发展