在教学中,推荐使用 Blender2.8 来作为教学环境。因为 Blender 这个 3D 制作软件系统是一个开源项目,而且与 Python 很好的结合在了一起。
在 Blender2.8 中提供了 REPL 和 TEXT 两种 Python 环境部署。关于 Blender2.8 的 Python API 官方文档可以在 网址中自行查看。
示例采用了官方的一段 Add-on 示范,稍微做了一下中文注释:
bl_info ={
“name“:“Move X Axis“,#
“blender“:(2, 80, 0),# blender 版本号
“category“:“Object“,# 命令分类
}
import bpy #导入 blender python 库
class ObjectMoveX(bpy.types.Operator):
“““用Python来移动一个物体,省去了鼠标的操作。“““
bl_idname =“object.move_x“# 关联菜单项和按钮的唯一识别符
bl_label =“Move X by One“# F3 操作命令窗口中可查询到的命令名
bl_options ={'REGISTER','UNDO'}# 开启支持撤销操作的配置
def execute(self, context):
“““执行操作时会调用 execute(context)方法“““
#关联最初的场景
scene = context.scene
for obj in scene.objects:
obj.location.x += 1.0
return {'FINISHED'}# 让 Blender 知道操作成功所需要的信息
def register():
“““把类注册成 Blender 的一个实用工具的函数。“““
bpy.utils.register_class(ObjectMoveX)
def unregister():
“““取消实用工具注册的函数。“““
bpy.utils.unregister_class(ObjectMoveX)
#在 Blender 文本编辑器中直接运行代码不需要安装成插件
if __name__==“__main__“:
register()
从以上代码中我们可以看到这里涉及了许多小初 Python 课程中讲过的许多知识应用,例如:
1. Python 的内置数据类型。
2.类的定义实用 class 语句。
3.命名规则。
4.文档字符串和注释。
5.函数的定义。
6.模块中的脚本区部署。
这里我们主要掌握的是 Python 继承机制是如何让你轻松部署,我们只要在定义自己的一个类的时候,把 bpy.types.Operator 类写在构造器中,就可以让 ObjectMoveX 类继承了 Blender 操作功能。
在类里实用定义函数的方法,可以实现对象实例的方法部署。
下次我们会开始来深入了解继承中的一些细节。