自分オリジナルのBMS難易度表を作って公開しよう【無料・Webブラウザ上で完結】
はじめに
自分の好きな譜面や自作譜面をまとめた難易度表を作成・公開したいと思ったことはありませんか?この記事ではGoogle スプレッドシートとGitHub Pagesを利用したBMS難易度表の簡単な作成・公開方法を紹介します。
当記事作成にあたりHex様の記事を参考にさせて頂きました。
Google スプレッドシートの作業
難易度表の作成
Google スプレッドシートで新しいスプレッドシートを作成し、以下の表を1行目にコピペしてください。このような形式で譜面を記述し難易度表を作成します。
lr2ir
の列は必須ではありませんが、=HYPERLINK("http://www.dream-pro.info/~lavalse/LR2IR/search.cgi?mode=ranking&bmsmd5="&D2)
などのように入力しておくとスプレッドシートからLR2IRに簡単に飛べて便利です。
level | title | artist | md5 | comment | lr2ir |
---|---|---|---|---|---|
12 | G e n g a o z o _ G O D | 455 / rio / black train | 5110b92d997eabc3d2322556617632ad | 拷問 | |
20 | Air -GOD- | SHIKI / black train | 751738dea1169c5c39db935adfc9e85f | 180 乱打 | |
24 | Love & Justice [GOD] | フロン / ラズベリル / obj: black train | 39d0732ef7fee9ad0c8b044ccbe8a396 | أحد مؤسسي نهضة اليابان الحديثة، فقد كان | |
危険!! | 運命論 | ルゼ ☆ えみゅう。 ☆ 石王マサト ★ UnK-now/37X | 188a99f74ab71804f2e360dcf484545c | levelは文字列なので数字じゃなくてもOK | |
論外!!!! | 戦歌「オルグラリヤ」 | ルゼ / Unk-now / 37E | ec1598e752ce393aa8dced158bf6e39c | The judgement day is coming... |
フィルタの作成や書式設定などで体裁を整えておきましょう。levelのソートは必ず行ってください。
譜面の入力が終わったら、スプレッドシートのID(URLのhttps://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxx/
のxxxxxxxxxxxxxxxxxxxxx
の部分)を記録しておきます。
Apps Scriptの作成
ツール
タブからスクリプト エディタ
を選択しApps Scriptの編集画面を開きます。
以下のソースコードをコピペし、xxxxxxxxxxxxxxxxxxxxx
の部分を先ほど記録したスプレッドシートのIDに書き換えて保存します。
function getSheetAsObj(id, sheet_name) { var sheet = SpreadsheetApp.openById(id).getSheetByName(sheet_name); var rows = sheet.getDataRange().getValues(); var keys = rows.splice(0, 1)[0]; return rows.map(function(row) { var obj = {} row.map(function(item, index) { if (keys[index] != "lr2ir") { obj[keys[index]] = String(item); } }); return obj; }); } function doGet() { var obj = getSheetAsObj('xxxxxxxxxxxxxxxxxxxxx', 'シート1'); // ここにスプレッドシートのID return ContentService.createTextOutput(JSON.stringify(obj, null, 2)).setMimeType(ContentService.MimeType.JSON); }
画面右上のデプロイ
から新しいデプロイ
を選択し、種類の選択
をウェブアプリ
に、次のユーザーとして実行
を自分
に、アクセスできるユーザー
を全員
にしてデプロイします。データへのアクセスを許可を求められた場合はアクセスを承認してください。
デプロイが完了したらURLを記録しておきます。URLを踏んだ際に次期難易度表フォーマットのJSONが表示されればデプロイは成功です。(Stellaの例 このようなテキストが表示されれば正常です。)
スプレッドシートを更新した場合はJSONも勝手に最新の状態になります。(ただしソースコードを更新した場合は再びデプロイする必要があるため注意してください。)
GitHub Pagesの作業
Fork
GitHub Pagesを利用するためにGitHubのアカウントが必要です。持っていない方は作成してください。
HTMLを書きたくない方向けにテンプレートを用意しました。以下のリポジトリを開き、画面右上のFork
を選択してください。リポジトリが自分のアカウントにコピーされ自由に編集できるようになります。
header.json
の編集
header.json
を選択すると以下のようなJSONファイルがプレビューされます。
{ "name" : "ここに難易度表の名前", "symbol" : "ここにシンボル", "data_url" : "ここにJSONのURL" }
鉛筆のようなアイコン(マウスカーソルをかざすとEdit this fileと出てきます。)を選択し、header.json
に難易度表の名前、シンボル(★とか★★とか◆とかstみたいなやつ)、先ほどデプロイしたURLを記述します。
index.html
の編集
index.html
をheader.json
と同様に編集します。ここに難易度表の名前
の部分とここに難易度表の説明文
の部分を書き換えてください。
GitHub Pagesの設定
まずリポジトリの名前がBMS-Table-Template
のままなので変更しましょう。リポジトリの名前はSettings
タブのRepository name
で変更することができ、難易度表のURLはhttps://{あなたのID}.github.io/{変更したリポジトリの名前}/
になります。
Settings
タブからPages
を選択しSource
のNone
をmaster
に変更し保存します。
Your site is ready to be published at https://{あなたのID}.github.io/{変更したリポジトリの名前}/
と出てくるので、このURLを記録しておきます。これが公開された難易度表のURLになります。
LR2の場合はBeMusicSeekerなどで難易度表を読み込むことができます。
これ以降難易度表に譜面を追加したり削除する場合はスプレッドシートを更新するだけで作業が完了します。(Apps ScriptやGitHubは触る必要ありません。)
おわりに
Google スプレッドシートとGitHub Pagesを利用したBMS難易度表の作成・公開の方法を紹介しました。皆さんも是非オリジナルの難易度表を作成してみてください。
テンプレートを改変する場合は次期難易度表フォーマットの詳細が以下のリンク先に載っているので参考にしてください。