PMS Database

コラム -難易度表の作成方法について-

当サイト立ち上げの際に行った、新フォーマット(JSON)に対応したBMS難易度表の作成・公開方法をご紹介します。
専門的な知識の無い方や、とりあえず難易度表を作成したい方向けの説明となります。(専門的な説明は筆者自身もできません)
サンプル難易度表 by schlucht2 および 第2通常難易度表のサンプル を参考にさせていただきました。一部の解説が重複することをご了承ください。

サンプルページを作成してみました

【Download】PDB式サンプル難易度表セット

この雛形を当データベース上で実際に表示させてみると このようになります(index.htmlにジャンプします)
また、JSONファイルの中身の作成用に PDB式難易度表作成例 (Google スプレッドシート) を用意しました。コピーしてお使いください。
こちらのシートに関しては下記(3)で改めて説明します。

公開までの手順

(1) htmlファイルの編集

まず、難易度表を表示するホームページの体裁を整えましょう。
上記のzipファイルを展開すると「index.html」「table.html」というファイルが入っています。
「index.html」はTOPページにあたります。ファイル名は変更しないでください。
「table.html」は GLAssist / BeMusicSeeker で読み込ませる難易度表のページです。このファイル名を変更する場合は難易度表の公開までに行いましょう。公開後に名前を変更すると難易度表のURLが変更されることになり、読み込みエラーの原因になってしまいます。

次にそれぞれのhtmlファイルをメモ帳などで開いて、説明文の追加等を行ってください。(HTMLの詳しい書き方については割愛します)
「table.html」のファイル名を変更した場合は、「index.html」内のリンク <a href="table.html">難易度表はこちら</a> の部分も更新してください。
以降、ファイル名を書き換えた場合やディレクトリを移動させた場合はその都度対応するリンクを書き換えてください。

(2) header.json の編集

難易度表全般のプロパティが格納されているのが「header.json」ファイルです。
メモ帳で「header.json」を開き、次の項目を更新してください。(これらの項目ははじめにきっちり決めておくべきですが、公開後に変更しても大丈夫です)

■ "name" : "難易度表の名前を記入"
■ "symbol" : "シンボルを記入"  ※★とか◆とかのアレ。他の表とシンボルが重ならないように考えたほうがよい。
■ "data_url" : "score.jsonのあるURL"  ※必要がなければ変更しなくてOK
■ "level_order" : [難易度を記入]  ※カッコ内に使用する難易度をカンマ区切りで全て記入。数字以外は""で囲む。

(3) score.json の編集

難易度表に登録する譜面の情報が格納されているのが「score.json」ファイルです。この中身を記述する方法はいくつかありますが、ここではPMSデータベースで利用している、 Google スプレッドシートを利用した方法をご紹介しようと思います。
PDB式難易度表作成例 (Google スプレッドシート) のシート例を開いてください。ここに楽曲情報を入力すると、一番右側(L列)にコードが表示されます。このコードがJSONファイルの中身になります。
初期状態で「score.json」の中身はこのコードを列全体コピペし、末尾の }, を }] に変更したものです。
「シート例」と「score.json」の中身を照らし合わせて確認してください。


恐らくここで説明するよりも実際に書き込んで色々試されたほうが理解しやすいと思います。「シート雛形」をコピーしてご自由にお試しください。
難易度表作成の上で最低限必要なものは以下のとおりです。

■ 難易度 … 「header.json」で指定した数字と記号に対応させる。記号の半角/全角入力ミスが起こりやすいので注意。
■ 曲名
■ hash (bmsmd5) …譜面の識別番号のようなもの。「選曲時にカーソルを合わせてF5を押すと表示されるIRページのURL」を記入すればOK

ミス防止のため、hash(bmsmd5)を入力しないとL列は空欄となる仕様です。もしL列の行数が足りなければドラッグフィルで増やせます。
セル内改行はエラーが起こるので使わないでください。また、末尾の }, を }] に書き換えるところだけは手動で、忘れずに行ってください。

編集が終わったらL列を手元の「score.json」に上書きコピペしましょう。

(4)「style」フォルダ内について

このフォルダの中身で難易度表のレイアウトを指定しています。
第2通常難易度表様で配布されているものとほぼ同一です。特に知識がなければ触る必要はありません。

(5) ホームページの立ち上げ

PMSデータベースもお世話になっている忍者ホームページに登録します(ダイマ)
ドメイン名は難易度表のURLの一部になるので考えて決めましょう。登録が終わるとホームページの管理ページが開きます。
次に 忍者ホームページのFTP設定マニュアルを読んで FFFTP をインストールし、管理ページ内にあるFTP設定を入力して接続します。
接続できたら、FFFTPの画面右側に編集してきた「index.html」「table.html」「header.json」「score.json」「style(フォルダ)」をD&Dで投入します。


これで難易度表が公開されているはずです。管理ページの右上「サイトを開く」を押すと「index.html」が開きます。難易度表ツールにURLを読み込ませて表示されるか確認しましょう。
なお、初期設定のまま公開した場合、URLは以下のようになっています。

■ TOPページ … http://(設定したドメイン名)
■ 難易度表 … http://(設定したドメイン名)/table.html ※難易度表ツールに読み込ませるURLです
■ JSON   … http://(設定したドメイン名)/header.json および /score.json

(6) 公開してからのこと

難易度表の中身を更新する場合は、その都度スプレッドシートで「score.json」の情報を作成・コピペし、FFFTPを使って最新の情報に上書きします。
慣れるまでは書式をミスって難易度表が表示されなくなり慌てることが多いので(経験談)、バックアップを作成してから更新することをオススメします。
簡単なトラブルシューティングを後日作成する予定です。

公開準備が整ったら、Ribbit!さんの難易度表まとめに登録してもらうと知名度が高まるでしょう。また、PMS難易度表の場合 Links の難易度表欄に掲載しますのでご連絡ください。
楽しい難易度表BMSライフを!