像『勁樂團』那樣的音樂節奏遊戲是怎麼做的?

在勁樂團里按下一個鍵的時候會有對應的 Key 音,這是怎麼實現的?他的音樂文件後綴是 .ojm,這種格式的文件內容都是怎麼設計的?從哪兒來?


又到了我給大家科普音樂遊戲知識的時間了。

首先在會回答問題之前我先科普一下這類音樂遊戲歌曲的製作流程。

首先我們打開bms製作軟體iBMSC。

我們可以看到。編輯界面主要以每一小拍為部分進行編輯,和寫入音符。

右邊是各種屬性編輯操作,我們可以看到右上的頭文件有歌曲相關的屬性。其中最重要的是bpm,控制著歌曲播放的速度,bpm越高,走過一拍子的時間就越快。

右下方的聲波文件就是Key音的製作選項了。

看到01 02 03 04的編號了嗎?編號在每個note上也有。

這裡的意思就是當前note,播放key音01

也就是說key音填的是什麼,相應的note就會播放什麼,當打擊相應note時進行播放。

至於key音的製作,那屬於音樂製作的範疇了。我這裡就不表,只把製作的機制告訴大家。

最後回答你的問題。勁樂團的歌曲文件有2個,一個是ojn一個是ojm。

  • ojn就是note文件,非常小,只有幾十kb。裡面寫入的全是note,和播放key音的參數。
  • ojm就是music文件,比較大,大概2~10M都有。裡面封裝著歌曲的mp3文件和所有的key音。

bms製作出來的歌曲,由於機制問題,key音沒法進行封裝,所以每一個key音的wav文件都會獨立出來,一首歌會有非常多的文件。而勁樂團為了簡化,只封裝成2個文件。


突然想好好的裝一個逼,找來已經很舊的問題來答。

首先第一個問題,分幾個點來看。

key音觸發的流程。

假設這樣一個情況,這是下落音游中單獨一列軌道,他對應一個按鍵。在第一秒演奏的是do,第二秒演奏的是mi。

do的key音設定成key1.wav,mi設定成key2.

以IIDX為例,他會選擇能打出下一個NOTE的判定時候給這個按鍵裝載那個NOTE的KEY音。之後待機,直到這一列出現其他key音的NOTE,系統才再裝載下一個key音。部分音游會選擇這個NOTE的判定範圍結束後馬上裝載下一個key音,這兩種模式在完美演奏的情況下聽感是沒有任何區別的。

當然一個音游在選曲以後的loading時間就在預先做這個工作了。讀取譜面數據,列出每一列note對應key音所在的位置。遊戲開始後根據預先準備好的時序逐個裝載key音

相比電子琴之類的樂器,給每一個按鍵定義唯一的聲音,音樂遊戲通過追加一個時間維度,將原本「水平」延展的聲庫展開成聲音序列,只有7個按鍵也能演奏1300+數量的「聲音」

好了,實現啦。

只是簡單回答一下key音觸發的流程而已,完全不適應知乎這種平台。

接下來準備適當裝逼。請遠離。

現在你知道key音播放的運作原理了,可惜這對你製作譜面是一點幫助都沒有!

上述流程在實際遊戲和製作譜面時候是在黑箱中進行的,是遊戲主程序自身的功能,譜面製作者以及作曲人完全不必關心!

身為製作者,要做的就是把曲子拆開來,組裝一部分,剩下的部分交給玩家自己演奏就是了。

你大概需要:

1.一首做完了的曲子(廢話)

2.拆出需要演奏的部分和不需要演奏的部分

3.演奏的部分處理成key音,放到譜面文件中對應時點的位置,然後排譜。所有不演奏的部分放到bgm區域。

4.保存

我實際執行過2到4步,作曲的話…………實在是做不出來啊……

拙作,2013年同天游合作製作了他的Aerialwalker的譜面(BMS)

一共拆分出309個key音文檔,實際遊戲中演奏不了這麼多……多切分出來的key音可能會在不同難度中使用上,讓譜面有更多的變化。

拆分出的key音文檔,通過右邊「聲音定義」編上號,然後在左邊實際譜面區域點上去。

和CANMUSIC或者VOS不同,BMS製作時候……你想點哪裡都可以呀!

但是為了曲子好聽和不被作曲人打,製作的時候還是好好安排到對應位置還原演奏吧……

比如,圖中一行為一個16分音的間隔。舞曲最常用的底鼓循環:四分音符的drumkick。即圖中的WAV03:01-kick-16bit-backup.wav,對應譜面中編號03的NOTE,每一拍在1號鍵(第一列)出現一次。

這是曲子一開始的地方,依次填上lead音效,bass,snare,cymbal等,終於變成了我們實際玩到時候的模樣。

很明顯,只要譜面不擅自追加原曲沒有的音數的話,一個譜面的最極限也就是把原曲中所有的音全部做出來,這是有個大概上限的。

製作人通過控制演奏使用的音數,以及具體note的編排來營造「演奏感」和控制遊戲難度。

這種遊戲模式伴隨元祖音樂遊戲beatmania誕生,一直使用至今。

元祖誕生幾個月後,KONAMI推出了用腳遊戲的音游DDR。遊戲初衷是模擬舞蹈,自然音樂變成了「背景」。通過遊戲中不斷上飄的箭頭NOTE做指示還原玩家跳出「舞步」。

為什麼不能通過無聲的note來還原「演奏感」呢?

這樣在操作上至少和傳統定義的音游沒有差別啊,只是演奏臨場感不那麼強而已。

然後無key音音游成為了現在的主流。這種音游在譜面製作方面是輕鬆不少,拿一個曲子作為BGM就能直接開工製作了。低門檻的製作也讓玩家更容易參與進來。

這裡不談osu。

無key音音游譜面製作簡化掉的是key音的準備工作,因為有這一必須步驟存在,導致有key音音游很難「抓來一個動漫歌曲就做譜」

就假如你現在拿到了Aerialwalker.mp3,為了製作出上面那圖裡那段譜面,你要在同一個時點拆出kick,bass,lead,cymbal,而不演奏的時候背景里的pad和sub-bass不能受影響。

曾經我見過按不同頻率破拆單個mp3來製作key音BMS的強者,然而最終製作出來的BMS使用的key音音數只在250左右,再多真的吃不消了……

而為了難度和更好的還原度,250音數很多情況下是不夠的

BOF名曲之一的Doppelganger編號使用到ZU,1292個key音定義,又難做又難打。

只使用一個mp3是不可能了,你需要分軌文件。

專門一個音頻文件播放lead,一個播放snare,一個播放bass……之類的。而全部音軌同時播放就構成我們聽到的完整的曲子。

一個分規手動切分幾百刀也太辛苦了,事後還要把key音定義好在譜面中編排到位。

可以使用一些程序來偷懶

比如這樣……讀取分規對應的midi文件後,程序幫你切割好和排到BMS里。


稍微補充一下@陳迪飛 同學的答案,下面介紹一下vos音樂格式的製作:

工欲善其事,必先利其器

— 孔子

製作VOS所需要的最重要的工具即是VOS Creator,這是由官方直接提供的軟體,藉由這一軟體,我們可以輕易的將絕大多數midi文件轉化為遊戲所需要識別的vos格式。

不過這一工具有一定的局限性,在高級設定里,我們可以選定的最短麵條音長僅僅為1拍。對於midi文件中超短的音,是無法設定為麵條的。這對於我們追求只有更變態沒有最變態的麵條音的訴求是完全不能被滿足的。於是我們就需要依靠後來的軟體來實現這些功能。

這時候VOS發展到CAN時代時用於製作CAN遊戲所需的工具,這一工具應該是目前最多被人們使用的工具,如果現在還有人製作新曲的話。。。

界面如上如所示

因為MIDI文件原本就是記錄樂器演奏情況信息的數字音樂,所以不需要製作者手動製作note或note音,直接從原來的midi文件中選取即可。

這是相對於BM/BMS和ojn/ojm格式最大的區別和特點

所以:

一個好的vos曲目源自一個好的midi文件

— 彩風某key noter大神如是說

所以通常製作VOS音樂的人往往同時需要具備一定midi音樂製作能力,簡單的比如overture,自己打譜做簡單的鋼琴曲或者小幅度調教一下某些奇怪的midi

複雜的比如cakewalk之類,從頭製作屬於自己的midi音樂,大幅度修改一些樂器等等

有時候甚至往往還需要利用一些偏門的工具,比如awave studio等之類的去調教波表等等。。。

總的來說vos的製作是一種偏門、冷門的技能,時至今日完全沒有去學習的必要了呀!。。。至於我?我也不知道為什麼自己就學會了啊。。。


推薦閱讀:

如何評價周杰倫和林俊傑的鋼琴水平和創作水平?
如何評價本人作的這兩首歌詞?
賣唱是一種什麼樣的體驗?
如何看待許嵩的中國風?
跑步的時候聽音樂好嗎?

TAG:音樂 | 遊戲 | 音樂遊戲MusicGame |