blender插件开发(一)调试环境部署

这篇博客主要介绍blender插件开发,以及配合pycharm进行调试的步骤。开发之前我们需要需要留意到blender本身使用GPL license,blender开发的插件,以及非独立资产(模型、贴图、音频等)都应当遵守GPL协议进行开源。

〇、相关链接

一、环境准备

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 例子

我们用下面的代码作演示进行调试,因为我们重点在调试,所以先不用关系代码具体是在做什么,跟着把下面代码放到指定目录即可

二、IDE调试

四、调试测试

发表评论