惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
V
Visual Studio Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
博客园 - 【当耐特】
博客园 - 叶小钗
量子位
博客园 - 聂微东
S
SegmentFault 最新的问题
美团技术团队
Hugging Face - Blog
Hugging Face - Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
宝玉的分享
宝玉的分享
小众软件
小众软件
罗磊的独立博客
有赞技术团队
有赞技术团队
Stack Overflow Blog
Stack Overflow Blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
Blender Python API 快速入门 - 少数派
2020-07-24 · via 少数派

本文翻译自Blender 2.83.0 Python API Documentation 官方文档的Quickstart部分

具体API细节请到官网查询

Blender 2.83.0 Python API Documentation
 

官网最新更新时间:2020年6月5日,blender v2.83.2, python 3.7.4


前言

本API是稳定版本,但仍有一些地方将会添加或改善内容

Blender/Python API 能做以下事情:

  • 编辑用户界面能编辑的任何数据(场景,网格,粒子等)
  • 修改用户偏好设置,键位设置,主题等
  • 用自定义的设置执行工具(tools)
  • 创建用户界面元素,比如菜单、标题和面板
  • 创建新的工具
  • 创建交互工具
  • 创建新的能集成到blender的渲染引擎
  • Subscribe to changes to data and it's properties.
  • 对blender现有数据定义新的设置
  • 用python在3D视图作画

Blender/Python API (目前)不能做以下事情:

  • 创建新的编辑器(space)类型
  • 对所有的类型添加自定义属性

本文档并不覆盖所有话题,主要是为了让你熟悉Blender Python API

在开始前,你要知道的有用的清单:

  • Blender使用Python3.x,但有些在线文档仍使用Python2.x
  • 交互命令行窗口对于测试一行代码非常有效,并且它有自定补全功能,能快速检查API
  • 任意按钮的悬浮提示框能显示对应的Python属性和方法名
偏好设置里这个选项要打上勾
  • 右键按钮或菜单项,会显示在线文档的跳转链接
  • 在菜单,文本编辑器>模板>python中有现成的模板,在这里你可以找到一些常用的操作函数
  • 要进一步地考察Blender发布的脚本,请看:scripts/startup/bl_ui 对应于用户界面;scripts/startup/bl_operators 对应于操作方法,确切的地址取决于平台

译者注:可在python控制台输入以下代码

>>> import sys;print('\n'.join(sys.path))

找到以scripts/startup结尾的那一行,就是目标地址

(实际上这里列出的是所有Blender的Python解释器要遍历的模块路径)

运行脚本

执行Python脚本最常用的两个途径:用Blender内置的文本编辑器和Python控制台

文本编辑器和Python控制台都是编辑器类型(space types),都可以在点击窗口右上角头标后选择,如图

注:在Blender中,space type翻译为编辑器类型

当你以脚本模式工作时,与其麻烦的手动调整界面布局,不如在头部菜单选择预设的脚本布局

在内置的文本编辑器,你可以打开.py类型的文件,点击按钮运行脚本

Python控制台主要用于运行代码片段,可以得到即时反馈,但是它也可以运行复制给它的完整代码

脚本也可以在命令行中运行,但对于学习Blender/Python来说,这不是必要的

关键概念

数据访问

访问数据块(DataBlocks)

Python 与动画系统和用户界面以相同的方式访问Blender的数据,这表明,任何通过按钮能改变的设置,都可以通过Python来完成,因为用户界面上的每个操作都链接到一个Python函数

当前载入的blend工程文件通过模块bpy.data来访问数据。如此就可以访问资源对象。例如:

>>>bpy.data.objects

<bpy_collection[3], BlendDataObjects>

>>>bpy.data.scenes

<bpy_collection[1], BlendDatascenes>

>>>bpy.data.materials

<bpy_collection[1], BlendDatamaterials>

关于数据容器(Collections)

当用数字(序号)访问collection中的元素时,collection表现的像一个序列(list)

当用字符串(键)访问collection中的元素时,collection表现得像一个字典(dict)

译者注:Collection,因为Python的基本数据结构中有对应于数学中的集合set,所以不译为集合,collection是Blender新定义的数据结构

访问属性(Attributes)