MaaAssistantArknights 基建换班完全指南:常规模式、跨设施组合与自定义排班协议
【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights
导读
MaaAssistantArknights(MAA)的基建换班(基地仕事 / Infrast)功能,是每日挂机流程中自动化程度最高、配置项最丰富的模块之一:它既能按算法自动计算高效干员组合、自动使用无人机与宿舍轮休,也支持通过 JSON 排班协议实现完全自定义的换班节奏。本文以 docs/ja-jp/manual/introduction/infrastructure.md 为骨架,结合源码实现与内置排班示例,系统讲解常规模式、队列轮换、自定义基建换班三大工作方式,以及完整字段协议,帮助你根据自身练度与作息,配置出可稳定运行的基建自动换班方案。
三种换班模式概览
基建换班功能提供三种工作方式,入口均在 MAA 的任务设置 → 基建换班中:
| 模式 | 特点 | 适用场景 |
|---|---|---|
| 常规模式 | 由算法自动计算干员组合与换班顺序,无需手动排班 | 大多数玩家默认使用 |
| 队列轮换 | 先由玩家在游戏内预设换班队列,MAA 按队列自动轮换 | 已习惯游戏内预设队列的玩家 |
| 自定义基建换班 | 读取resource/custom_infrast/*.json排班方案,按方案精确换班 | 追求极限效率或有固定作息排班的玩家 |
其中常规模式是默认与最常用的路径,以下先详细展开。
常规模式
换班策略
常规模式下,MAA 会自动完成以下工作:
- 自动计算并选择效率较高的干员组合:支持所有通用类技能、特殊技能组合以及跨设施组合,无需手动排班。实际计算发生在
src/MaaCore/Task/Infrast/InfrastProductionTask.cpp等设施任务中,通过InfrastScore(见src/MaaCore/Task/Infrast/InfrastScore.cpp)对干员候选集打分排序。 - 自动识别产物类型:自动识别经验书(作戦記録 / Battle Record)、赤金(純金 / Pure Gold)、源石碎片(源石の欠片 / Originium Shard)、芯片(SoC / Dualchip),并分别使用对应的干员组合,与自定义作业中的
product字段对应。 - 自动使用无人机:按照设置中
无人机用途(ドローン用途)选择的方式使用无人机。 - 心情阈值换班:自动识别心情进度条,换班时将剩余心情百分比小于
基建工作心情阈值(作業体力閾値)的在岗干员换出,并在宿舍补位阶段安排其进驻休息。该阈值在源码中对应InfrastAbstractTask::set_mood_threshold设置的m_mood_threshold(见 src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp),生产类设施任务中会以cur_oper.mood_ratio < m_mood_threshold作为换人判断(见 src/MaaCore/Task/Infrast/InfrastProductionTask.cpp)。
跨设施组合
以下跨设施干员组合可在基建设置中按需启用,启用后算法会在排班计算中纳入这些组合的联动加成:
红松骑士团:必要干员为焰尾(精二)、薇薇安娜(精二)、野鬃/灰毫/远牙(精二)至少一人,砾参与计算。感知信息:必要干员为絮雨(精二)、迷迭香(精二)、黑键(精二),夕、塑心、爱丽丝、车尔尼参与计算,其优先级高于人间烟火。人间烟火:必要干员为桑葚(精二)、乌有(精二),重岳、令、夕参与计算。深海猎人:必要干员为歌蕾蒂娅(精二)、乌尔比安、斯卡蒂、幽灵鲨、安哲拉。由于算法原因,同时勾选红松骑士团时,两者不会同时参与排班(避免组合间干员占用冲突)。
换班顺序
常规模式下,换班顺序由算法统一安排:
宿舍 → 发电站 → 办公室 → 控制中枢 → 制造站 → 贸易站 → 会客室 → 宿舍 → 加工站 → 训练室
该顺序是为支持跨设施组合与心情恢复联动而设计的(先处理宿舍,使低心情干员尽快开始休息;再依次处理发电站等设施)。需要特别注意的是:
- 设置中的
换班设施(施設リスト)列表仅决定 MAA 处理哪些设施类别,列表本身的顺序不生效; - 如需按自定义顺序换班,请使用下文的自定义基建换班模式。
源码中每个设施对应一个独立的子任务类(见 src/MaaCore/Task/Infrast/),例如InfrastDormTask(宿舍)、InfrastPowerTask(发电站)、InfrastOfficeTask(办公室)、InfrastControlTask(控制中枢)、InfrastMfgTask(制造站)、InfrastTradeTask(贸易站)、InfrastReceptionTask(会客室)、InfrastProcessingTask(加工站)、InfrastTrainingTask(训练室),换班整体调度由这些子任务按上述顺序串联执行。
额外说明
常规模式还有一些细节行为值得了解,它们往往影响实际换班效果:
- 巫恋组(シャマレグループ):若
无人机用途选择贸易站-龙门币,MAA 会额外识别巫恋组并优先为其使用无人机,对应源码实现为 src/MaaCore/Task/Infrast/DronesForShamareTaskPlugin.cpp。 - 菲亚梅塔(フィアメッタ)心情恢复:该功能默认关闭,需在基建设置中开启
启用菲亚梅塔心情恢复(フィアメッタの体力回復を有効化)后生效。开启后可指定最多 3 名恢复目标(清流、可露希尔、但书、巫恋、龙舌兰、歌蕾蒂娅)。换班开始时,MAA 会将当前心情最低的目标干员与菲亚梅塔一同进驻宿舍互换心情,随后仅将菲亚梅塔留在宿舍恢复心情。由于自动换班难以实现巫恋、龙舌兰的 007 效果(持续在岗不回宿舍),不推荐选择这两名干员作为恢复目标。其换人逻辑可见 src/MaaCore/Task/Infrast/InfrastDormTask.cpp。 - 会客室线索赠送:会客室每次换班都会尝试赠送线索。国服(Official、BiliBili)在 2025-12-05 新增了「一键赠送重复线索」功能,当 MAA 检测到该按钮时会自动点击以批量赠送重复线索;EN/JP/KR 预计约 6 个月后支持该功能,TW 预计约 1 年后支持(台服因追赶进度可能更早支持)。
- 会客室干员选择:按固定优先级选择干员(如
见行者、跃跃优先),U-Official的线索倾向技能会被禁用。 - 线索交流与一键放置:若无法开启线索交流,换班时 MAA 会把线索板上的所有线索取下;若能开启,则使用一键放置。这是因为个人线索上限为 10 张(含已放入会客室的线索),且已放入会客室的线索不计入重复判断——若提前放入过多线索,可能出现线索到达上限、却既无法一键赠送、也无法继续获取新线索、只能靠好友捞起的尴尬局面。例如线索板上已有 6 种线索(需凑齐 7 种不同线索才能开启交流),手中再有 4 张互不重复的线索,就会收不了新线索,也一键赠送不出去。
- 不将已进驻干员放入宿舍:开启
不将已进驻的干员放入宿舍(配置済みオペレーターを寮に入れない)设置项,可避免艾丽妮、逻各斯等干员在训练室未训练时被错误进驻到宿舍;低心情的已进驻干员由其所在设施换班换出后再进驻宿舍休息。 - 控制中枢规则:按固定优先级规则选择干员(制造/贸易/办公室加速、其他设施心情减免、跨设施组合联动等),同类增益不重复占位。
- 可处理设施选择:可自行选择需要 MAA 处理的设施类别,默认全选;取消勾选后,对应设施在换班时将被跳过。
队列轮换
队列轮换模式(シフト交代)的使用前提是:
先在游戏内设置好预设队列(预设换班队列),MAA 随后按该队列自动进行轮换。
该模式适合已经在游戏内配置好换班队列、希望由 MAA 代替手动点击的玩家,MAA 本身不参与排班计算,仅执行轮换操作。
自定义基建换班
当常规模式的算法排班无法满足需求时,可以使用自定义基建换班模式,通过编写 JSON 排班方案精确控制每个房间的干员与换班节奏。
方案来源与内置示例
- 社区贡献者提供了可视化排班生成工具使用,生成后导出 JSON 放入
resource/custom_infrast/目录即可。 - MAA 文件夹下
resource/custom_infrast/目录内置了若干套理论极限效率的作业,包括243_layout_3_times_a_day.json、243_layout_4_times_a_day.json、153_layout_3_times_a_day.json、153_layout_4_times_a_day.json、333_layout_for_Orundum_3_times_a_day.json(以仓库当前实际文件为准)。这些方案对干员与练度要求极高,不推荐直接使用,仅作参考。
注意:
resource/custom_infrast/位于 MAA 资源目录下,仓库更新时可能被覆盖;若自行修改,建议保留备份或通过生成工具重新导出。
JSON 文件结构
自定义排班方案使用resource/custom_infrast/*.json描述。需要注意JSON 文件不支持注释,协议文档中的注释仅用于演示说明,不可直接复制使用。
完整字段结构如下(含各字段含义与取值范围):
{ "title": "小号的换班方案", // 作业名,可选 "description": "哈哈哈哈", // 作业描述,可选 "plans": [ { "name": "早班", // 计划名,可选 "description": "lol", // 计划描述,可选 "description_post": "", // 计划执行完时显示的描述,可选 "period": [ // 换班时间段,可选 // 若当前时间在该区间内,则自动选择该计划(整个 json 文件中可能包含多个计划) // 如果该字段不存在,则每次换班结束后,自动切换为下一个计划 // core 不处理该字段,若使用接口集成 MAA,请自行实现该逻辑 [ "22:00", // 要求格式 hh:mm,目前只是简单的数字大小比较,跨天请仿照本示例写法 "23:59" ], [ "00:00", "06:00" ] ], "duration": 360, // 工作持续时长(分钟),保留字段,目前无作用。以后可能到时间后弹窗提醒或自动换班 "Fiammetta": { // "菲亚梅塔" 为哪位干员使用,可选,不填写则不使用 "enable": true, // 是否使用"菲亚梅塔",可选,默认 true "target": "巫恋", // 目标干员,使用 OCR 识别,需传入对应客户端语言的干员名 "order": "pre" // 在整个换班前使用,还是换完班才用,可选,取值范围 "pre" / "post",默认 "pre" }, "drones": { // 无人机使用,可选,不填写则不使用无人机 "enable": true, // 是否使用无人机,可选,默认 true "room": "trading", // 为哪个类型房间使用,取值范围 "trading" / "manufacture" "index": 1, // 为第几个该类型房间使用,对应左侧 tab 栏序号,取值范围 [1, 5] "rule": "all", // 使用规则,保留字段,目前无作用。以后可能用于支持插拔等操作 "order": "pre" // 在换干员前使用还是换完才用,可选,取值范围 "pre" / "post",默认 "pre" }, "groups": [ // 对于 "control" / "manufacture" / "trading",可以设置干员编组 { "name": "古+银", "operators": ["古米", "银灰", "梅"] }, { "name": "清流", "operators": ["清流", "森蚺", "温蒂"] } ], "rooms": { // 房间信息,必选 // 取值范围 "control" / "manufacture" / "trading" / "power" / "meeting" / "hire" / "dormitory" / "processing" // 缺少某个设施时,该设施使用默认算法进行换班 // 若想不对某个房间换班,请使用 skip 字段,或在软件 任务设置-基建换班-常规设置 中取消该设施的勾选 "control": [ { "operators": [ "夕", // 使用 OCR 识别,需传入对应客户端语言的干员名 "令", "凯尔希", "阿米娅", "玛恩纳" ] } ], "manufacture": [ { "operators": ["芬", "稀音", "克洛丝"], "sort": false // 是否排序(按照上面 operators 的顺序),可选,默认 false // 示例:使用稀音、帕拉斯、巫恋等干员且 "sort": false 时,干员顺序可能被打乱,导致暖机效果丢失; // 使用 "sort": true 可以避免这个问题 }, { "skip": true // 是否跳过当前房间(数组序号对应),可选,默认 false // 若为 true,其他字段均可为空。仅跳过换干员操作,其他如使用无人机、线索交流等仍会正常进行 }, { "operators": ["Castle-3"], "autofill": true, // 使用原先的算法自动填充剩下的位置,可选,默认 false // 若 operators 为空,则该房间完整使用原先算法进行排班 // 若 operators 不为空,将仅考虑单干员效率,而不考虑整个组合效率 // 注意可能与后面的自定义干员产生冲突(比如把后面需要的干员拿到这里用了),请谨慎使用,或将 autofill 的房间顺序放到最后 "product": "Battle Record" // 当前制造产物,可选 // 若识别到当前设施与作业中设置的产物不符合,界面会弹红色字样提示,以后可能有更多作用 // 取值范围:"Battle Record" | "Pure Gold" | "Dualchip" | "Originium Shard" | "LMD" | "Orundum" }, { "operators": ["多萝西"], "candidates": [ // 备选干员,可选。这里的干员有谁用谁,选满为止 // 与 autofill=true 不兼容,即该数组不为空时,autofill 需要为 false "星源", "白面鸮", "赫默" ] }, { "use_operator_groups": true, // 设置为 true 以使用 groups 中的干员编组,默认为 false "operators": [ // 启用后,operators 中的名字将被解释为编组名 "古+银", // 将按照心情阈值以及设置顺序选择编组 "清流" // 如 古+银 组中有干员心情低于阈值,将使用 清流 组 ] } ], "meeting": [ { "autofill": true // 这个房间内整个 autofill } ] } }, { "name": "晚班" // ... } ] }字段要点与源码印证
- 干员名使用 OCR 匹配:
operators、candidates、Fiammetta.target中的干员名均通过 OCR 识别匹配,因此必须使用当前客户端语言对应的干员名(如日服使用日语名)。自定义干员选择与复核逻辑见 src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp,select_custom_opers通过RegionOCRer逐页识别干员名并点击选择,select_opers_review负责在换班完成后复核人选是否与配置一致。 sort与暖机效果:某些干员的技能存在暖机(预备)效果,若换班时干员位置被打乱,暖机效果可能丢失。对这类房间建议设置"sort": true,使干员严格按照operators数组顺序进驻,源码中对应swipe_and_select_custom_opers里的order_opers_selection(见 src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp)。period与多计划轮换:一个 JSON 可包含多个plans。若计划带有period时间段,则按当前时间自动选择对应计划;若没有该字段,则每次换班结束后自动切换到下一个计划。注意core本身不处理period字段——若你通过接口集成 MAA,需要自行实现这一时间选择逻辑。skip的粒度:skip: true仅跳过该房间的换干员操作,无人机使用、线索交流等其他动作仍正常执行。autofill的冲突风险:autofill: true时剩余位置由原算法自动填充,可能占用其他房间计划中需要的干员,建议将autofill的房间顺序放在方案末尾,或谨慎使用。groups干员编组:配合"use_operator_groups": true使用。启用后operators中的名字被解释为编组名,MAA 按心情阈值与设置顺序选择编组——当某组中有干员心情低于阈值时,自动切换到下一组。组匹配逻辑见 src/MaaCore/Task/Infrast/InfrastAbstractTask.cpp,匹配成功与失败会分别回调CustomInfrastRoomGroupsMatch/CustomInfrastRoomGroupsMatchFailed事件。
内置作业示例解读
以仓库内置的 resource/custom_infrast/243_layout_3_times_a_day.json 为例,可以看到实际作业中的典型写法:
{ "title": "243-高配3队简化率,12H一换,无需菲亚梅塔", "plans": [ { "name": "12H第一班", "Fiammetta": { "enable": false, "target": "", "order": "pre" }, "drones": { "room": "manufacture", "index": 1, "enable": true, "order": "pre" }, "rooms": { "trading": [ { "skip": false, "product": "LMD", "operators": ["黑键", "吉星", "可露希尔"], "sort": true, "autofill": false }, { "skip": false, "product": "LMD", "operators": ["但书", "贝洛内", "伺夜"], "sort": true, "autofill": false } ], "manufacture": [ { "skip": false, "product": "Battle Record", "operators": ["野鬃", "远牙", "灰毫"], "sort": true, "autofill": false }, { "skip": false, "product": "Pure Gold", "operators": ["清流", "温蒂", "森蚺"], "sort": true, "autofill": false } ] } } ] }该示例的要点:
- 标题与
description字段明确了作业的适用前提(高配、3 队、12 小时一换、无需菲亚梅塔),这也是内置作业普遍标注"干员配置要求极高"的原因; - 每个房间都显式声明了
product(LMD、Battle Record、Pure Gold),便于 MAA 在识别到产物不一致时给出提示; sort: true保证如清流等需要特定进驻顺序的干员不被打乱;- 无人机固定投给 1 号制造站(
manufacture+index: 1)。
实战排班建议
- 优先使用生成工具:手工编写 JSON 容易出错,推荐先使用可视化排班生成工具,按自己的干员池与练度生成方案后导出。
- 根据作息设计换班次数:内置示例覆盖 3 班(约 8 小时一换)与 4 班(约 6 小时一换)两种节奏;若使用
period字段,可将不同计划绑定到不同时间段,实现白天/夜间差异化排班。 - 关注心情阈值联动:自定义模式下,宿舍的补位与常规模式一样受
基建工作心情阈值影响;给宿舍配置时可通过autofill让算法自动挑选低心情干员休息。 - 验证产物匹配:作业中声明的
product若与游戏内当前制造产物不符,MAA 会给出红色提示,据此可及时修正作业或游戏内设置。
总结
基建换班是 MAA 每日挂机链路中配置最灵活的一环:常规模式以算法自动排班覆盖绝大多数场景,无人机用途、基建工作心情阈值、跨设施组合与菲亚梅塔恢复等设置项共同决定了换班质量;而自定义基建换班通过resource/custom_infrast/*.json排班协议,把换班节奏与每个房间的干员选择完全交还给玩家。结合本文所述的字段协议、内置示例与源码行为(如 OCR 匹配、sort 暖机保护、编组心情切换),你可以在此基础上生成并校验属于自己的高效基建排班方案。
延伸阅读
- 排班协议完整字段说明:docs/zh-cn/protocol/base-scheduling-schema.md
- 基建换班(中文版)说明:docs/zh-cn/manual/introduction/infrastructure.md
- 基建相关设施任务源码:src/MaaCore/Task/Infrast/
- 内置排班作业目录:resource/custom_infrast/
【免费下载链接】MaaAssistantArknights《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients.项目地址: https://gitcode.com/GitHub_Trending/ma/MaaAssistantArknights
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考