跳转至

导入与导出 .gmacro

.gmacro 是宏的自包含交换包。它可以携带时间线、组件、宏内部节点和实际引用资源,但它本身不是内嵌资源管理器中的一种资源类型。

导出适合把一个宏交给其他蓝图或其他用户;保存蓝图则保存当前完整工程状态。两者用途不同。

导出入口

在宏时间线工具条点击“导出”,会打开 GhostClickAI 的共享保存浏览器,而不是简单的系统路径框。左侧可导航和搜索目录、创建文件夹,右侧显示“导出内容”。

文件名会自动补全 .gmacro,同名文件需要确认覆盖。录制准备、正式录制或已有文件传输进行中时,导入导出暂不可用。

四个导出选项

选项 默认 控制的时间线内容
导出 PC 轨道 开启 鼠标路径、PC 按键、桌面输入及 PC 控制片段
导出 ADB 轨道 开启 ADB 触摸、ADB 输入及 ADB 控制片段
导出图像片段 关闭 预览轨道中的图像片段
导出视频片段 关闭 预览轨道中的视频片段

这四项只筛选时间线片段,不是“把整个宏的某类数据粗暴删除”。即使全部关闭,仍能导出一个结构合法的宏包。

以下结构始终保留:

  • 宏内部节点、连线、变量和节点组。
  • 预览组件及其属性。
  • 轨道、分组和显隐状态。
  • 保留内容仍然需要的绑定与引用关系。

嵌套片段会递归筛选。子时间线不再包含任何保留内容时,其包装和无用内容定义会被清理;保留下来的嵌套时长会重新计算。

真实资源闭包

导出会在完成片段筛选后重新计算资源引用,只打包仍被实际使用的 Image、Video 和 ONNX:

  • 未被任何保留内容使用的资源不会进入包。
  • 关闭“导出图像片段”只会删除预览图像片段。
  • 如果图像仍被变量、图像识别坐标、组件或内部节点使用,它仍会导出。
  • 同理,关闭“导出视频片段”不等于允许其他有效引用变成悬空。

因此,.gmacro 可以比完整蓝图小,同时仍保持执行所需资源闭合。派生预览缓存不会作为独立资源打包。

外接 ADB 操作规则会在导出前物化为宏包内部组件,并重写相关绑定。包内不允许继续依赖本机图片、视频、模型路径或父蓝图外部组件。

图像、视频和 .gmacro 的关系

图像和视频是根蓝图资源池中的数据块;.gmacro 只是传输这些数据与宏结构的容器。导入后不会在“内嵌管理”中出现一个名为 .gmacro 的资源。

导出安全性

写盘使用临时文件和可恢复替换。覆盖已有文件时,如果写入失败,编辑器会尽量恢复旧文件;自动恢复失败时会告知备份位置。

当前格式为 v1,单个宏包最大 512 MiB。单资源、资源总量和项目数也有安全限制;过大或结构异常的内容会拒绝导出或导入,不会生成部分有效的包。

在宏内导入并替换

点击时间线工具条“导入”并选择一个 .gmacro 后,编辑器会先完整读取和校验,再显示“替换当前宏?”确认窗口。

确认替换会整体更新:

  • 当前宏时间线和嵌套序列。
  • 预览组件与绑定。
  • 宏内部节点、连线和变量。
  • 该宏引用的内嵌资源。

导入不是边读边改。损坏文件、缺失资源、哈希错误、非法外部路径、不支持节点、过大内容或用户取消都不会改变当前宏。

正式替换是一条完整历史操作,成功后可以撤销。若写入过程中失败,编辑器会恢复替换前的时间线、内部节点和资源状态,不留下“节点已经换了、资源只导入一半”的中间结果。

资源怎样进入根蓝图

包内 Image、Video 和 ONNX 会合并到根蓝图的统一资源池:

  • 内容相同的资源尽量复用。
  • ID 冲突时会稳定重映射,并同步修正宏内引用。
  • 原宏不再引用的资源可能变成未使用资源,但不会粗暴清空整张蓝图的资源池。

导入完成后,可在内嵌资源管理器查看每项资源的使用位置。

从蓝图画布导入为新宏

在根蓝图画布拖入 .gmacro,行为不同于宏内“导入”:

  • 它会创建新的宏节点,不替换已经存在的宏。
  • 可一次拖入纯 .gmacro 批次,最多 32 个。
  • 同一批中混入图片或 SVG 会整批拒绝。
  • 任意一个包读取失败时,本批不会创建部分节点。

需要拆分或复用多个宏时,使用蓝图画布拖入;需要让当前宏完全变成包内内容时,使用宏编辑器工具条“导入”。

推荐导出组合

用途 建议选项
只交换可执行自动化数据 PC 和 ADB 开启,图像与视频片段关闭
需要保留调试截图 在上项基础上开启图像片段
需要完整复现录屏预览 四项全部开启
只交换组件和内部节点模板 四项全部关闭,并确认所需识别资源仍由结构引用

导出前最好先保存蓝图并检查内嵌资源使用位置,但 .gmacro 会从当前内存状态生成,不要求先落盘才能包含刚完成的宏修改。

常见问题

关闭图像片段后,为什么包里仍有 PNG

某个保留的图像变量、识别坐标、组件或内部节点仍在引用它。导出选项控制的是图像片段,不会破坏其他真实引用。

导入后原宏资源为什么没有全部消失

资源池属于根蓝图。导入只替换当前宏的引用和内容;其他节点、节点组或宏仍可能使用同一资源。

为什么导入先校验很久,确认框还没出现

编辑器需要先验证结构、资源完整性、引用闭包和安全限额。只有能够完整读取的包才允许进入替换确认。

为什么导入按钮不可用

确认当前不在录制准备、正式录制、结束提交或另一项 .gmacro 文件操作中。

继续阅读