本文翻译自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)