Posted at

BMS定義紹介~#TITLE編~

More than 1 year has passed since last update.

この記事は、BMS制作についてAdvent Calendar 2日目の記事です。

BMSの定義について書いていきたいと思います。


TITLEの定義

#TITLE bmsTitle

string bmsTitle

 曲のタイトルを定義します。bmsTitleがいくつかの半角スペースから始まるとき、これをインデントとみなして半角スペースを無視します。例えば、半角スペースを□で可視化した時に、定義が#TITLE□□□□exampleであるとき、これは#TITLE□exampleと全く同じであるということです。


 規格に書かれてはいませんが、副題として以下のフォーマットが認められています。しかし、これらが複数用いられる場合や、#SUBTITLEの定義がある場合は無視されます。 よって、この方法での副題の定義は推奨されません。

Expression
Remark

#TITLE main-sub-
半角ハイフン

#TITLE main~sub~
全角チルダ

#TITLE main(sub)
半角丸括弧

#TITLE main[sub]
半角ブラケット/角括弧

#TITLE main<sub>
半角不等号/山括弧

#TITLE main"sub"
ダブルクォーテーション


LR2における動作とバグ

bmsTitleにShiftJISの2Byte文字において、ASCII文字コード上で、-,(,),[,],<,>,"と同じコードが含まれる場合、パースエラーによって譜面が認識されなくなるバグが確認されています。

例えば、にゃ [あにゃざー]をbmsTitleとして指定した場合、のShiftJISコードが0x815bであるために、これをLR2が[を正しく解釈できずに譜面がLR2上に表示されないバグがあるようです。

ほかにも、にも同じようにASCIIコードを含んでいるために、パースエラーとなります。

【参考】

ちなみにこれは別のバグなのですが、一度パースエラーを起こしたファイルは、bmsTitleを正しく編集しても、ファイル名を変えないと認識されないようです。注意して下さい。