【Blender】使用 Microsoft Visual Studio Code 作为外部 IDE 来编写 Blender 脚本/附加组件
Blender 有自己的内置文本编辑器,用于编写脚本和附加组件,但在外部 IDE 中开发它们非常方便,为用户提供更多功能,例如自动完成、语法高亮、与版本控制系统和其他工具的集成使开发更快更容易。
这些 IDE 之一是 Microsoft 的 Visual Studio Code。这是一个免费的通用环境
,支持使用各种编程语言进行开发,包括 Blender API 语言 - Python。
要开始使用 Visual Studio Code 进行开发,您需要:
安装 Visual Studio Code IDE 本身
从官方网站,您可以下载适用于 Windows 或 Linux 操作系统的发行版:https://code.visualstudio.com/Download
下载后,需要安装IDE。
要使用外部 IDE,您需要安装单独的 Python 解释器
从官网下载 Python 解释器发行版:https://www.python.org/downloads/ 。
下载与 Blender 中使用的版本相同的 Python 解释器版本。对于 Blender 2.79b,这是 Python 版本 3.5.3。对于 Blender 2.80 – Python 3.7.0。
下载后,安装 Python 解释器。
安装 Visual Studio Code 扩展以使用 Python
运行 Visual Studio 代码。
打开扩展面板。在搜索字段中输入“python”。从扩展列表中选择“Python”扩展并单击“安装”进行安装。单击“重新加载”以启动扩展程序。
在 Visual Studio Code 中为 Blender 编写脚本
安装完所有必要的程序模块后,我们就可以编写代码了。
Visual Studio Code 使用目录中的项目。在 D:/ 硬盘驱动器上创建“bl_test”目录并在 Visual Studio Code 中打开它。这将是我们目前的项目。所有进一步的设置将仅应用于此项目。
将新的 bl_test.py 文件添加到您的项目中。我们将在这个文件中编写脚本代码。
配置 Visual Studio Code 项目以使用 Blender Python
按 F1(或 ctrl+shift+p)打开命令提示符。输入“python select interpreter”指定项目的Python解释器。
从下一个下拉列表中,选择已安装的 Python 解释器。
按 F1。键入“python select linter”以选择/安装 Python linter。Linter 用于动态检查代码,指示错误和拼写错误。此外,linter 检查代码以符合 PEP 规范。
从下拉列表中选择“Python:选择 Linter”。
然后选择“pep8”。这是当前的 Python 规范。
保存文件时,Linter 变为活动状态。要激活它,请保存当前文件。Visual Studio Code 可能会提示您安装选定的 linter。
通过单击“安装”来安装它。安装一次就需要了,下一个项目就不需要了。
您可以通过输入一些代码并保存它来检查 linter 工作。
如何在 Visual Studio Code 中启用 Blender API 的自动完成功能
当我们开始编码时,我们将看到自动完成功能仅适用于标准 Python 数据类型,不适用于 Blender API 数据类型。为了解决这个问题,我们需要下载带有 Blender 数据类型的库并将其连接到我们的项目。
您可以通过单击“克隆或下载”-“下载 ZIP”按钮从 GitHub 上的https://github.com/Korchy/blender_autocomplete下载此库。
我们需要的文件被放置在下载的存档中的子目录中,其名称与它们所针对的 Blender 版本相对应。如果我们正在使用 Blender 2.79b 的最新稳定版本,我们需要子目录:2.79。
这个自动完成库不仅对当前项目有用。将其复制到可访问的地方,从那里可以连接到任何项目。创建一个 D:/autocomplete/ 目录并将下载的存档中的整个 2.79 文件夹复制到其中。
现在将其连接到当前项目。为此,请打开 Visual Studio Code 项目设置:“文件 - 首选项 - 设置”并切换到“工作区设置”。
点击右上角的双大括号“{}”切换到文本(JSON)显示模式。
在“用户设置 - 工作区设置”窗口中添加一些带有路径的指令以启用 Blender API 自动完成功能。路径是带有自动完成库的 2.79 目录。
"python.autoComplete.extraPaths": [
"d:/autocomplete/2.79"
],
"python.linting.pylintArgs": [
"--init-hook",
"import sys; sys.path.append('d:/autocomplete/2.79')"
],
保存设置并关闭设置选项卡。
现在,当我们输入代码时,Blender API 自动完成功能可以正常工作。
我们可以编写我们的代码。
在 Blender 中执行外部脚本(2.79 和 2.80)
脚本在 Visual Studio Code 中编写完成后,需要在 Blender 中执行。
启动 Blender,打开内置的文本编辑器并输入以下代码:
import bpy
import os
filename = os.path.join("_PATH_", "_FILE_NAME_.py")
exec(compile(open(filename).read(), filename, 'exec'))
其中 PATH 是我们项目所在目录的路径,FILE_NAME 是我们代码中脚本文件的名称。
这是在 Blender 中执行外部脚本的通用代码。将其保存为模板并用于在 Blender 中执行任何用外部 IDE 编写的脚本。对于更复杂的多文件项目和插件,您应该使用带有动态插件重新安装的代码。
从 Visual Studio Code 到 Blender 的动态代码执行桥(仅限 2.80)
您可以在 Visual Studio Code 中安装 Jacques Lucke 的“Blender Development”扩展,以直接从 IDE 动态执行脚本和附加组件。
在 Visual Studio Code 中打开扩展面板并在搜索字段中输入“blender development”。
安装扩展并单击“重新加载”以启动它。
按 F1 打开命令行并键入“blender start”。选择“搅拌机:开始”。
按“选择一个新的 Blender 可执行文件……”
并指定 blender.exe 文件的路径(您的 Blender 2.80 安装目录)。
通过网桥连接到 Visual Studio Code 的 Blender 启动。
要执行脚本,请按 F1 并在命令提示符中键入“blender run script”并选择“Blender: Run Script”
。
此扩展为 Blender 插件开发人员提供了许多方便的功能,但它也存在一些问题 - 它仅适用于 Blender 2.80 版,并且在执行脚本时有时无法在 Blender 中找到正确的窗口上下文定义。例如,下面的脚本不能通过这个扩展执行。
脚本示例
在 bl_test.py 文件中键入以下代码并运行外部脚本(使用 Blender 内置文本编辑器中的代码)。
import bpy
bpy.ops.mesh.primitive_cube_add(location=(0, 0, 0))
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.transform.rotate(value=0.785398, axis=(0, 0, 1))
bpy.ops.object.mode_set(mode='OBJECT')
Obj = bpy.context.active_object
mod = Obj.modifiers.new("Bevel", 'BEVEL')
mod.segments = 3
bpy.ops.object.shade_smooth()
mod1 = Obj.modifiers.new("Array", 'ARRAY')
mod1.count = 10
mod2 = Obj.modifiers.new("Array", 'ARRAY')
mod2.relative_offset_displace[0] = 0.05
mod2.relative_offset_displace[1] = 0.5
mod2.relative_offset_displace[2] = 0.9
mod2.count = 10
此代码将立方体添加到场景中,将其旋转 45 度,为其添加倒角,并将其与 10×10 的数组相乘,并带有一些偏移。因此,您可以渲染时尚的抽象背景。