BMS (音楽ゲーム)

BMS(Be-Music Source file)とは



BMSとは、1998年にやねうらおとNBKによって考案された、MOD感覚で音楽制作や演奏が可能なファイルフォーマットです。当初は「BM98曲データ」とも呼ばれ、音楽ゲーム『beatmania』のシミュレータ『BM98』用の譜面データとして開発されました。現在では、BMSは同様のシミュレータ(BMSプレイヤー)で利用される譜面データや、ゲームシステム全体を指す言葉として広く使われています。

2000年代中盤までは、BM98をベースとした様々なプレイヤーが開発され、「ネットユーザーのPCには何かしらのBMSプレイヤーが入っている」と言われるほどの一大ムーブメントを巻き起こしました。企業運営のコミュニティサイトでも同様のサービスが人気を博し、人気楽曲がP2Pネットワークを通じて拡散されることもありました。ブームは沈静化しましたが、現在でも新作BMS楽曲が制作されるなど、根強い人気を保っています。かつてのBMS作曲家の中には、プロに転向した人や著名なボーカロイドプロデューサーも多く存在します。

BMSの構成要素



広義のBMSは、主に「BMSファイル」「WAVEファイルまたはMIDIファイル」「ビットマップ画像ファイル」で構成されます。

BMSファイル: 譜面を定義するファイルで、曲データの核となるものです。テキスト形式で記述されており、曲のテンポ、音符の配置、使用する音源などを指定します。
WAVE/MIDIファイル: BGMやキーを押した時の効果音(SE)に使用されます。WAVEファイルは音声データ、MIDIファイルは楽器の演奏情報を記述します。
ビットマップ画像ファイル: 演奏中に流れるムービー(BGA)に使用されます。

BMSファイルの基本フォーマット



ここでは、やねうらおが作成した初代『BM98』におけるファイルフォーマットについて解説します。他のBMSプレイヤーでも、基本的に同様の形式が使用されています。

BMSファイルは、ヘッダ記述とオブジェクト記述から構成されます。

ヘッダ記述


ヘッダには、プレイ人数、曲名、初期BPM(テンポ)などの基本情報や、使用するWAVファイル、BMPファイルなどを定義します。ヘッダの記述は、`#KEY VALUE` という形式で行われます。

以下に、ヘッダ記述の例を示します。


PLAYER 1


GENRE Sample


TITLE Sample


ARTIST Sample


BPM 120


PLAYLEVEL 5


TOTAL 100


RANK 2


bmp00 miss.bmp


bmp01 1.bmp


wav01 1.wav




オブジェクト記述


オブジェクト記述には、譜面に関する詳細な記述が含まれます。どの音をどこに配置し、どの鍵盤で鳴らすかを定義します。オブジェクト記述の書式は、`#aaabb:cccccccc`(aaa:小節番号、bb:チャンネル、cc:オブジェクト配置)です。

以下に、簡単なオブジェクト記述の例を示します。


00111:01010101 // 第1小節の1キーに#WAV01を四分音符単位で配置


00211:0101010001010100 // 第2小節の1キーに#WAV01を8分3連+8分休符×2を配置




ヘッダの主な記述


`#PLAYER x`: プレイヤー数を定義します。1でシングルプレイ、2でカップルプレイ、3でダブルプレイを指定します(省略時は1)。
`#GENRE`: 曲のジャンルを定義します。
`#TITLE`: 曲のタイトルを定義します。
`#ARTIST`: 作曲者を定義します。
`#BPM`: BPM(テンポ)を定義します。指定がない場合は130になります。
`#MIDIFILE`: MIDIファイルをBGMとして使用する場合に指定します。
`#PLAYLEVEL x`: 難易度レベルを指定します。指定がない場合は3になります。
`#RANK x`: 判定ランクを指定します(0: very hard, 1: hard, 2: normal, 3: easy。省略時は3)。
`#VOLWAV xxx`: 元の音量を100としたときの全体の音量を定義します。省略時は100です。
`#WAVxx yyyyyyyy.wav`: 音声ファイル(WAVEファイル)を指定します(xxは01からFFまでの番号)。
`#BMPxx yyyyyyyy.bmp`: 画像ファイルを指定します(256x256, 65536色のビットマップファイル。xxは00からFFまでの番号、00はミス時の画像)。
`#TOTAL xxx`: ゲージの増量設定を行います。省略時は200+オブジェクト数となります。
`#RANDOM x`: 分岐命令で、1からxまでの乱数を生成します。
`#if , #ENDIF`: 分岐の開始と終了を指定します。
`#ExtChr`: Extended Object機能を使用する際に指定します。

チャンネル


チャンネルは、オブジェクトがどの種類の音や動作に対応するかを指定します。

01: BGMとして再生するWAVEファイル。
02: 小節の短縮化。
03: BPM変更。
04: BGAの画像ファイル切り替え。
05: Extended Object。
06: Poor時のBGA。
11-17: 1P側の演奏オブジェクト(11-15は鍵盤、16はスクラッチ、17はフリーゾーン)。
21-27: 2P側の演奏オブジェクト(1P側と同様)。
31-36: 1P側の不可視オブジェクト。
41-46: 2P側の不可視オブジェクト。

きくちゃんバージョンで追加された拡張


`#PLAYER 4`: バトルプレイ。
`#STAGEFILE aaa.bmp`: 曲開始時に表示する画像ファイル。
`#RANK 4`: 判定ランクの拡張。
`#BMP`: JPEGに対応。
`#ExtChr`: 仕様変更、チャンネルナンバーの追加。
07 - BGAレイヤー
`#BGAn1 n2 x1 y1 x2 y2 dx dy`: 拡張BGA領域を設定。
`#WAVxx`: Materialsフォルダからのファイル指定が可能(xxは01 - FZまで追加)。

その他、BMSの拡張として、7Key化(BME読み込み対応)、拡張BPM変更、#BMPにPNG、GIFなどSusieプラグインに対応しています。

BMSの拡張フォーマット



BMSの拡張フォーマットとして、BME(7鍵盤)、BML(ロングノート)、PMS(9ボタン)などが存在します。

BME (Be-Music Extend format): 『beatmania IIDX』のような7鍵盤とターンテーブル用の譜面データ形式。
BML: 『KEYBOARDMANIA』のようなロングノートに対応した形式。
PMS: 『pop'n music』のような9ボタン用譜面データ形式。

さらに、BMSは、可視・不可視キーの拡張(16進数化、36進数化)、ロングノート(#LNOBJ、#LNTYPE)、ストップシーケンス(#STOP)、定義数の36進数化、拡張BPM変更(#BPMxx)、BGAに動画指定(#BMP aaa.mpg)、サブタイトル(#TITLE、#SUBTITLE)、譜面タイプ(#DIFFICULTY)、地雷オブジェクト(#WAV00)など、様々な拡張がされています。

派生フォーマット



BMSの書式を元にした派生フォーマットも多数存在します。

MBM (MacBeat): 独自拡張ヘッダ「#WAVCMD」を追加。
フットペダル、ダブルスクラッチ: MixWaver1.0betaや、Virtual Orchestra Studio、MGQ、O2Maniaなどに採用された形式。
ギタドラシミュレーター向け: DrumMIDI、DTXMania、BandJAM、SESSION STREAMなどがあります(DTX形式が主流)。
* KEYBOARDMANIAシミュレーター向け: MGQ、KMS、EMSなどがあります(PMS形式が中間ファイルとして利用)。

次世代フォーマット



BMSの拡張性の乏しさから、BMX、BM3、XBMS、BMS 2.0などの次世代規格が提案されましたが、実現には至りませんでした。一方、BMS-2やLRXが一部のプレイヤーで採用されました。

2015年には、BMSON(JavaScript Object Notationベース)が公開され、BMSフォーマットとは異なる記述方式が用いられ、音声ファイルの分割が不要となりました。

関連ソフトウェア



主なBMSプレイヤーには、BM98、MixWaver、unofficial nazobmplay、Delight Delight Reduplication、bemaniaDX、Ruv-it!、LunaticRave 2、beatoraja、ふぃーりんぐぽみゅ せかんど、ナナシグルーヴ、おたま、StepMania、DTXManiaなどがあります。

譜面作成ソフトには、BMS Creator、GDA Creator Professional Edition、BMx Sequence Editor、μbmscなどがあります。

ビュアーには、BMS Viewer、BMEV、nBMplay、WAview、uBMplay、PMSee-Vなどがあります。

キー音無しBMS



キー音無しBMSは、BGMのみで構成されたBMSファイルで、演奏感が薄いため、評価イベントへの投稿が禁止されたり、一部のプレイヤーでは使用禁止となる傾向があります。

歴史



黎明期


1998年6月、やねうらおによってBM98が配布され、J-Pop、ゲーム音楽、MIDI音源のアレンジなどが制作されました。8月には開発が中止されましたが、きくちゃんが開発を引き継ぎました。

全盛期


1999年になるとBMSレビューサイトが登場し、楽曲制作が活発化しました。これらのサイトで活動した作曲者は、同人CD制作やゲームへの楽曲提供などを行うようになりました。BMSフォーマットの拡張も進み、拡張BPM変更、ストップシーケンス、ロングノートなどの機能が追加されました。

停滞期と復活


2002年にBM98の開発が終了しましたが、BMS OF FIGHTERSなどのイベントが開催され、再び盛り上がりを見せました。高難易度譜面(発狂BMS)も登場し、インターネットランキングも人気を集めました。また、Lunatic RaveやRuv-it!などの新しいプレイヤーが登場し、BMSフォーマットの拡張も続きました。

現在では、beatorajaなどの現代的なプレイヤーも登場し、定例イベントが開催されています。高難易度譜面は、Stella/Satellite難易度表といった新たな形式に移行しています。

まとめ



BMSは、長年にわたり多くの人に愛されてきた音楽データ形式です。多様な拡張や派生フォーマットが存在し、様々な音楽ゲームシミュレータで利用されています。BMSの歴史や仕組みを理解することで、さらに深く楽しむことができるでしょう。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。