osu! 的 BPM 與 offset 是什麼?
Timing 是每張 beatmap 背後那道看不見的格線。以下說明它如何運作。
BPM——每分鐘拍數
BPM 是歌曲脈動的速度:一分鐘內有幾拍。120 BPM 的歌每 500 ms 一拍;180 BPM 的歌大約每 333 ms 一拍。在 osu! 裡,BPM 決定了 timing 格線——也就是音符可以落下的那些時間點。音符會放在拍點和拍點的細分(二分之一拍、四分之一拍等等)上,所以 timing 正確的譜面才會有緊貼音樂的感覺。
Offset——第 1 拍從哪裡開始
Offset 是從音訊檔開頭算起、第一拍落下的時間,單位是毫秒。歌曲很少剛好從拍點開始——通常前面會有一小段靜音或安靜的前奏。BPM 告訴你格線之間的距離;offset 告訴你格線從哪裡開始。
為什麼 timing 決定譜面的好壞
節奏遊戲裡的一切都建立在格線正確的前提上。BPM 錯了,音符會穩定地越飄越遠——開頭還好,一分鐘後就沒辦法玩了。Offset 錯了,每一個音符都會提早或延遲同樣的時間,不管你打得多好,準度都會崩。Mapper 在放下第一個音符之前,會花很多心力把 timing 抓對;而會變速的歌則需要多個 timing 點。
如何查出一首歌的 BPM
- 直接查:搜尋「<歌名> BPM」——songbpm.com 或 tunebat.com 之類的網站涵蓋了大部分已發行的音樂。如果聽起來像是半速,就把數值加倍(70 對 140)。
- 跟著打拍子:使用「tap BPM」網站(例如 taptempo.io),跟著拍子點大約 15 秒。
- osu! 編輯器:把歌曲放進 osu!,開啟編輯器 → Timing → 打拍子或使用它的 BPM 估算。這樣也能直接得到 offset。
在 DanceGAI 上需要自己做這些嗎?
不需要。DanceGAI 從你的歌曲生成 osu! mania 譜面時,會自動偵測 BPM 和 offset——不論歌曲是你上傳的,還是從 osu! beatmap 連結匯入的——AI 會在放音符之前自己找出 timing 格線,所以你什麼都不用輸入。不過上面這些概念還是值得了解:無論是生成的還是手工做的 beatmap,你都要靠它們來辨認(和描述)timing 問題。