Files
BallanceBlenderHelper/docs/docs/zh-cn/compile-distribute-plugin.md
yyc12345 427bad4f6b fix: fix various trivial issues
- update blender_manifest.toml to the latest version and fix the issues raised by blender when packaging.
- use blender do packaging work. remove redist.py because blender_manifest.toml has gitignore like filter feature when packaging.
- update document about installing, configurating, building plugin for blender 4.2.
- update a document image for blender 4.2.
2024-07-19 15:25:38 +08:00

3.3 KiB
Raw Blame History

编译与分发插件

本页面将指导你编译插件以及分发它。

编译LibCmo与BMap

BBP的Virtools文件原生导入导出功能依赖BMap以及其Python绑定PyBMap来实现。为了分发插件我们需要首先编译BMap及其前置LibCmo。而在编译前你需要先确认你需要的BMap版本。因为BBP并不总是使用最新的BMap例如你正在编译一个旧版的BBP其显然不可能依赖最新的BMap。BMap也在不断升级中其提供的功能也在不断变化不同版本的BMap是不兼容的。BBP通常会在发布时写明其所用的BMap版本如果BBP没有指出你可能需要寻找与BBP发布时最近的BMap版本来编译。

在明确版本后,你需要访问LibCmo位于GitHub的存储库。然后克隆项目使用Git命令转到对应版本或者直接下载对应版本的源码。然后按照LibCmo的编译手册编译得到BMap。在Windows上你通常会得到BMap.dllBMap.pdb这两个文件。而在Linux上则会是BMap.so

然后我们需要配置PyBMap。PyBMap是随LibCmo一起提供的。请按照PyBMap的手册将编译得到的二进制BMap库和PyBMap结合在一起。即完成PyBMap配置。

然后我们需要将配置好的PyBMap拷贝到本项目的bbp_ng/PyBMap下即可完成此步。

生成缩略图和压缩JSON

BBP内置了一系列自定义图标以及其组件BME需要的用于描述结构的JSON文件。通过批量生成缩略图和压缩JSON的操作可以减小这些部分的大小使得其适合在Blender中加载也更方便分发。

转到bbp_ng/tools文件夹下,运行python3 build_icons.py将批量生成缩略图此功能需要PIL库请提前通过pip安装。其实际上是将bbp_ng/raw_icons目录下的原始图片生成对应的缩略图并存储于bbp_ng/icons文件夹下。运行python3 build_jsons.py将压缩JSON。其实际上是将bbp_ng/raw_jsons目录下的原始JSON文件读取压缩再写入到bbp_ng/jsons文件夹下。

打包

从Blender 4.2 LTS开始插件使用Blender自带的打包功能进行打包。

假定在项目根目录下执行命令,最终输出文件为redist/bbp_ng.zip,那么在命令行窗口中执行blender --command extension build --source-dir bbp_ng --output-filepath redist/bbp_ng.zip命令即可完成打包。其中blender为Blender的可执行程序。

Blender会根据blender_manifest.toml的指示,在排除下列文件的情况下将插件打包:

  • bbp_ng/raw_icons:原始图片文件夹。
  • bbp_ng/raw_jsons原始JSON文件夹。
  • bbp_ng/tools:编译用工具。
  • bbp_ng/.style.yapf:代码风格描述文件
  • bbp_ng/.gitignoregitignore
  • bbp_ng/icons/.gitkeep:文件夹占位符
  • bbp_ng/jsons/.gitkeep:文件夹占位符

生成帮助文档

虽然本项目会利用GitHub Page功能提供帮助文档但有时你可能需要提供帮助文档的离线版本本节将会介绍如何生成离线版本的帮助文档。

首先你需要通过pip安装mkdocspymdown-extensions。然后转到docs文件夹下,运行mkdocs build --no-directory-urls。运行命令后得到一个名为site的文件夹,其中就是可以离线浏览的帮助文档。