目录
| 路径 | 内容 |
__init__.py
blender_manifest.toml | 插件本体(仅两个文件) |
docs/ | 完整文档 23 篇:文档索引、01_工作注意事项、02_功能描述、architecture、BlenderToUE_PRODUCT、features/、development/、release/ |
Log/ | 崩溃分析等历史日志 |
CHANGELOG.md | 停更在 3.9.0 与 v3.49.0 严重脱节 |
版本依据是 blender_manifest.toml,不是 CHANGELOG.md。后者停在 3.9.0,实际插件已到 3.49.0,差了 40 个小版本,别拿它判断当前版本。
开发流程
# 打包(仓库根执行)
./build.sh --module export
# → 产出 builds/ue5_export_tools_v3.49.0.zip
# 安装:Blender → Preferences → Extensions → Install from File
热重载脚本当前不可用:scripts/reload_plugin.py 里的插件 ID 写的是 ue5_staticmesh_exporter_ultimate,与实际的 ue5_export_tools 不符。跑了不报错但什么也不会重载,需先修正 ID。
注意点
| 注意点 | 注释 |
| 不动碰撞体识别逻辑 |
UCX_ / UBX_ / USP_ / UCP_ 前缀判断是 UE5 识别碰撞体的依据,动了整条链路会断。典型写法 obj.name.startswith("UCX_")。 |
| 不改导出模式默认值 |
默认 SELECTED。MERGE(合并所有子物体)与 INDIVIDUAL(每个子物体单独导出)是可选模式。 |
| 导出必须走副本 |
三种模式都用 duplicate() 后的临时对象操作,绝不污染用户原始场景。改动时保持这个原则,这是非破坏性导出的基础。 |
| 递归收集子级 |
容器导出会自动收集所有后代网格(不只是直接子级),合并模式下还会智能合并多个碰撞体。 |
| 文档别全量读 |
docs/ 有 23 篇。先看 docs/文档索引.md 定位需要的那篇,不要一次全读。 |
| 临时对象要清理 |
导出结束后自动清理临时对象,改动时注意别把清理逻辑绕过去,否则会留下垃圾对象。 |
已稳定的核心功能(勿擅改)
| 功能 | 说明 |
| 碰撞体导出 | 识别四种前缀,统一预处理 |
| 空物体容器导出 | SELECTED / MERGE / INDIVIDUAL 三模式 |
| 导出控制 | 过滤器 / 路径 / 格式 / 单位转换 |
| SOC、JadeLink JSON | UE5 侧配套数据 |