Skip to content

Latest commit

 

History

History
96 lines (64 loc) · 3.92 KB

File metadata and controls

96 lines (64 loc) · 3.92 KB

Only4BMS

스크린샷 2026-02-24 230333

Only4BMS AI Battle1

7键?不,谢谢。

这是一个基于 Pygame 的 BMS 播放器,它会强制将所有 BMS 谱面重新排列4 键 (DFJK) 进行播放。

项目概述

Only4BMS 是为那些面对复杂的 7 键或 14 键 BMS 谱面时感叹“我该怎么玩这些?”的 4 键纯粹主义者而创建的。

本项目使用 Pygame 解析 BMS 文件,并提供了一个可以将任何谱面格式重新映射到 4 条轨道,并配合按键音进行游玩的环境。

主要功能

强制 4 键映射:使用数学算法自动将 5 键、7 键、10 键和 14 键谱面分配到 4 条轨道(D、F、J、K)。

密度检查:在 7 键谱面合并为 4 键时,检查并可视化音符密度。

🛠️ 技术栈

语言:Python 3.x

:Pygame(音频与渲染)

格式:Be-Music Script (.bms, .bme, .bml)

如何游玩(添加歌曲与运行)

  1. 获取游戏:下载预编译的 Only4BMS.exe 或自行编译。
  2. 启动:在任何文件夹中运行 Only4BMS.exe 即可。
  3. bms 文件夹:启动时,游戏会自动在可执行文件所在目录创建 bms 文件夹。如果未找到歌曲,它会生成一个基础的模拟演示曲。
  4. 添加您自己的歌曲
    • 下载 BMS/BME/BML 文件及相关的媒体文件(音频/BGA 视频)。
    • 将它们解压到 bms/ 目录下的各自子文件夹中。
    • 示例结构:
      [包含 Only4BMS.exe 的目录]
      ├── Only4BMS.exe
      └── bms/
          ├── Awesome Track/
          │   ├── song.bms
          │   ├── audio.wav
          │   └── video.mp4
          └── Another Track/
              └── ...
      

🎵 课程模式 (Roguelike 训练)

厌倦了相同的歌曲?进入课程模式,这是一个可无限生成的程序化训练模式!

  • 每次都会生成完全不同的随机谱面。
  • 难度递进:入门者 (BPM 80110)、中级 (BPM 120160)、高级 (BPM 160~200)。
  • 随着等级提升,长音符与变速机制 (Gimmicks) 将出其不意地出现。
  • 每个关卡约30秒。生存下来,迎接下一关!

🤖 AI 训练与多玩家

Only4BMS 具有基于强化学习 (PPO) 的 AI 多玩家模式。

工作原理

  • AI 使用 stable-baselines3 在程序生成的节奏音轨和无版演示曲上进行训练。
  • 法律合规:为了确保道德标准,官方发布版本捆绑了在 CI/CD 过程中使用非商业数据训练的模型。
  • 难度
    • NORMAL:训练 25,000 步。准确率高,但偶尔会有类似人类的错误。
    • HARD:训练 40,000 步。几乎完美的时机和连击维持。

本地训练

如果您希望在本地训练自己的模型:

  1. 安装依赖:pip install stable-baselines3 shimmy gymnasium torch
  2. 运行训练脚本:python -m only4bms.ai.train
  3. 生成的 model_normal.zipmodel_hard.zip 将保存在 src/only4bms/ai/ 中。

自动化 CI/CD

我们的 GitHub Actions 工作流会在每次发布时使用捆绑的 Mock Song Demo 从零开始重新训练 AI 模型。这确保了分发给用户的二进制文件始终是“干净”且优化过的。

在 itch.io 上游玩

透明度声明:

Only4BMS 是一个充满激情的个人项目。

为了简化制作过程,我在代码编写中采用了 AI 辅助技术。

这使我能够突破个人创作的界限,确保最终游戏的精致感和完整性。

🤝 贡献

非常欢迎 4 键用户提交错误报告和功能建议!

📜 许可证

MIT 许可证 - 欢迎自由修改和分发。请为 4 键用户维护和平。