基于 MaaFramework 5.12.2 与 ProjectInterface V2 ,依托Deepseek和Codex实现的《偶像梦幻祭2》打歌自动化项目。
当前源码 v1.0.6-residual-candidate,在统一物理点按上补充复合轮廓局部恢复及独立划动资格保护,保留各类视觉、时序和成功尾划,不代表稳定FC版本。独立包为MAES_PointIdentity_Refined_Candidate,旧发行目录保持不变,修复与下一轮说明见docs/residual-fix-handoff.md;旧交接说明保留为历史资料。
- 打歌点位校准:在演唱会进行页识别 7/9 个判定点并保存本地校准。
- 临时打歌:7 轨实时跟踪与自动打歌(Tap / 长按 / 四向划动 / 变轨长按 / 尾端划动)。
- 临时打歌(9轨实验):仅做校准与候选识别预检,不发送正式打歌动作。
- 打歌触控能力检测:触控异常时的诊断工具(歌曲暂停页运行),正常打歌无需预先运行。
启动游戏、日常、事务所、星光演唱会、活动与送抽等任务暂未提供,后续版本逐步加入。
0.下载release的最新版本并解压
1.游戏内演唱会设置为:延迟0.0,音符延迟为推荐设置,音符样式typeA,环境为2D简易背景,详细设置中,音符大小100%,判定线样式TypeA,Combo右上,判定中,判定线位置常规。
2. 系统要求:Windows 10/11 x64;.NET Desktop Runtime 10;VC++ 2015-2022 Redistributable;安卓模拟器(支持 ADB)或实机设备。
缺少运行库时,以管理员身份运行包内 DependencySetup_依赖库安装_win.bat 可自动安装。
3. 打开 MFAAvalonia.exe,添加你的模拟器设备;确认设备“输入模式”为 Default(打歌必需)。
4. 启动游戏并进入演唱会进行页(画面需为 1280×720 或者相同比例)。
5. 第一次运行,先勾选「打歌点位校准」和「临时打歌」,「打歌点位校准」在识别出 7 个判定点后完成,理论用时较短。在校准完成后,「临时打歌」功能将开始运行,整首歌将自动进行;结束时以 LIVE 结算检测为准
6. 之后的运行,理论上只需要运行「临时打歌」,整首歌将自动进行;结束时以 LIVE 结算检测为准。
7. 若打歌出现触控异常:暂停歌曲后运行「打歌触控能力检测」定位问题。
游戏内设置(重要):
- 判定显示固定当前测试设置。判定文字可能与中轨音符形成复合轮廓,本轮针对它修复局部恢复;为可信对照,不要同时更改显示与调度设置。若另测关闭判定显示,请明确记录为不同测试条件。
- 音符样式 TypeA、音符大小 100%、判定线样式 TypeA、判定线位置常规、Combo 显示于右上角、2D 模式、简易背景。
- 延迟校准 0.0、音符延迟调整固定 4.0。
- 模拟器请关闭后台降帧/后台挂起渲染,并保持窗口可见;画面冻结期间音符仍会继续下落。
日志与数据:任务日志位于 logs/(含 tap-traces);错误截图位于 debug/on_error;用户数据(校准、触控状态、最近结果)保存在本机 %LOCALAPPDATA%\MAES,可用环境变量 MAES_DATA_DIR 指定其他目录。
优化候选包含 candidate-package.marker,默认使用包内 user-data/ 隔离保存状态,构建时复制必要校准及触控探针状态,不覆盖旧版本数据。显式设置 MAES_DATA_DIR 时该设置优先。
当前7轨入口将长按头部及白色条带上的小音符独立点按,不切换到旧持续按压模式;尾端划动仍使用既有语义。
- 仅支持 1280×720 的演唱会进行页;其他分辨率需要自行适配。
- 打歌从演唱会进行页开始,不包含自动启动游戏与自动选曲。
- 9 轨为实验入口,仅执行预检,不发送正式动作。
- 判定点模板为 1280×720 自采样本;游戏界面大改后可能需要重新采集。
仓库已包含全部离线构建所需的归档件(Python embeddable、依赖 wheel、MFAAvalonia、MaaFramework DLL),克隆后可完全离线构建:
# 1. 解压运行时与依赖(幂等,可重复执行)
powershell -ExecutionPolicy Bypass -File tools/bootstrap.ps1
# 2. 项目检查(含离线运行时与原生库校验)
runtime\python\python.exe -B tools\check_project.py --require-runtime
# 3. 单元测试(本轮基线591项;最终候选结果见当前交接说明)
runtime\python\python.exe -B tools\run_tests.py
# 4. 构建独立候选包;目标已存在时拒绝覆盖
powershell -ExecutionPolicy Bypass -File tools/package.ps1 -OutputName MAES_PointIdentity_Refined_Candidate目录说明:
agent/:Python 动作服务与打歌引擎(agent/music/为视觉跟踪、输入执行与运行时)。resource/base/:Pipeline、判定点模板与 OCR 模型;resource/bside/为 B 服覆盖层(当前未启用)。tests/:单元与契约测试;开发候选序列位于 fixtures,不进入运行资源。tools/:bootstrap、项目检查、测试与打包脚本。provenance/:资源来源与许可记录。docs/:架构、使用与诊断说明。
- 本项目不收集、不上传任何数据;全部用户状态仅保存在本机。
- 由于本人过于草台,发布包默认关闭在线版本检查与自动更新。
- 免责声明:本项目仅供学习与技术交流,免费开源,禁止商用售卖;使用自动化工具可能违反游戏用户协议并带来账号风险,使用后果由使用者自行承担;本项目与游戏官方无任何关联。
开发过程中参考了 MMleo 项目的功能设计与页面流程,特此致谢;本项目代码与素材均为独立实现或自行采集。
项目代码采用 MIT 许可(见 LICENSE.md);第三方组件许可见 THIRD_PARTY_NOTICES.md。