bmse_help 6.0.201610
メインパネルは、レーン (X 軸) とグリッド (Y 軸) から構成されます。
レーンは性質上 4 種類に分けられます。
レーンラインとグリッドラインで区切られた格子 (グリッド) ひとつひとつに対して、オブジェクトを配置できます。
【#000
より前方、#999
より後方、BGM
レーン 32 番より右方】にはオブジェクトを配置できません。移動や貼り付けなどによって領域外に溢れたオブジェクトは、選択状態を解除したとき消滅します。
コンテキストメニュー「ここに 1 小節挿入」は、クリック地点小節を含む以降の小節全体を後方に 1 小節分スライドします。クリック地点には空の 4 拍子小節が挿入され、元々 #999
にあった内容は押し出され消滅します。
コンテキストメニュー「この小節を削除」は、クリック地点小節を削除し、以降の小節全体を前方に 1 小節分スライドします。#999
には空の 4 拍子小節が補填されます。
#000
~ #999
)小節線から次の小節線の手前までを 1 小節とします。開始小節線の描画位置を基準として、小節番号が表示されます。
各小節の長さは、【オブジェクトパネル “拍子” タブ】から変更できます。
「メインパネル上にオブジェクトが存在する範囲内で、最も後方にある小節」を譜面末尾とします。#000
から末尾までの譜面全長に 最大 16 小節分の余白を加えた区間が、垂直スクロール可能範囲です。これにメインパネル高さを含めた描画領域が、小節の表示可能範囲となります。
たとえば最後のオブジェクトを #064
に配置して End キーを押すと、拍子や表示高さが何であれ、現在位置は #081
になります。
#999 より後方の領域にはオブジェクトを配置できません。
小節の区切りを表す白線です。小節線は常に表示されます。
小節線は、ほとんどの場合、ゲームプレイ時にも表示されます。小節線を表示しない BMS アプリケーションは、
小節線の位置は拍子に依存します。既定値は 4/4
拍子です。
小節線は小節の先頭となります。小節線の真上にあるオブジェクトは必ず「1 拍目」(グリッド座標 0/n
) となります。
例外として、#999
の末尾線のぴったり真上にオブジェクトを配置したとき、そのグリッド座標は “n/n
” と表示されます。
#999
末尾線上のオブジェクトを保存すると、#999
に 192 分音符が +1 されたリズムでソースに記述されます。
保存後の譜面を開き直すと、リズムが変更されます。#999
末尾線上オブジェクトが 193/192 のリズムだったなら、グリッド座標は 191/192
として解釈されます。
配置する際の目安、ガイド、ルーラーです。既定の配色なら、小節線よりは暗く、グリッドよりは明るく表示します。
補助線は、オブジェクトの書き込みや移動量などに一切影響を及ぼしません。
補助線の間隔は【ツールバー → 補助】から変更します。値の単位は「4/4 拍子における 1 小節」の n
等分です。
「補助」ドロップダウンリストの値が “NONE
” なら、補助線を表示しません。
オブジェクトを配置するリズムの単位となる、小節を分割するマス目です。n
等分です。
Grid を変更したとき、間隔が変わる罫線がグリッドラインです。グリッドライン (水平線) とレーンライン (垂直線) で仕切られたマス目ひとつひとつが Grid であり、各グリッドライン上にオブジェクトを 1 個配置することができます。Grid の値が大きいほど、オブジェクトを細かいリズムで配置することができます。
FREE
” のとき、グリッドラインは表示されません。自由な間隔でオブジェクトを配置することができます。メインパネルを垂直方向にスクロールさせて、表示されていない領域を表示します。垂直スクロールバーはメインパネル上に常に表示されます。
トラック高さは、メインパネルの表示可能範囲の全長を表します。
最小: | #000 ~#015 (計 16 小節) + 16 小節 + メインパネル高さ |
---|---|
大: | #000 ~#989 (計 990 小節) + 10 小節 + メインパネル高さ |
最大: | #000 ~#999 (計 1000 小節) + 0 小節 + メインパネル高さ |
トラックを左クリックすると、ノブ位置からクリック位置の方向に、現在の VScroll 設定値の 8 倍量ずつ、メインパネルを垂直スクロールします。クリックし続けると連続スクロールします。スクロール量の初期値は「192 分音符 × 96
個分 × 8 倍量」(4/4 拍子における 4 小節分)。
Windows 2000
ノブは、「メインパネルの表示可能範囲の全長における、現在スクリーンに表示されている範囲」を表します。ノブを左ドラッグすると、メインパネルの現在の表示領域を、ライブスクロールします。
垂直スクロール可能範囲の小節数などに応じて、ノブのドラッグスクロール量が変動します (垂直スクロールバー分解能自動切り替え機能?)。設定を初期化した直後の状態における、垂直ノブのドラッグスクロール 1 単位量は以下の通りです。
#999
まで表示した状態:ノブ高さは、
スクロールボタンを左クリックすると、現在の VScroll 設定値の 1 倍量ずつ、メインパネルを垂直スクロールします。クリックし続けると連続スクロールします。スクロール量の初期値は「192 分音符 × 96
個分 × 1 倍量」(4/4 拍子における半小節分)。
メインパネルを横スクロールさせて、表示されていない領域を表示します。水平スクロールバーはメインパネル上に常に表示されます。
トラックを左クリックすると、ノブ位置からクリック位置の方向に、現在の表示幅における 4 レーン分、メインパネルを水平スクロールします。クリックし続けると連続スクロールします。
Windows 2000/XP 以降でトラックを [Shift + 左クリック] すると、クリック位置に相当するレーンまで、メインパネルを瞬時にスクロールします。
ノブを左ドラッグすると、メインパネルの現在の表示領域を、ライブスクロールします。
ノブ幅は、BMSE ウィンドウサイズ、表示幅、プレイモード、キー表示・キー配置などに応じて自動伸縮します。
スクロールボタンを左クリックすると、現在の表示幅における 1 レーン分、メインパネルを水平スクロールします。クリックし続けると連続スクロールします。
各レーンの対応パートを示すラベル文字列です。メニューバーの【設定 → レーン情報を縦書きにする】を有効にすると、縦書きになります。
レーン情報の文字列や文字色は、テーマファイルを書き換えることでカスタマイズできます (詳細)。レーンの並び順は変更できません。設定パネル “基本” タブの「プレイモード」、もしくは “環境” タブの「キー配置」を変更する以外の方法で、特定レーンを非表示にすることはできません。
表示するレーン自体をさらに細かくカスタマイズしたい場合、
BPM を途中で変更する、非演奏の「スクロール制御オブジェクト」です。
この例のグリッド座標は 0/16
→ 4/16
です。この場合、#002
の先頭で BPM が 240
になり、240
における 1 拍分」が経過すると BPM が 120.24
になります。
BPM 変更レーン上のグリッドを で左クリックすると、入力フォームが現れます。ここで指定した値が BPM 変更オブジェクトになります。
フォームには -65535
~ 65535
の範囲の 10 進数 (小数・指数可) を入力できます。0
、空の値、文字列を入力した場合は入力をキャンセルします。
1
~ 255
の整数値は “標準 BPM 変更” として扱われます。これは無限に配置でき、すべての BMS アプリケーションで再生できます (アプリケーション側のオブジェクト数制限を超えない限り)。
それ以外の数値は “拡張 BPM 変更” として扱われます。これは BMSE 上では 1295 個まで配置でき、一部の古いアプリケーションでは再生できません。内部的には専用の定義 (#BPMxx n
) を持ちます。
負の値の BPM 変更は、一部のアプリケーションでは譜面のスクロール方向が逆転し、判定が消失します。この振る舞いの互換性は保証されません。
BMSE は、拡張 BPM 変更の定義形式を、使用個数に応じて自動的に切り替えます (255 個以内なら [01-FF]
、256 個以上なら [01-ZZ]
)。これは、可能な限りアプリケーション間の互換性を保つための措置です。
拡張 BPM 変更のサポート状況について、詳細は別頁を参照してください。大雑把には以下の通り、拡張 BPM 変更回数が 253 回以内なら古い機種にも BMSE の仕組みで対応できます (非対応機種と bemaniaDX と BGAEncoder を除く)。
#BPM[01-99]
2 桁の 10 進数 (99 枠)[01-2R]
)#BPM[01-FF]
2 桁の 16 進数 (255 枠)#BPM[01-73]
限定 36 進数 (255 枠)[01-FF]
)#BPM[01-ZZ]
2 桁の 36 進数 (1295 枠)拡張 BPM 変更使用譜面を非対応の BMSC で開くと、拡張 BPM 変更オブジェクトがすべて消滅し、初期 BPM 定義が書き換わるのでご注意ください。
#000
先頭にダミーの拡張 BPM 変更 (たとえば値 130.01
) を置きます。#BPM01
にするため)。#BPM01 130.01
および #00008:01
) を削除します。拡張 BPM 変更回数を 8 回以内に抑えれば、
拡張 BPM 変更オブジェクトを 1296 個以上配置した状態で、保存するかビューワを呼び出そうとするとエラーが発生し、配置済み拡張 BPM 変更オブジェクトの値が 1
~ 1295
の連番に置き換わります。この状態で保存しないでください。
BMSE は、拡張 BPM 変更オブジェクト 1 個につき #BPMxx n
の定義番号枠を必ず 1 つ消費します。拡張 BPM 変更を 1296 回以上行う場合、テキストエディタや GDAC2 や iBMSC などで編集する必要があります。
言語ファイル内の ERROR_OVERFLOW_BPM
(1295個以上の拡張 BPM 変更を認識しました。\n拡張 BPM 変更は必ず1295個以内におさめてください。
) は使われないようです。
BPM 入力フォームからは ±65535
を超える値を入力できません。
編集や保存は一応可能です。たとえばこの譜面を BMSE で開いた結果:
BMS コード上の値 | BMSE 解釈値 | 説明 |
---|---|---|
9999999 |
9999999 |
手打ち経由なら読み込みは可能 |
10000000 |
1E+07 |
BPM・STOP の有効数字は 7 桁 |
10000001 |
1E+07 |
8 桁以降は丸め誤差が発生しうる |
10000100 |
1.00001E+07 |
指数表記: 1.00001 × 107 |
.12345671 |
0.1234567 |
丸め誤差: 8 桁目で五捨六入 |
0.000012345678 |
1.234568E-05 |
指数表記 (10-5 )、丸め誤差発生 |
9999999.1234567 |
9999999 |
丸め誤差: 8 桁目で五捨六入 |
123.456789 |
123.4568 |
丸め誤差: 8 桁目で五捨六入 |
このように、譜面を BMSE で開いた時点で丸め誤差が発生しうることにご注意ください。なお、拡張 BPM 変更や STOP の値に文字列などを定義した譜面を開くと、
BPM の有効数字や解釈範囲は、アプリケーションにより異なります。
BMSE が解釈しうる BPM 変更オブジェクトのうち、絶対値が最大になる値は ±3.402823E+38
です (単精度浮動小数点の最大)。これより大きい BPM 変更値を指定した譜面を開くと、
BMSE が解釈しうる BPM 変更オブジェクトのうち、絶対値が最小になる値は ±1.401298E-45
です (単精度浮動小数点の最小)。これより小さい値はアンダーフローして 0
とみなされ、入力がキャンセルされます。
実際は -2.802597E-45
などの値も入力・保存できるようですが、あくまで BMSE で扱えるというだけです。これらの値はたとえ uBMplay であっても再生できません。常識的な値を指定するようにしてください。
BPM 入力フォームの受け付け範囲の最大は ±1.79769313486231E+308
(倍精度浮動小数点の最大) です。ここまではエラーダイアログ “数が大きすぎます/小さすぎます” を表示して入力をキャンセルします。これより大きい絶対値を入力するとオーバーフローして強制終了します。このときバックアップは作成されますが、それを過信しないでください。
BPM 入力フォームの受け付け範囲の最小は ±4.94065645841247E-324
(倍精度浮動小数点の最小) と推測されます。±1.401298E-45
より微小な数は入力がキャンセルされるので、詳細は筆者には分かりません。
BPM 変更・STOP オブジェクトを他のレーンに移動すると、値は定義番号に変換されます (10 進数 → 36 進数)。1296
以上の値は ZZ
に、負の値は 01
に、小数値は丸められて整数になります。
逆に定義番号オブジェクトを BPM 変更・STOP レーンに移動すると、定義番号は値に変換されます (36 進数 → 10 進数)。
1296
以上の値・負の値・小数の値を他のレーンに移動した場合、これを BMSE 上で元の値に戻す方法はありません。“元に戻す/やり直し” は元の値を復元しません。単に 36 進数を 10 進数に再変換するだけです。
BPM 変更・STOP オブジェクトを他のレーンに移動させ、ドラッグを解除せずに元の位置に戻すと、変更フラグが立ちません。この場合もやはり、“元に戻す/やり直し” で元の値に戻すことはできません。
これらは内部的には別々の配置データチャンネルなので、同一のグリッド座標上に配置して保存すると、両方とも保存されてしまいます。
その結果、たとえば「#001
の 1 拍目で BPM を 120
にする指示」と「#001
の 1 拍目で BPM を 65535
にする指示」が同居するような譜面になります。どちらが解釈されるかはアプリケーション次第です。
LunaticRave2、65535
になるでしょう。
このような特殊な例を利用すれば、メタ情報を詐称してプレイヤーを惑わせるようなトリックも成立しますが、そのかわり譜面の互換性は失われるでしょう。
指定した時間だけ譜面スクロールを一時停止させる、非演奏の「スクロール制御オブジェクト」です (DDR 仕様のストップシーケンス)。
1
~ 65535
の範囲の 10 進数整数を指定できます。小数を入力すると整数に丸められます。停止時間の単位は 192 分音符を 1 とします。
この例なら、#002
の先頭で、192 分音符 × 96 個分 (= 4 分音符 × 2 個分) の経過時間、一時停止します。停止時点の BPM によって停止時間が決まります。
BPM | STOP | 停止時間 |
---|---|---|
60 |
48 |
1 秒 |
120 |
48 |
0.5 秒 |
240 |
48 |
0.25 秒 |
STOP 48
に相当します。BMSE 上では STOP オブジェクトを最大 1295 個まで配置できます。内部的には専用の定義を持ち (#STOPxx n
)、定義を使い回すことはできません。
正確に再生できるかどうかはアプリケーション次第ですが、極小値の BPM 変更と、極大値の STOP を組み合わせると、超長時間停止します。
同一タイミングに複数のオブジェクトが配置されているとき、
ただし「ふぃーりんぐぽみゅせかんど」では、
値が負数の場合、一部のアプリケーションは譜面スクロールをスキップします。値が -48
なら、
拡張 BPM 変更の注意事項とおおむね同じです。以下に要約します。
[FF/ZZ]
が自動的に切り替わる。1
~ 1295
の連番に化ける。1
~ 65535
の整数値以外は、STOP 入力フォームからは入力できない。-2147483648
~ 2147483647
なら STOP オブジェクトとして扱う。2147483520
くらいまでしか保存はできない。-2147483648
~ 0
の範囲までは入力を取り消し、65536
~ 2147483647
の範囲まではエラーを表示して入力を取り消す。DDR 仕様のストップシーケンスのサポート状況について、詳細は別頁を参照してください。大雑把には以下の通り、
#STOP[01-99]
2 桁の 10 進数 (99 枠)[01-2R]
)#STOP[01-FF]
2 桁の 16 進数 (255 枠)#STOP[01-73]
限定 36 進数 (255 枠)[01-FF]
)#STOP[01-ZZ]
2 桁の 36 進数 (1295 枠)「演奏すべきオブジェクトが判定ラインに達する 192 分音符 1 個分手前で、スクロールが 1 分間停止する譜面」を仮定します。すくなくとも DDR・LR2・ruv-it! では、最高判定を得るためには停止してからきっかり 1 分後にそれを演奏しなければなりません。しかし停止中のオブジェクトまで時間軸に沿って判定される機種は少なく、たいていの場合プレイヤーは停止中のオブジェクトをいつ演奏しても最高判定を獲得できてしまうでしょう。
このように「正しい演奏」の基準が機種によって大きく異なりうるので、ゲーム性について突き詰めた調整を行う譜面著者は、互換性をある程度あきらめざるをえないでしょう。
映像オブジェクトを配置します。#BMP
・#BGA
の定義リストからオブジェクトを選択して配置します。
BMS における伝統的な画像フォーマットは BMP です。詳細は別頁を参照してください。アプリケーションによっては PNG・
bpp | 色数 | 容量 |
---|---|---|
1 bpp | 2 色 (多くの場合、白黒) | 9 KiB |
4 bpp | 16 色 | 33 KiB |
8 bpp | 256 色 | 66 KiB |
24 bpp | 16777216 色 (True color) | 193 KiB |
BMP の形式は、
MPEG などの動画ファイルも #BMP
に定義でき、BGA レーンに配置できます。
#VIDEOFILE
)#MOVIE
)#BMP
)動画形式はユーザ環境やコーデック設定などに大きく依存します。詳細は「LR2での動画BGA再生を支援するページ」などを参照してください。サイズや形式は用途次第ですが、すくなくとも動画の音声は削除してください。音量ゼロという意味ではなく、音声トラックそのものを含めないよう分離します。
BMSE は画像の読み込みを Visual Basic の機能で行うため、BMSE 上でプレビューできる画像形式は BMP、
BMS における伝統的な映像ファイルのサイズは 256 pixel × 256 pixel 以下です。このサイズを超える画像を一部のアプリケーションは表示しません。オーバーサイズ画像を拡張命令などで利用できるソフトもあり、これによる映像サイズ変更演出を使用した譜面も存在します。
通常の BMS で用いられる映像全般を指す用語 “BGA” とは別に、座標を定義する拡張命令としての #BGA
が存在します。これは BGA レーンとは異なるものです (もっとも、#BGA
オブジェクトは BGA レーンにも配置できます)。多くのアプリケーションは #BGA
命令に対応していません。(対応表)
配置された映像オブジェクトの #BMP
定義番号にファイルが定義されていない場合、一般的な BMS アプリケーションは BGA 表示領域に「完全な黒」を表示します。つまり、黒 1 色の画像は空オブジェクトで代替できます。ただしこの振る舞いは BMS の仕様で明示されたものではなく、実際に一部のアプリケーションは未定義番号によって無関係な画像を表示してしまう場合などもあり、映像を必ずブラックアウトできるという保証はありません。万全を期すなら 1 pixel × 1 pixel の黒画像を明示的に割り当てることをお薦めします。
映像の縦横比を自動調整したり、サイズを拡大縮小するアプリケーションもあります。詳細は各ドキュメントなどを参照してください。
映像オブジェクトを配置します。#BMP
・#BGA
の定義リストからオブジェクトを選択して配置します。
レイヤー画像は BGA レーンの映像上に重なって表示されます。レイヤー画像に透過色が含まれる場合、その部分のみ BGA レーンの映像を透過します。
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 |
BMS の伝統的なレイヤー透過色は #000000
(完全な黒) です。アプリケーションにより、透過域が異なったり、独自拡張命令から任意の透過色を指定できたり、多層レイヤーが使えたり、
BGA レーンの場合と同様に、表示中の映像シーケンスを未定義オブジェクトによって解除 (ブラックアウト) できます。ただしもちろん、すべてのアプリケーションがそのように振る舞う保証はありません。
演奏ミス時に一定時間表示する映像オブジェクトを配置します。
POOR レーンは「ミス画像を途中変更するオブジェクト」です。#BMP00
】の「初期ミス画像」とは別物です。
#BMP00
が定義されている場合、#000
先頭から「POOR レーンにオブジェクトが現れるまで」の区間は、演奏ミス時に #BMP00
の画像が表示されます。
通常は BGA + LAYER レーンの映像が表示されます。演奏ミス時にのみ POOR レーンの映像 (もしくは #BMP00
の映像) が表示されます。一定時間が経過すると、再び BGA + LAYER レーンの映像が表示されます。
POOR レーンに 1 個でもオブジェクトを配置すると、その地点から譜面終了までの区間では #BMP00
を再表示することはできません。#BMP00
の画像を再利用したいなら、#BMP00
ではなく最初から #BMP01
以降に画像を定義し、それを POOR レーン #000
先頭に配置してください。
動画ファイルも POOR レーンに配置できますが、いまのところそれを再生できるソフトは一部ソフトの特定バージョンに限られるようです。
BGA レーンや LAYER レーンと同じ要領でオブジェクトを並べれば、ミス画像もアニメーションできます。
某 SigSig の「ミスすると転ぶキャラが表示される」式のレイヤーアニメを実現したい場合は、#POORBGA
(ナナシグルーヴ独自拡張命令) を利用できます。詳細はナナシグルーヴのヘルプを参照してください。
BGA レーンにも LAYER レーンにもオブジェクトが存在しないにもかかわらず #BMP00
や POOR レーンを使用すると、一部のアプリケーションではミス画像が正常に表示されません。
B01
~ B32
)非演奏の BGM オブジェクトを配置します。#WAV
の定義リストからオブジェクトを選択して配置します。
BMS エディタは、BMS コードにおける #xxx01
行の記述順を、そのまま「BGM レーンの行頭側からの並び順」として解釈します。
BMSE で開いたときに BGM オブジェクトが整然と並んでいない譜面は、
Editor | BGM | 説明 |
---|---|---|
BMSC | 28 | BGM 29 行目以降は捨てる |
GDAC2 | 可変 | BGM がレーンスクリプト設定行数を超えると強制終了 |
beditor | ? | ヘルプ筆者が Mac OS を確認できないため不明 |
BMSE | 32 | BGM 33 行目以降は捨てる |
iBMSC | 1~999 | BGM は全行保持し、範囲外の行は非表示にする |
BMSE は 33 行目以降の BGM の内容を読み込まないため、譜面を開いた時点で内容が変更される可能性があります。複数エディタの使い分けに備えて、無理のない範囲で BGM を左側に寄せるスタイルをお薦めします。
一部の環境では、同時発音数が多いと音声を再生しきれない場合があるそうです。任意の非演奏パート群を 1 本の WAV にまとめる、特定パートの配置全体を 192 分ずらす、などの対処法があります。
(この方法は時代遅れになったはずでしたが、
一部の環境では、音声ファイルの非再生状態が続くとサウンドデバイスが不用意に解放されてしまい、滑らかにプレイできない場合があるそうです。回避策として「数秒間の完全無音波形」を #000
先頭から譜面末尾まで 4 分リズムで配置している例が、いくつか存在します。
同時発音数 1000 以上の譜面や、低スペックのモバイル環境などの状況もありうるので、参考用に記しておきます。
プレイヤーが演奏するオブジェクトを配置します。#WAV
の定義リストからオブジェクトを選択して配置します。
プレイモードによってレーン構成が変動します。テーマによってレーン情報、レーン背景、オブジェクト色などが変動します。
可視オブジェクト | 不可視オブジェクト | ロングノート | |
---|---|---|---|
外観 | 通常色 | 暗い色 | 暗緑色 |
左クリック | Ctrl + 左クリック | Shift + 左クリック | |
役割 | 通常の演奏ノート | キーアサイン変更 | ロングノート専用 |
channel | [11-29] |
[31-49] |
[51-69] |
Ctrl と Shift を同時に押したときは、Ctrl が優先されます。
演奏キー押下時に再生する音声を変更するだけのオブジェクトです。プレイ時には画面に表示されず、判定もされず、点数にも計上されません。
1 つの可視オブジェクトを 2 つの不可視オブジェクトで挟むことによって、プレイヤーが演奏のタイミングを外した際に特別なリアクションを返す、などの応用例もあります。
プレイアブルな BMS アプリケーションはほぼすべて不可視オブジェクトをサポートしています (ただし charatbeatHDX は非対応)。
ロングノート (LN) は、長さを持つ演奏オブジェクトです。鍵盤デバイスなら演奏キー押下状態を、スクラッチデバイスなら一方向に回し続ける状態を、一定時間維持しなければなりません。さらに実装によっては、維持状態を正しいタイミングで解除しなければなりません。
BMSE 上で、同一のレーン上において LN オブジェクトで挟まれた区間は、プレイ時には 1 本のロングノートとなります。
BMS シーンでは長らく「終端を判定しないロングノート」が主流でした。仕様提案者がそのように実装していたことと、事実上の標準となったいくつかの BMS ソフトウェアがそれを踏襲していたことが理由です。終端を判定する機種も存在しましたが、あまり知られませんでした。
beatmania IIDX が2009年に「終端を判定するチャージノート」を実装して以来、じわじわと状況が変わりました。結論からいえば、
チャンネル #xxx[51-69]
のオブジェクトを BMSE 以外の実装がどのように扱うのであれ、このヘルプではそれをロングノート (LN) と表記します。
LN 1 本につき、開始位置と終了位置の一対が必要です。終了位置が見つからない LN の解釈はアプリケーションによって異なります。
演奏時、
通常、
このように仕様が混在しているので、互換性を保つために、通常は 1 本の LN の開始位置と終了位置には同じ定義番号の LN オブジェクトを配置してください。
ロングノート専用オブジェクトを演奏領域の外に移動しないでください。
ロングノート専用オブジェクトと #LNOBJ XX
を併用しないで下さい。ロングノートをサポートするアプリケーションのほぼすべてにおいて解釈の違いや不具合が発生し、譜面の互換性が著しく低下します。
O2mania や古いアプリケーションでロングノートを使用する場合、拡張命令タブ内に “#LNTYPE 1
” の記述を追加する必要があります。本来は互換性の観点から常に記述するのが望ましいのですが、一部のソフトウェアではこの宣言の有無によって譜面の構文解析結果が変わってしまう場合があります。#LNTYPE 1
” を削除するほうが無難です。
BMSE がサポートするロングノート専用オブジェクトは、#xxx51
-69
に割り当てられています。これは #LNOBJ とは異なる拡張命令なのでご注意ください。
#LNTYPE 1
必須), charatbeatHDXcharatbeatHDX
#OPTION charatbeatHDX:LONGMODE 1
ヘルチャージノートとは、
#OPTION charatbeatHDX:LONGMODE 0
この拡張命令が存在しない場合、ユーザ環境で設定された値が既定値として適用されます。
現在は BMSE より新しい BMS エディタもいくつか登場しています。特にロングノートは視覚的に編集しやすくなっています。
使い方や詳細は各ドキュメントなどを参照してください。
フリーゾーンとは、スクラッチの自由演奏区間です。
BMSE にはフリーゾーン用のレーンはありません。フリーゾーンオブジェクトを編集したい場合、BMSC や GDAC2 を使用するか、ダミーオブジェクト配置後にテキストエディタから置換するなどしてください。
#xxx17
、27
、37
、47
、57
、67
のサポート状況前述のチャンネル #xxx[1-6]7
を使用する譜面を BMSE で開くと、読み込み時に該当オブジェクトがすべて削除されます。これを避ける場合、
拡張命令タブ内に、ダミーの #RANDOM
分岐を記述する方法もあります。
#RANDOM 1
#IF 1
// ここから退避内容
#00117:01010101
// この区間内の記述は消されない
// ここまで退避内容
#ENDIF
#ENDRANDOM
地雷とは、触れるとグルーヴゲージが減少するオブジェクトです。#WAV00
に爆発音をひとつだけ定義することができます。近年のトレンドは、ストップシーケンスと地雷や小節線などを組み合わせて譜面をアニメーションさせる “BGA のような譜面” です。
BMSE には地雷用のレーンはありません。地雷を編集したい場合、GDAC2 を利用するか、ダミーオブジェクト配置後にテキストエディタや不可視地雷コンバータなどから置換してください。
LunaticRave2 や他いくつかの実装の地雷ダメージ量は、必ずしもナナシグルーヴが策定した地雷仕様の通りではなく、独自のバランス調整が適用されており、またゲームモードによっても変化するようです。
すくなくともナナシグルーヴと LunaticRave2 (ノーマルゲージ) において、地雷番号 ZZ
は「触れると爆発して即死するオブジェクト」です。触れた時点で爆発音とともにステージが中断され、リザルト画面に移行します。仕様は「即死」の振る舞いを規定していないので、実装によっては単にゲージが 0%
になるだけの場合もあるし、爆発音が鳴らずにリザルト画面に移る場合もあります。
いくつかの実装には既定の爆発音が用意されていません。したがって #WAV00
に音声ファイルが定義されていない限り、それらのソフトウェア上でのプレイでは地雷に触れても音が鳴りません。
ある演奏レーンに地雷以外のオブジェクトが存在しない場合、一部の実装では指定位置に地雷が出現しません。同様の不具合はロングノートでも発生する場合があります。適当にテストプレイして配置を調整してください。
地雷を使用する譜面を BMSE で開くと、読み込み時に爆発音スロット #WAV00
とダメージ用チャンネル #xxxD1
-E9
がすべて削除されます。該当行を他のテキストなどに退避して対処してください。拡張命令タブ内にダミーの #RANDOM
分岐を記述する方法も利用できますが、#WAV00
だけはこの方法でも削除されてしまうのでご注意ください。
#RANDOM 1
#IF 1
// ここから退避内容
#WAV00 explode.wav
#001D1:14141414
#001E5:0014001400140014
// この区間内の記述は消されない (but #WAV00 is gone)
// ここまで退避内容
#ENDIF
#ENDRANDOM
地雷チャンネル文だけを抜き出したい場合は、正規表現を検索条件に指定できるテキストエディタを使うと楽です。
^\s*#\d{3}[DEde][1-9]:[0-9A-Za-z]+$
^\s*#\d{3}[^DEde][1-9]:[0-9A-Za-z]+$
オブジェクトを重ねないで下さい。
同一のグリッド座標上に可視オブジェクト同士を重ねて 書き込むと、新しく書き込んだ可視オブジェクトのみが残り、古い可視オブジェクトは破棄されます。不可視オブジェクト同士・ロングノート専用オブジェクト同士を重ねて書き込む場合も、同様に古い側が破棄されます。
配置済みオブジェクトと同一のグリッド座標上に オブジェクトを移動するか貼り付けた場合、その譜面の編集中に限りオブジェクトが一時的に重なったままになります。トランプのカードを積んだり崩したりする要領です。プレビュー時や保存時は、
オブジェクトが積まれた山に対して、単体選択で “最前面にあるオブジェクト” のみを選択します。範囲選択で “山自体” を選択します。
オブジェクトが積まれた山に対して、 削除モードや右クリック削除や【範囲選択 → Delete キー】で、最前面のオブジェクトのみを削除します。
オブジェクトが積まれた山に対して、
これらの挙動は把握しづらく、気付かずに編集を誤るリスクが増大するので、一時的であってもオブジェクトを重ねることはお薦めできません。
可視・不可視・ロングノート専用オブジェクトはそれぞれ配置データチャンネルが異なるため、同一のグリッド座標上に重ねて書込・編集・保存できます。しかし、オブジェクトを重ねないでください。
配置データ文 | チャンネルの意味 |
---|---|
#00111:01 |
1P 側可視・1 鍵盤 |
#00131:02 |
1P 側不可視・1 鍵盤 |
#00151:03030000 |
1P 側 LN・1 鍵盤 |
ロングノート登場当初は、
しかしロングノート対応アプリケーションが事実上の標準となって長い現在、ロングノート非対応ソフトは既に使われなくなり、オブジェクトを重ねることによる利点よりも、重なりによって譜面の解釈がぶれる欠点のほうが目立つようになってきています。
たとえば前述の表で示した譜面は、通常は 1 本のロングノートですが、一部の機種でスーパーランダムオプションを適用すると可視オブジェクトが増えます。同様に、演奏ノート総数が不正確になったり、それに伴いスコア計算が狂うなど、アプリケーション次第で多彩な結果になります。
Angolmois は、
#000
の 1 拍目に演奏オブジェクトを配置すると、再生ソフトの一部はこれを譜面ロード直後に表示するため、正確に演奏できません。
これを考慮して、ほとんどの譜面は #001
(もしくは #001
のアウフタクト) から演奏オブジェクトが配置されています。
非演奏オブジェクトは #000
先頭に配置しても問題ありませんが、特別な意図がない限り演奏オブジェクトは #000
先頭には置かないでください。
#000
と #999
の両方に内容があると、
BMS イベントなどで「LunaticRave2 での正常動作」が出場条件に課せられる場合は注意を払う必要があります。
LR2 に限らず、小節数に関する例外は少なくありません。
#511
までしか解釈できません。#998
までしか解釈できません。#399
までしか解釈できません。#249
までしか解釈できません。#000
にしか内容が無い譜面を開くと強制終了します。#000
にしか内容が無い譜面をスクロールできません。プレイモードは【設定パネル “基本” タブ】から変更できます。BMS, PMS, oct/fp の各プレイモード外観は【メニューバー → 設定 → Select Theme】から手動で変更する必要があります。
演奏領域の表示形式は【設定パネル “環境” タブ】から変更できます。
作成する譜面のタイプに合わせて、表示環境を変更すると便利です。プレイ時の見映えに編集環境を近づけることで、運指などをイメージしやすくなります。
#000
へ移動)垂直スクロールバー末尾へ移動
(つまり、譜面全長 + 最大 16 小節の余白を加えた小節へ移動)
VScroll 設定値 × 1 倍量、上下にスクロール
(初期値 96
× 1 は、
VScroll 設定値 × 8 倍量、上下にスクロール
(初期値 96
× 8 は、
上下にライブスクロール
(垂直方向の移動量はスクロール範囲長などに依存)
コンテキストメニューを開く
“右クリックでオブジェを削除する” が有効のとき、オブジェクト右クリック時はオブジェクト削除を優先する
(ただし 書込モード時はコンテキストメニューを開く)
右クリックメニューを開いた位置に、オブジェクトが無い 4/4 拍子の小節 (空小節) を追加する
#999
の内容は押し出され消える。#999
で小節挿入を行うと、#998
に空小節が挿入され、#999
の内容は押し出され消える。右クリックメニューを開いた位置の小節を削除
#999
に空小節が補填される。#999
で小節削除を行うと、#000
の内容が削除され、#001
~#999
が新たな #000
~#998
となる。クリップボードにあるオブジェクトを、任意の小節に転写
(貼り付け位置についてはメニューバー【編集】を参照)
Help
キーに指定したファイルを実行選択中のビューワで現在位置から再生
再生位置についてはメニューバー【外部ビューワ】を参照
オブジェクト単体を選択状態にする
さらに “オブジェ単体選択時にプレビューする” が有効なら:
Ctrl 押下中、選択枠内に収めたオブジェクトの選択状態を反転
(つまり、追加選択、もしくは選択状態の解除)
Ctrl 押下中、単体選択したオブジェクトを追加選択
[Ctrl + 左クリック] で追加選択した水色オブジェは、[Ctrl + 範囲選択] で選択状態を反転することはできない ……いつのまにかできるようになっていたが理由が不明
オブジェクトをコピーして移動 (== 複写)
オブジェクトを Y 軸固定移動 (== 縦にずれない)
Shift 押下中、オブジェクトは水平方向にのみ移動する
→
Y 軸固定移動中、方向キー上下、ホイール回転、
(方向キー左右なら、単にオブジェクトを左右に移動)
定義番号スポイト
Shift 押下中、右クリックしたオブジェクトの番号に、定義リストカーソルが移動する
可視オブジェクト書込
定義リストから選択した番号を、マウスポインタ直下のグリッド座標に書き込む