第一章:插件开发环境搭建
做Blender插件开发,第一步就是把环境搭好。这就像盖房子打地基,地基不稳后面全是坑。我个人习惯先把整套流程跑通,再开始写代码。今天我们就从零开始,把开发环境一步步搭起来。
1.1 Blender插件的基础结构
一个Blender插件,说白了就是一个Python脚本文件,或者一个包含多个脚本的文件夹。但Blender有它自己的规矩——你得按它的格式来组织代码。
最基本的插件结构长这样:
my_addon/
├── __init__.py # 插件入口文件,必须有
├── operators.py # 操作符(可选)
├── ui.py # 界面(可选)
└── properties.py # 属性定义(可选)
嗯,这里要注意:__init__.py 是必须的,Blender就是通过这个文件来识别和加载你的插件。其他文件你可以按需拆分,但入口文件不能少。
核心要点:每个插件必须有一个 bl_info 字典,里面包含插件名称、版本、作者、描述等信息。这是Blender识别插件的身份证。
来看一个最简单的 __init__.py 示例:
bl_info = {
"name": "我的硬表面工具",
"author": "你的名字",
"version": (1, 0, 0),
"blender": (3, 6, 0),
"location": "View3D > Sidebar > 硬表面",
"description": "硬表面建模效率提升工具集",
"category": "Object",
}
import bpy
class HelloWorldOperator(bpy.types.Operator):
"""测试操作符"""
bl_idname = "object.hello_world"
bl_label = "Hello World"
def execute(self, context):
self.report({'INFO'}, "插件加载成功!")
return {'FINISHED'}
def register():
bpy.utils.register_class(HelloWorldOperator)
def unregister():
bpy.utils.unregister_class(HelloWorldOperator)
if __name__ == "__main__":
register()
这段代码虽然简单,但包含了插件的全部骨架。我在项目中遇到过很多新手把 bl_idname 写重复了,结果插件死活加载不上。记住:bl_idname 在整个Blender里必须是唯一的。
1.2 Python环境配置
Blender自带了一个Python解释器,但你最好别直接用。为什么?因为自带的Python里很多第三方库都没装,比如 numpy、Pillow 这些常用库。
我个人习惯用系统Python来开发,调试完再移植到Blender环境。具体做法是:
- 安装Python 3.10或3.11(和你的Blender版本匹配)
- 用
pip安装常用库:pip install numpy pillow - 设置环境变量,让Blender能找到你的Python
小技巧:想知道Blender用的是哪个Python版本?打开Blender的Python控制台,输入 import sys; print(sys.version) 就能看到。
我曾经踩过一个坑:用系统Python 3.12写了个插件,结果Blender 3.6只支持到Python 3.10,所有代码都跑不起来。所以版本匹配这事,千万别马虎。
1.3 VS Code调试设置
写插件最痛苦的是什么?调试。没有断点、没有变量监视,全靠 print() 输出,效率低得让人抓狂。还好VS Code可以帮我们解决这个问题。
配置步骤其实不复杂:
- 安装VS Code和Python扩展
- 创建一个
.vscode/launch.json文件 - 配置Blender作为调试目标
这是我的 launch.json 配置,你可以直接复制:
{
"version": "0.2.0",
"configurations": [
{
"name": "Blender Debug",
"type": "python",
"request": "launch",
"program": "C:/Program Files/Blender Foundation/Blender 3.6/blender.exe",
"args": [
"--python-exit-code", "1",
"--python", "${file}"
],
"console": "integratedTerminal",
"justMyCode": true
}
]
}
注意:路径里的Blender版本号要改成你自己的。另外,Windows和Mac的路径格式不一样,记得调整。
配置好之后,按F5就能启动Blender并加载你的插件。断点可以打在Python代码的任何位置,调试体验和普通Python开发一模一样。
1.4 插件模板创建
每次写新插件都要从头敲一遍基础结构?太累了。我建议你做一个自己的模板,以后直接复制粘贴。
我的模板包含这些内容:
| 文件 | 作用 | 必填 |
|---|---|---|
__init__.py |
插件入口,包含bl_info和注册逻辑 | 是 |
operators.py |
所有操作符定义 | 否 |
ui.py |
面板和菜单定义 | 否 |
properties.py |
自定义属性 | 否 |
utils.py |
工具函数 | 否 |
你想想看,有了模板之后,每次新建插件只需要改 bl_info 里的名字和描述,然后直接往对应文件里加功能代码就行了。省时省力,还不会漏掉关键结构。
我的建议:把模板放在一个专门的文件夹里,比如 D:/blender_addon_template。每次新建项目就复制一份,改个名字直接开干。
下面这张图展示了整个开发环境的搭建流程,你可以对照着一步步来:
说实话,环境搭建这一步虽然看起来琐碎,但一次配好后面能省无数时间。我见过太多人因为环境没配好,写了两天代码才发现调试不了,最后全部重来。所以,花半小时把这一步做扎实,绝对值。
个人经验:配好环境后,先跑一个最简单的 "Hello World" 插件验证一下。确认能加载、能调试,再开始写复杂功能。这样出了问题你能快速定位是环境问题还是代码问题。
好了,环境搭好了,模板也准备好了。接下来就可以正式开始写插件功能了。记住:好的开始是成功的一半,这一步走稳了,后面就顺了。
公众号:蓝海资料掘金营,微信deep3321