Bms:Spec

出典: wiki.bms.ms

BMS/BME/BML仕様書。多分間違ってるところあります。
編集大歓迎!このページへのリンクはご自由に!
拡張定義の対応し惜しみはやめましょう~(^^)

目次

[編集] 参考URL

[編集] 参考ファイル

[編集] HEADER

ヘッダに記述する命令です。
BMSのどこに書いても構いません。


[編集] #PLAYER

プレイヤ数を定義します。一度だけ記述します。
名無しBMSプレーヤは#PLAYERを無視します。

#PLAYER 1 // 1P, Single Play
#PLAYER 2 // 1P+2P, Couple
#PLAYER 3 // 1P+2P for 1P, Double Play
#PLAYER 4 // 1P VS 2P, Battle

省略時 #PLAYER 1


[編集] #GENRE

曲のジャンルを定義します。一度だけ記述します。

ex.
#GENRE TECHNO

省略時空白

[編集] #TITLE

曲のタイトルを定義します。一度だけ記述します。

ex.
#TITLE ruins

省略不可(?)

[編集] #SUBTITLE (ナナシグルーヴ拡張)

曲のサブタイトルを定義します。一度だけ記述します。

#SUBTITLE ~そして伝説へ~

省略可能。

[編集] 対応するプレイヤ

[編集] #ARTIST

作曲者を定義します。一度だけ記述します。

ex.
#ARTIST Yamajet

省略不可(?)

[編集] #SUBARTIST (Lunatic Rave 拡張)

#ARTISTとは別に表示されます。BGA作者や差分製作者の表示にお使い下さい。

#SUBARTIST BGA: boku ha bga meijin
#SUBARTIST Object Sequence: kusofumen loverz

[編集] #MAKER (bemaniaDX 拡張)

作曲者とは別にBMS製作者を定義します。一度だけ記述します。
bemaniaDX 拡張定義です。ゲーム中には表示されません。

ex.
#MAKER foonplayer(s)

省略可能(?)

[編集] #BPM

曲のテンポ(beat per minute)を定義します。一度だけ記述します。

ex.
#BPM 150

省略時#BPM 130
途中変更時01-FF(255)の間のみ変更可能。途中変更時小数は使用不可。

ナナシグルーヴのみ省略時150。

  • 関連ch

ch03

[編集] #BPM[01-FF/FZ/ZZ] (bemaniaDX 拡張)

曲のテンポ(beat per minute)を定義します。01-FF(/FZ?/ZZ?)まで定義できます。
主に小数BPM,over255BPMでの途中BPM変更時に使用します。

ex.
#BPM01 155.5
#BPM02 300

未使用時省略。

  • 関連ch

ch08
chA1-A4

  • サポートするプレイヤ

BM98DE, rhythm-it, Delight Delight Reduplication, unofficial nazobmplay, uBMplay, In_BM, ナナシグルーヴ, MixWaver, MixWaver 2, ふぃーりんぐぽみゅ, BMEV, Lunatic Rave

[編集] #EXBPM (ナナシグルーヴ拡張)

BMSCのバグ対策のための定義。
拡張というよりはエイリアスであり、仕様は #BPMxx yyy と同じ。
省略可能。

(名無しBMSプレーヤ仕様書より)

[編集] #BASEBPM (Lunatic Rave 拡張)

この曲の基準となるBPMです。譜面落下速度は、この値もしくは曲中の最高bpmを元に 決定されます。一瞬だけ急加速するような曲については、#BASEBPMで普段のbpmを設定 する必要があります。

[編集] #PLAYLEVEL

難易度(★)を定義します。一度だけ記述します。

#PLAYLEVEL 7
#PLAYLEVEL 0 // プレイヤによっては ? と表示される

省略時 #PLAYLEVEL 3

ナナシグルーヴでは"伊藤"等の文字列にも対応(?)している。

[編集] #RANK

判定の難易度を定義します。一度だけ記述します。

#RANK 0 // Very Hard
#RANK 1 // Hard
#RANK 2 // Normal
#RANK 3 // Easy
#RANK 4 // Very Easy (nanasi Extended)

省略時 #RANK 3

[編集] #DIFFICULTY (ナナシグルーヴ拡張)

#DIFFICULTY [x]

BMSの難易度ランクを指定する。 これはBMS選択画面でのフィルタ表示に使用される。

  • x ... BMSの難易度ランクを指定する。
    • 1 ... 低難易度のBMS(EASY/BEGINNER/LIGHT等)
    • 2 ... 標準難易度のBMS(NORMAL/STANDARD等)
    • 3 ... 高難易度のBMS(HARD/HYPER等)
    • 4 ... かなり高難易度のBMS(EX/ANOTHER等)
    • 5 ... いわゆる糞譜面

(ナナシグルーヴ マニュアルより抜粋)

// 糞譜面でフィルタリング出来るようにする
#DIFFICULTY 5

[編集] 対応するプレイヤ

[編集] #DEFEXRANK (ナナシグルーヴ拡張)

初期設定の判定難易度を#RANKより柔軟に指定できる。
yyy には #RANK=NORMAL からのパーセンテージを指定する。
省略可能。初期値は #RANK のほうで適用される。
#RANK と競合した場合は後に定義されたほうが適用対象となる

・参考
VERYHARD = 48.0
HARD = 64.0
EASY = 120.0
VERYEASY = 160.0

(名無しBMSプレーヤ仕様書より)

[編集] 対応するプレイヤ

[編集] #EXRANK (ナナシグルーヴ拡張)

#EXRANKxx yyy


xx : 01~ZZ
yyy : #RANK=NORMAL からのパーセンテージ
プレイ途中で判定難度を変更する場合に指定しておく。
数値は #DEFEXRANK と同じ。
変更チャンネルは A0。省略可能。

(名無しBMSプレーヤ仕様書より)

[編集] #VOLWAV

元の音量を100としたときの全体の音量を定義します。一度だけ記述します

ex.
#VOLWAV 100 // 元の音量
#VOLWAV 80  // 元の80%の音量
#VOLWAV 120 // 元の120%の音量

省略時 #VOLWAV 100


[編集] #TOTAL

全て最優良判定時のゲージ増加量を定義します。一度だけ記述します。

ex.
#TOTAL 100 // 全て最優良判定時ゲージ増加量100% 
#TOTAL 300 // 全て最優良判定時ゲージ増加量300%

省略非推薦。省略時の値はプレイヤによって異なります。

[編集] #LNTYPE 1 (rhythm-it 拡張)

定義するとそのBMSはRDMタイプ1形式のロングノートを使用した譜面として認識されます。
省略可能。省略時、ch5x、6xの指定は全てRDMタイプ1形式のロングノートと認識されます。

RDMタイプ1形式のロングノートは00以外のノートが出現する位置から始まり、次に00以外のノートが出現する時点で切れます。

rhythm-it 1.7 からは省略可能。

  • 関連ch

ch51-59
ch61-69

[編集] #LNTYPE 2 (rhythm-it 拡張)

定義するとそのBMSはMGQ形式のロングノートを使用した譜面として認識されます。
未使用時省略。省略時、ch5x、6xの指定は全てRDMタイプ1形式のロングノートと認識されます。

MGQ形式のロングノートは00以外が連続している場合につながり、00が出現した時点で切れます。
前の小節の最後が00でなく、小節の最初が00でない場合には、小節をまたがってつながります。

  • 関連ch

ch51-59
ch61-69

[編集] #LNOBJ (rhythm-it 拡張)

定義するとそのBMSはRDMタイプ2形式のロングノートを使用した譜面として認識されます。
また、ロングノートの終端として使用するオブジェを#WAVで指定した番号で指定します。

#LNOBJの命令に指定されたノートが発見された場合には、その前ノートから指定されたノートまでロングノートで処理されます。
また、#LNOBJに指定されたオブジェクトのWAVは、通過時にはBGMとして再生されます。

未対応のBMSプレーヤで意図しないノート構成になる危険を避けるため、ファイルの拡張子を.bmlに変更することが推奨されています。

ex.
#LNOBJ AA // オブジェAAをロングノートの終端に使用する。

未使用時省略。

  • 関連ch

ch11-29
ch21-29

[編集] #OCT/FP (ナナシグルーヴ拡張) oct/fp by idee

定義するとそのBMSはoctavemode譜面として認識される。
パラメータの指定は特に無し。定義場所の制限も無し。

(名無しBMSプレーヤ仕様書より)

[編集] #OPTION (ナナシグルーヴ拡張)

#OPTION optionID

optionID : プレイオプション識別のための文字列

これが定義されたBMSプレイ時は、optionIDと対応するオプションが強制付与される
他本体の対応も視野に入れ、本体固有オプションにはIDに本体識別子(っぽいもの)を入れることを推奨
本体間でも共通のオプションは(HISPEEDやRANDOMなど)は本体識別子無しのものを用意する(まだ未実装)

…本体識別子などとかっこつけてますが、結局のところただの文字列です

<名無し固有optionID>

▽HI-SPEED
774:HSP-0.2
774:HSP-0.4
774:HSP-0.6
774:HSP-0.8
774:HSP-1.0
774:HSP-1.5
774:HSP-2.0
774:HSP-2.5
774:HSP-3.0
774:HSP-3.5
774:HSP-4.0
774:HSP-4.5
774:HSP-5.0
774:HSP-5.5
774:HSP-6.0
774:HSP-6.5
774:HSP-7.0
774:HSP-7.5
774:HSP-8.0
774:HSP-8.5
774:HSP-9.0
774:HSP-9.5
774:HSP-10.0
774:HSP-12.0
774:HSP-15.0
774:HSP-20.0
774:HSP-100.0
774:HSP-RANDOM
774:HSP-LINE
774:HSP-CHANGE
774:HSP-NAZO
774:HSP-MANUAL
774:HSP-LINENAZO
774:HSP-COMBO

▽HIDDEN
774:HID-NORMAL
774:HID-HIDDEN1
774:HID-HIDDEN2
774:HID-SUDDEN1
774:HID-SUDDEN2
774:HID-HIDSUD1
774:HID-HIDSUD2
774:HID-STEALTH

▽RANDOM
774:RND-NORMAL
774:RND-MIRROR
774:RND-RANDOM

▽CRASY
774:CRA-NORMAL
774:CRA-LINEMOVE
774:CRA-HARD1
774:CRA-HARD2
774:CRA-RHS1
774:CRA-RHS2
774:CRA-RHS3
774:CRA-ULTHARD
774:CRA-2JUDGE
774:CRA-HYPER
774:CRA-XWAVE1
774:CRA-XWAVE2
774:CRA-YWAVE1
774:CRA-YWAVE2

▽G-LEVEL
774:GLV-VERYEASY
774:GLV-EASY
774:GLV-NORMAL
774:GLV-HARD
774:GLV-VERYHARD
774:GLV-TOTAL100
774:GLV-ABYSS
774:GLV-HELL

▽G-TYPE
774:GTP-EASY
774:GTP-NORMAL
774:GTP-FULL
774:GTP-EXTRA
774:GTP-COOL

(名無しBMSプレーヤ仕様書より)

[編集] #CHANGEOPTION (ナナシグルーヴ拡張)

#CHANGEOPTION[00-ZZ] [optionID]

プレイ中に動的にオプションを変更する命令。optionID は #OPTION 命令を参照。

// 10 小節目から強制 Hidden, 13 小節 2 拍目から High-Speed x0.2 へ変更
#CHANGEOPTION01 774:HID-HIDDEN1
#CHANGEOPTION02 774:HSP-0.2
#010A6:01
#013A6:0002

[編集] 対応するプレイヤ

[編集] #TEXT[01-ZZ] (ふぃーりんぐぽみゅ拡張)

プレイ中に表示される文章を定義します。

ex.
#TEXT00 "MISS"
//00にはPoor時に表示される文章を定義します。(名無しBMSプレーヤ(仮)独自拡張)
#TEXT01 "asdf-"

省略可能。ただし省略時文章は表示されません。

  • 関連ch

ch99

  • サポートするプレイヤ

nanasi, Pomu


[編集] #COMMENT (ふぃーりんぐぽみゅ拡張)

選曲画面で表示されるコメントを定義します。

ex.
#COMMENT "asdf sounds like this?"

省略可能。ただし省略時コメントは表示されません。

  • サポートするプレイヤ

nanasi, Pomu

[編集] #WAV[01-FF]

音声ファイル(WAV,MP3)を定義します。01-FFまでの255定義が可能です。

ex.
#WAV01 01.wav
#WAV02 02.wav
#WAV03 02.wav

// もし01.wavが見つからない場合は01.mp3を読み込みに行きます。
// DDRは01.mp3も見つからない場合01.oggを読み込みに行きます。
// それでも見つからない場合は未定義扱いとなります。
// #WAV00 は地雷オブジェ判定時の爆発音に使用されます。 (ナナシグルーヴ拡張)

省略可能。ただし省略時音声は鳴りません。
1ファイルを複数定義可能。
#WAVXXの同時発音数は1です。1ファイルを同時に発音する場合はネストします。(#WAV02,#WAV03)

  • 関連ch

ch01
ch10-19
ch21-29
ch31-39
ch41-49
ch51-59
ch61-69

[編集] #WAV[01-FZ] (BM98DE 拡張)

#WAV[00-FF]の拡張版。01-FZまで575定義が可能です。
それ以外は#WAV[00-FF]と同様です。

  • サポートするプレイヤ

BM98DE, RDM, Delight, uonazobmplay, uBMplay, In_BM, nanasi, MW, MW][, Pomu, BMEV, Lunatic Rave

[編集] #WAV[01-ZZ] (bemaniaDX 拡張)

#WAV[00-FF]の拡張版。01-ZZまで1295定義が可能です。
それ以外は#WAV[00-FF],#WAV[00-FZ]と同様です。

  • サポートするプレイヤ

uBMplay, In_BM, nanasi, Pomu, Lunatic Rave

[編集] #WAVCMD (MacBeat 拡張)

#WAVに定義したファイルに音程・音量・発音時間を定義します。01-FF(FZ?)まで定義可能。
この定義を使用したBMS/BMEファイルは拡張子をMBMへ変更すること。

#WAVCMD [コマンドID] [音番号] [価]
// ID00 音程 -価は60を基準として指定
// ID01 音量 -価は%で指定
// ID02 発音時間 -価はミリ秒*0.5を基準として指定
// 音番号は#WAVと対応します

ex.
#WAV01 01.wav
#WAVCMD 01 01 50 // WAV01を元の音量の50%として定義
  • サポートするプレイヤ

MacBeat

  • 関連ch

ch01
ch10-19
ch21-29
ch31-39
ch41-49
ch51-59
ch61-69


[編集] #EXWAV (ナナシグルーヴ拡張)

#EXWAVxx pvf pan volume frequency filename

xx :
定義番号。#WAVと共有で、01~ZZ まで定義可能

pvf :
どのパラメータを操作するかのフラグ
p → PAN
v → VOLUME
f → FREQUENCY
を表す。
順不同で大文字も可。
尚、一つも定義されない場合の動作は保証しない

pan :
volume :
frequency :
フラグで指定したものを指定した順に、
半角スペース等で区切って指定する

PAN は -10000~10000 の範囲で、-10000 が LEFTMAX となる

VOLUME は音量というよりは減衰率という表現が妥当
つまり、音量を上げることはできない
範囲は -10000~0 で、0 が原音、-10000 は事実上無音。

FREQUENCY は周波数で、結果的にピッチを操作することになる
範囲は 100~100000 で、単位は Hz

filename :
適用する音声ファイル名。制限260byte
#WAVと同様、相対パスやmaterialsの使用も可能

※PAN と VOLUME に関しては、全てのwavファイルにおいて初期値は 0 となっている

(名無しBMSプレーヤ仕様書より)


[編集] #CDDA (Delight Delight Reduplication 拡張)

CDDAをBGMとして使用することができます。

#CDDA 5 // 挿入されている音楽CDのトラック5をBGMとして使用。


[編集] #MIDIFILE

MIDIファイルをBGMとして使用することができます。
しかしハードウェア(音源)依存が高いためと、ソフトMIDIシンセによる発音遅延のため非推薦命令となっています。

#MIDIFILE bgm.mid



[編集] #BMPnn

画像ファイル(256x256BMP)を定義します。

ex.
#BMP00 miss.bmp // 00にはPoor時に表示される画像を定義します。
#BMP01 01.bmp
#BMP02 02.bmp
#BMP03 03.bmp

// 動画ファイルを指定することもできます。 (Lunatic Rave 拡張)

BGA (Background Anime)を使用しないなら定義の必要はありません。
#BMP00はch06でPoor画像を変更すると無効になります。

(Lunatic Rave 拡張の動画#BMPについて)
#BMPでは、たいていの画像ファイルの他、動画ファイルを指定することが可能です。
チャンネル04に配置すると、他の画像に置き換わるまで、ループ再生を続けます。
レイヤーとプアには使用できません。

[編集] #BMP[00-FF]

00-FFまでの256定義が可能です。

[編集] #BMP[00-FZ] (BM98DE 拡張)

#BMP[00-FF]の拡張版。00-FZまで576定義が可能です。

  • サポートするプレイヤ
    • BM98DE
    • RDM
    • Delight
    • uonazobmplay
    • uBMplay
    • In_BM
    • nanasi
    • MW
    • MW][
    • Pomu
    • BMEV
    • Lunatic Rave

[編集] #BMP[00-ZZ] (bemaniaDX 拡張)

#BMP[00-FZ]の拡張版。00-ZZまで1296定義が可能です。

  • サポートするプレイヤ
    • uBMplay
    • In_BM
    • nanasi
    • Pomu
    • Lunatic Rave

[編集] #EXBMP (ナナシグルーヴ拡張)

#EXBMPxx a,r,g,b filename

xx :
定義番号。#BMPと共有で、00~ZZ まで定義可能

a,r,g,b :
α赤緑青。各数値は 0~255 の範囲

filename :
画像ファイル名。制限260byte

透過色を指定して画像を登録する。
#BMPと同じく、ある程度の近似色も透過する
省略可能定義。

(名無しBMSプレーヤ仕様書より)


[編集] #BGA (BM98DE 拡張)

拡張BGA領域を定義します。

#BGAn1 n2 x1 y1 x2 y2 dx dy
// n1 : 01-ZZまで36進数の数値
// n2 : #BMPの画像番号(10進数に変換しないといけないのもある)
// x1 : 元画像の左上のx座標
// y1 : 上記のy座標
// x2 : 元画像の右下のx座標
// y2 : 上記のy座標
// dx : 指定した画像を表示する場所のx座標
// dy : 上記のy座標
// x1, y1, x2, y2, dx, dyの値が0未満の場合は0として処理されます

ex.
#BMP01 640x480.bmp
#BGA01 01 178 99 434 355 0 0
#BGA02 01 179 98 435 354 0 0
#BGA03 01 179 97 435 353 0 0
#BGA04 01 180 96 436 352 0 0
#BGA05 01 181 95 437 351 0 0

拡張BGA領域を使用しないのなら記述する必要はありません。

  • サポートするプレイヤ

(n2が10進数)BM98DE, Delight
(n2が#BMPの番号と同じ)nanasi, RDM, In_BM(n2が3桁あったら10進数)
(?)uBMplay, bemaniaDX

  • 関連ch

ch04
ch07

[編集] #@BGA (ナナシグルーヴ拡張)

#@BGAaa bb sx sy w h dx dy

aa : 定義番号(BGA系と共用)
bb : 参照No.
sx : 元画像の左上x座標
sy : 元画像の左上y座標
w : 使用する部分の幅
h : 使用する部分の高さ
dx : 表示先x座標(BGA内での相対座標)
dy : 表示先y座標(BGA内での相対座標)

一部の指定数値を#BGAから変更したもの。
内部での扱いは#BGAと同様。

(名無しBMSプレーヤ仕様書より)



[編集] #BACKBMP (Delight Delight Reduplication 拡張)

DDRモードにて背景に使用する640x480のBMPファイルを指定します。

#BACKBMP back.bmp


[編集] #POORBGA (ナナシグルーヴ拡張)

#POORBGA x

x : POOR画像の表示方式
0 既存の方式(通常BGA排他)
1 レイヤー式表示(BGA最上位にレイヤーとして表示)
2 非表示(仮に画像やパターンが定義されていても表示処理を行わない)
省略の場合は 0 が設定される。

(名無しBMSプレーヤ仕様書より)


[編集] #SWBGA (ナナシグルーヴ拡張)

#SWBGAxx fr:time:line:loop:a,r,g,b pattern

xx :
定義番号。01~ZZ まで定義可能

fr :
アニメーション1フレームあたりの所要時間(ms)
秒間60フレームであれば 1000/60≒17 を指定する

time : アニメーションの総表示時間を指定する(ms)
0 を指定すると、規定ラインが押されている間表示し続ける

line :
適用ラインのchを指定する。11~19,21~29 の範囲

loop :
アニメーションが終了して、表示時間が余っている場合の処理
0 は最終フレームを保持、1 は巻き戻す

a,r,g,b :
α赤緑青。各数値は 0~255 の範囲

pattern :
オブジェ配置の要領でパターンを記述。01020304 のように記述
No. は #BMP などで指定したものを使用する
BMSの再生処理とは切り離されているため、分解能などは存在しない

配置 ch は A5。

(名無しBMSプレーヤ仕様書より)


[編集] #BANNER (ナナシグルーヴ拡張)

#BANNER filename

filename :
曲セレクト画面等で表示できる300*80の画像を指定する。
BMSファイルカレントからの相対パス指定(下位パスのみ)が可能。
materials 指定( <path>filename )可能。
制限は260byte
省略可能。その場合、banner.bmpを検索し適用する

(名無しBMSプレーヤ仕様書より)


[編集] #ARGB (ナナシグルーヴ拡張)

#ARGBxx a,r,g,b

xx :
定義番号。01~ZZ まで定義可能

a,r,g,b :
α赤緑青。各数値は 0~255 の範囲

BGA(chA1) BGAレイヤー(chA2) BGAレイヤー2(chA3) POOR画像(chA4)の、
透明度も含めた色の変化を定義する。
ch0B~ch0Eの拡張。

(名無しBMSプレーヤ仕様書より)


[編集] #STAGEFILE

ファイル読み込み時に表示する画像ファイル(640x480BMP)を定義します。一度だけ記述します。

ex.
#STAGEFILE stage.bmp

省略可能。省略時のファイル読み込み画面はプレイヤによって異なります。


[編集] #VIDEOFILE (bemaniaDX 拡張)

BGAとして再生するムービーのファイル名を指定します。
フルパスや相対パスでの指定も可能です。

対応しているムービーの形式はAVIのみです。
再生方式は繰り返しの連続再生です。スタートは0小節目からです。
色が落ちてしまう場合は、カラーパレットの設定がムービーのカラーパレットより低い可能性が考えられます。正しく設定してください。
音声は再生されません。無視されます。
AVIの再生機能についてはご使用のPCにインストールされているCodecに依存します。

チャンネルナンバー04/07のBGAを、ムービーと同時に使用することができます。
表示順位は (下)ムービー > Ch.04 > Ch.07(上) となり、ムービーの上に2枚のBGAレイヤーを使用することが可能です。
BGAはチャンネルナンバー04/07共に黒(RGB:#000000)が透過します。
POOR時はチャンネルナンバー04/07がPOOR表示に切り替わります。
POOR画像も黒(RGB:#000000)が透過します。

(bemaniaDX取扱説明書より)

未使用時省略。

  • 関連ch

ch04
ch07

[編集] #VIDEOf/s (bemaniaDX 拡張)

再生するムービーのフレームレート(1秒間の表示枚数)を指定します。10進数表記で小数点指定も可能です。
フレームレートは、AVIファイルのプロパティの [詳細]-[ビデオ形式] で確認できます。(「xx フレーム/秒」と書いてある部分です)
指定がなければ、そのAVIファイルに設定されているフレームレートのまま再生します。
また、倍速再生等も可能です。(例:15のところ30と指定する)

(bemaniaDX取扱説明書より)

[編集] #VIDEOCOLORS (bemaniaDX 拡張)

再生するムービーのカラーパレットを指定します。
カラーパレットは、AVIファイルのプロパティの [詳細]-[ビデオ形式] で確認できます。(「xx ビット」と書いてある部分です)
標準は16になっていますので、16の場合は特に指定は不要です。

(bemaniaDX取扱説明書より)

[編集] #VIDEODLY (bemaniaDX 拡張)

スタート時にムービーの何フレームから再生するかを指定します。
指定がなければ、0フレームから再生します。

(bemaniaDX取扱説明書より)

[編集] #SEEK[00-ZZ] (Lunatic Rave 拡張)

ミリ秒単位で、現在の動画の再生位置を変更します。配置は5chです。

#SEEKxx yyyy

[編集] #STOP[00-FF/FZ/ZZ] (Delight Delight Reduplication 拡張)

DDR形式ストップシーケンスを定義します。00-FF/FZ/ZZまで定義可能。
分解能(192)を1小節とし、どの程度停止させるかを定義します。
小節長変更(ch02)の影響は受けません。

#STOP01 192 // 1小節(4拍)停止
#STOP02 96 // 2拍分停止

ストップシーケンスを使用しないのなら記述する必要はありません。

  • サポートするプレイヤ

RDM, uonazobmplay, In_BM, uBMplay, nanasi, Pomu, Lunatic Rave

  • 関連ch

ch09

[編集] #STP (bemaniaDX 拡張)

bemaniaDX形式ストップシーケンスを定義します。複数記述できます。

#STP xxx.yyy zzzz
// xxx : 小節
// yyy : 小節内の場所 (1小節を1000と考えます)
// zzzz : ストップする時間 (単位:ミリ秒)

ex.
#STP 010.250 1200 // 10小節目の2拍目で1.2秒(1200ミリ秒)間停止

bemaniaDX形式ストップシーケンスを使用しないのなら記述する必要はありません。

  • サポートするプレイヤ

...?



[編集] #ExtChr (BM98 固有命令)

割愛
http://www.sun-inet.or.jp/~yaneurao/bm98/bm98secret.html

[編集] #RANDOM

分岐命令。乱数を生成します。

#RANDOM x
// x : 自然数

ex.
#RANDOM 3
// 1から3の間で乱数を生成する。

生成した乱数は#IF命令などで使用します。

[編集] #IF

分岐の開始。#IFと#ENDIFの間に分岐の内容を入力します。

ex.
#IF 2
(分岐の内容)
#ENDIF
// #RANDOMまたは#SETRANDOMで生成された乱数の値が2であったときに分岐します。

[編集] #ENDIF

#IFで作成した分岐の終了。

[編集] #SETRANDOM (ふぃーりんぐぽみゅ拡張)

#RANDOMの代わりに記述すると乱数ではなく任意の値を生成します。

ex.
#SETRANDOM 2
//2が生成される。

[編集] #ELSE (ナナシグルーヴ拡張)

#IF~#ENDIF の間に記述する。
#IFの条件が該当であった場合は#IF~#ELSEが適用され、
#IFの条件外であった場合に#ELSE~#ENDIFが適用される。

(名無しBMSプレーヤ仕様書より)


[編集] #ENDRANDOM (ナナシグルーヴ拡張)

#RANDOM構文の終端を明確にするためのもの。
ネストする場合に必須。そうでなければ特に記述の必要はない。

(名無しBMSプレーヤ仕様書より)


[編集] #SWITCH (ナナシグルーヴ拡張)

分岐命令。乱数を生成します。

#SWITCH x
// x : 自然数

ex.
#SWITCH 3
// 1から3の間で乱数を生成する。

生成した乱数は#CASE命令などで使用します。
#RANDOM系との相互利用も可能で、半永久ネストが可能です。

[編集] #SETSWITCH (ナナシグルーヴ拡張)

#SETSWITCH x

#SWITCHの代わりに記述することで、強制的にxの数値を生成する。
主にBMSリリース前のテストプレイ用に使用する定義。

(名無しBMSプレーヤ仕様書より)

[編集] #ENDSW (ナナシグルーヴ拡張)

#SWITCHまたは#ENDSWITCHを適用する範囲の終端に記述します。

[編集] #CASE (ナナシグルーヴ拡張)

#SWITCHまたは#SETSWITCHと#ENDSWの間に記述します。
指定した値が#SWITCHまたは#SETSWITCHで与えられた値と合致しているとき、#CASEから#SKIPまたは#ENDSWまでが適用されます。
評価は記述順に行われます。

[編集] #SKIP (ナナシグルーヴ拡張)

#SWITCHまたは#SETSWITCHと#ENDSWの間に記述します。
#SWITCHまたは#SETSWITCHの範囲を抜けます。(#ENDSWまでジャンプします。)

[編集] #DEF (ナナシグルーヴ拡張)

#SWITCHまたは#SETSWITCHと#ENDSWの間に記述します。
#CASEに合致するものがなかったときに#DEF以下が実行されます。

省略可。

[編集] #PATH_WAV (GDA Creator 拡張)

wavファイルの有るパスを指定します。
BMSエディタのテストプレイ機能で使用されることを想定しているので
BMS完成時には入ってないようにしましょう。

  • サポートするプレーヤ

In_BM

[編集] #MATERIALSWAV (ナナシグルーヴ拡張, Obsolete)

#MATERIALSWAV path

path :
matrrials フォルダ(※)からの相対パス。制限260byte

※実行ファイルと同ディレクトリの materials フォルダ(他本体と共有可能)、
_datafiles\materials(専用)
優先順位は上記の記述順

これが記述されたBMSの音声ファイル指定は全て materials の path からロードする
通常の materials 指定( <path>filename )がある場合はこちらを優先

(名無しBMSプレーヤ仕様書より)

→正式版より対応廃止します

[編集] #MATERIALSBMP (ナナシグルーヴ拡張, Obsolete)

#MATERIALSBMP path

path :
matrrials フォルダ(※)からの相対パス。制限260byte

※実行ファイルと同ディレクトリの materials フォルダ(他本体と共有可能)、
_datafiles\materials(専用)
優先順位は上記の記述順

これが記述されたBMSの画像ファイル指定は全て(#STAGEFILE等も全て) materials の path からロードする
通常の materials 指定( <path>filename )がある場合はこちらを優先

(名無しBMSプレーヤ仕様書より)

→正式版より対応廃止します

[編集] #CHARFILE (ふぃーりんぐぽみゅ拡張)

#CHARFILE test.chp

演奏時、右側に登場するキャラクターを固定します。
指定したchpファイルが存在しない場合、「Char」フォルダの中からランダムにchpファイルを選びます。

[編集] %URL (BMS Manager 拡張)

BMS製作者に関するWebページのURLを入力する。

BMS Creator拡張と思いきやBMS Manager拡張でした。

現在対応している命令は"%EMAIL"と"%URL"です。これはBMSファイルに、BMS
制作者のE-MailアドレスとホームページURLを加えます。
(中略)
BMS制作者は、ぜひこのBMS Managerの拡張命令を採用してください。
ちなみに、最新版のBMS Creatorではこの機能が備わってます(嬉。

(BMS Manager readme.txt より引用)

%EMAILについても同様です。

[編集] %MAIL (BMS Manager 拡張)

BMS製作者のメールアドレスを入力する。

[編集] #DIVIDEPROP (ナナシグルーヴ拡張, Obsolete)

1小節あたりの分解能を指定する。不要になったため廃止。

[編集] #SONG (ふぃーりんぐぽみゅ拡張, Obsolete)

#TEXT の前身に当たる定義。
記述も #TEXT と同じ。
名無しは非対応。ぽみゅ(みゅに)はまだ対応している可能性がありますが、#TEXT の使用が推奨されています。

[編集] materials (BM98DE 拡張)

[編集] Materialsとは?

bm98フォルダの「materials」以下に新しいフォルダを作り、 特定のWAVファイルやBMPファイルを入れ、BMS側でWAVを指定する事により、 同じフォルダにWAVが無くてもMaterials以下からのWAVファイルを読み込むができます。
サウンドセットの管理に大変便利です。

指定方法は#WAVもしくは#BMPで以下の通りに指定するだけ。

例:

#BMP01 <samples>test.bmp
#WAV01 <samples>test.wav

BM98以下のフォルダのMaterials\samplesフォルダからtest.bmp、及びtest.wavを読み込みます。

他の対応本体:bemaniaDX,名無し(β版のみ)

[編集] CHANNEL

[編集] チャンネル

00 小節頭での10進数&浮動少数BPM変更 永久欠番チャンネル Removed
01 BGM
02 小節長変更
03 BPM変更
04 BGA
05 Extended Object (BM98 固有命令)
06 Poor BGA
07 BGAレイヤ
08 拡張BPM (bemaniaDX 拡張)
09 ストップシーケンス (Delight Delight Reduplication 拡張)
0A BGAレイヤ2 (ナナシグルーヴ拡張)
0B BGA透明度 (ナナシグルーヴ拡張)
0C BGAレイヤ透明度 (ナナシグルーヴ拡張)
0D BGAレイヤー2透明度 (ナナシグルーヴ拡張)
0E POOR画像透明度 (ナナシグルーヴ拡張)
10 予約チャンネル
11 1P側可視オブジェ (1キー:白鍵左)
12 1P側可視オブジェ (2キー:黒鍵左)
13 1P側可視オブジェ (3キー:白鍵中)
14 1P側可視オブジェ (4キー:黒鍵右)
15 1P側可視オブジェ (5キー:白鍵右)
16 1P側可視オブジェ (スクラッチ)
17 1P側可視オブジェ (スクラッチフリーゾーン(BM98) or フットペダル(ナナシグルーヴ))
18 1P側可視オブジェ (6キー(BME/PMS))
19 1P側可視オブジェ (7キー(BME/PMS))
1A-1Z 1P側可視オブジェ (ふぃーりんぐぽみゅ拡張)
20 予約チャンネル
21 2P側可視オブジェ
22 2P側可視オブジェ
23 2P側可視オブジェ
24 2P側可視オブジェ
25 2P側可視オブジェ
26 2P側可視オブジェ
27 2P側可視オブジェ
28 2P側可視オブジェ
29 2P側可視オブジェ
2A-2Z 2P側可視オブジェ (ふぃーりんぐぽみゅ拡張)
30 予約チャンネル
31 1P側不可視オブジェ
32 1P側不可視オブジェ
33 1P側不可視オブジェ
34 1P側不可視オブジェ
35 1P側不可視オブジェ
36 1P側不可視オブジェ
37 1P側不可視オブジェ
38 1P側不可視オブジェ
39 1P側不可視オブジェ
3A-3Z 1P側不可視オブジェ (ふぃーりんぐぽみゅ拡張)
40 予約チャンネル
41 2P側不可視オブジェ
42 2P側不可視オブジェ
43 2P側不可視オブジェ
44 2P側不可視オブジェ
45 2P側不可視オブジェ
46 2P側不可視オブジェ
47 2P側不可視オブジェ
48 2P側不可視オブジェ
49 2P側不可視オブジェ
4A-4Z 2P側不可視オブジェ (ふぃーりんぐぽみゅ拡張)
50 予約チャンネル
51 1P側LNオブジェ (rhythm-it 拡張)
52 1P側LNオブジェ (rhythm-it 拡張)
53 1P側LNオブジェ (rhythm-it 拡張)
54 1P側LNオブジェ (rhythm-it 拡張)
55 1P側LNオブジェ (rhythm-it 拡張)
56 1P側LNオブジェ (rhythm-it 拡張)
57 1P側LNオブジェ (rhythm-it 拡張)
58 1P側LNオブジェ (rhythm-it 拡張)
59 1P側LNオブジェ (rhythm-it 拡張)
5A-5Z 1P側LNオブジェ (ふぃーりんぐぽみゅ拡張)
60 予約チャンネル
61 2P側LNオブジェ (rhythm-it 拡張)
62 2P側LNオブジェ (rhythm-it 拡張)
63 2P側LNオブジェ (rhythm-it 拡張)
64 2P側LNオブジェ (rhythm-it 拡張)
65 2P側LNオブジェ (rhythm-it 拡張)
66 2P側LNオブジェ (rhythm-it 拡張)
67 2P側LNオブジェ (rhythm-it 拡張)
68 2P側LNオブジェ (rhythm-it 拡張)
69 2P側LNオブジェ (rhythm-it 拡張)
6A-6Z 2P側LNオブジェ (ふぃーりんぐぽみゅ拡張)
70-98 予約チャンネル
99 TEXT表示 (ふぃーりんぐぽみゅ拡張 / #TEXT00 ナナシグルーヴ拡張)
A0 判定難度変更 (ナナシグルーヴ拡張)
A1 BGAの描画時ARGB値を変更 (ナナシグルーヴ拡張)
A2 BGAレイヤーの描画時ARGB値を変更 (ナナシグルーヴ拡張)
A3 BGAレイヤー2の描画時ARGB値を変更 (ナナシグルーヴ拡張)
A4 POOR画像の描画時ARGB値を変更 (ナナシグルーヴ拡張)
A5 オブジェを押している間に表示されるBGA (ナナシグルーヴ拡張)
A6 動的オプション変更 (ナナシグルーヴ拡張)
D1-D9 1P側地雷オブジェ (ナナシグルーヴ拡張)
E1-E9 2P側地雷オブジェ (ナナシグルーヴ拡張)

//Direct3Dに合わせてARGBの順のほうがよいかも…(激辛党

[編集] BMS派生フォーマット

BME
BML
MGQ
PMS
EMS
DX (SCR?)
PHX
MGF
BMB
PMB
D2B
GDA
G2D
DTX
DEE
D2R
MSD?
DWI?
SM?

[編集] BMS対応アプリケーション

まとめ中。

[編集] 編集者(敬称略)

或る人
中の人
激辛党