ファイル

「ファイル」メニューには、以下の項目が収められています: Edit View Options Tools Help New Open Save Save As Open Directory Recent Files Show Conversion Wizard Exit 新規作成開く上書き保存名前を付けて保存編集中のディレクトリを開く1~5 (最近開いた譜面を開く)変換ウィザードを表示終了

譜面やファイルに関する操作を行うメニューのグループです。

新規作成

現在編集中のデータがあればそれを破棄し、新規に譜面編集を開始します。

「譜面を読み込まずに BMSE を起動した直後」と同じ状態になります。履歴カウンタがふりだしに戻り、メインパネルや設定パネルやオブジェクトパネルが無地の状態に戻ります。

開く

ファイル参照ダイアログから、既存の譜面ファイルを選択して開きます。

上書き保存

現在の編集データを現在のファイル名で上書き保存します。保存先が存在しない場合は名前を付けて保存します。

譜面ファイルに読み取り専用属性が付与されていると、変更フラグが立っても保存はできず、エラーが発生します。編集したい譜面ファイルが保存できない場合は、譜面ファイルの【右クリックメニュー → プロパティ】を確認し、「読み取り専用」のチェックマークがついていたら外してください。

名前を付けて保存

現在の編集データに任意の名前を付けて保存します。ファイルの保存ダイアログが開かれるので、任意の譜面ファイル名を入力してください。

既存のファイル名を入力した場合は、既存の譜面ファイルに対する上書き保存になります。

既存の BMS の難易度変更譜面などを、その BMS の作成者ではない第三者が作成する場合に、強くお勧めする手順:

  1. BMSE で既存の譜面を開き、内容を一切変更せずに別名で保存
  2. 「既存の譜面ファイル」と「別の名前を付けて保存した譜面ファイル」を、Rekisa [http://frozenlib.net/rekisa/] (外部リンク)WinMerge [http://www.geocities.co.jp/SiliconValley-SanJose/8165/winmerge.html] (外部リンク) などで比較します。
  3. 比較した結果が同一なら、通常通り編集作業を進めて構いません。

両者の内容が異なる場合は注意が必要です。特に配置データ部分に差異が発生する場合、その譜面は「BMSE が扱えないリズム」を用いている可能性があります。詳細は拍子タブを参照してください。

BMSE で編集するとリズムが改竄されてしまう譜面は、iBMSC [http://hitkey.nekokan.dyndns.info/ibmsc_ja/] (外部リンク) やテキストエディタなどで編集する必要があります。

編集中のディレクトリを開く

「BMSE が現在開いている譜面」の存在する場所を開きます。通常は編集中の BMS フォルダが、Windows エクスプローラによって開かれます。

新規作成直後などで、編集中の譜面を一度も保存していない場合は、この項目を実行しても何も起きません。

bmse.ini[Main] セクション内に Filer キーを追加すると、ディレクトリを任意のファイラーで開きます。Filer キーにはファイルマネージャ実行ファイルのパスを指定します。ドライブの先頭からのパスも、BMSE.exe からのパスも、どちらも指定できます。

たとえば以下のように指定します。Filer="C:\Program Files\mdie0300RC6\MDIE.exe"

1~5

最近開いた譜面ファイルを選択して開きます。

新しい順に最大 5 件までのパス名が表示されます。1:xxx” を選択すると、現在の譜面を開き直します。

bmse.ini[RecentFiles] セクションが存在しない、もしくは履歴キーが空のとき (初回起動時など)、このメニュー項目は表示されません。

選択した譜面が既に存在しない場合、単にエラーが出ます。

変換ウィザードを表示

変換ウィザードを表示します。

終了

BMSE を終了します。


変換ウィザード

変換ウィザードは以下の操作を実行できます: delete_list delete_file extension recycle align_list use_old_format sort_by_name convert_filename 使用していない #WAV#BMP#BGA の定義を消去フォルダ内の使用していないファイルを削除 (やり直し不可)、ファイル削除オプション (検索する拡張子ごみ箱に移動しないですぐに削除する)、定義リストの整列、リスト整列のオプション (可能なら古いフォーマット (01 - FF) を使うファイル名でソートする)、ファイル名を連番 (01 - ZZ) に変換 (やり直し不可)

変換ウィザードは、定義や使用ファイルをまとめて整理できる強力な機能です。譜面やフォルダの内容を、指定した条件で一括改変することができます。

とても便利ですが使い方を誤ると影響が大きいため、実行前に作品フォルダのバックアップをとっておくことをおすすめします。

項目は上から順に実行されます。複数の項目を有効化して “実行” した場合、先に実行された項目の結果を基準として次の項目が実行されます。もし不都合なら、適用する項目を小分けにして複数回 “実行” してください。

#WAV#BMP#BGA の定義リスト全域、およびメインパネル全域に効果が及びます。この適用範囲は変更できません。変換されてほしくないリストや配置がある場合は、該当箇所のソースコードを別のテキストやダミー分岐などに隔離してください。

拡張命令タブには効果が及びません。(対応命令タブに関する注意点)

変換ウィザードはモーダルなダイアログボックスです。変換ウィザードを閉じるまで、BMSE メインウィンドウの操作は行えません。

使用していない #WAV#BMP#BGA の定義を消去

現在開いている譜面から、メインパネルに現在配置されていないオブジェクトを検索して、該当する番号すべての定義リストアイテムを消去します。

Before: #WAV02 と #WAV04 はメインパネル上に 1 個も配置されていない。

After: #WAV02 と #WAV04 の定義アイテムは未使用とみなされ、登録が消去される。

これによって、BMS 再生ソフトが不要なファイルを読み込むことが無くなり、メモリ消費量の節約・ロード時間の短縮といった効果が期待できます。

もちろん、定義の空きが増えるということは、譜面がより多くのファイルを参照可能になるということです。

また、譜面が DDR や BMX2WAV の厳格な構文検証を通過できます。定義に過不足がない譜面は、正常に解釈できるソフトの数を最大化するでしょう。

フォルダ内の使用していないファイルを削除

現在開いている譜面が存在するフォルダ内から、「この項目の実行時点における、この譜面の #WAV#BMP#STAGEFILE#BMP00」に登録されていないファイルを検索して、該当ファイルをすべて削除します。

Before: A.bms { #WAV01 test_01.wav, #WAV02 test_02.wav }, test_01.wav, test_02.wav, test_03.wav, test_04.wav, test_05.wav

After: A.bms { #WAV01 test_01.wav, #WAV02 test_02.wav }, test_01.wav, test_02.wav

これによって、必要最小限のファイルで BMS フォルダを構成できます。

作品配布時に容量を抑えることができるので、サーバの転送量、通信コスト、記憶装置などへの負担を軽減できます。

ごみ箱に移動しないですぐに削除する” が有効の場合:

この項目を実行したとき、該当ファイル群は即座に削除されます。

ごみ箱に移動しないですぐに削除する” が無効の場合:

デスクトップの「ごみ箱」アイコンを右クリックして、コンテキストメニューから「プロパティ」を開きます。ごみ箱のプロパティ【ごみ箱にファイルを移動しないで、削除と同時にファイルを消去する】が有効なら、“未使用ファイル削除” 実行時に当該ファイル群は即座に削除されます。

ごみ箱のプロパティ【ごみ箱にファイルを移動しないで、削除と同時にファイルを消去する】が無効なら、“未使用ファイル削除” 実行時に当該ファイル群はごみ箱に移動します。ごみ箱の中身が残っている間は、ごみ箱を開いて中身を「元に戻す」ことができます。

ごみ箱のプロパティ【削除の確認メッセージを表示する】が有効なら:

「未使用ファイル削除」実行時に削除の確認ダイアログが表示されます。

ファイルの削除の確認
該当ファイルが単数の場合、削除対象のファイル名を事前に知ることができます。
複数ファイルの削除の確認
該当ファイルが複数の場合、削除対象の個数のみを確認することができます。
複数ファイルの削除の確認 (2012)
このダイアログは BMSE ではなく Windows API の MessageBox の管轄です。環境によってメッセージが異なる場合があります。

“はい” を選択すると、該当ファイル群はごみ箱のプロパティに準じて処理されます。つまり、ごみ箱に移動するか、または削除されます。

ファイル削除実行時:

「以下のファイルを削除しました」として、削除対象を列挙するダイアログが表示されます。ただし削除の確認ダイアログで “いいえ” を選択していた場合、「削除しました」と表示されても削除は実行されていませんのでご安心ください。

この挙動は紛らわしいものですが、複数の削除対象のファイル名を事前に確認したい場合は、これを利用することもできます。つまり、まずは “いいえ” で削除対象を確認して、問題がなければ本番の削除を実行する、といったこともできます。

もし必要なら、このダイアログにフォーカスして [Ctrl] + [C] でリスト文字列をコピーできます。Clipy [http://akky.xrea.jp/download/clipy.html] (外部リンク) などの外部ソフトも利用できます。

ファイル削除に関する注意点:

検索する拡張子:

フォルダ内の使用していないファイルを削除” において、検索対象とするファイルの拡張子をカンマ区切りで指定します (大文字小文字は問いません)。

テストプレイ時に生成された「再生ソフト独自のスコアファイル」など、作品配布時にフォルダに同梱したくないゴミを掃除することもできます。

ごみ箱に移動しないですぐに削除する

フォルダ内の使用していないファイルを削除” において、削除対象ファイルをごみ箱 [https://support.microsoft.com/ja-jp/kb/404445] (外部リンク)に格納せずに、即座に削除します。

定義リストの整列

「この項目の実行時点における、この譜面の定義リスト」のアイテムを、番号 01 から 1 行ずつすべて整列させます。つまり、空白行を詰めます。

これによって、定義リストの全容が視覚的に把握しやすくなります。

定義アイテムの選択や追加も行いやすくなり、操作の安全性が向上します。(空白行があると、ドロップ定義が意図しない結果になる場合があります)

Before: #WAV01 test_01.wav, #WAV03 test_03.wav, #WAV05 test_05.wav

After: #WAV01 test_01.wav, #WAV02 test_03.wav, #WAV03 test_05.wav

この項目を実行すると、メインパネル上の配置済みオブジェクト番号も、自動ですべて置換されます。つまり定義アイテムと配置済みオブジェクトの 1 対 1 の対応関係は、実行後も保持されます。

オプションで指定しない限り、リストの並び順は入れ替えません。

定義アイテムの内容は問われない

Before:
雑多な種類の定義アイテムの穴あきリスト。
After:
雑多な定義アイテムの整列後のリスト。

いずれも内容を問わず、無条件に整列させます。

定義アイテムが空の場合でも、その番号がメインパネル上に配置されていたなら「明示された空オブジェクト」と解釈し、整列対象とします。

つまり厳密にいえば、この項目は「未定義かつ未使用のアイテム」を定義リストから切り詰めるものです。

#BGA (座標定義) の場合

#BGA (座標定義) で参照している #BMP 番号も、正しく置換します。

この項目を実行した後も #BMP#BGA のリストに空白行が残る場合があり、不思議に思われるかもしれません。しかし、これは正しい挙動です。

#BMP#BGA は定義番号を共有しています。整列後の両者のリストを重ね合わせてみれば、定義番号が整然と連続していることがわかるでしょう。

[Before] BGA lane, #BGA list, #BMP list
#BMPzz を参照する、15 行分の #BGA 命令群と、 #BMPzz test4.bmp
[After] BGA lane, #BGA list, #BMP list
#BMP10 を参照する、15 行分の #BGA 命令群と、 #BMP10 test4.bmp

整列に関する注意点

拡張命令タブは検索されません。したがって、拡張命令タブ内に存在する定義や配置の番号は、整列後は本来の内容と食い違う可能性があります

#random: たとえばオブジェクト番号 05・06・07・08 がランダム分岐区間内に配置されているものと仮定します。

Before: 整列実行前は、#WAV01・02・03 が未使用のスロットで、#WAV04・05・06・07・08 が定義済み音声です。

After: 整列実行後は、#WAV01・02・03・04・05 が定義済み音声で、#WAV06・07・08 が未使用のスロットになりました。

前述の例において、整列実行後も #random 区間内が整列前の定義番号を参照し続けていることに注目してください。定義番号と定義内容が対応しなくなったので、譜面著者が当初意図していた音声は鳴らなくなってしまいました。

このような事態を避けるためにも、拡張命令タブの内容は、変換ウィザード実行後に記述するべきです。

可能なら古いフォーマット (01 - FF) を使う

定義リストの整列” において、整列後の定義リストが 255 行以内に収まる場合は、整列後の定義番号の範囲を [01-FF] (16 進数) にします。

これによって、拡張定義 (36 進数定義) に対応していない古い BMS ソフトでも、譜面が著者の意図通りに解釈される可能性が高まります。

古いソフトとの互換性を可能な限り保てるよう、この項目は有効化しておくのが望ましいでしょう (最近は気にする必要がない状況ですが)。

古いソフトを除外するために、この項目を意図的に外す選択もあります。

#WAV のサポート状況

BMS ソフトの大半は、1000 個以上の音声を使用できます。各ソフトウェアの正式名称や入手先に関しては bmsplayer data [http://hitkey.nekokan.dyndns.info/bmsplayer_data2010.shtml] (外部リンク) などを参照してください。

#WAV[01-FF] (2 桁の 16 進数、定義枠 255)
BM98k, BMS Viewer, nBMplay, otama, KbMedia Player (bmse.kpi)
#WAV[01-FZ] (下 1 桁 36 進数、定義枠 575)
BM98de, DDR, rhythm-it!, MixWaver, nazobmplay, BMEV, BMS2WAV, BMS Printer
#WAV[01-SF] (2 桁の 36 進数、定義枠 1023)
Starry Music Beat
#WAV[01-ZZ] (2 桁の 36 進数、定義枠 1295)
bemaniaDX, O2mania, ruv-it!, nazo + Glasopal, in_bm2, GALLI, forgetalia, BM2DXEmu, feeling pomu 2nd, forgetalia#, MacBeat, Aqua'n Beats, BMSE, iBMSC, beditor, WAview, o2play
#WAV[00-ZZ] (2 桁の 36 進数 + 地雷、定義枠 1296)
beatoraja, Bemuse, Pulsus, raindrop, Angolmois, Sonorous, LunaticRave2, ナナシグルーヴ, forgetalia++, charatbeatHDX, BMIIDXView2015, PMSee-V, uBMplay, GDAC2, BMSCleaner, BmsListSorter, BME2WAV, BMX2WAV, TechnicalGroove

#BMP のサポート状況

動画形式の台頭から、画像の定義数はさほど重要ではなくなりつつあります。

#BMP[00-FF] (2 桁の 16 進数、定義枠 256)
BM98k, BM98de, MixWaver, BMSC, BMS Viewer, nBMplay, otama, BmsToAvi
#BMP[00-FZ] (下 1 桁 36 進数、定義枠 576)
bemaniaDX, DDR, rhythm-it!, nazobmplay, feeling pomu 2nd, BMEV
#BMP[00-ZZ] (2 桁の 36 進数、定義枠 1296)
beatoraja, Pulsus, raindrop, Angolmois, Sonorous, LunaticRave2, ruv-it!, ナナシグルーヴ, nazo + Glasopal, GALLI, forgetalia, forgetalia++, BM2DXEmu, charatbeatHDX, MacBeat, Aqua'n Beats, BMSE, iBMSC, beditor, GDAC2, uBMplay, WAview, BMIIDXView2015, BMX2WAV, BMS List Sorter, BMSCleaner, BGAEncoder, BGAEncAdvance
限定的なサポート
Bemuse (BMSON 形式 + WebM/MP4 動画)

#BGA のサポート状況

座標定義は互換性が低く、全機種への対応はほぼ不可能です。詳しくは「#BGA の互換性について [http://hitkey.nekokan.dyndns.info/cmdsJP.htm#ABOUT-THE-COMPATIBILITY-OF-BGAXX] (外部リンク)」などを参照してください。

#BGA に対応しているが互換性の問題を抱える機種
BM98de/DDR/pomu2 (#BMP[01-FF] の番号を 10 進数換算で指定)
MixWaver (#BMP[00-03], サイズ制限 638 × 478 pixels 未満)
WAview (なぜかずれる)
BMSE で組んだ #BGA をおおむね表示できそうな機種 (#bmpFZ まで)
bemaniaDX, rhythm-it!, BMEV
BMSE で組んだ #BGA を問題なく表示できそうな機種
ナナシグルーヴ, ruv-it!, Angolmois, Sonorous, uBMplay, BGAEncAdvance

ファイル名でソートする

定義リストの整列” において、ファイル名の順番でリストを並び替えます

これによって、定義リストの内容が把握しやすくなります (特に、ファイルの命名規則が一貫している場合は)。

また、BmWh [https://nekokan.dyndns.info/~cerebralmuddystream/] (外部リンク) などの譜面作成支援ソフトの恩恵を受けやすくなります。特に、簡潔な英単語と「ゼロパディングで桁を揃えた連番」によって、パートごとにファイル名が分類されていれば、驚くほど編集効率が向上します。

ファイルやフォルダの名前について

ファイル名に非 ASCII 文字を使わないでください [http://hitkey.nekokan.dyndns.info/20160103-filename.htm] (外部リンク)BMS 関連パスの名前は、半角英数字と一部の記号のみに限るのが無難です。

安全でない名前は、環境によっては正常には表示/参照されません。以下に挙げる「安全でない名前の例」の文字を Web ブラウザ上で正しく表示するには、すくなくとも Internet Explorer 4 以降および対応書体が必要です。

安全な名前の例:
heart.wav
安全でない名前の例:
はーと.wav, ハート.wav, 心脏.wav, 심장.wav, coração.wav, .wav, etc.

日本語版 Windows 95/98/ME 上で、前述のような安全でない名前を収めた書庫 [http://hitkey.nekokan.dyndns.info/1F3B9.zip] (外部リンク) (221 KiB, UTF-8 filenames) を展開すると、いくつかのファイルは音が鳴らないどころか、右クリックメニューからは選択も削除もできなくなるでしょう。アーカイバによっては展開できない場合さえあります。非日本語環境において、日本語の文字はこれらと同様の厄介な名前と化します。

ファイル名を連番 (01 - ZZ) に変換

「この項目の実行時点における、この譜面の定義リスト」に登録されているファイルすべての名前を、定義番号と同一にします。ファイル名だけでなく定義名も置換するので、ファイルと定義の対応関係が狂うことはありません。

Before: A.bms { #WAV01 test_01.wav, #WAV02 test_02.wav, #WAV03 test_03.wav, #WAV05 test_04.wav }, test_01.wav, test_02.wav, test_03.wav, test_04.wav, test_05.wav

After: A.bms { #WAV01 01.wav, #WAV02 02.wav, #WAV03 03.wav, #WAV05 05.wav }, 01.wav, 02.wav, 03.wav, 05.wav, test_05.wav

定義リストの整列” や “可能なら古いフォーマットを使う” と併用すれば、ファイル名は整然と並んだ連番になります。

ファイル名でソートする” と併用すると、

  1. まず「元の定義名を基準として」リストが名前順に整列し、
  2. 次に「整列の結果を基準として」連番リネームが実行されます。

リネーム対象ファイルの定義番号は [01-ZZ] とされていますが、実際は #BMP00 (初期 POOR 画像)00.bmp00.png などにリネームされます。

ファイル名の変換における例外的な事例について

様々な種類の例外的な定義アイテムが、どのようにリネームされるかを以下に示します。

明示的に配置された空オブジェクト
// undefined #WAV09
#00114:060E0009000000000000000000000000

リネームが不要なので無視します。

無効なパス
#WAV0C tekito.foon
#WAV10 _

ファイルが存在しないアイテムは無視します。

多重定義
#WAV06 404_E.wav
#WAV0E 404_E.wav
#00114:060E0009000000000000000000000000

対応関係を保持したままリネームします。この例の場合、どちらにも “06.wav” が定義されます。安心の安全設計です。

パスの定義
#WAV05 test2-2\Acid 001.wav
#WAV0F ../404_A.wav

対象ファイルを譜面の同位に移動してリネームします。この例の場合、単に同位の “05.wav” や “0F.wav” になります。不都合なら事前に対象をコピーしておいてください。

架空の拡張子
#WAV0C tekito.foon

実際にファイルを参照できた場合は、「最後のピリオドの直前までの部分」をリネームします。この例なら “0C.foon” になります。

#WAV0C hitkey.nekokan.dyndns.info....wav” なら普通に “0C.wav” になります。が、紛らわしい命名は避けてください。

拡張子が無い
#WAV10 _

定義番号.元の名前】の形式でリネームします。この例で “_” ファイルが実際に参照できるなら、10._” になります。

既存の名前

「リネームの実行結果」と同名になるファイルが、現在の譜面の同位ディレクトリに既に存在する場合、その定義とファイルに対してはリネームを行いません。それがパスの定義であれば、ファイルの移動もリネームも行いません。

リネームの注意点


変換ウィザードウィンドウの操作

各項目の水平軸上で左クリック
項目の有効/無効を切り替え (チェックボックスに印がある状態を有効とする)
“実行” ボタンを左クリック
指定した条件で変換を実行 (有効な項目がない場合は単にへこむ)
“キャンセル” ボタン、タイトルバー の閉じるボタン を左クリック
何も実行せずにこの子ウィンドウを閉じる
拡張子入力フォームを右クリック
入力フォームのコンテキストメニュー開く
拡張子入力フォームでアプリケーションキー
入力フォームのコンテキストメニュー開く
タイトルバーを右クリック
子ウィンドウのコンテキストメニュー開く
Tab
変換ウィザード内でフォーカスを次に移動
Shift + Tab
変換ウィザード内でフォーカスを前に移動
Enter
  • フォーカスがボタンならそのボタンを押下
  • フォーカスが入力フォームなら “実行”
Space
  • フォーカスがボタンならそのボタンを押下
  • フォーカスがチェックボックスなら、有効/無効を切り替え
方向キー
  • フォーカスが入力フォームならキャレット移動
  • 入力フォーム外ならフォーカスを移動
入力フォームで Ctrl + いろいろ
編集操作いろいろ
Alt + F4
変換ウィザードウィンドウを閉じる
コンテキストメニュー
DuckDuckGo 先生 [https://duckduckgo.com/?q=右クリックメニュー+キーボード] (外部リンク)