这篇博客主要介绍blender插件开发,以及配合pycharm进行调试的步骤。开发之前我们需要需要留意到blender本身使用GPL license,blender开发的插件,以及非独立资产(模型、贴图、音频等)都应当遵守GPL协议进行开源。
〇、相关链接
- fake pby:GitHub – nutti/fake-bpy-module: Fake Blender Python API module collection for the code completion.
一、环境准备
1.1 插件目录
blender下的插件主要存在于两个路径(不建议自己开发的插件放到系统插件目录):
- 用户插件目录: %appdata%/Roaming/Blender Foundation/Blender/${version}/Scripts/addons
- 系统插件目录:%blender_root%/Blender Foundation/Blender/${version}/Scripts/addons
blender插件的安装方式也有两种:
- 在软件菜单Edit->Preferences->add-ons中install,直接选择插件zip文件即可解压至目录
- 手动解压插件zip文件至插件目录
1.2 fake pby安装
fake pby是一个伪sdk库,其的作用是帮助我们pycharm或者vscode或者其它第三方ide识别Blender API,进行错误消除和代码补全提示。其repo见文章开头,一般我们可以直接通过pip进行安装:
pip install fake-bpy-module
如何针对特定blender安装,可以在后面追加特定版本号,如匹配blender 4.0,可以运行如下命令安装:
pip install fake-bpy-module-4.0
然后,视ide不同,还需要作如下修改
- 对于pycharm用户,需要将
idea.properties
文件中的idea.max.intellisense.filesize
to more than 2600 because some modules have the issue of being too big for intelliSense to work.
- 对于VSCode用户,在自动补全面板 Python>Auto Complete: Extra Paths 打开Edit in settings.json,添加bpy路径到python.autoComplete.extraPaths
{
"python.autoComplete.extraPaths": [
"<path-to-generated-modules>"
]
}
1.3 配置远程调试
下载remote_debugger.py,在blender插件页面中安装
random-blender-addons/remote_debugger.py at main · sybrenstuvel/random-blender-addons · GitHub
脚本中已经定义了Pycharm/PyDev连接端口,我们需要知道pycharm和pydev的端口是不一样的,如果自己定义其它远程调试方法,可以在remote_debugger.py文件中查看端口


我们需要把Path of Pycharm egg设置为pycharm安装目录下的Egg文件

1.4 PyCharm配置远程调试
PyCharm中添加远程调试器, 工具栏 Run->Edit Configurations…->Python Debug Server (老版本叫做Python Remote Debug)
- 设置host name为localhost,端口为1090(和前面remote_debugger.py中的定义对应)
- 设置Path mapping,local是脚本项目所在文件夹,Remote是blender下插件目录 …/blender/4.0/scripts/addons

点击debug开始监听,我们留意到控制台已经有log信息打出,然后我们结束调试

1.5 PyDevd设置
将如下代码插入至计算机的应用程序中。IP地址和端口号要和PyCharm中的监听配置保持一致
import pydevd
pydevd.settrace('127.0.0.1', port=1090, stdoutToServer=True, stderrToServer=True)
1.6 建立连接
在blender中F3搜索PyCharm,我们点击进行远程连接

回到pycharm console,如果提示connected to pydev debugger,没有报错则一切正常,如果出现报错,则需要解决错误

1.7 解决报错(如果需要)
比如我们出现报错Excpted: …/attach_amd64.dll to exist, 我们继续解决
如果出现 couldn’t apply path mapping, xxx.py can’t be found in project. 则是path_mapping配置有偏差, 我们找到关联的脚本就可以正常调试了
1.5 使用PyCharm-Blender插件(可选)
使用该插件可以自动更新、自动安装到blender、创建模板、专业版本可以调试:
在Pycharm内部找到插件界面,安装下面Blend-Charm这个插件。
Release Blend-Charm 2024.1 · BlackStartx/PyCharm-Blender-Plugin · GitHub

安装好插件之后就可以在new界面直接建立新插件了,如果pycharm打开的就是一个插件目录,那么可以直接右键工程名字,Mark as Addon Project,把工程标记为Blender插件工程

我们可以从模板创建工程

该插件还有一些已知的问题,比如调试出错时blender可能crash
1.4 VSCode安装插件
Blender Development – Visual Studio Marketplace
1.3 例子
我们用下面的代码作演示进行调试,因为我们重点在调试,所以先不用关系代码具体是在做什么,跟着把下面代码放到指定目录即可