整理与迁移内嵌资源¶
本教程整理一张包含图像、视频和 ONNX 的蓝图,并根据迁移范围选择 .gmacro、.gcbp 或 .gcbps。目标是既缩小文件,又不让节点、变量、宏或片段产生空引用。
前置条件¶
- 已打开一张包含至少一种内嵌资源的蓝图。
- 已保存当前蓝图,重要项目另有备份。
- 若计划迁移宏,已确认目标是整个宏还是完整蓝图/自动化。
按默认快捷键 N,或点击左上“内嵌管理”,打开整个根蓝图的资源管理器。
先理解统一资源池¶
根蓝图只按数据类型管理资源:
| 数据块 | 常见使用位置 |
|---|---|
| Image | 图像变量、识别模板、画布图片、蓝图图标、宏截图 |
| Video | 宏预览视频片段 |
| ONNX | 识图或检测节点、宏内相关设置 |
“蓝图图标”“画布图片”和“宏截图”不是三份独立图片类型,而是 Image 的不同使用位置。同一 Image 可以被多个位置引用;资源管理器的一条记录会列出全部使用位置。
节点组和宏不会建立各自孤立的资源仓库。它们引用的 Image、Video 和 ONNX 都属于当前根蓝图资源池。
步骤一:按状态盘点资源¶
- 在内嵌管理中按大小排序,先定位占用最大的 Video、Image 或 ONNX。
- 展开每条资源的使用位置,确认它被哪个节点、变量、片段、图标或画布对象引用。
- 按下表决定处理方式:
| 状态 | 建议操作 |
|---|---|
| 已使用 | 保留,或在确认所有使用位置都接受新数据后执行替换。 |
| 未使用 | 确认不再需要后保持未保护;下次保存投影会清理。 |
| 受保护 | 即使暂时未使用也会保留;只在确定不再需要时取消保护。 |
“未使用”不代表文件已经立即从当前编辑会话消失。它仍可在本次会话中重新分配,但保存后的下一份持久化快照不会继续携带未受保护的未使用数据。
步骤二:导出、替换、抠图、映射或删除¶
导出一条资源¶
在资源上右键选择“导出”。这会在外部生成可单独使用的文件,但不会改变蓝图中的资源 ID、引用和状态。视频需要用外部播放器检查声音时,也使用这个入口。
打包导出全部资源¶
点击顶部“打包导出所有内嵌资源”,选择外部文件夹。软件会把可导出的资源复制一份到外部,适合审计或备份;蓝图仍保持内嵌,不会改成外部路径引用。
替换一条资源¶
- 在目标资源上右键选择“替换”。
- 选择同类且符合使用要求的新文件。
- 检查全部使用位置,因为替换会保留原资源 ID,使它们一起指向新数据。
如果替换图片不符合蓝图图标的尺寸条件,图标使用位置会回退默认图标;同一 Image 的其他合法使用位置仍可继续存在。
本机抠图后再决定如何保存¶
支持此功能的客户端在图片右键菜单提供“抠图…”。本机处理后先检查彩色透明 PNG 预览,再选择“替换原资源”或“新增内嵌资源”。替换影响原图的全部使用位置;新增保留原图和现有引用,结果默认受保护,方便稍后分配。视频和 ONNX 没有抠图入口。
取消或失败不修改资源;不要为了继续操作而自动上传图片或下载模型。处理原理和边界见图片本机抠图。
将全部引用映射到现有同类资源¶
在源资源上右键选择“映射到同类资源…”,选择符合要求的同类目标,并检查影响范围。确认后,源资源的全部使用位置迁移到目标;不是只修改一个节点,也不是覆盖目标内容。图片、视频和 ONNX 不能混为一类。
映射后查看目标的使用位置及源资源的保护状态,再保存并重开检查。需要恢复时使用撤销;若只想改一个使用位置,仍应到该位置单独选择资源。
删除一条资源¶
删除会清空所有使用位置并移除资源记录。删除后资源管理器中不再有可供右键替换的对象;需要到节点、变量或片段的实际属性中重新选择资源。
对仍在使用的资源,先查看使用位置:需要整体复用另一份同类资源时可使用上述映射入口;只需更改单个位置时逐项改绑。不要把“删除后再在资源管理器替换”当作工作流。
步骤三:清理并保存¶
- 对以后还会使用、但当前暂时没有引用的资源启用保护。
- 对确定不再使用的资源取消保护,并让它保持未使用。
- 保存蓝图。
- 重新打开内嵌管理,确认已使用和受保护资源仍在,待清理的未使用资源不再进入新快照。
- 运行一次蓝图或高风险节点 Debug,确认没有资源为空或模型不兼容提示。
资源状态由真实引用关系计算。仅在资源管理器中导出文件不会让它变成已使用,删除某个片段后也可能使对应 Image 或 Video 自动变成未使用。
步骤四:选择正确迁移边界¶
只迁移一个宏¶
导出 .gmacro。它携带宏结构、组件、绑定、宏内部数据,以及导出选项保留内容真正引用的 Image、Video 和 ONNX 闭包。
.gmacro不是内嵌资源类型。- 关闭“导出图像片段”不一定移除所有 PNG;如果保留的识别坐标或变量仍引用该 Image,它仍必须进入包。
- 导入目标蓝图后,资源会接入目标根蓝图资源池。
迁移一张完整蓝图¶
使用 .gcbp。它保存蓝图节点、宏、变量、接口和应保留的内嵌资源,适合完整交付单张蓝图,不需要把宏逐个导出。
迁移带顺序的自动化¶
使用 .gcbps。它保存自动化中的蓝图正文或引用、步骤顺序和步骤设置。复制或挂载 .gcbps 的语义与导入 .gmacro 不同:前者处理整套自动化,后者只处理宏内容。
不要把 .gmacro 或 .gcbps 当成内嵌管理器里的一条资源。包被导入后,管理器显示的是解包并接入蓝图的实际 Image、Video 和 ONNX。
验证结果¶
- 内嵌管理中的每条已使用资源都能展开到明确使用位置。
- 一张被多个用途引用的图片只保留一条 Image 记录。
- 替换后所有合法使用位置更新,删除后所有使用位置明确变空。
- 抠图只有预览确认后才应用;新增结果在尚未引用时仍受保护。整体映射后,全部预期使用位置都指向选定的同类目标。
- 未使用且未保护的资源不会继续进入保存后的快照,受保护资源不会因没有引用而丢失。
.gmacro导入后只带来该宏保留内容需要的资源;.gcbp或.gcbps则按各自更大的迁移边界保留内容。
失败处理¶
- 保存后某项资源消失:它在保存时是未使用且未受保护。重新导入外部备份,并在需要暂存时启用保护。
- 替换后多个位置都变了:这是保留资源 ID 的预期行为。若只想改一个使用位置,应先在该位置选择另一份 Image、Video 或 ONNX。
- 删除后找不到替换入口:资源已经不存在。回到出现空引用的节点、变量或片段重新选择。
- 导出的 .gmacro 仍然很大:检查保留片段、变量、内部节点或识别目标是否仍引用大型资源,并核对四个导出筛选选项。
- 导入 .gmacro 后覆盖了当前宏:宏内“导入”会整体替换。需要并存时,从根蓝图画布拖入
.gmacro创建新宏节点。 - 迁移自动化后顺序不一致:确认使用的是
.gcbps,并在自动化工作区检查步骤顺序;.gmacro不保存整套自动化排序。