exch-bms2 / jbmstable-parser Public
難易度表の仕様
exch-bms2 edited this page Apr 13, 2018
·
5 revisions
全体の構成
難易度表は、以下の3つのファイルにより構成されます:
- 難易度表(HTML) : ユーザー閲覧用ファイル。ここには譜面情報を格納しません
- ヘッダ部(JSON) : 難易度表名称やタグ記号などのヘッダ情報を格納するファイル
- データ部(JSON) : 難易度表の譜面情報を格納するファイル
難易度表仕様
headタグ内に、以下の以下のmetaタグを配置してください:
<meta name="bmstable" content="(ヘッダ部URL)" />
ヘッダ部仕様
データ構成は、 {(難易度表情報)}とし、 難易度表情報オブジェクト内の仕様は以下の通りとします:
必須項目
- "name" : String ファイル生成可能な名前
- "data_url" : String データ部のURL
- "symbol" : String シンボル
任意項目
- "tag" : String タグ付加時の表記。省略時は symbol を使用
- "level_order" : Array(String | Integer) レベル表記の順序。省略時はデータ部のレベル検出順
- "course" : Array(Array(Course)) コース情報
- "mode" : String 譜面のプレイモード。bmsonのmode_hintと同様
Course {
- "name" : String コース名
- "constraint" : Array(String) コースの制限項目。
- grade_random : 段位(譜面オプションRANDOM, R-RANDOM, S-RANDOM, MIRRORを許可)
- grade_mirror : 段位(譜面オプションMIRRORを許可)
- no_speed : ハイスピード設定無効
- no_good : GOOD判定無効(BAD判定になります)
- no_great : GREAT/GOOD判定無効(BAD判定になります)
- gauge_lr2 : LR2段位ゲージを使用
- gauge_5k : 5KEY用段位ゲージを使用
- gauge_7k : 7KEY用段位ゲージを使用
- gauge_9k : 9KEY用段位ゲージを使用
- gauge_24k : 24KEY用段位ゲージを使用
- "trophy" : Array(Trophy) トロフィー条件。
- "charts" : Array(データ部の譜面情報) コースを構成する譜面集合
}
Trophy {
- "name" : String トロフィーの種類
- goldmedal
- silvermedal
- bronzemedal
- "missrate" : Float ミスカウント率上限(0 - 100%)
- "scorerate": Float スコアレート下限(0 - 100%) }
ヘッダ部の例
{
"name":"第2発狂難易度",
"tag":"▼",
"data_url":"http://rattoto10.jounin.jp/js/insane_data.json",
"symbol":"▼",
"level_order":["0-","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","?"],
"course":[
[
{
"name":"発狂初段",
"constraint":["grade_mirror"],
"trophy":[
{
"name":"silvermedal",
"missrate":5.0,
"scorerate":70.0
},
{
"name":"goldmedal",
"missrate":2.5,
"scorerate":85.0
}
],
"md5":[
"c07125de4ed7fbe7cb066cc41e50e51e",
"fc7d46e7bbc9f6afd26d05e3bf2ef555",
"b3887714270e28988ce900e4b9300994",
"d1877ad5dc0134b27eb0238da5721eed"
]
},
.
.
.
],
[
.
.
.
]
]
}
データ部仕様
データ構成は、 [ {譜面情報1},{譜面情報2},...,{譜面情報n} ]とし、 譜面情報オブジェクト内の仕様は以下の通りとします:
必須項目
- "md5" : String BMSファイルのmd5ハッシュ値
- "sha256" : String BMSファイルのSAH256ハッシュ値
- "level": String 表記レベル md5とsha256はいずれかが定義されていればOKです。
任意項目
- "title": String 譜面タイトル
- "artist": String アーティスト
- "url": String BMS本体の入手URL
- "url_diff": String BMS差分の入手URL
- "name_diff": String 差分リンク用のテキスト
- "url_pack": String 収録パッケージの入手URL
- "name_pack": String 収録パッケージの名称
- "comment": String コメント
- "org_md5": String 同梱譜面のmd5ハッシュ値(差分自動導入で使用)
- "mode" : String 譜面のプレイモード。bmsonのmode_hintと同様。未定義の場合はヘッダ部での定義を使用
- "ipfs": String BMS本体のipfsのpath Pathは必ずディレクトリであること
- "ipfs_diff": String BMS差分のipfsのpath Pathはディレクトリ、ファイルどちらのものでも可
etc...(難易度表固有の定義)
データ部の例
[
{
"title":"Act Beloved [SP ★1]",
"level":"12",
"eval":0,
"artist":"Nene Anegasaki feat. Salita / obj:slash Movie : Ryuka",
"url":"http://manbow.nothing.sh/event/event.cgi?action=More_def&num=268&event=74",
"url_pack":"http://nekokan.dyndns.info/~lobsak/genoside/",
"name_pack":"GENOSIDE収録",
"url_diff":"http://slash24th.web.fc2.com/",
"name_diff":"差分保管所",
"comment":"slash難易度表△1",
"total":480.0,
"judge":3,
"note":(省略),
"tag":"同時押し",
"md5":"6a2cf3b81a38dc28f2a5b4e0d18d26ff"
},
{...},
{...},
{...},
.
.
.
{...}
]