ファイル

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

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

  • 新規作成開く1~5 (最近開いた譜面を開く)終了は、元に戻せない操作です。実行後、編集作業の一時的な履歴は破棄されます (履歴カウンタがふりだしに戻る)。

  • 編集履歴が破棄されるタイミングで、編集中のディレクトリに存在する ___bmse_temp.bms という名前のファイル」も削除されます。編集対象の譜面ファイルにこの名前を使わないでください。また、この名前のファイルに読み取り専用属性を付与しないでください。

  • 現在開いている譜面の変更内容が未保存なら (変更フラグ)、元に戻せない操作が実行される前に、保存確認ダイアログが表示されます。

新規作成

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

  • この操作は「元に戻す」ことができません。
  • 編集中のディレクトリに存在する ___bmse_temp.bms は削除されます。

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

開く

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

  • この操作は「元に戻す」ことができません。
  • 編集中のディレクトリに存在する ___bmse_temp.bms は削除されます。
  • ___bmse_temp.bms をダイアログから開くと、BMSE が強制終了します。

BMSE は Unicode をサポートしていないので、「システムロケールが表現できないパス」を扱うことはできません。たとえば一般的な日本語環境の Windows 2000/XP 以降で、ハングル名のフォルダを作成し、その中に適当な BMS 譜面を作成したとします。この譜面は Unicode 対応の iBMSC/μBMSC で開くことはできますが、BMSC/GDAC2/BMSE で開くことはできません。

上書き保存

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

  • 保存後も編集履歴は保持されているので、「元に戻す」ことは可能です。

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

名前を付けて保存

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

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

  • 保存後も編集履歴は保持されているので、「元に戻す」ことは可能です。
  • ただし既存の譜面への上書きの場合、既存の譜面に戻すことはできません。

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

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

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

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

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

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

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

  • この機能を実行するには、Internet Explorer 4 以上が必要です。Windows 98 以降は Internet Explore 4 以上を標準搭載しているので、古い Internet Explorer を導入する必要はありません。

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

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

1~5

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

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

  • この操作は「元に戻す」ことができません。
  • 編集中のディレクトリに存在する ___bmse_temp.bms は削除されます。

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

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

システムロケールで表現できないパスを BMSE は扱えません。たとえば韓国語環境でハングル名フォルダから譜面を開くと、bmse.ini は CP949 でエンコードされ、[RecentFiles] セクション配下にハングルのパスが記録されます。この bmse.ini を日本語環境に持っていくと、「最近開いた譜面」のメニューアイテムは CP932 でデコードされ、ハングル部分が文字化けするでしょう。文字化けしたアイテムを選択しても、もちろん開くことはできません。

変換ウィザードを表示

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

  • この項目の一部の操作は「元に戻す」ことができません。

終了

BMSE を終了します。

  • この操作は「元に戻す」ことができません。
  • 編集中のディレクトリに存在する ___bmse_temp.bms は削除されます。

変換ウィザード

変換ウィザードは以下の操作を実行できます: 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 の厳格な構文検証を通過できます。定義に過不足がない譜面は、正常に解釈できるソフトの数を最大化するでしょう。

  • この項目はあくまで「譜面内の定義リストに登録されたアイテム」を削除するものです。この項目が実行された段階では「BMS フォルダ内の実際のファイル」は削除されません。

  • 拡張命令タブは検索されません。したがって、「拡張命令タブ内にのみ存在するオブジェクト番号」は未使用とみなされ、定義が消去されます

    たとえば #RANDOM 命令を使っている譜面に対してこの項目を実行すると、分岐区間内にのみ存在するオブジェクトはすべて定義が消去されます。それらは実際のプレイ時には「ファイルを何も参照しない空オブジェクト」となります。

    イメージ図は、#IF#ENDIF に括られた分岐区間内の内容を示しています。実際は分岐区間内の内容はメインパネル上には描画されません。オブジェクト 0204 はこの分岐区間内にのみ存在するものとします。この譜面に未使用定義消去を実行すると、#WAV02#WAV04 の定義アイテムは未使用とみなされ、消去されます。

    Before Conversion
    #WAV01 test_01.wav
    #WAV02 test_02.wav
    #WAV03 test_03.wav
    #WAV04 test_04.wav
    #WAV05 test_05.wav
    After Conversion
    #WAV01 test_01.wav
    
    #WAV03 test_03.wav
    
    #WAV05 test_05.wav

    この問題への対処法はいくつか考えられます。

    • 該当番号の定義内容を別のテキストファイルに隔離し、「未使用定義の消去」を実行して保存します。BMSE を閉じた後にテキストエディタから書き戻します。
    • 該当番号ごとにダミーオブジェクトをメインパネル #000 あたりに書き込んでおき、定義が残るようにしてから「未使用定義の消去」を実行します。その後ダミーオブジェクトを削除します。

      不都合がないなら、ダミーオブジェクトを不可視オブジェクトとして残しておくほうが分かりやすいでしょう。

    • 拡張命令タブの内容は、変換ウィザード実行後に記述するようにします。これは最も簡単で確実な方法です。
    • 分岐区間にしか現れない定義は分岐の中に収めるようにします。前述の例なら、以下のように内容を変更します。これは BMX2WAV の「検証」もパスする方法です。

      #random 2
      #if 1
      #WAV02 test_02.wav
      #00111:0202030000000000
      #endif
      #if 2
      #WAV04 test_04.wav
      #00112:0004040000000000
      #endif

      ただし BMSE でこの譜面を開くと、分岐内の定義内容が分岐の外に巻き上げられてしまい、分岐の中に隔離した意味がなくなります。したがってこの方法も「変換ウィザード実行後」に記述すべきものです。

  • 未使用定義消去は “元に戻す/やり直し” が有効なので、「定義はしたが配置し忘れていたオブジェクト」などの検出に利用することもできます。

    1. BGM の仮組みがひととおり終わった段階で、定義リストを整列
    2. もう一度変換ウィザードを開き、未使用定義を消去
    3. リストが空白になった行の番号をメモ (= 置き忘れた可能性が高い定義)
    4. 元に戻す” を実行して、手順 2 実行前の「リスト整列直後」に戻る
    5. メモした定義を吟味し、置き忘れオブジェクトであれば再配置

    「元に戻す」の活用例として挙げましたが、実際は前述のチェックはもっと手軽に行えます:

    1. BMSE を 2 つ同時に起動して、両方で同じ譜面を開く
    2. 片方の側でだけ “未使用定義を消去
    3. 両方の定義リストを比較する (目視でも Diff でも、お好みの方法で)

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

現在開いている譜面が存在するフォルダ内から、「この項目の実行時点における、この譜面の #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] (外部リンク) などの外部ソフトも利用できます。

  • 大量のファイルを一度に削除すると、列挙されるリストが一部分しか表示されないことがあります。この場合 [Ctrl] + [C] でも全文取得はできません。
  • ディスプレイが小さい場合、列挙ダイアログが画面に収まりきらない場合もあります。“OK” ボタンが画面外に隠れたときは、キーボードから [Enter] や [Esc] を押してください。

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

  • 未使用ファイル削除は、BMS 作品フォルダが見つからないときは実行できません。(たとえば新規作成からいきなり変換ウィザードを呼んだ場合)
  • 拡張命令タブは検索されません。したがって、拡張命令タブ内にのみ存在する定義」は未使用とみなされ、ファイルが削除されます

    たとえば #BANNER imagefilename 定義を使っている譜面に対して未使用ファイル削除を実行すると、#BANNER imagefilename 定義そのものは拡張命令タブに残りますが、肝心のバナー画像ファイルは削除されます

    この問題への対処法はいくつか考えられます。

    • 消されうるファイルすべてを別のフォルダに隔離し、“未使用ファイル削除” を実行して保存します。BMSE を閉じた後に退避先から書き戻します。
    • あるいは、消されうるファイルすべてを、#WAV#BMP 定義リストの空きスロットにダミーとして定義しておきます。さらに “未使用定義の消去” に巻き込まれないよう、それらをメインパネル #000 などに適当に不可視オブジェクトとして配置しておきます。ファイルが残るようにしてから本項目を実行し、のちダミー定義やダミー不可視を削除します。
    • あるいは、拡張命令タブの内容は、変換ウィザード実行後に記述するようにします。バナー画像なども変換ウィザード実行後に用意します。これは最も簡単で確実な方法です。
  • 同一フォルダ内の、他の譜面でのみ使用しているファイルは、本項目を実行した譜面においては未使用とみなされ、フォルダから削除されます

    この問題に対処する方法の一例を紹介します。

    4 段階の手順を示します。

    1. 未整理の BMS フォルダを、譜面枚数分コピーします。
    2. コピーフォルダ 1 つにつき、譜面 1 枚を振り分けます。
    3. コピーフォルダ内の譜面すべてに対して “未使用ファイル削除” を実行します。
    4. 変換ウィザードを通したコピーフォルダ同士で、中身をすべて上書きすれば、必要なファイルだけが残ります。

    変換ウィザードではファイル削除を行わず、BMSCleaner [http://home.shimbe.net/~nohe/dl/soft.html] (外部リンク) を用いるのも手です。意図的な重複定義も警告される・検索範囲は同階層のみ・拡張命令を追加するなら使用者に BMS 書式の知識が必須……などの制限はありますが、正しく運用できれば「フォルダ内のどの譜面からも参照されていないファイル」だけを簡単に削除できます。定義番号 [00-ZZ] まで対応。

  • 未使用定義消去” と “未使用ファイル削除” を同時に “実行” すると:

    1. まず未使用定義が消去され、
    2. 次にその結果を基準として未使用ファイルが削除されます。

    つまり一度の “実行” で、定義とファイルをまとめて整理することができます。ただし、消えてほしくない要素にまで効果が及んだ場合のダメージは倍増します。

検索する拡張子:

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

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

  • この項目は “フォルダ内の使用していないファイルを削除” の挙動オプションです。親項目が無効のときは選択できません。

  • wav,mp3,bmp,jpg,gif が既定値として指定されています。自由に変更・追加できますが、この設定は BMSE を閉じたとき初期化されます。

  • システムファイルは検索・削除できません。

    Thumbs.dbdesktop.ini などのシステムファイルは、作品配布時にはアーカイブから除去しておくことをお薦めします。これらは初期設定では隠しファイルになっていたり、消しても自動生成されるよう設定されていたりして、掃除したつもりでも書庫に紛れ込んでいる場合があります。ご注意ください。

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

フォルダ内の使用していないファイルを削除” において、削除対象ファイルをごみ箱 [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

整列に関する注意点

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

Before:
たとえばオブジェクト番号 05・06・07・08 がランダム分岐区間内に配置されているものと仮定します。整列実行前は、#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 ソフトでも、譜面が著者の意図通りに解釈される可能性が高まります。

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

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

  • この項目は “定義リストの整列” の挙動オプションです。親項目が無効のときは選択できません。

  • 定義リストを [01-FF] (16 進数) 形式に変換できたとき、設定 → “#WAV#BMP#BGA の拡張定義を使用しない”】が自動的に有効になります。

  • #WAV#BMP#BGAすべて 255 行以内に収まる場合に限り、[01-FF] への変換が実行されます。

    リストのいずれかが 256 行以上必要なら、[01-FF] への変換は行われません。

    音声ファイル 1 個を 256 重に定義しただけの譜面や、空オブジェクトを 256 種類配置した定義数 0 の譜面なども、[01-FF] への変換は行われません。

  • 定義リストを 16 進数形式に変換できるとき、定義リストのカーソルが 256 行目以降 (36 進数番号 #xxx74 以降) にある状態で本項目を実行すると、BMSE が強制終了します。このときバックアップ譜面は生成されません。

    36 進数番号 74 以降のカーソル位置は、2 桁の 16 進数では表現できないので、「プロパティの値が不正です。」というエラーが発生してしまいます。

#WAV のサポート状況

BMS ソフトの大半は、1000 個以上の音声を使用できます。各ソフトウェアの正式名称や入手先に関しては bmsplayer data [https://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, μBMSC, 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, μBMSC, beditor, GDAC2, uBMplay, WAview, BMIIDXView2015, BMX2WAV, BMS List Sorter, BMSCleaner, BGAEncoder, BGAEncAdvance
限定的なサポート
Bemuse (BMSON 形式 + WebM/MP4 動画)

#BGA のサポート状況

座標定義は互換性が低く、全機種への対応はほぼ不可能です。詳しくは「#BGA の互換性について [https://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://cerebralmuddystream.nekokan.dyndns.info/] (外部リンク) などの譜面作成支援ソフトの恩恵を受けやすくなります。特に、簡潔な英単語と「ゼロパディングで桁を揃えた連番」によって、パートごとにファイル名が分類されていれば、驚くほど編集効率が向上します。

  • この項目は “定義リストの整列” の挙動オプションです。親項目が無効のときは選択できません。

  • 定義リストの登録順序は作業の進捗状況の目安にもなるので、譜面作成中にあまりにも早い段階で定義ソートを行うと、効率が下がる場合もあります。
  • エクスプローラなどの名前順ソートとは、必ずしも並び順は一致しません。

    Before:
    いくつかの定義アイテムがあるとします。それぞれの最初の 1 文字は、“t”, “4”, “.”, “_” です。
    After:
    これを名前順ソートすると、“.” → “4” → “_” → “t” の順にソートされます。
    • エクスプローラでは「“_” → 数字」の順にファイルが並ぶ。
    • BMSE の名前順ソートでは「数字 → “_”」の順に定義が並ぶ。
    • BMSE の名前順ソートでは、空の定義はリストの先頭に並ぶ。
    • ファイル名に使えない「パス名の分離符 (“\”)」なども、BMSE ではパスの定義として使用でき、他の文字と同様にソートされる。

    BMSE は、Unicode コードポイント順に定義アイテムをソートします。

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

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

  • 「半角空白 (“ ”) を含む名前」を扱えないソフトがいくつかあります。特に、拡張子部分の直前に空白を挟まないでください。
  • 約十年間事実上の標準だった LunaticRave 2 は、Unicode を扱えません。
  • パスの定義の分離符は、Windows OS に限ればスラッシュ (“/”) よりもバックスラッシュ (“\”) のほうが多くのソフトが問題なく動作します。uBMplay (1.5.0 未満) や BMSE も、スラッシュでは誤動作する状況があります。
  • ファイル名と定義名の大文字小文字は一致させてください。

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

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

日本語版 Windows 95/98/ME 上で、前述のような安全でない名前を収めた書庫 (398 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
  • これによって、名前文字列が消費するバイト数を削減できます。
  • 作品の傾向や作者の正体がファイル名から推察される事態を、ある程度避けることができます。匿名性を確保したい場合に役立ちます。
  • ものすごく深い階層に BMS フォルダを置いた場合でも、もしかすると正常にプレイできるようになるかもしれません。
  • 譜面の参照するファイル名が安全な名前であることが保証されます。半角英数字のみで構成される名前は、言語や OS を問わず確実に解釈されます。

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

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

  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 nekokan.dyndns.info....wav” なら普通に “0C.wav” になります。が、紛らわしい命名は避けてください。

拡張子が無い
#WAV10 _

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

既存の名前

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

リネームの注意点

  • リネームは “元に戻す/やり直し” ができないので慎重に行ってください。
  • リネーム後はファイル名から得られる情報量が激減します。作業手順は熟慮してください。
  • リネーム後は必ず譜面を保存してください。でないと大惨事になります。

    大惨事とは、保存されなかった定義が旧ファイル名を参照し続ける一方で、実際のファイル名は既に連番に変更されているために、一切のファイルが参照できなくなる事態を指します。

  • 拡張命令タブは検索されません。したがって、拡張命令タブ内に存在する定義は、リネーム後はファイルを参照できなくなる可能性があります。

    たとえば以下の例において、リネーム後の拡張命令 #exwav は、もはや存在しない “a.wav” を参照し続けます。

    Before Conversion
    #WAV01 a.wav
    #exwav02 v -50 a.wav
    After Conversion
    #WAV01 01.wav
    #exwav02 v -50 a.wav


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

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