設定パネル

ウィンドウ右側上部の、おもに譜面ヘッダまわりの設定を担うフォームのフィールドです。

設定パネルは、以下の 3 つのグループを含みます: 基本タブ 拡張タブ 環境タブ 基本タブ拡張タブ環境タブ

譜面ヘッダ設定や、BMSE メインパネル環境設定を行うパネルです。

基本・拡張・環境の各タブを左クリックして、グループを切り替えます。タブ自体にフォーカスがあるとき、矢印キーでタブを切り替えることもできます。

基本タブ

(ジャンルとアーティストがともに空のとき、メニューやテキストボックス以外の場所にフォーカスして F9 を押すと謎の文字列が挿入されます。)

譜面のヘッダ情報を設定します。

プレイモード

譜面のプレイモードを指定します。モードによってメインパネルの演奏レーン数も変動します。BMS 書式における対応コマンドは “#PLAYER [1-4] [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#PLAYER] (外部リンク)” です。

1 Player

5 Keys もしくは 7 Keys 用のモード (Theme: Default)

  • 1 枚の譜面を 1 人で遊ぶ
  • グルーヴゲージ数 1
  • #PLAYER 1

2 Player

5 Keys × 2、もしくは 7 Keys × 2 用のモード (Theme: Default)

  • 2 枚の譜面を 2 人で遊ぶ
  • グルーヴゲージ数 2
  • #PLAYER 2

Double Play

10 Keys もしくは 14 Keys 用のモード (Theme: Default)

  • 2 枚の譜面を 1 人で遊ぶ
  • グルーヴゲージ数 1
  • #PLAYER 3

9 Keys (PMS)

Theme: Default (for PMS)

  • 1 人用、#PLAYER 3
  • 拡張子 .pms に変更必須

    (5 Keys DP と区別するため)

13 Keys (oct/fp)

Theme: Default (for oct/fp)

  • 1 人用、#PLAYER 3
  • 拡張命令 #OCT/FP 記述必須

    (7 Keys DP と区別するため)

プレイモードに関する注意点

プレイモードを変更したとき、テーマファイルは自動では変更されません。

BMSE は以下のプレイモードをサポートしません。

18 Keys (PMS)
  • 1 人用 PMS DP (9 個のボタン × 2)、#PLAYER 3
  • 拡張子 .pms に変更必須
  • 7 Keys DP を流用し、BMSE 非対応のフリーゾーンチャンネルも使う
  • チャンネルマッピングは以下の通りです。

    左から順に、[11, 12, 13, 14, 15, 18, 19, 16, 17], [21, 22, 23, 24, 25, 28, 29, 26, 27]。

  • つまり、BMSC [http://tixlab.com/software/bmsc.shtml] (外部リンク) の Double Play 用レイアウトをそのまま使って編集することができます。

  • レーンスクリプトを組めば GDAC2 [http://www.asahi-net.or.jp/~nm4j-tyn/gdac2/] (外部リンク) でも編集できます
Battle Play
  • 1 人用譜面 2 枚を 2 人でプレイしてスコアを競う、BM98 専用モード
  • #PLAYER 4 (大半のアプリケーションは無視するか誤動作する)
その他 (外部資料 [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#KEYMAP-TABLE] (外部リンク)を参照)

フリーゾーンなどの BMSE 非対応チャンネルが絡まないものなら、BMSE で編集できます。たとえば O2mania 用のテーマファイルが BMSE-dttvb [https://github.com/dtinth/UCN-BMSE/tree/master/BMSE] (外部リンク) に同梱されています。

ジャンル

選曲画面やロード画面にジャンル情報として表示する文字列を指定します。普通はその曲のジャンルを記述します (“TECHNO” とか “HOUSE” とか)。

BMS 書式における対応コマンドは “#GENRE string [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#GENRE] (外部リンク)” です。不要ならコマンドは省略できます。値は空でも構いません。

タイトル

選曲画面やロード画面にタイトル情報として表示する文字列を指定します。普通は曲名を記述します。タイトルの後に続けてプレイモードや譜面種別を併記する場合もあります (“-14Keys HYPER-” とか)。

BMS 書式における対応コマンドは “#TITLE string [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#TITLE] (外部リンク)” です。互換性のため、必ず何らかの値を指定してください

一部のアプリケーションは、タイトルの値の一部をサブタイトルとして解釈し、タイトル情報とは区別して表示します。(ただし多少 [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#TITLE-IMPLICIT-SUBSTRING] (外部リンク)問題 [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#TITLE-IMPLICIT-SUBTITLE] (外部リンク)あり)

一部のアプリケーションは、サブタイトルや譜面種別を明示的に指定できる拡張命令をサポートしています。以下は拡張命令タブに記述できます。

#SUBTITLE string [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#SUBTITLE] (外部リンク)

サブタイトルを指定します。暗黙の副題文字列は誤解釈されうるので、問題を回避したい譜面著者は以下のように副題を分離します。

#TITLE title
#SUBTITLE -14Keys HYPER-
#DIFFICULTY [1-5] [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#DIFFICULTY] (外部リンク)

譜面種別を指定します。曲に対して譜面が複数枚用意されているとき、それらを分類できます。値が大きいほど困難な譜面です。

この情報は選曲画面で譜面種別をフィルタリングする際に使われます。便利なので、近年の BMS 著者は大半がこの拡張命令を使用しています。

#TITLE BEGINNER
#DIFFICULTY 1
#TITLE BLACK ANOTHER
#DIFFICULTY 5

アーティスト

選曲画面やロード画面にアーティスト情報として表示する文字列を指定します。普通は作者名を記述します。作者名の後に続けて原曲作者名や BMS 作者名や映像作者名や譜面作者名などを併記する場合もあります。

BMS 書式における対応コマンドは “#ARTIST string [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#ARTIST] (外部リンク)” です。不要ならコマンドは省略できます。値は空でも構いません。

一部のアプリケーションは、補助作者名を明示的に指定できる拡張命令をサポートしています。以下は拡張命令タブに記述できます。

#SUBARTIST string [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#SUBARTIST] (外部リンク)
映像作者名や譜面作者名などを指定します。複数の #SUBARTIST 命令を併記できる機種もあります。

難易度表示

選曲画面やロード画面に表示する譜面難易度情報を 10 進数で指定します。プルダウンメニューから 08 を選択できるほか、半角英数字を直接入力することができます。値が大きいほど難易度が高いことを示します。

値の解釈範囲や表示方法はアプリケーションにより異なります。値が 0 のとき特殊な表示を行うものや、文字列値を解釈できるものもあります。

BMS 書式における対応コマンドは “#PLAYLEVEL n [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#PLAYLEVEL] (外部リンク)” です。

  • このコンボボックスに文字列を入力して保存すると、文字列値が保存されます。しかしそれを BMSE で読み込むと、値 0 になります。
  • このコンボボックスに小数がある間、小数フラグが立ちます。
  • 難易度の基準は曖昧なうえ、時代や文脈によって大幅に異なります。

BPM

その譜面のプレイ開始時点での BPM (初期 BPM) を、10 進数で指定します。値が大きいほど譜面スクロール速度が増加します。

BPM (Beats Per Minute)1 分ごとの拍数 (4 分音符数) を示します。BPM 120 なら、1 分ごとに 120 拍がカウントされる速度です。

BMS 書式における対応コマンドは “#BPM n [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#BPM] (外部リンク)” です。大半のアプリケーションは小数値も解釈します。互換性のため、必ず値を指定してください

小数値の初期 BPM を反映しないアプリケーション
BMS Viewer, BMS2WAV, otama, GALLI, KbMedia (bmse.kpi), forgetalia
  • このテキストボックスに文字列を入力して保存すると、文字列が保存されます。しかしそれを BMSE で読み込むと、値 0 になります。
  • 初期 BPM は、拡張 BPM 変更命令 (“#BPMxx n [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#BPMXX] (外部リンク)”) とは別のものです。


拡張タブ

譜面のヘッダ情報を設定します。拡張タブ配下のヘッダはおおむね省略が許されていますが、#RANK#TOTAL はゲーム性に直結するので調整しましょう。

#RANK [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#RANK] (外部リンク)

演奏時に要求されるタイミングの正確さを選択します。判定が広いほどスコアを得やすくなります。具体的な判定幅や省略時解釈は、アプリケーションにより異なります。BMSE は標準判定 (#RANK [0-3]) をサポートしています。

Very Hard
#RANK 0 (判定がとても狭い)
Hard
#RANK 1 (判定が狭い)
Normal
#RANK 2 (標準的な判定)
Easy
#RANK 3 (判定が広い)
Very Easy
#RANK 4 (判定がとても広い・BMSE 非対応)
#DEFEXRANK
判定を詳細に指定・BMSE 非対応
Random
#EXRANK (判定を動的に変更・BMSE 非対応)

BMSE がサポートしていない拡張判定を編集するには

#RANK 4 [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#RANK-4] (外部リンク)
テキストエディタなどで譜面を開き、#RANK” の値を書き換えて保存します。
#DEFEXRANK n [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#DEFEXRANK] (外部リンク)
  • 一応 iBMSC で編集可能です。#EXRANK” というラベルがついているフォームに値を指定してください。保存後にテキストエディタなどで譜面を開き、#EXRANK” を “#DEFEXRANK” に直して保存します。
  • 普通にテキストエディタから編集するほうが早いという説もあります。
  • μBMSC では “#DEFEXRANK” を普通に読み書きできるよう修正されました。ただし、ラベルだけは “#EXRANK” のまま変更されていません。気になる方は Theme ファイルを編集して、正しいラベルに変更してください。
  • 詳細は外部資料を参照してください。値 100#RANK 2 と等価です。
  • #RANK を指定したうえで #DEFEXRANK も指定しておけば、後者をサポートしていない機種にも対応できます。
#EXRANKxx n [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#EXRANKXX] (外部リンク)
  • 2P 側や BGA を使用していない譜面なら、【判定を変更する位置だけを未使用レーンに仮配置 → テキストエディタから置換】ができます。
  • BMSE は動的判定チャンネル文 #xxxA0 を拡張命令タブに隔離します。地雷やフリーゾーンの場合のようなダミー分岐は不要です。

#TOTAL [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#TOTAL] (外部リンク)

グルーヴゲージの上昇量を 10 進数で指定します。たとえば #TOTAL 200 なら、ゲージは最大で +200 % 増加します。

ここでもし演奏オブジェクト総数が 200 個なら、最も正確なタイミングで演奏オブジェクト 1 個を処理できたとき、ゲージは +1 % 増加します。

ゲージ初期値やクリア認定ラインは、アプリケーションやその環境設定によって異なります。これが難易度に影響する場合もあります。

クリア認定ラインが 80 % のとき、#TOTAL 60 の譜面は、
  • ゲージ初期値 22 % の nazobmplay [http://manbow.nothing.sh/nazobmplay/download.html] (外部リンク) ではクリア可能
  • ゲージ初期値 9 % の MixWaver [http://mixwaver.s18.xrea.com/] (外部リンク) ではクリア不可能
  • グルーヴゲージの種類によっても、ゲージ増加量の扱いが変わります。

未指定時に各機種が適用する既定値は互換性がまったくないので、必ず何らかの値を設定してください

  • このテキストボックスの内容が空もしくは 0 もしくは文字列のとき、BMSE から保存すると BMS コード中の #TOTAL 行が省略されます。
  • 演奏オブジェクト総数はアプリケーションによって変動します。ロングノートの終端を演奏オブジェクトとして数えるかどうか次第で、グルーヴゲージの伸び率も変動するかもしれません。

#VOLWAV [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#VOLWAV] (外部リンク)

譜面を再生したときの音量を、元の音声ファイルに対するパーセンテージで指定します。音声ファイルそのものを改変するわけではありません。

#VOLWAV 100 もしくは #VOLWAV 記述省略時、その譜面は元の音量で再生されます。#VOLWAV 200 なら 2 倍の音量になります (すくなくとも KbMedia Player (bmse.kpi) では)。値によっては環境にダメージを与えるのでご注意ください。

この命令はアプリケーションやハードウェアに大きく依存するため、現在は「うかつに設定しないほうが無難」とされています。

アプリケーションが解釈するオブジェクトすべての音量が変更されます。演奏音と BGM に音量差をつけたい場合は、その機能を有する LunaticRave2 などを使用するか、専用に音量調整したファイルを別途用意してください。

  • このテキストボックスの内容が空もしくは 0 もしくは文字列のとき、BMSE から保存すると BMS コード中の #VOLWAV 行が省略されます。

#STAGEFILE [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#STAGEFILE] (外部リンク)

選曲画面やロード画面に表示する画像を指定します。いわゆるスプラッシュスクリーンです。テキストボックスに画像ファイル名を直接記述するか、参照ボタン を左クリックして参照ダイアログから画像ファイルを選択します。

“甘雲” (9索敵/8) を nazobmplay で再生するとき、ロード画面には曲を印象づける抽象画が表示されます。

#STAGEFILE を指定すると、ステージ読み込み中に、指定した画像が表示されます。

#STAGEFILE を他の状況に使用する機種もあれば、逆に一切表示しない機種もあります。

“Colorful (roop remix)” (sweez & Meine Meinung remixed by roop) を nazobmplay で再生するとき、nazobmplay 既定のロード画面が表示されます。

#STAGEFILE 省略時、各機種は既定のロード画面を表示するでしょう。

既定のロード画面は一般的に、静止画で #TITLE#ARTIST#GENRE などの曲情報を表示します。スプラッシュムービーを表示する機種もあります。

タイトル画像の一般的な形式は、24-bit または 256 色か 16 色か 2 色の BMP (640 × 480 pixels) です。JPEG や PNG が利用できる場合もあります。一部の機種は、サイズが異なるタイトル画像を正常に表示しませんnazobmplay は大きすぎるタイトル画像を表示できません。ナナシグルーヴは小さすぎるタイトル画像の右端 1 pixel と下端 1 pixel を引き伸ばして表示します。

通常は譜面の同位の画像ファイル名を指定します。パスの定義を解釈できる機種もあります。

階層の指定

同位の階層を参照する例
#STAGEFILE title.bmp
1 階層上位を参照する例
#STAGEFILE ..\title2.bmp
1 階層下位を参照する例
#STAGEFILE child\title3.bmp
  • パスの定義をファイル参照ダイアログから行うことはできません。
  • パスの階層区切り記号にスラッシュを使用すると、下位方向では参照ボタンが反応しません。他にも不具合が生じる状況があります。

一部の機種は、選曲画面などに別の装飾を適用できます。

ナナシグルーヴで、バナーは選曲画面とリザルト画面に表示されます。

ナナシグルーヴの選曲画面にはコメントも表示できます。

#BANNER imagefile [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#BANNER] (外部リンク)

300 × 80 pixels のバナー画像を表示します。近年リリースされる BMS や PMS の多くがこの拡張命令を使用しています。GIF アニメーションは使用できないようです。

#COMMENT "string" [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#COMMENT] (外部リンク)

引用符で括った文字列を表示します。おもに選曲画面にテキストが表示されます。年に 10 作くらいはこの拡張命令を見かける印象があります。

#BACKBMP imagefile [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#BACKBMP] (外部リンク)

本来は DDR の独自拡張命令で、演奏画面の背景画像を指定できます。

LunaticRave2 用スキン “OVER ACTiVE DX+” は、これをオープニングイメージとして使用します [http://right-stick.sub.jp/backbmp/index.html] (外部リンク)。曲情報は、任意のフォントおよび任意のレイアウトで装飾されます。beatmania IIDX のような演出が支持され、近年では本来の DDR 仕様と異なる用例が珍しくありません。

#BMP00 [https://hitkey.nekokan.dyndns.info/cmdsJP.htm#BMPXX] (外部リンク)

演奏ミス時に表示される既定のミス画像を指定します。テキストボックスにファイル名を記述するか、参照ボタン からファイルを選択します。

既定のミス画像の一般的な形式は、24-bit または 256 色か 16 色か 2 色の BMP (256 × 256 pixels 以下) です。JPEG や PNG が利用できる場合もあります。動画フォーマットの #BMP00 は、一部の機種のみ再生できるようです。

省略時の解釈はソフトウェアにより異なります。大半の実装では演奏ミス時に映像表示領域が数秒ほど黒く塗り潰されます。

メインパネル POOR レーンの「ミス画像を途中変更するオブジェクト」とは別物です。#BMP00 に画像が定義されているなら、POOR レーンに最初のオブジェクトが現れるまでの間、演奏ミス時に #BMP00 の画像が表示されます。

POOR レーンに 1 個でもオブジェクトを配置すると、その地点から演奏終了までの間 #BMP00 は再表示されません。ミス画像の使いまわしが必要なら、#BMP01 以降に定義したミス画像を、POOR レーン #000 先頭に配置します。

  • BGALAYERPOOR レーンに画像オブジェクトが配置されていないとき、一部のアプリケーションは #BMP00 を表示しません。
  • #STAGEFILE と同様に、一部のアプリケーションではパスも定義できます。
  • 変換ウィザードファイル名を連番に変換】を実行すると、#BMP00 に定義したファイルも “00.bmp” や “00.png” などにリネームされます。


環境タブ

メインパネル演奏領域の表示方式を設定するリストボックス群です。このタブの項目は譜面ヘッダには関与しません。

キー表示

セパレートのとき、すべてのレーンを等幅で表示します (デフォルト)。

ハーフのとき、隣接する鍵盤レーンを【表示幅】の半分で表示します。

ナナシグルーヴや forgetalia++ など、

ハーフ表示が可能なアプリケーションでは、偶数番目の鍵盤レーンの演奏オブジェクトは、ピアノ (よう) にレーンライン上に表示されます。

ハーフ表示の同時押し配置では、鍵盤デバイスにおける手前同士・奥同士の組み合わせは見やすくなり、手前+奥の組み合わせは重なって見づらくなります。隣り合うロングノートの視認性には特に気を払う必要があるでしょう。

ハーフ/セパレート は、プレイモードを問わずいつでも変更できます。

  • ハーフ表示は厳密には、[隣接鍵盤レーン 1 本につき、表示幅 1/4 短縮]

  • 編集モード時、 選択したオブジェクトは他のオブジェクトより前面に描画されるため、ハーフ表示中は隣接オブジェクトが完全に隠れる場合があります。

  • ハーフ表示中はオブジェクトを必ずしも見ため通りには選択できません。水平方向の選択判定は、常にレーン座標と一致します。

キー配置

  • プレイモードが 9 Keys (PMS) か 13 Keys (oct/fp) のとき、この項目はメインパネルの表示に影響を及ぼしません。

7 Keys・14 Keys のとき、すべてのレーンを表示します。

5 Keys・10 Keys のとき、鍵盤レーン 6 番と 7 番を非表示にします。

適切に設定すれば、使わないレーンにオブジェクトが配置されてしまう編集ミスを未然に防ぐことができます。表示幅も 2 列 (4 列) 節約できます。

5 Keys・10 Keys に変更したとき、6 ~ 7 番レーンにあるオブジェクトは単に見えなくなります。削除されるわけではないので、消し忘れ等にご注意を。

スクラッチ (1P / 2P)

  • プレイモードが 9 Keys (PMS) か 13 Keys (oct/fp) のとき、この項目はメインパネルの表示に効果を及ぼしません。

スクラッチレーンを、鍵盤レーンの左右どちら側に表示するかを選択します。演奏領域 1P と 2P それぞれに対して個別に指定できます。

スクラッチは、筐体や専用コントローラでは “円盤を回す” ことで入力するオブジェクトです。打鍵とは別種の操作が要求されるため、同じ譜面でもプレイ環境により難易度が極端に変わる場合があります。プレイ環境を考慮する際に、このレイアウト変更メニューが役に立ちます。

参考: beatmania 筐体のスクラッチレイアウト

5 鍵盤

1P 側:右、2P 側:右

7 鍵盤

1P 側:左、2P 側:右

5 鍵盤筐体レイアウトにおいて、「鍵盤左端のキー」と「鍵盤右隣のスクラッチ」を片手で同時に処理することは困難です。

一般的なサイズの人間の場合、「鍵盤右隣のスクラッチ」から「鍵盤左端のキー」までは距離がありすぎて、片手では届きません。どちらかを無視するか、タイミングをずらして拾うことになります。

5 鍵盤筐体レイアウトのダブルプレイにおいて、1P 側にこの同時処理指令が下った場合は、2P 側にオブジェクトがない区間なら、左手で「鍵盤左端のキー」を処理しつつ・右手で 1P 側スクラッチを拾うこともできます。

レイアウトを問わず、鍵盤同時押しとスクラッチの片手複合は困難です。

スクラッチと鍵盤両端のキーを片手で同時に入力することは不可能です。

片手側のオブジェクトを瞬間的に両手で処理することは可能ですが (俗にいう “引越し”)、タイミングが詰まっている場合はそれも困難です。

タイミングをずらして両方拾うにしても、配置によっては曲芸じみた操作が要求されます。

オブジェクトを捨てるにしても、スクラッチ 4 個を見逃すとグルーヴゲージが 24 % 減ります。ステージをクリアするための条件としてグルーヴゲージ 80 % 以上が要求される場合、譜面の最後にこういった配置があると大変です。

キーボードでプレイする場合、スクラッチ位置の制約はありません。

遊ぶ側はアプリケーション設定でレイアウトを変更できますし、特にこだわらなければ専用コントローラでも肘や足を使えますから、気にしなければしないでも問題ありません。

beatmania の文脈に沿った譜面を作成するなら、beatmania 筐体レイアウトに合わせるほうが有利ではあります。


設定パネル概要

設定パネルの数値入力フォームについて

設定パネルの有効範囲について

  • 以降で示すのは「BMSE における有効範囲」です。他のアプリケーションでは有効範囲は異なる場合がほとんどです。
  • プレイモードキー配置からレーンを非表示にしたとき、配置済みのオブジェクトは元の場所に残ります。非表示状態のまま読み込みや保存ができ、変換ウィザードや “検索・削除・置換” でも検索されます。
  • プレイモード指定と衝突して不思議な見た目になるソフトもあります。普通の譜面を作るなら、非表示レーンのオブジェクト消し忘れにご注意ください。
#PLAYER
  • 有効範囲 05
  • (内部的には符号付き 16 ビット整数型:-3276832767?)
  • 文字列や空の値が指定されれば値 0 を適用
  • #PLAYER 省略時は値 1 を適用
  • 0 ならプレイモードを適用しない (註)
  • 1 なら 1 Player を適用
  • 2 なら 2 Player を適用
  • 3 なら Double Play を適用
  • 4 なら 9 Keys (PMS) を適用 (註)
  • 5 なら 13 Keys (oct/fp) を適用 (註)

[註]0/4/5 は BMS の書式仕様とは無関係です。単に BMSE がそのように解釈することを示しています。以降の項目についても同様です。

#GENRE, #TITLE, #ARTIST
[Windows 10/8.1/8/7/Vista/XP/2000]
  • 43679 bytes まではフォームに表示される?
  • 65535 文字までは読み込まれる (65536 文字目以降は切り捨て)
  • 保存するだけなら 15 万文字以上でも問題なく保存できる?
  • ただし ASCII 文字と非 ASCII 文字が混在する値は意味不明な結果に
[Windows ME/98/95]
  • 32766 bytes までは表示され、読み込まれ、保存できる
  • 32767 bytes 以降は表示されず、読み込まれず、入力できない
  • やはり ASCII 文字と非 ASCII 文字が混在する値は意味不明な結果に
#PLAYLEVEL
  • 符号付き 32 ビット整数型:-21474836482147483647
  • 文字列や空の値なら値 0 を適用
  • #PLAYLEVEL 省略時は値 1 を適用
#BPM
#RANK
  • 符号付き 16 ビット整数型:-3276832767
  • 範囲内なら 03 に丸める
  • 負数や文字列や空の値なら値 0 を適用
  • #RANK 省略時や 3 以上なら値 3 を適用
  • 0 なら VERY HARD
  • 1 なら HARD
  • 2 なら NORMAL
  • 3 なら EASY
#TOTAL
#VOLWAV
  • 符号付き 16 ビット整数型:-3276832767
  • 文字列なら値 0 を適用
#STAGEFILE, #BMP00
  • ファイル参照ダイアログを経由する場合、パス長さ上限は ANSI 換算で 256 bytes (半角英数字なら 256 文字分)

    (257 bytes 以降は、ダイアログから読み込む際に切り捨てられる)

  • 参照ボタンは 260 bytes まで有効
  • パスが無効なら参照ボタンが反応しない
  • ファイル参照ダイアログを経由しない場合、[#GENRE, #TITLE, #ARTIST] と同様に 1 行テキストボックスに関する制限が課せられる

BMSE 上で扱えるパス長さの上限に関する冗長な注釈

BMSE のパス長さ上限は ANSI 換算で 256 bytes です。BMSE は Windows 95/98/ME でも動作するように書かれた「Unicode でないプログラム」です。

Windows 95/98/ME のパス長さ上限は、ANSI 換算で 256 bytes です。(Windows の内部では 260 bytes に設定されているらしいのですが、ヘルプ筆者はすくなくともエクスプローラを経由する限り 256 bytes までしか実際に指定できたためしがないので、本稿では 256 bytes を上限として話を進めます。)

Windows における “ANSI” の文字符号化方式はシステムロケールによって異なり [https://msdn.microsoft.com/en-us/library/dd317756.aspx] (外部リンク)、一般的な日本語環境ではコードページ 932 (別名 Windows-31J) が使われます。この文字セットはおもに日本語を表すための文字を収録しており、ハングルなどを書き表すことはできません。コードページ 932 では、いわゆる半角英数字や半角カタカナは 1 byte で、その他の文字は 2 bytes で表現されます。

Windows 2000/XP 以降において、ファイルシステムのパス長さ上限は、Unicode (UTF-16LE) 換算で 260 文字 [https://web.archive.org/web/20091021083520/http://windows.microsoft.com/ja-JP/windows-vista/File-names-and-file-name-extensions-frequently-asked-questions] (外部リンク)に拡張されました。たとえば D ドライブ直下に以下のような名前のファイルを作成できます。

一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十.bmp

この 254 文字の名前は、ANSI (コードページ 932) 換算では 504 bytes で表現されます。このような長い名前は、Windows 95/98/ME では命名不可能でした。

  • この長すぎるファイル名は、UTF-8 換算では 754 bytes で表現されます。ファイルシステムの文字符号化方式として UTF-8 を採用している近年の Linux などにおいて、名前長さ上限は各階層ごとに UTF-8 換算で 255 bytes です。したがって、この長い名前のファイルは Linux にコピーできません。
  • 古い Mac OS 標準 (HFS) フォーマットボリューム [https://ja.wikipedia.org/wiki/Hierarchical_File_System] (外部リンク)では、ファイル名の上限は 31 bytes (!) です。2015年9月30日にリリースされた OS X El Capitan (OS X 10.11) まで、この形式はサポートされていました (読み込み限定)。
  • 古い Windows には 8.3 形式 [https://ja.wikipedia.org/wiki/8.3形式] (外部リンク)という命名規則制限がありました。Windows 10 環境下においても、たとえば BM98k をビューワとして呼び出す場合 [https://hitkey.nekokan.dyndns.info/bm98.htm#BM98VIEW] (外部リンク)など、いまだに 8.3 形式を意識する必要があります。

検証用に、D ドライブ直下に新しく譜面を作成します。BMSE からそれを開き、各フォームのファイル参照ダイアログを経由して、前述の長い名前のファイルを #STAGEFILE#BMP00#BMP01 に定義します。この譜面を保存してテキストエディタで開くと、以下の結果が得られるでしょう。

#STAGEFILE 一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八
#BMP00 一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八
#BMP01 一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八

保存された文字列値は、ANSI 換算で各 256 bytes 相当です。Visual Basic 6 のファイル参照ダイアログを通した時点で、257 bytes 以降は切り捨てられています。ファイル名が正しく指定されないので、BMS はファイル参照に失敗します。

では、テキストエディタなどから直接 “長すぎる名前.bmp” を指定するとどうなるでしょう。#STAGEFILE#BMP00 に対してそれを指定した場合、BMSE は問題なく起動し、長すぎる名前の定義をそのまま保存できますが、“参照” ボタンは反応しません。また、ANSI 換算で 257 bytes 以上の名前#WAV に定義すると、BMSE はこの譜面を開くことができず強制終了します。同様に長すぎる名前を #BMP01 以降に定義すると、BMSE の画像プレビュー機能や “指定” ボタンが正常に動作しません。

いまのところ、BMS 関連ソフトウェアの大半が ANSI コードを前提として書かれていることに注意してください。ヘルプ筆者はこの制限についてまともに調査できていませんが、以下にそれらの一例を示します。

ファイル名の長さ上限が、ANSI 換算で 100 bytes
  • BMSC:長い名前文字列を切り捨てます。
パス長さ上限が、ANSI 換算で 256 bytes
  • GDAC2:長い名前を定義すると保存できず、参照すると強制終了します。
  • BMSE:長い名前文字列を切り捨てます。または強制終了します。
  • uBMplay:長い名前が定義された譜面を読み込むと強制終了します。
  • LunaticRave 2 や nazobmplay をはじめ、2010年代以前の BMS アプリケーションはほとんどが「Unicode でないプログラム」です。長い名前の定義は正常に再生されないか、もしくは何らかの不具合が発生します。
「Unicode 非対応プログラム」だが、パス長さ上限は 256 文字
  • BMX2WAV:定義名が ANSI で表記可能なら、長い名前も参照できます。
「Unicode 対応プログラム」 (Windows 95/98/ME で動作しません)
  • iBMSC:長い名前も正しく参照できますが、音声プレビューは ANSI 基準です。長い名前や ANSI で表記不可能な名前はプレビューされません。
  • ruv-it! や charatbeatHDX・BMIIDXView2015 や μBMSC は、長い名前も正しく参照できます。

このように互換性に関する問題が発生しうるので、過度に長いファイル名を使わないでください。また言語環境の差異やファイルシステムごとの文字符号化方式の差異に起因する多くの問題 [https://hitkey.nekokan.dyndns.info/20160103-filename.htm] (外部リンク)を回避するために、ファイル名は半角英数字のみで構成すること強く推奨します