跳转至

整理与迁移内嵌资源

本教程整理一张包含图像、视频和 ONNX 的蓝图,并根据迁移范围选择 .gmacro.gcbp.gcbps。目标是既缩小文件,又不让节点、变量、宏或片段产生空引用。

前置条件

  • 已打开一张包含至少一种内嵌资源的蓝图。
  • 已保存当前蓝图,重要项目另有备份。
  • 若计划迁移宏,已确认目标是整个宏还是完整蓝图/自动化。

按默认快捷键 N,或点击左上“内嵌管理”,打开整个根蓝图的资源管理器。

先理解统一资源池

根蓝图只按数据类型管理资源:

数据块 常见使用位置
Image 图像变量、识别模板、画布图片、蓝图图标、宏截图
Video 宏预览视频片段
ONNX 识图或检测节点、宏内相关设置

“蓝图图标”“画布图片”和“宏截图”不是三份独立图片类型,而是 Image 的不同使用位置。同一 Image 可以被多个位置引用;资源管理器的一条记录会列出全部使用位置。

节点组和宏不会建立各自孤立的资源仓库。它们引用的 Image、Video 和 ONNX 都属于当前根蓝图资源池。

步骤一:按状态盘点资源

  1. 在内嵌管理中按大小排序,先定位占用最大的 Video、Image 或 ONNX。
  2. 展开每条资源的使用位置,确认它被哪个节点、变量、片段、图标或画布对象引用。
  3. 按下表决定处理方式:
状态 建议操作
已使用 保留,或在确认所有使用位置都接受新数据后执行替换。
未使用 确认不再需要后保持未保护;下次保存投影会清理。
受保护 即使暂时未使用也会保留;只在确定不再需要时取消保护。

“未使用”不代表文件已经立即从当前编辑会话消失。它仍可在本次会话中重新分配,但保存后的下一份持久化快照不会继续携带未受保护的未使用数据。

步骤二:导出、替换、抠图、映射或删除

导出一条资源

在资源上右键选择“导出”。这会在外部生成可单独使用的文件,但不会改变蓝图中的资源 ID、引用和状态。视频需要用外部播放器检查声音时,也使用这个入口。

打包导出全部资源

点击顶部“打包导出所有内嵌资源”,选择外部文件夹。软件会把可导出的资源复制一份到外部,适合审计或备份;蓝图仍保持内嵌,不会改成外部路径引用。

替换一条资源

  1. 在目标资源上右键选择“替换”。
  2. 选择同类且符合使用要求的新文件。
  3. 检查全部使用位置,因为替换会保留原资源 ID,使它们一起指向新数据。

如果替换图片不符合蓝图图标的尺寸条件,图标使用位置会回退默认图标;同一 Image 的其他合法使用位置仍可继续存在。

本机抠图后再决定如何保存

支持此功能的客户端在图片右键菜单提供“抠图…”。本机处理后先检查彩色透明 PNG 预览,再选择“替换原资源”或“新增内嵌资源”。替换影响原图的全部使用位置;新增保留原图和现有引用,结果默认受保护,方便稍后分配。视频和 ONNX 没有抠图入口。

取消或失败不修改资源;不要为了继续操作而自动上传图片或下载模型。处理原理和边界见图片本机抠图

将全部引用映射到现有同类资源

在源资源上右键选择“映射到同类资源…”,选择符合要求的同类目标,并检查影响范围。确认后,源资源的全部使用位置迁移到目标;不是只修改一个节点,也不是覆盖目标内容。图片、视频和 ONNX 不能混为一类。

映射后查看目标的使用位置及源资源的保护状态,再保存并重开检查。需要恢复时使用撤销;若只想改一个使用位置,仍应到该位置单独选择资源。

删除一条资源

删除会清空所有使用位置并移除资源记录。删除后资源管理器中不再有可供右键替换的对象;需要到节点、变量或片段的实际属性中重新选择资源。

对仍在使用的资源,先查看使用位置:需要整体复用另一份同类资源时可使用上述映射入口;只需更改单个位置时逐项改绑。不要把“删除后再在资源管理器替换”当作工作流。

步骤三:清理并保存

  1. 对以后还会使用、但当前暂时没有引用的资源启用保护。
  2. 对确定不再使用的资源取消保护,并让它保持未使用。
  3. 保存蓝图。
  4. 重新打开内嵌管理,确认已使用和受保护资源仍在,待清理的未使用资源不再进入新快照。
  5. 运行一次蓝图或高风险节点 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 不保存整套自动化排序。

相关内容