如何製作 osu! beatmap
osu! standard 作譜教學,從空白的時間軸到完成的 .osz。
osu! standard beatmap 是一組圓圈、滑條和轉盤,每個物件都放在歌曲中的某個時間點,同時也放在遊戲區域上的某個位置。好的譜面感覺就像音樂本身:你在聽到的拍子上點擊,游標的移動方式也配合歌曲的流動。這篇教學會帶你在 osu! 編輯器裡做出一張譜面。如果你做的是 osu! mania,請看如何製作 osu! mania beatmap。
1. 準備工具
- 歌曲。你想做的版本的高音質 .mp3 或 .ogg。開始前先把音訊剪好或編輯好:之後再改,每個物件都會跟著偏移。
- osu!,免費。如果你還沒有,請看 osu! 新手。
- 花點時間熟悉這首歌。先聽好幾遍。弄清楚前奏、主歌、副歌和安靜的段落在哪裡,以及你希望每一段帶來什麼感覺。
- 選用:一張背景圖片(常見尺寸為 1920×1080)。
打開編輯器,用你的音訊檔建立一張新的 beatmap。設定畫面會要求填入歌名、演出者、你作為作者(creator)的名字,以及難度名稱;這些之後都可以修改。
2. 熟悉 osu! 編輯器
編輯器分成幾個畫面:
- Compose——放置和移動打擊物件的地方。你大部分的時間都會花在這裡。
- Timing——timing 點:歌曲的 BPM 和 offset,以及之後加入的變化,例如滑條速度和 hitsound 音量。
- Song setup——metadata(歌名、演出者、作者、標籤)、難度設定和 combo 顏色。
- Design——storyboard。完全不碰它也能做出完整的譜面。
在 osu!stable 中,F1–F4 可在 Compose、Design、Timing 和 Song setup 之間切換,F5 則從目前位置開始試玩。osu!lazer 的編輯器有相同的基本組成,但版面配置不同;完整的快捷鍵列表請見 osu! wiki 的快捷鍵參考。
3. 設定 timing:BPM 與 offset
Timing 要最先處理,因為每個物件都會對齊到它上面。格線錯了,上面的每個圓圈都會稍微提早或延遲,再好的擺放也救不回來。
- BPM——每分鐘有幾拍,決定格線刻度之間的距離。
- Offset——格線起算的第一拍的精確時間,單位是毫秒。
這兩者都是透過 uninherited timing 點(紅線)來設定。在 osu!stable 中,F6 會打開 timing 與控制點面板,Ctrl+P 則在目前時間加入一個 uninherited timing 點。開著節拍器播放歌曲,調整到節拍器的聲音剛好落在拍子上為止。
會變速的歌需要在每個速度改變的地方加一條新的紅色 timing 點。現場錄音和沒有使用節拍音軌(click track)錄製的歌,可能需要好幾條。
查出歌曲 BPM 的實用方法,請見 osu! 的 BPM 與 offset 說明。
4. 跟著節奏放置圓圈
圓圈(hit circle)是每張 osu! 譜面的核心:當縮圈(approach circle)收合時,玩家逐一點擊。每個圓圈都應該對應一個你指得出來的聲音。
- Beat snap divisor(拍點細分)。細分決定物件會對齊到哪些刻度:1/1 是每一拍,1/2 是每半拍,1/4 是每四分之一拍。在 osu!stable 中,Shift+1–Shift+9 可以直接設定。大多數歌曲使用 1/2 和 1/4;三連音節奏需要 1/3 或 1/6。
- 每一段選一個要跟的聲音——鼓、人聲或旋律——並跟得夠久,讓玩家能讀懂這個型態。隨意混用不同層次,是譜面讓人感到混亂最常見的原因。
- New combo。在樂句開頭開始新的 combo(osu!stable 中按 Q),通常是每一兩個小節一次。Combo 數字能幫助玩家讀出節奏接下來的走向。
音樂休止的地方就留白。從不停歇的譜面很累人,而且通常忽略了歌曲本身在做什麼。
5. 製作滑條與折返滑條
滑條有頭、身體和尾巴:玩家在正確的時間點擊頭部,然後沿著路徑跟著滑條球走到結尾。滑條適合長音、長的人聲句,以及擊打後仍持續的聲音。
- 畫滑條。使用滑條工具,點一下放置頭部,再點擊加入讓路徑彎曲的錨點,雙擊錨點可以做出尖銳(紅色)的轉角,按右鍵完成。之後還可以移動、新增或刪除錨點。
- 折返滑條。折返箭頭會讓滑條球沿著同一條路徑往回走。折返適合以相同音高重複的聲音,例如 hi-hat 節奏型,或在拍子上脈動的持續合成器音。
- 滑條速度。滑條球移動的速度取決於譜面的基礎滑條速度,以及目前 timing 區段的倍率。調整它可以讓慢的段落感覺平靜、激烈的段落感覺快速——但突然的變化很難讀,所以要跟著音樂改變。
- 滑條刻點(slider tick)是沿著滑條身體的小點;可以在 Timing 區段調整數量。
保持形狀好讀:曲線要平滑,不要讓路徑繞回來和自己交叉,滑條結尾要讓游標停在方便打下一個物件的位置。
6. 少量使用轉盤
轉盤會佔滿整個畫面:玩家按住按鍵,繞著中心旋轉游標直到結束。轉盤適合長時間延續的聲音、歌曲的結尾或段落之間的休息。
轉盤之後留一點時間再放下一個物件,讓玩家能重新找到游標。非常短的轉盤,或在密集段落前一刻才結束的轉盤,玩起來很令人挫折。
7. 控制間距、節奏與難度
在 osu! standard 中,物件之間的距離也是難度的一部分:它決定游標要移動多遠、多快。
- Distance snap(osu!stable 中按 Y)會讓間距與時間成比例,時間上相隔越遠的物件,在遊戲區域上也相隔越遠。這是讓譜面保持好讀最簡單的方法,在較簡單的難度上尤其如此。
- Grid snap(T)會把物件對齊到格線上,有助於做出整齊、對稱的型態。
- 跳躍與 stream。物件間距大就形成跳躍(jump);一長串間距緊密的 1/4 圓圈就是 stream。跳躍用在強烈、被強調的聲音上,stream 則用在快速連續的鼓聲上。
- 難度設定。Circle Size 決定圓圈大小,Approach Rate 決定物件多早出現,Overall Difficulty 決定判定區間多嚴格,HP Drain 決定血量下降多快。隨著難度提高,把它們一起調高。
建立難度梯度。一組 mapset 通常包含好幾個逐步提升的難度。較簡單的難度使用較單純的節奏(多用 1/1 和 1/2)、較緊密的間距和較少的突然變化;較難的難度則加入 1/4 節奏、跳躍和 stream。
8. 測試、修正與匯出
- 用測試模式(osu!stable 中按 F5)實際玩一遍,從頭玩到尾——而不只是你剛做好的那一段。
- 邊玩邊再檢查一次 timing;小小的 offset 誤差,用感覺比用看的更容易發現。
- 找出任何因為不對的原因而讓你意外的地方:被滑條蓋住的物件、難以閱讀的重疊,或與節奏不符的間距。
- 檢查一致性——整首歌之間,以及同一組的各個難度之間。
- 請別人給意見——其他玩家會注意到你在自己的譜面上看不出來的地方。
完成後,填好 metadata(歌名、演出者、作者、來源和標籤)並加上背景。從編輯器把 mapset 匯出成 .osz;任何人只要把它拖到 osu! 視窗上就能安裝——請看如何把 beatmap 加入 osu!。
如果想在 osu! 網站上分享譜面,請先閱讀 osu! 的 Ranking criteria 以及 osu! wiki 的 beatmapping 文章。
9. 用 OsuGAI 作為 AI 輔助的起點
手工做出一整組 osu! standard mapset 要花好幾個小時,而大多數歌曲根本從來沒人做過。OsuGAI 是 DanceGAI 的 osu! AI 作譜工具,大約半分鐘就能從一首歌做出可以玩的初版:
- 在 AI osu! beatmap 生成器上加入歌曲——上傳 MP3、OGG 或 WAV,或貼上 osu! beatmap 連結。
- 選擇難度,星數目標從 ★1 到 ★10。每個結果都會以實測星數命名;在這個測試版中,譜面常常會比目標更難。
- 如果你想,可以調整風格——滑條、銳角、間距變化和 stream 間距,每個難度分別設定。
- 生成,在瀏覽器中搭配歌曲預覽,然後下載 .osz。
- 變成你自己的作品——在 osu! 編輯器中打開它,運用以上所有內容,重做你會用不同方式處理的部分。
OsuGAI 仍在測試階段:滑條形狀可能較粗糙,new combo 依照固定規則設定,而且尚未經過廣泛試玩。在依賴它之前,請先閱讀測試版代表什麼。
AI 無法取代作譜的判斷
技術好的 mapper 仍然能做出更好的譜面。作譜是一種詮釋——決定哪個聲音重要、游標該怎麼移動、玩家什麼時候需要休息——而這才是這篇教學真正在談的部分。AI 適合用在原本完全不會有譜面的歌,或是作為一份快速的初稿,再由你自己修整。