Skip to content

難易度表の仕様

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"
    },
    {...},
    {...},
    {...},
            .
            .
            .
    {...}
]
Clone this wiki locally
You can’t perform that action at this time.