Skip to content

Repository files navigation

BanGDreamAutoScript

BanGDreamAutoScript 项目图标

一个面向安卓模拟器的 BanG Dream! 自动化程序骨架。结构沿用 ALAS 的核心思路:配置驱动的设备层、Button 资源、截图状态循环、任务模块和统一命令入口。首期任务是自动登录,以及使用游戏内自动演出功能重复游玩指定歌曲。

项目固定以横屏 1280x720DPI 240 识别;设备参数不一致时会直接停止,避免误点。

当前状态

  • 已实现 ADB 连接、截图、点击、滑动、启动/停止应用。
  • 已实现模板匹配、颜色匹配、资源清单与 ALAS 风格 appear_then_click
  • 已在雷电模拟器(1280x720DPI 240)真机验证自动登录和自动演出完整状态机。
  • 登录可连续领取普通、回归和活动奖励;无按钮奖励动画会点击推进,剧情会通过右上角菜单跳过。
  • 开始演出前必须识别到“自动演出已开启”,避免误入手动演出。
  • 体力为 0 仍允许自动演出;自动演出剩余次数为 0 时会明确停止,且不会反复点击灰色开关。
  • 结算按“确定/下一步/无按钮分页/剧情跳过”逐层处理,并始终优先识别“再次演出”。
  • 活动奖励、角色升级、乐队升级和达成奖励的额外“确定”弹窗均可连续处理。
  • 指定次数的最后一轮会停留在“再次演出”页,不点击右侧“确定”。
  • 运行异常时会将最近 20 张截图写入 log/error/,便于复盘未知页面。

安装

cd D:\Documents\workplace\BanGDreamAutoScript
py -m venv .venv
.venv\Scripts\python -m pip install -e ".[dev]"
Copy-Item config\default.yaml config\local.yaml

编辑 config/local.yaml

  • emulator.serial:模拟器 ADB 地址,例如 127.0.0.1:5555
  • emulator.adb_path:若 adb 不在 PATH,填写其绝对路径。
  • app.package:当前服务器版本的游戏包名。
  • app.launch_activity:通常可留空,由 Android launcher 启动。
  • automation.unknown_timeout:连续未识别页面多久后进入恢复,默认 60 秒。
  • automation.escape_interval / escape_timeout:ESC 恢复间隔和最长时间,默认 1.5/30 秒。
  • automation.max_restarts:ESC 无法回主页时最多自动重启次数,默认 2 次。

桌面配置中的“单次计划/每日计划”决定任务何时调度,“演奏次数”决定每轮实际演奏几次; 两者互不影响。演出结束处理支持三种模式:

  • 重启游戏(推荐):每次演出结束后立即重启并重新登录,默认且最稳定。
  • ESC 返回:演出结束后持续按 ESC,进入剧情或主页后继续恢复。
  • 正常结算并找再次演出:持续处理确定/下一步,并优先点击再次演出。

任何同一动作连续执行 60 秒仍未推进时,底层 watchdog 会统一改用 ESC 返回主页; 30 秒仍失败则重启游戏,最多重启两次。

命令

# 设备与显示参数检查
bdas --config config/local.yaml doctor

# 采集页面截图
bdas --config config/local.yaml capture --name login-start

# 查看尚缺的模板
bdas --config config/local.yaml validate-assets

# 自动登录
bdas --config config/local.yaml login --restart

# 指定 SAVIOR OF SONG 自动演出 5 次;歌曲 key 配置于 assets/manifest.yaml
bdas --config config/local.yaml auto-live --song savior_of_song --count 5

命令行构建

.venv\Scripts\python -m pip install -e ".[dev]"
.venv\Scripts\pyinstaller --noconfirm --clean BanGDreamAutoScript.spec

生成文件位于 dist/BDASCLI.exe,包含项目图标、默认配置和全部识图模板。实际连接模拟器时可使用:

dist\BDASCLI.exe --config config/local.yaml doctor
dist\BDASCLI.exe --config config/local.yaml auto-live --song savior_of_song --count 5

已完成一次真实 count=2 回归验证:第一轮结算点击“再次演出”进入同曲第二轮,第二轮结束后停在重演页。单曲演出等待上限为 300 秒,适配通常约两分钟的演出时长。

扩展歌曲或页面

新增歌曲或游戏更新导致页面变化时,请提供模拟器原始 PNG 截图,不要缩放或经聊天软件压缩。常用页面包括:

  1. 启动后的“点击进入”页。
  2. 登录公告、奖励等每类常见弹窗。
  3. 游戏主页。
  4. 从主页进入演出的每一页。
  5. 歌曲选择页,以及目标歌曲在列表中清晰可见的页面。
  6. 演出准备页中自动演出关闭、开启两种状态。
  7. 开始按钮、演出结算、奖励弹窗、“再次演出”或返回选曲页。
  8. 体力不足、自动演出券不足、升级等异常弹窗(若会出现)。

若同一按钮带动画,请连续提供 2–3 张截图,以便选取稳定区域。

许可证

本项目以 GPL-3.0-only 发布。架构设计参考 AzurLaneAutoScript,业务代码为 BanG Dream! 场景的独立实现。

使用 Clash Verge 虚拟网卡时,参见 游戏域名直连配置

独立桌面应用

桌面端是独立的 Electron + Python 后端应用,产品名为 BanG Dream! Auto Script, 默认端口为 22367。安装目录自带后端和运行依赖,不读取或启动本机 ALAS,能够与 使用 22267 的 ALAS 同时运行。自动登录是每次任务的前置流程,不需要单独配置。

构建完整便携目录:

powershell -ExecutionPolicy Bypass -File scripts/build_desktop.ps1

成品入口为 webapp/dist/win-unpacked/BanGDreamAutoScript.exe。其 Web UI 提供总览、 任务抽屉、运行/队列/等待状态、自动保存配置和实时日志;“停止”会终止当前任务的 完整进程树。后端、任务进程和 ADB 均隐藏控制台窗口。架构和许可证说明见 docs/alas-webui.md

About

BanG Dream! 自动化工具,基于 ALAS 风格架构,支持自动演奏、实时视觉演奏、挑战演出与任务调度。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages