特性
blender的python API有如下特性:
- 编辑用户界面可以编辑的任意数据(场景,网格,粒子等)。
- 修改用户首选项、键映射和主题。
- 运行自己的配置运行工具。
- 创建用户界面元素,如菜单、标题和面板。
- 创建新的工具。
- 场景交互式工具。
- 创建与Blender集成的新渲染引擎。
- 修改模型的数据和属性。
- 在Blender现有的数据中定义新的设置。
- 使用Python在3D视图中绘制。
目前未实现的特性:
- 创建新的空间类型。
- 为每个类型分配自定义属性。
运行脚本
有两种方法运行脚本,第一种是在内置的编辑器中或是在python控制台输入命令。这两种方法都在顶部菜单单击Scripting可以打开,显示在UI布局中。
可以从编辑器打开.py
文件或者从剪贴板粘贴代码上去,运行脚本并测试代码。Python控制台通常用于输入代码片段测试以获得即时反馈,但也可以将整个脚本粘贴到其中。
关键概念
数据访问
访问数据块
可以使用Python API来访问Blender的数据,访问加载的blender文件是通过bpy.data
完成的。下面是在控制台输出的示例:
>>> bpy.data.objects # 当前对象集合
<bpy_collection[3], BlendDataObjects>
>>> bpy.data.scenes # 当前场景集合
<bpy_collection[1], BlendDataScenes>
bpy.data.materials # 当前材质结合
<bpy_collection[1], BlendDataMaterials>
访问集合
可以通过索引或字符串来访问集合的成员。
import bpy
l = list(bpy.data.objects)
print(l)
print(bpy.data.objects[0])
print(bpy.data.objects['Cube'])
# [bpy.data.objects['Camera'], bpy.data.objects['Cube'], bpy.data.objects['Light']]
# bpy.data.objects["Cube"]
# bpy.data.objects['Cube']
访问属性
可以查看数据块的属性。
>>> bpy.data.objects[0].name
'Camera'
>>> bpy.data.scenes["Scene"]
bpy.data.scenes['Scene']
>>> bpy.data.materials.new("MyMaterial")
bpy.data.materials['MyMaterial']
>>> bpy.data.scenes[0].render.resolution_percentage
100
>>> bpy.data.scenes[0].objects["Cube"].data.vertices[0].co.x
1.0
数据的创建与移除
新的数据块无法通过调用类来创建。
>>> bpy.types.Mesh()
Traceback (most recent call last):File "<blender_console>", line 1