MaaAssistantArknights 上手指南:从图像识别到一键长草的 4 步拆解
【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights
每天上线,清体力、刷材料、巡访好友、领邮件,这套流程重复上百次,手比脑子先累。MaaAssistantArknights(下称 MAA)就是为这类「明日方舟游戏自动化」需求写的:你只管点一次开始,剩下的截屏、判断、点击由它循环完成。
它解决什么问题
- 日常一键化:理智作战、访问好友、收取信用、领奖励打包成一次操作,跑完即可下线
- 公招全自动:自动公招可选加急许可,刷完后把数据同步到统计网站
- 基建排班:自动计算干员效率并安排换班,也支持自定义排班
- 肉鸽 / 保全派驻:选一个作业 JSON,它按作业自动抄
- 无界面也能跑:maa-cli 支持 Windows、Linux、macOS,适合挂脚本或无桌面的服务器
工作原理:一条数据链路
把 MAA 的运行过程拉直,就是四步循环,每一步的输入输出都很清楚。
1. 截屏
- 输入:目标窗口(游戏本体、MuMu/Play 模拟器、Android 设备)
- 输出:一帧屏幕图像(OpenCV 的
cv::Mat) - 负责模块:src/MaaCore/Controller/。
AdbController走 ADB 抓安卓帧,Win32Controller抓 Windows 窗口,macOS 用MacSCKHelper调 ScreenCaptureKit,MumuController、PlayToolsController走各家模拟器接口
2. 识别
- 输入:这一帧图像 + JSON 资源里声明的模板、识别区域
- 输出:「当前在哪个界面」「按钮在 (x, y)」这类结构化结果
- 负责模块:src/MaaCore/Vision/。
Matcher做模板匹配定位图标,OCRer/RegionOCRer做文字识别(底层由 ONNX Runtime 跑 OCR 模型,OnnxHelper负责会话管理),FeatureMatcher处理复杂场景的特征点匹配,MultiMatcher一次比对多张模板
3. 决策
- 输入:上一步的结构化结果 + 任务配置
- 输出:下一步动作序列,例如「点 (412, 233),等 1 秒」
- 负责模块:src/MaaCore/Task/。
ProcessTask、InterfaceTask、PackageTask把游戏操作拆成可组合的任务单元,各任务通过AbstractTask的插件机制挂上具体逻辑;识别配置由 src/MaaCore/Config/ 的ResourceLoader从 JSON 资源读取,行为改配置就行,不用改代码
4. 执行
- 输入:动作序列
- 输出:真实的点击、滑动、按键事件,游戏状态变化后回到第 1 步
- 负责模块:仍在 Controller 层。
MinitouchController模拟触控事件,SwipeHelper处理滑动轨迹,ControlScaleProxy在控制器分辨率和真实窗口之间换算坐标
模块地图
| 模块 | 职责 | 路径 |
|---|---|---|
| MaaCore | 核心引擎:识别、任务调度、设备控制 | src/MaaCore/ |
| Vision | 模板匹配、OCR、特征点匹配 | src/MaaCore/Vision/ |
| Controller | 各平台截屏与触控模拟 | src/MaaCore/Controller/ |
| Task | 任务单元、插件机制、战斗/基建/肉鸽逻辑 | src/MaaCore/Task/ |
| Config | 资源加载、OCR 会话、GPU 选择 | src/MaaCore/Config/ |
| MaaWpfGui | Windows 桌面端 | src/MaaWpfGui/ |
| maa-cli | 命令行入口 | src/maa-cli/ |
| 多语言绑定 | C 接口之上的各语言封装 | src/Python/、src/Java/、src/Rust/、src/Golang/、src/Dart/ |
| include | 对外 C 头文件(AsstCaller、MaaCore 等) | include/ |
从零跑起来
环境依赖
- CMake ≥ 3.28,构建配置集中在 CMakePresets.json
- C++20 编译器:Windows 用 Visual Studio,Linux/macOS 用 Ninja
- OpenCV 4.x、ONNX Runtime、zlib、Boost——不想自己装的话,用仓库自带的依赖工具
tools/maadeps-download.py(各平台 preset 里的MAADEPS_TRIPLET变量就是给它用的)
编译 MaaCore
- 配置:
cmake --preset linux-x64(按系统换成windows-x64、macos-arm64等) - 构建:
cmake --build --preset linux-x64-Release
跑起来(推荐 CLI,路径最短)
maa install # 安装 MaaCore 与资源 maa init # 交互式初始化配置 maa list # 查看可用任务最小自动化示例:开官服客户端、用 3 瓶理智药刷 BB-7、收工——
maa startup Official && maa fight BB-7 -m 3 && maa closedown资源(resource/下的任务 JSON 和模板)独立于二进制分发,游戏更新后跑maa update即可,不必重新编译。
和同类方案怎么选
| 方案 | 原理 | 与游戏进程的接触 | 界面改动适应性 | 平台覆盖 |
|---|---|---|---|---|
| MAA | 截屏 + 图像识别 + 模拟触控 | 零接触,纯外部观察 | 强:靠配置资源调整,代码不动 | Windows / Linux / macOS / Android |
| 内存读取 / 脚本注入类 | 直接读写游戏进程 | 强接触 | 依赖内存结构,更新即失效 | 通常单平台 |
| 本地宏工具 | 固定坐标的点击序列 | 只模拟输入 | 弱:窗口移动、UI 变化就点偏 | 单平台 |
| 云端托管类 | 远程执行整套操作 | 因方案而异 | 强 | 受服务端限制 |
判断依据都在仓库里可查:MAA 的 CMake 里没有任何注入类依赖,识别行为全部由 JSON 资源驱动(见 Config 模块),更新适配走的是资源更新而不是改代码。
容易踩的坑
- 游戏更新后别急着怀疑代码。模板、OCR 区域这些都在独立资源里,先
maa update拉新资源;真不行再去看日志。日志默认Warn级别,排障时设MAA_LOG=debug再跑一次。 - 外服玩家注意功能完整度。美服、日服、韩服、繁中服大部分功能已支持,但文档明说「很多功能并没有进行全面的测试」,关键功能先手动验证。
- 自动化边界要自己把握。MAA 不修改客户端、不读内存,这一点从架构上可验证;但高频自动化对账号的长期影响属于使用方式问题,参考仓库自带的 terms-of-service.md,按自己的风险承受度控制频率。
MAA 适合两类人:想把手头《明日方舟》日常彻底外包的玩家,以及想拿 C++20 写一个「截屏→识别→决策→执行」完整闭环做参考的开发者。核心引擎约万行级规模,模块边界清晰,clone 下来(https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights)从 Task 模块读起最省力。
【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考