▼brdとは何?
いわゆるnazoBMplayでのスキン定義ファイルです。略称は多分ありません。
これはnazoBMplay0622版以降で適用され、スキンのほぼ全てがこのファイルを利用することにより自由にカスタマイズすることができます。
▼このファイルは何?
そんな自由にカスタマイズ可能なbrdの解析ファイルだったりします。
brd自体は分かり易くできていますので、理解できる人は簡単に作ることができますが、まぁとりあえず。
ちなみに、UnOfficialに入ってるbrdの説明文章は仕様が全然決まってなかった頃に書いたのでデタラメだったりします。
それぞれ一項目ずつ説明するにあたって、特定のコマンドのみ色分けされています。
その色分けと意味は以下の通り。
青:今後仕様が変更される可能性あり 赤:今のところ未実装。今後実装される予定 緑:未実装。今後削除される可能性あり基本的に全てにおいて仕様が変更される可能性がありますが、これらの色は最も変更される可能性がある項目です。
▼基本事項
基本的には
#command param [,param2,param3...]
というルールで指定します。
スペースもしくはtabがcommandとparamの区切りです。param同士は","
必要に応じて桁揃えなどを行っても可です。
なお、commandの大文字小文字は区別されません。全角半角は区別されます。
"//"以降はコメントと見なされます。
尚、先頭が#でない行は読みこみ時に全て無視されます。
(特に先頭に"//"を付けなくてもコメント扱いです)
▼brd構成
brdの構成は以下の5つに分けられます。
▽システム・汎用オブジェクト定義
▽表示位置/オブジェ定義 (2002/12/31 更新)
▽スコア数字定義/スコア表示定義
▽ネットワーク部分定義
▽OPTIONランプ関係
の以上五項目です。(リンクの部分をクリックすると直接その項目へ飛ぶことができます)
この五項目にわけてbrdを解析していきます。
▼システム・汎用オブジェクト定義
▽#TITLE [titlename]
▽#skinstyle 1P,2P,DP
▽#YPOSBASE height
▽#FILEch [filename]
▽#SYSFONT left, top, width, height
▽#SONGINFO x, y, width, height
▽#BGA_1P x, y, width, height
▽#CLIPch bmpID, left, top, width, height[, dir, spacing, frames, interval], invisible
ちなみにinvisibleは透過率の指定だったのですが、廃止するかもです。
スキン定義ファイルのタイトルです。
起動メニューのスキンマッパーにタイトルとして使われています。
目印としてドウゾ。
定義例:タイトルを「nazobmplay [DEFAULT-skin for 1P/2P]」にする
#title nazobmplay [DEFAULT-skin for 1P/2P]
1P/2P/DP用にスキンを定義する項目です。
例えば「1P,2P」にすると、F9キーのスキン入れ替え時に1P及び2Pのみbrdを読み込みます。
「DP」にするとDPの時のみbrdを読み込みます。
譜面が流れてくる大きさを指定します。
heightに特定の数値をドット単位で入れてください。
(大体300〜400辺りが良いです)
定義例:譜面の流れてくる大きさを360ピクセルに設定
#YPOSBASE 360
スキンの元となる画像データを読み込みます。ファイル形式はbmpのみです。
chは個別の番号。00〜FFまで指定可能です。
(現バージョンでは09までしか読み込めません)
filenameは読み込むファイル名を指定します。
定義例:ファイルID01にskin_default_a.bmpを読み込みます。
#FILE01 skin_default_a.bmp
システムフォントを読み込みます。
システムフォントの文字位置は下記のように固定されており、順番を間違えると正しく表示できません。
!"#$%&'()*+.-,/0123456789:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~
フォントを用意した後、一番左上にある「!」の部分の左上の座標と大きさ指定すれば、
そのままシステムフォントとして読み込みます。
定義例:X座標273px、Y座標455pxに縦横それぞれ8pxの大きさのシステムフォントを取り込みます。
#SYSFONT 273,455,8,8
▽#MSGPOS x, y, width, height
曲情報、及びシステム情報の表示位置を定義します。
大きさはシステムフォントの大きさに合わせてください。
x,yは座標、width,heightは行数、桁数ではなく行数(1行固定)と桁数をシステムフォントの大きさでかけた数値を指定して下さい
定義例:X座標252px、Y座標10pxに横203px、縦9pxの範囲に情報を表示します。
#SYSFONT 252,10,203,9
▽#BGA_2P x, y, width, height
BGAを表示する座標と大きさを定義します。
BGAの大きさは256x256が通常表示で、この数値以外を指定すると拡大表示(もしくは縮小表示)となります。
1Pは1P時、2P時は2P時もしくはDP時に表示されるBGA定義です。
定義例:1P時にX座標370px、Y座標98pxに横縦256pxの大きさでBGAを表示します。
#BGA_1P 370,98,256,256
凡用オブジェクトID定義です。これを利用してスキン画像からそれぞれのデータを取っていきます
後にこのCLIPを利用していろいろなオブジェ定義をしていきます。
定義内容は以下の通り。
ch ID 個別の番号。00〜FFまで指定可能です。
bmpID ID #FILEchのch部分です。このファイルから切り抜きます。
left 数字 クリップ範囲の左辺 (ピクセル)
top 数字 クリップ範囲の上辺 (ピクセル)
width 数字 クリップ範囲の幅 (1コマの)
height 数字 クリップ範囲の高さ (1コマの)
これは、#FILEで指定された画像内にあるx座標(left)とy座標(top)の位置からwidthとheightで指定された大きさで取っていきます。
以下、アニメーション定義です。アニメーションしない場合は不要です。
dir <1,2> 方向(1=右方向へ,2=下方向へ)
spacing <数字> 1コマ1コマの間の間隔を指定します(区切り線避け)
frames <数字> 総コマ数を指定します
interval <数字> アニメーションする間隔を時間単位もしくはピクセル単位
で指定します。(負の値を指定するとピクセル単位です)
dirは並べられたアニメーションデータの方向を指定します。
spacingはアニメーションパターンごとに間に区切りがある場合に指定します。
区切りが無い場合は0で構いません。
framesはアニメーションする数です。framesで指定されたアニメーションのスピードはintervalで決定されます。
時間単位はms単位となっています。ピクセル単位は曲プレイ中のBPMによって変動します。
定義例:CLIPID番号7番にFILEナンバー01の画像のX座標25、Y座標1、横の大きさ158、縦の大きさ360のパターンを格納します。
#CLIP07 01,25,1,158,360
低比例:CLIPID番号1番にFILEナンバー01の画像のX座標285、Y座標157、横の大きさ18、縦の大きさ8のパターンを指定した後
そこから下方向に1ドット間隔で8パターンを格納。再生スピード48msに設定してアニメーションとして再生します。
#CLIP01 01,285,157,18,5,2,1,8,48
#COMBONUM | コンボ数字(これに限り座標はいりません) |
#SCORE_1P | 1Pスコア |
#J-PTS_1P | 1PJ-PTS |
#MAXCOMBO_1P | 1PMAXCOMBO |
#GAUGE_1P | 1Pグルーヴゲージ |
#SC_PERFECT_1P | 1PPERFECT数 |
#SC_GREAT_1P | 1PGREAT数 |
#SC_GOoD_1P | 1PGOOD数 |
#SC_BAD_1P | 1PBAD数 |
#SC_POOR_1P | 1PPOOR数 |
#SC_PERFECT_2P | 1PPERFECT数 |
#SC_GREAT_2P | 1PGREAT数 |
#SC_GOoD_2P | 1PGOOD数 |
#SC_BAD_2P | 1PBAD数 |
#SC_POOR_2P | 1PPOOR数 |
#MAXCOMBO_2P | 2PMAXCOMBO |
#SCORE_2P | 2Pスコア |
#J-PTS_2P | 2PJ-PTS |
#GAUGE_2P | 2Pグルーヴゲージ |
#FPSPOS | FPS表示位置 |
#BPMPOS | BPM |
#PLAYPOS | PLAYTIME |
#PLAY_FULLPOS | PLAYTIME(全) |
#COUNTPOS | COUNT数 |
#STAGEPOS | STAGE数(FREEでは非表示) |
#NETBASEPANEL | ネットワーク情報ベースパネル |
#NETEXGAUGEBGPOS | ネットワークエキスパートゲージ(無) |
#NETEXGAUGEPOS | ネットワークエキスパートゲージ(有) |
#NETGAUGEBGPOS | ネットワークグルーヴゲージ(無) |
#NETEXGAUGEPOS | ネットワークグルーヴゲージ(有) |
#NETPOWERBGPOS | ネットワークパワーゲージ(無) |
#NETPOWERPOS | ネットワークパワーゲージ(有) |
#NETPOWERHIDPOS | ネットワークパワーゲージ(Hidden) |
#NETEXGAUGEHIDPOS | ネットワークグルーヴゲージ(Hidden) |
#NETINFOPLAYPOS | (P)lay プレイ中ランプ |
#NETINFOLOADPOS | (L)oad ロード中ランプ |
#NETINFOFNISHPOS | (F)inish プレイ完了ランプ |
#NETINFOATKPOS | (A)ttack 攻撃中 |
#NETPOWERLEVELPOS | LEVEL(1〜4) 技レベル |
▽表示・スコア
基本は上記と一緒で、IDはNUMからとります。
#NET_SCORE | スコア |
#NET_JPTS | J-PTS |
#NET_PERFECT | PERFECT |
#NET_GREAT | GREAT |
#NET_GOOD | GOOD |
#NET_BAD | BAD |
#NET_POOR | POOR |
#NET_MAXCOMBO | MAXCOMBO |
#NET_GAUGE | グルーヴゲージ |
#POWERPOS_1p | POWERゲージ本体 |
#NETPOWERBGPOS_1p | POWERゲージ背景 |
#NETPOWERPOS_1p | POWERゲージ |
#OP_Hidden | Hidden |
#OP_Sudden | Sudden |
#OP_HidSud | Hidden+Sudden |
#OP_Stealth | Stealth |
#OP_Random | Random |
#OP_Shuffle | Shuffle |
#OP_ExRandom | EX.Random |
#OP_Mirror | Mirror |
#OP_Accel | Accel |
#OP_NAZO | Deecl |
#OP_AutoPlay | DEMO |
#OP_Replay | Replay |
#OP_PREESURE | PREESURE |
#OP_CROSS | CROSS |
#OP_Reverse | Reverse |