BMSE による譜面作成プロセスを大雑把に紹介します。やるべきことは要約すると 3 つだけです。譜面以外はけっこう大変です。

  1. ファイルを用意する
  2. ファイルを定義する
  3. オブジェクトを配置する
  4. おまけ

BMSE は以下の BMS 譜面エディタと同じような感覚で操作できます。

これら譜面エディタの使用経験がある方は、この頁を読む必要はありません。


この頁は拡張子を表示している状態を前提しています。(参考 [https://duckduckgo.com/?q=拡張子+表示] (外部リンク))

フォルダ詳細設定から、以下の設定を全フォルダに適用してください:
すべてのファイルとフォルダを表示する → [チェックを入れる]
登録されているファイルの拡張子は表示しない → [チェックを外す]
Windows 10/8.1/8:
適当なフォルダー → 「表示」タブ (リボン) → 「ファイル名拡張子」と「隠しファイル」にチェックを入れてください。
Windows 7/Vista:
適当なフォルダー → 整理 (ツールバー) → フォルダーと検索のオプション → フォルダーオプション → 「表示」タブ
Windows XP/2000:
マイコンピュータ → ツール (メニューバー) → フォルダオプション → 「表示」タブ
Windows 98/95:
マイコンピュータ → 表示 (メニューバー) → オプション → 「表示」タブ

ファイルを用意する

あらかじめ BMS の素材となるファイルを調達しておきます。自前で用意してもよいし、フリー素材を頼ることもできます。古めの素材 [https://www28.atwiki.jp/bmsm/pages/17.html] (外部リンク) や、ライセンスの話も絡めた詳細な解説およびリンク集 [http://bga.albalunaweb.net/53.html] (外部リンク)などが公開されています。必要なら各自検索してください。

作成に慣れるまでは、音声は WAV 形式 ([44100 Hz, 16-bit, 2 ch] 以下)、映像は BMP 形式 ([256 × 256 pixels, 24-bit] 以下) で用意してください。

任意の場所に新規フォルダを作成して適当に名前をつけます (これから作る BMS のフォルダ)。使いそうな素材ファイルをそこにすべてコピーします。

さらに同フォルダ内にテキストファイルを新規作成し、適当に名前を付けたうえで拡張子を *.txt から *.bms に変更します。(これから作る BMS の譜面ファイル)


次の例において、“bmsA” フォルダと “bmsB” フォルダは別の作品です。

“bmsA” フォルダと “bmsB” フォルダはそれぞれが、自分が使用する譜面・音声・画像ファイル群すべてを収納しています。

通常はこのように、作品単位でフォルダが分けられます。ある作品が持つ譜面ファイル群と、各譜面に用いられる音声・画像・動画ファイルは、ひとつのフォルダの中にまとめて並べられます。

フォルダやファイルにはもちろん任意の名前をつけて構いませんが、ファイル名には半角英数字のみを用いるのが無難です [http://hitkey.nekokan.dyndns.info/20160103-filename.htm] (外部リンク)


譜面ファイルを開く

BMSE を起動して、メインパネルにさきほど新規作成した BMS ファイルをドラッグ・アンド・ドロップします。

譜面ファイルをドラッグ (引き摺る) して、罫線領域にドロップ (落とす) します。

すると、中身が空の譜面が開かれます。手始めにヘッダ情報を埋めてみます。

設定パネルの “基本” タブから、

譜面のヘッダ情報を入力します。(#GENRE, #TITLE, #ARTIST, #BPM)

ジャンル・タイトル・アーティスト各欄を左クリックして、キーボードから任意の文字列を入力します。あらゆる編集情報はいつでも変更できますから、特に構える必要はありません。

BPM から、譜面の開始時のテンポを指定します。

4 分音符を 1 分間に 120 回刻む速度なら、120 (B)(P)(M) です。

譜面のテンポには小数値も指定できます。(詳細 [http://hitkey.nekokan.dyndns.info/cmdsJP.htm#BPM] (外部リンク))

譜面ファイルを保存

ここまで編集した情報を保存します。

ウィンドウ上部のツールバーから保存アイコンを左クリックします。

Toolbar → SAVE Icon

[青色の 3½-インチフロッピーディスクの図像] 上書き保存 [http://e-words.jp/w/上書き保存.html] (外部リンク)
ダイアログを出さず手早く保存 (初回保存時は名前を付けて保存)
[シール部分に赤い英大文字 “A” があしらわれた、緑色の 3½-インチフロッピーディスクの図像] 名前を付けて保存 [http://e-words.jp/w/名前を付けて保存.html] (外部リンク)
元の譜面ファイルを残したい場合に、元ファイルとは別の名前をつけて保存

BMSE 自身が異常終了したときは作業ファイルのバックアップを作ってくれますが、その機能が働かない場合もあるので作業はこまめに保存しましょう。ちなみに譜面を読み込まずに編集を開始した場合、一度保存しないとプレビュー機能などが使えません。


ファイルを定義する

事前に BMS フォルダ内にコピーしておいた音声ファイルを、エクスプローラ上で選択し、BMSE ウィンドウ右下の “定義リスト” にドラッグ・アンド・ドロップします。

複数のファイルをドラッグ・アンド・ドロップで一括定義できます。

ドロップしたファイルは “定義” され、オブジェクトとして配置できるようになります。これは絵でいえば色パレットを用意するようなものです。たとえば音声ファイル test_01.wavtest_02.wavtest_03.wavtest_04.wav をリストに定義すると、この譜面はそれら 4 種類の音声を自由に選んでメインパネル上に置いていくことが可能になります。

定義は逐次追加でき、譜面 1 枚につき最大 1295 種類まで音声を登録できます。リストアイテムを左クリックなどで選択すると、BMSE 上で音が鳴ります。


映像用ファイルを定義する

BMPGIFJPEGPNG などの画像ファイル、および MPEG-1 などの動画ファイルも、音声と同じ要領で定義します。

#WAV タブは音声の定義リスト、#BMP タブは映像の定義リストです。

オブジェクトパネルの上部にある “#BMP” タブを左クリックしてリストを切り替え、映像用ファイルを #BMP** のリストにドラッグ・アンド・ドロップします。

音声ファイルは #WAV** に、映像ファイルは #BMP** に定義します。たとえば動画フォーマットなら #BMP** example.mpg のようにします。


オブジェクトを配置する

BMS プレイ時、オブジェクトは配置された場所で音声や映像を再生します。

メインパネルの縦軸 (上に向かって並んでいる横線) は時間を表します。

Grid ひとつにつき 1 個ずつ、オブジェクトを配置できます。

背景の “#000” は小節の番号です。(最大で #999 まで)

メインパネルの横軸 (右に向かって並んでいる縦線) はパートを表します。

BPM 変更、STOP
譜面を速度変更したり一時停止したりする、特殊なオブジェクト。時間やスクロールを制御するために使われます。
SC (スクラッチ)、鍵盤 1 から 7
プレイヤーが演奏するべき音声オブジェクト。
BGALAYER、POOR
映像オブジェクト。
B01 から B32
プレイヤーが演奏しない音声オブジェクト。つまり BGM です。

オブジェクト自身には レーン の区別がなく、メインパネル上のどこにでも配置されることができます。たとえば音声定義 #WAV** example.wav は、演奏領域に移動させれば演奏オブジェクトになり、BGM 領域に移動させれば BGM オブジェクトになります

このメインパネル上に、オブジェクトを配置していきます。

ツールバーにあるアイコン 「矢印・鉛筆・消しゴム」 から、オブジェクトカーソルのモードを切り替えます。手始めに鉛筆アイコン「書込モード (F3)」 を左クリックします。


書込モード (オブジェクトカーソルの鉛筆アイコンが押下されている状態)

定義リストから音声オブジェクトや映像オブジェクトを選択して、メインパネル上に書き込むモードです。 書き込む際の罫線間隔を Grid 選択枠から変更できます。

#WAV タブのリストアイテムを、メインパネル上に左クリックで書き込みます。書き込む番号は、定義リストの各行を左クリックするか、テンキー [+] [-] でリストカーソルを上下させて選択します。

細かいリズムで書き込みたい場合、ツールバーの Grid を左クリックします。選択した値によって、オブジェクトを置ける罫線の間隔が変化します。

特定キー押下中は、各キーに対応した属性のオブジェクトを書き込める状態になります。 演奏領域のレーンにおいて、

[Ctrl を押し込んでいる間、左クリック]
不可視オブジェクトを配置します。
[Shift を押し込んでいる間、左クリック]
ロングノートオブジェクトを配置します。

編集モード (オブジェクトカーソルの矢印アイコンが押下されている状態)

オブジェクト群を選択して移動したり、 切り取り・コピー・貼り付け・削除したりするモードです。

書き込まれたオブジェクトを、左クリックなどで選択できます。オブジェクトが配置されていない地点から左ドラッグを開始すると範囲選択枠が出現し、枠内に収めた複数のオブジェクトを選択することができます。

水色オブジェクトは左ドラッグで (つかんでひきずる要領で) 移動できます。

オブジェクトが配置されていない地点で右クリックするとメニューが開かれ、選択状態のオブジェクトに対していろいろな操作を行うことができます。

消去モード (オブジェクトカーソルの消しゴムアイコンが押下されている状態)

オブジェクトを照準して、左クリックで削除します。

元に戻す/やり直し

モードを問わず、メインパネルの操作をまちがえた場合は……

メニューバー【編集】→【元に戻す】を左クリックします。
メニューバー 【編集】 → 【元に戻す】
もしくは、キーボードからCtrl】を押しながら【Z】を押します
  • “元に戻す/やり直し” は、Web ブラウザの “戻る/進む” に似ています。
  • 【元に戻す】Ctrl + Zは、作業の履歴を「戻る」。
  • 【やり直し】Ctrl + Yは、作業の履歴を「進む」。

各モードの操作をひたすら繰り返して、譜面を組み上げていきます。

自由に作業を進めて構いませんが、一般的にはまず BGM 領域に全パート全オブジェクトを配置してしまう作り方が効率的とされています。

  1. 曲として完全に成立する状態まで BGM を組み上げてしまい、これを作業用ベースとして保存します。
  2. ベース譜面のコピーを開き、演奏させたいオブジェクトのみを BGM 領域から演奏領域に移動させます。Y 軸固定移動などを活用します。
  3. 曲を変えずに難易度だけを変更する譜面を複数作る場合は、必要な枚数だけベース譜面をコピーして、配置作業を繰り返します。

ベース譜面を完成させるまでの工程を効率化する Be-Music Helper [http://sky.geocities.jp/exclusion_bms/bmhelper.html] (外部リンク)Mid2BMS [http://mid2bms.web.fc2.com/] (外部リンク) などの便利なツールも活用できます。

同じ曲に対して複数枚の譜面を作る場合は、Anzu BMS Diff Tool [http://yuinore.net/2015/12/difftool/] (外部リンク) で曲の同一性を検証することもできます。


映像の配置

音声オブジェクトと同じ要領で、#BMP のリストから映像オブジェクトを選択し、映像領域のレーンに配置していきます。細切れの画像素材を短い間隔で配置して “動いているように見せる” 方法が一般的です。

近年は “動画形式のオブジェクトを、最初に 1 個配置するだけ” という作品も多くあります。

BGA
演奏中に BGA として表示される映像オブジェクト。
LAYER

BGA の上に重なって表示される映像オブジェクト。

画像における、色コードが RGB #000000 (完全な黒) のピクセルは、直下の BGA を透過して表示します。

POOR
演奏ミス時に映像領域の最前面に一定時間表示される映像オブジェクト。

BGA レーンと LAYER レーンのオブジェクト配置の例

画像素材群を BMSE 上で配置し、それが実際のプレイ時にどのようにアニメーションするかを示します。LAYER の黒地部分が、LAYER 直下の画像を透過するさまをご覧ください。

#BMP01 から 08 までを定義したリストの例
BMS 書式上の定義 画像
#BMP01 Eg_bga1.bmp (青色に塗りつぶされた矩形)
#BMP02 Eg_bga2.bmp (緑色に塗りつぶされた矩形)
#BMP03 Eg_bga3.bmp (黄色に塗りつぶされた矩形)
#BMP04 Eg_bga4.bmp (赤色に塗りつぶされた矩形)
#BMP05 Eg_layer1.bmp (黒地に小さい白文字)
#BMP06 Eg_layer2.bmp (黒地に普通の白文字)
#BMP07 Eg_layer3.bmp (黒地に大きい白文字)
#BMP08 Eg_layer4.bmp (黒地に巨大な白文字)
BGA
BGA 列にオブジェクト 01・02・03・04 を繰り返し配置すると、プレイ時に背景色が青・緑・黄・赤の順に繰り返し変化する。
LAYER
LAYER 列にオブジェクト 05・06・07・08 を繰り返し配置すると、プレイ時に白文字が小・中・大・最大の順に繰り返し変化する。
BGA + LAYER
BGA 列に 01・02・03・04 を、LAYER 列に 05・06・07・08 を繰り返し配置すると、プレイ時に「青背景に小さい白文字・緑背景に普通の白文字・黄背景に大きい白文字・赤背景に巨大な白文字」の順に繰り返し変化する。

譜面のデバッグ

オブジェクト配置中は、プレビュー再生しながら概観をチェックします。

ツールバーからビューワを選択 (uBMplay 推奨) して 最初から再生または現在位置から 再生ボタンを左クリックすると、譜面が実際にプレイしているかのように時間軸に沿って再生され、編集結果を即座に確認できます。[Shift + 左クリック] で書き込む LN なら、以下のように表示されます (実際は音も映像もすべて再生されます):

on BMSE: ロングノートは開始点と終了点を別々に配置します。

on uBMplay: ロングノートは開始点と終了点が繋がって表示されます。

ビューワで視聴 (試聴) しつつ、おかしな箇所を見つけ次第 BMSE 上で修正していきます。追加したいファイルが出てきたらそのつど用意して定義して配置します。


仕上げ

オブジェクトをひととおり配置し終えたら、テストプレイを重ねて細部を煮詰めます。

Header → “Expand” tab

設定パネル “拡張” タブの項目は入力必須ではありませんが、ゲーム性に直結する #RANK (判定の厳しさ) および #TOTAL (ゲージ上昇量) は調整を推奨します。#TOTAL 値は大きいほどゲージが伸びやすく、小さいほどゲージが伸びづらくなります。

最後にメニューバーの【ファイル → 変換ウィザードを表示】を左クリックします。

MenuBar → File → Show Conversion Wizard

Conversion Wizard

変換ウィザードから、「BMS で使わなかった定義とファイルの一括削除」を実行し、必要なものだけを残します。以下の項目にチェックを入れて “実行” ボタンを左クリックします。


完成

BMSE がサポートしていない拡張命令などを使用する場合は、変換ウィザードを実行した後に拡張命令タブにそれらを記述します。(特殊な命令を使わないなら、特に気にしなくて構いません)

これを保存すれば、譜面の完成です。おつかれさまでした。

各機能については BMSE の機能詳細を参照してください。


完成した BMS を Web で配布するなら、もう少し頑張る必要があります。

必要なら音声ファイルを減質する

いまや廃れた手法ですが、転送量が問われるモバイル環境などでは役立つかもしれません。面倒な方はここを飛ばして OGG への変換をお読みください。

オリジナルの音声ファイルが、44100 Hz・16-bit・2 ch・1 s・リニア PCM・RIFF waveform であるものと仮定します。これをあらゆる BMS 実装が再生可能な範囲で減質した結果を以下に示します。

fs bit depth chan­nels bytes (1 s) ra­tio
44100 16 2 176400 1
22050 16 2 88200 1/2
11025 16 2 44100 1/4
44100 8 2 88200 1/2
22050 8 2 44100 1/4
11025 8 2 22050 1/8
44100 16 1 88200 1/2
22050 16 1 44100 1/4
11025 16 1 22050 1/8
44100 8 1 44100 1/4
22050 8 1 22050 1/8
11025 8 1 11025 1/16

[註] これら以外のサンプリング周波数・ビット深度・チャンネル数の組み合わせは、正しく再生できない機種が存在します。互換性を重視するなら 48000 Hz や 24-bit は使わないでください。#WAV タブの概要もお読みください。

サンプリング周波数・ビット深度・チャンネル数が半減すれば、ファイルサイズも半減します。オリジナルの 16 分の 1 まで容量を削減できますが、相応に音質が劣化します。高音域を優先したい音は 44100 Hz のままにするべきです。量子化ノイズを混ぜたくない音は 16-bit のままにするべきです。音像定位を優先したい音はステレオのままにするべきです。

ある程度までなら減質作業は自動化できます。BMS制作のすすめ [https://www9.atwiki.jp/coolnaurl/] (外部リンク)」に、SoundEngine FREE [http://soundengine.jp/software/] (外部リンク) のスクリプトがいくつか載っています。単独ファイルへの減質処理は以下の通りです。

[Format Converter]
Selection=0,-0,-1
Frequency=44100
Channel=2
Bit=16
Quality=3

FrequencyChannelBit の値を適当に変更し、[Folder Open][Folder Save] を追加すれば、一括減質が可能です。パートごとにフォルダを分けて減質すると良いでしょう。高音域を残したいパートやモノラルで済むパートなどを分類しておき、それぞれに対して最適な処理を適用します。

ASIO を使いたい場合は、SoundEngine FREE ではなく Wavosaur [http://www.wavosaur.com/] (外部リンク) をおすすめします。メニューバーの【Tools → Batch processor】から各種一括処理を実行できます。11025 Hz への変換はできませんが、特に問題ないと思います。

必要なら音声ファイルを Ogg Vorbis 形式に変換する

手軽に容量を削減できますが、聴いて分からない程度に音質が低下します。OGG は非可逆圧縮なので、この劣化を元に戻せないことに注意してください。

oggdropXPd [http://www.rarewares.org/ogg-oggdropxpd.php] (外部リンク) などを使うのが簡単です。ただしどこかのバージョンに対して日本語化パッチを適用すると、複数ファイルをドラッグ・アンド・ドロップした際に最初の 1 個しか変換されないバグが発生したような記憶があります。

WAV を OGG に変換する前に、BMS制作のすすめ [https://www9.atwiki.jp/coolnaurl/] (外部リンク)」の SoundEngine FREE [http://soundengine.jp/software/] (外部リンク) 用スクリプト「両端無音削除」を実行してください。波形先頭側の無音部分は意図される場合もありますが、末端側の無音部分に利点はありません。

波形末尾に長大な無音が紛れていたために、問題の BMS ひとつを再生するだけでメモリ使用量が 1 GiB だか 2 GiB だかを突破した例があります。OGG 変換後は無音部分のファイルサイズは無いも同然になるので、変換前に無駄を検出しておくべきです。

必要なら画像ファイルを減色・変換・最適化する

最近の機種は 24-bit BMP を普通に表示できますが、古い機種もカバーするなら 1-bit・4-bit・8-bit に限定してください。#BMP タブの概要もご覧ください。

減色は Yukari [http://aoriika.exout.net/] (外部リンク) が高性能です。画像によって適切なパレットやアルゴリズムが異なるので、GUI 版で各カットの減色設定を吟味し、のちコンソール版で一括処理するのがよいのではないでしょうか。

大抵は減色を抜かして PNG 形式に変換するだけでも用が足ります。PNG 形式への変換と最適化は OptiPNG [http://optipng.sourceforge.net/] (外部リンク) などでまとめて行えます。PNG 変換後に減色しても構いませんが、減色された透過 PNG が uBMplay を強制終了させうることや、減色が不可逆工程であることにご注意ください。

必要なら readme を書く

一部の BMS 実装は、選曲画面などから同梱テキストファイルを閲覧することができます。ただし現行の機種は例外なく、テキストの文字符号化方式が ANSI であるものと決め付けます。したがって、たとえばシステムロケールとして日本語が選択されている環境では、韓国語の readme.txt は文字化けします。

簡単な対策は、母国語の文章と英語の文章を併記しておくことです。むろん英語だけでも構いません。英語の文書は文字化けしません。作品タイトルと作者連絡先と “Have fun!” だけを書かれる作家氏もいらっしゃいました。

正しく書かれた HTML 形式の文書なら、文字符号化方式に関する問題は回避できます。現行機種は選曲画面から HTML を参照することはできませんが、画像や CSS などで文書を装飾できるようになる利点もあります。<video> 要素で 40 MiB 超えの動画を使用した readme.html を見た記憶もあります。

書庫としてまとめる

通常はフォルダごと圧縮し、ZIP 書庫か RAR 書庫にまとめます。

ファイル名やフォルダ名に非 ASCII 文字を使わないでください [http://hitkey.nekokan.dyndns.info/20160103-filename.htm] (外部リンク)どうしても非 ASCII 文字を使う必要がある場合は、RAR 形式で圧縮するのが無難です。

だばぁ [http://qiita.com/yuinore/items/53d4796869de90dd4b8f] (外部リンク)” がありうる書庫:
bms.zip|>BMSes + resources
展開時に非日本語環境で文字化けしうる書庫:
bms.zip|>bmsフォルダ\BMSes + resources
無難な ZIP 書庫:
bms.zip|>bmsfolder\BMSes + resources
無難な RAR 書庫 (非日本語環境で日本語パスが通らない可能性あり):
bms.zip|>bmsフォルダ\BMSes + resources

フォルダなしで圧縮された書庫は、ユーザ側に展開時に工夫を要求します [http://qiita.com/5argon/items/cc7d7d9a652f57589674] (外部リンク)BMS を書庫のままプレイできるようなソフトウェアが普及すれば別ですが、いまのところはそうなっていないので、フォルダごと圧縮してください。

不要なファイルを書庫に混ぜないでください。容量の無駄というだけでなく、個人情報が漏洩する危険性さえあります [http://blog.livedoor.jp/blackwingcat/archives/1042262.html] (外部リンク)。通常、以下に述べるファイルを書庫に同梱する意味はありません。

書庫を配布する

書庫を Web 上にアップロードし、それをどこかで告知します。アップロード場所は Google Drive や Dropbox などが無難でしょうか。一部のアップローダーは足が早かったり海外からダウンロードできなかったり糞みたいなスクリプトを仕込んでいたりするので、実績のあるサービスを選びましょう。

現在 BMS シーンはイベント駆動型という感じなので、どこかの BMS イベントに参加するのが最も手っ取り早い告知手段です。Twitter などのソーシャル・ネットワーキング・サービス上で作品を公開される方も多いようです。

BMS イベントや SNS 以外で作品を公開するなら、Be-Music Report [http://www43.tok2.com/home/melodina/bmr.cgi] (外部リンク) にニュースを投稿するか、ニコニコ動画などに動画を投稿するかして、それらが BMSChan Database [http://yaruki0.sakura.ne.jp/bms/BMSchan/] (外部リンク) などに捕捉されるのを待つことになるでしょうか。

自作の BMS に対する反応が欲しい場合は、やはりどこかの BMS イベントに参加するのが確実かもしれません。LR2IR などのインターネットランキングにもたまにコメントがつく場合があるので、チェックするとよいでしょう。