news 2026/9/13 19:23:34

MaaAssistantArknights 专用 VS Code 扩展(Maa Support)完全指南:tasks.json 语义编辑、截图裁剪与调试实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MaaAssistantArknights 专用 VS Code 扩展(Maa Support)完全指南:tasks.json 语义编辑、截图裁剪与调试实战

MaaAssistantArknights 专用 VS Code 扩展(Maa Support)完全指南:tasks.json 语义编辑、截图裁剪与调试实战

【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights

导读

本文面向《明日方舟》自动化框架 MaaAssistantArknights 及其底层 MaaFramework 的开发者与资源维护者,系统讲解专用 VS Code 扩展「Maa Support」(Maa Pipeline Support)的安装、配置与全部核心功能。读完本文,你将掌握如何借助该扩展高效编辑tasks.json任务流程文件——包括模板任务预览、next跳转、任务引用查询、自动补全、多路径资源覆盖与表达式展开计算,以及如何用内置截图裁剪工具配合 OCR/模板识别快速调试任务。文中所有功能说明均以当前仓库的 interface.json、resource/tasks/tasks.json、.vscode/settings.json 等真实文件为佐证,确保可直接落地使用。


一、扩展是什么:面向 MAA 生态的专用开发工具

Maa Support(扩展商店 ID:nekosu.maa-support)是专门针对 MaaAssistantArknights / MaaFramework 开发的 VS Code 扩展,其核心价值在于把「纯文本 JSON 编辑」升级为「语义化资源编辑」。它提供的主要能力包括:

  • tasks.json深度支持:模板(Template)预览、next跳转、任务引用解析、自动补全与合法性校验;
  • 图片截取与裁剪:内置截图工具,直接连控制器截图、框选裁剪 ROI、一键保存回资源目录;
  • 资源诊断:对任务定义与图片引用进行定时扫描,提前发现命名冲突、悬空引用等错误。

扩展的绝大部分功能都基于**interface.json配置**驱动,这一点与 MaaFramework 的接口约定完全一致(本仓库根目录即存在一份 interface.json),因此理解该文件的字段结构是使用扩展的前提。


二、安装与初始化

2.1 安装方式

推荐直接在 VS Code 的扩展列表中搜索Maa并安装(扩展全名 Maa Support / Maa Pipeline Support)。安装完成后,左侧活动栏会出现专用控制面板图标。

2.2 首次使用的资源下载

首次使用时,扩展会自动下载默认版本的依赖资源(模型、解析器等)。若下载源不可用或速度不理想,可通过命令面板执行:

  • Maa: 選擇下載源(选择下载源)

npm / cnpm两个来源之间切换后重试下载。

::: tip 调用命令面板的快捷键为Ctrl + Shift + P(macOS 为Command + Shift + P),本文后续所有Maa: xxx命令均在该面板中执行。 :::


三、控制面板:一切功能的入口

控制面板位于左侧活动列,扩展绝大部分功能均集中于此。

3.1 选择当前生效的 interface.json

控制面板最上方interface.json选择器,用于切换当前生效的接口配置。以本仓库根目录的 interface.json 为例,其结构如下:

{ "name": "MaaAssistantArknights", "controller": [ { "name": "Adb", "type": "Adb" }, { "name": "Win32", "type": "Win32" } ], "resource": [ { "name": "官服 | Official", "path": ["{PROJECT_DIR}/resource"] }, { "name": "日服 | YoStarJP", "path": ["{PROJECT_DIR}/resource", "{PROJECT_DIR}/resource/global/YoStarJP/resource"] }, { "name": "韩服 | YoStarKR", "path": ["{PROJECT_DIR}/resource", "{PROJECT_DIR}/resource/global/YoStarKR/resource"] }, { "name": "美服 | YoStarEN", "path": ["{PROJECT_DIR}/resource", "{PROJECT_DIR}/resource/global/YoStarEN/resource"] }, { "name": "台服 | txwy", "path": ["{PROJECT_DIR}/resource", "{PROJECT_DIR}/resource/global/txwy/resource"] } ] }

从中可以看到两个关键信息:

  1. controller数组声明了可用的控制器(如AdbWin32),与 MaaPiCli 功能中的控制器扫描范围对应;
  2. resource数组中的每个条目是一个资源方案,path数组而非单个路径——这正是扩展「多路径资源支持」的配置载体(详见下文),例如日服方案由resourceresource/global/YoStarJP/resource两级叠加而成。

3.2 Maa 兼容模式(Maa 相容模式)

当扩展检测到当前打开的文件夹下存在src/MaaCore目录时,会自动启用Maa 兼容模式。该模式会解锁一系列 MAA 专属能力:

  • 解析模板任务(衍生任务、@型任务),支持联动父类查询任务定义与引用;
  • 悬停任务定义时查看同名的模板图片
  • 输入@触发任务自动补全;
  • 图片路径的递归搜索
  • 计算任务/任务列表表达式的实际展开结果。

也就是说:直接在 VS Code 中打开本仓库根目录(存在 src/MaaCore),即可自动获得上述全部增强能力。


四、语义化资源分析:任务定义与引用的编辑体验

4.1 选择资源与诊断范围

通过切换控制面板中的**「資源」下拉菜单**选择预期资源,扩展会根据对应路径进行索引与诊断。若某个 JSON 文件没有出现提示,请检查当前启动的资源是否包含该文件——这是排查「为什么没有补全/跳转」的第一顺位原因。

需要先厘清两个核心术语:

  • 任务的定义:任务对象中的键(Key),即任务名称;
  • 任务的引用:其他任务中可以填入任务名称的值(Value),典型场景是next字段。

4.2 查询任务定义与引用

扩展支持三类导航操作:

  • 跳转至定义(Go to Definition):从引用位置直接跳到任务的声明处;
  • 跳转至引用(Go to References):查看某任务被哪些任务引用;
  • 查看任务定义(Peek Definition):不离开当前文件即可预览任务内容。

开启 Maa 兼容模式后,模板任务会被正确解析,可以联动父类查询任务定义与引用——例如某个B@A型任务引用了A的字段时,跳转会定位到父任务A的声明。悬停任务定义时,还能查看同名模板图片的预览。

使用Ctrl + T快捷键,可以快速搜索并跳转至任意任务定义,适合在大型tasks.json中导航。

4.3 查询与打开图片

扩展支持直接打开任务引用的图片文件;开启 Maa 兼容模式后,支持图片路径的递归搜索——这对应了 MAA 的模板加载约定:模板图片可放在template目录及其子目录下,加载时递归查找(参见 docs/zh-tw/protocol/task-schema.md 中template字段的说明)。

4.4 任务自动补全

扩展会根据所有已知任务提供自动补全。开启 Maa 兼容模式后,在 JSON 值位置输入@符号即可触发补全菜单,快速生成任务名@父任务形式的模板任务,避免手写出错。

4.5 补全图片路径

类似地,扩展会根据所有已知图片路径进行自动补全,开启 Maa 兼容模式后支持递归搜索,确保template字段引用的图片真实存在。


五、任务与图片路径的自动验证

扩展会定时扫描并分析所有任务,自动检查以下四类问题:

检查项说明示例
重复命名的任务定义同一任务名被多次定义两个文件都定义了"Return"
未知的任务引用next/sub等字段引用了不存在的任务"next": ["NoSuchTask"]
未知的图片引用template指向不存在的图片文件"template": "missing.png"
单任务中的重复任务引用同一任务在列表中被重复列出"next": ["A", "B", "A"]

其中「重复引用」的检查与 MAA 的运行期语义一致——任务流程协议明确规定:对于相同任务,第一次识别后第二次不再识别,即"next": [ "A", "B", "A", "A" ]等价于"next": [ "A", "B" ](见 docs/zh-tw/protocol/task-schema.md)。扩展在编辑期就帮你把这类冗余暴露出来。


六、多路径资源支持:逻辑覆盖规则

interface.jsonresource[*].path可以是多个路径,扩展会按照数组内指定的顺序进行逻辑覆盖:

  • 后加载(排在后面)的路径内容可以引用到先加载(排在前面)路径的内容;
  • 同名任务/图片在后加载路径中覆盖先加载路径的定义。

这与 MAA 的多文件任务机制一脉相承:如果后加载的任务文件中定义了与先加载文件同名的任务,且没有baseTask字段,则直接继承先加载同名任务的字段;若定义了baseTask字段,则直接覆盖(参见 docs/zh-tw/protocol/task-schema.md 中「多檔案任務」一节)。以 interface.json 中的台服方案为例:

{ "name": "台服 | txwy", "path": ["{PROJECT_DIR}/resource", "{PROJECT_DIR}/resource/global/txwy/resource"] }

即先加载通用 resource,再加载台服专属覆盖目录resource/global/txwy/resource(该目录下的tasks/可覆盖通用任务定义)。


七、计算任务 / 任务列表表达式(仅限 MAA)

在 Maa 兼容模式下,通过控制面板可以:

  1. 计算任务实际展开的内容及其每一项的来源——即模板任务继承父类字段后、最终生效的完整任务定义;
  2. 计算任务列表表达式展开后的结果——对subnextonErrorNextexceededNextreduceOtherTimes等任务列表类型字段中出现的表达式进行求值。

MAA 的任务列表表达式包含以下运算符(完整说明见 docs/zh-tw/protocol/task-schema.md 的「運算式計算」一节):

符号含义实例
@@型任务Fight@ReturnTo
#(一元)虚任务#self
#(二元)虚任务StartUpThemes#next
*重复多个任务(ClickCornerAfterPRTS+ClickCorner)*10
+任务列表合并(同名任务只保留最靠前者)A+B
^任务列表差(顺序不变)(A+A+B+C)^(A+B+D)(结果为C

运算符优先级为:#(一元)>@=#(二元)>*>+=^。手工推算这类展开很容易出错,而扩展可以直接给出展开结果与每一项的来源,是调试复杂模板任务链路的利器。

在本仓库 resource/tasks/tasks.json 中可以找到大量真实表达式示例,例如:

"Block": { "Doc": "base_task", "algorithm": "JustReturn", "action": "DoNothing", "next": ["#self"] }, "SlowlySwipeToTheLeft": { "algorithm": "JustReturn", "action": "Swipe", "postDelay": 200, "specificRect": [300, 310, 100, 100], "specificRect_Doc": "滑动起点", "rectMove": [880, 310, 100, 100], "rectMove_Doc": "滑动终点", "specialParams": [200, 1, 37, 1], "next": ["#next"], "maxTimes": 50 }

其中next: ["#self"]表示执行完毕后跳回自身(配合maxTimes构成循环),next: ["#next"]表示继承父任务(若为@型任务)的next字段——这些正是虚任务(#型任务)的典型应用,编辑期通过扩展可以直观看到它们展开后的最终形态。


八、MaaPiCli 功能(仅限 MaaFramework 项目)

对于 MaaFramework 项目(而非 MAA 本体),控制面板还集成了 MaaPiCli 的常用操作,无需切换到终端即可:

  • 扫描并选择控制器:对应interface.jsoncontroller数组内声明的控制器;
  • 选择资源:切换resource数组中的资源方案;
  • 新增并管理任务:向当前界面任务队列增删任务;
  • 执行任务:直接驱动当前选中的控制器运行任务,实现「改完即测」。

注意:该功能依赖 MaaFramework 的 CLI 产物,仅适用于 MaaFramework 项目场景;在本仓库(MAA 本体)中主要使用的是上文所述的语义分析、表达式计算等功能。


九、截图裁剪与快速识别:调试 ROI 的完整闭环

在命令面板中执行Maa: 開啟截圖工具,即可打开「截图 / 裁剪」面板。这是任务调试中使用频率最高的功能,操作流程如下:

  1. 连接控制器:选择并连接控制器后,点击「截图」按钮可直接获取屏幕截图;
  2. 手动上传:也可使用「上传」按钮手动上传已有图片(例如从测试机导出的截图);
  3. 框选裁剪:按住Ctrl键,拖动框选需要裁剪的区域;
  4. 缩放:使用鼠标滚轮对图片进行缩放,便于精确定位小控件;
  5. 保存:裁剪完成后点击「下载」按钮,裁剪结果会自动保存到当前启动资源中最顶层的图片目录(即interface.json所选资源方案的第一个path下的template目录),命名后即可直接被template字段引用;
  6. 复制 ROI:使用「复制」按钮,可将裁剪区域的 ROI 以数组形式([x, y, width, height])复制到剪贴板,直接粘贴进roi字段使用;
  7. 快速识别:点击「工具」按钮打开识别工具面板,可对当前图片直接进行识别测试(模板匹配 / OCR),无需跑完整流程即可验证任务参数。

::: warning 若 OCR 识别结果为空,请检查OCR 模型是否配置正确。针对 MAA,扩展会自动维护所使用的模型,你只需在控制面板中选择正确的资源即可;若自建 MaaFramework 项目,则需按 MaaFramework 文档自行配置文字识别模型文件。 :::


十、日志查看功能

调试期间产出的日志可通过两条命令直达:

命令查看内容对应日志文件
Maa: 開啟 maa 日誌MaaFramework 运行日志maa.log
Maa: 開啟插件日誌扩展自身的运行日志mse.log

当扩展行为异常(如补全不生效、资源未加载)时,优先查看mse.log定位扩展侧问题;当任务识别不符合预期(如模板得分偏低)时,结合maa.log中的实际匹配得分来调整templThreshold等参数(得分查看方法参见 docs/zh-tw/protocol/task-schema.md 中templThreshold字段说明)。


十一、底部状态栏:版本与面板入口

VS Code 底部状态栏会常驻两个与扩展相关的条目:

  • MaaSupport <扩展版本>:点击可聚焦到左侧控制面板;
  • MaaFramework <MaaFw版本>:点击可切换扩展使用的 MaaFramework 版本。

需要留意的是:可选择的版本受限于当前扩展所支持的版本范围,若所需版本不在列表中,需要更换扩展本身的版本(升级或降级扩展以获取对应支持)。


十二、与仓库既有配置的协同:Schema 校验与 JSONC

扩展的语义分析能力与仓库自带的 JSON Schema 校验是互补关系,二者共同构成完整的编辑体验:

  • 仓库在 .vscode/settings.json 中已配置好json.schemas,将resource/tasks/**/*.jsonresource/global/**/resource/tasks/**/*.json关联到 docs/maa_tasks_schema.json;
  • 同时通过files.associationsresource/tasks/**/*.json识别为JSONC,允许带注释的_Doc字段(如 resource/tasks/tasks.json 中的specificRect_DocspecialParams_Doc)得到正确的语法高亮。

因此,在 VS Code 中直接打开本仓库文件夹即可同时获得:Schema 的字段级校验与提示(来自maa_tasks_schema.json,其中定义了JustReturnTaskMatchTemplateTaskOcrDetectTaskFeatureMatchTask四类任务结构)+ 扩展的语义级跳转、补全、诊断与表达式计算。前者保证字段「写对了」,后者保证任务「连得上、引得到、图找得到」。


十三、实操建议:从安装到调试的推荐工作流

综合以上全部能力,推荐的任务开发工作流如下:

  1. 打开仓库:VS Code 打开 MaaAssistantArknights 仓库根目录,确认状态栏出现MaaSupport条目、活动栏出现控制面板图标(即扩展已生效),并因存在 src/MaaCore 目录自动启用 Maa 兼容模式;
  2. 选择资源:在控制面板顶部选择当前生效的 interface.json 与目标资源方案(如「官服 | Official」);
  3. 编写任务:在 resource/tasks/tasks.json 中编辑任务,利用@触发补全、Ctrl + T跳转定义、表达式计算验证next链路的展开结果;
  4. 准备图片:执行Maa: 開啟截圖工具,连接控制器截取目标界面,框选裁剪 ROI,一键保存至资源顶层template目录,并将 ROI 数组粘贴到roi字段;
  5. 识别验证:在截图工具面板中对裁剪结果直接进行模板/OCR 识别测试,确认参数有效;
  6. 查看日志:任务执行后通过Maa: 開啟 maa 日誌检查maa.log,若扩展本身异常则查看插件日志mse.log

结语

Maa Support 扩展把 MaaAssistantArknights / MaaFramework 的tasks.json开发从「盲写 JSON」提升为「语义化编辑」:模板任务与@/#表达式的展开计算、定义/引用双向导航、图片路径递归补全与校验,配合截图裁剪工具形成的「截图 → 裁剪 ROI → 识别测试 → 保存模板」闭环,能够显著降低任务流程的开发与排错成本。对于本仓库的开发者而言,只需以 VS Code 打开仓库根目录,即可让扩展与仓库自带的 docs/maa_tasks_schema.json Schema、interface.json 多路径资源方案协同工作,将主要精力集中在任务逻辑本身。

【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 19:22:23

快速上手 RemoveWindowsAI:备份与还原安全网完整指南

快速上手 RemoveWindowsAI&#xff1a;备份与还原安全网完整指南 【免费下载链接】RemoveWindowsAI Force Remove Copilot, Recall and More in Windows 11 项目地址: https://gitcode.com/GitHub_Trending/re/RemoveWindowsAI 删完之后想反悔怎么办&#xff1f;RemoveW…

作者头像 李华
网站建设 2026/9/13 19:22:22

brpc bvar 完全指南:多线程计数器库的原理、使用与监控导出

brpc bvar 完全指南&#xff1a;多线程计数器库的原理、使用与监控导出 【免费下载链接】brpc brpc is an Industrial-grade RPC framework using C Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Rec…

作者头像 李华
网站建设 2026/9/13 19:21:16

完整的方案与示例代码,按照“命令模式 + 执行器 + 可插拔解析器”抽象通信功能,满足高效、可维护、可扩展的需求。设计要点先列出,然后给出必要的代码文件(可直接复制到项目)

完整的方案与示例代码,按照“命令模式 + 执行器 + 可插拔解析器”抽象通信功能,满足高效、可维护、可扩展的需求。设计要点先列出,然后给出必要的代码文件(可直接复制到项目)。 总体方案(简明) • 抽象命令(ICommand):每个与下位机的动作为一个命令对象,包含构建请求…

作者头像 李华