最近vibe了程序叫 bms2om7k,能把 BMS 的 SP 谱面一键转成 osu!mania7K 谱面。仓库在 👉 github.com/Wangjunqi008/bms2om7k。
它能干什么
把 BMS 歌曲文件夹里的特定 SP/7K 谱面一键转换,输出归到 osu!/Songs/<谱面名>/ 下,包含:
- 渲染完整 BGM:根据谱面把每根轨道上的 key 音按时间点叠加混音,拼成一条完整伴奏音频,不用自己找 BGM 源文件。
- 转换谱面物件:把 BMS 的 7K 物件(A2–A8)转成 osu!mania 的 7 列物件,含长条(LN)。
- 自动填谱面信息:标题、作者、BPM、难度这些从 BMS 头部自动提取,填进 osu 元数据。
- 输出为独立文件夹,内含
.osu、渲染好的 BGM、以及用到的 key 音采样文件。
支持 .bms、.bme``.bml这些 BMS 系列变体,内容格式其实差不多。
通道约定
工具对 BMS 通道的理解约定如下(改 bms_config.py 或提供配置文件就能换约定):
| 含义 | 通道 |
|---|---|
| 7K 键轨 A2–A8(→ osu 列 0–6) | 11,12,13,14,15,18,19 |
| 皿(scratch,A1)→ 只进 BGM 不进谱面 | 16 |
| LN 通道(LNTYPE1,对应键轨 1x→5x) | 51,52,53,54,55,58,59 |
| BPM 变化 | 03(十六进制值) |
| 扩展 BPM | 08(值 = #BPMxx 的 id) |
| STOP | 09(值 = #STOPxx 的 id) |
| 小节长度 | 02 |
| BGM 背景音轨 | 01 |
同时支持 #LNOBJ 长条机制。
依赖
- Python 3.8+
- ffmpeg(必须,用来解码/编码音频)
numpy(加速 BGM 混音,必须)
怎么用
- 装ffmpeg,把各种dll和三个exe复制到程序根目录
- 安装python3和numpy
- 点开bms2osu.py
- 找到BMS谱面的文件夹,选用它
- 在谱面列表中点选要转的谱面
- 选择你的osu曲目文件夹
- 在Version中填入难度名(随便取名)
- 可以在右边的GUI里面给谱面加倍速,先选中再选速度
- 点击一键转换(进度条前面会比较慢,后面贼快)
- 在osu里面点一下F5
评论 (0)
请先 登录 后发表评论