ビートかFFのメモ

IIDX,BMS,FFXII,etc...

BMSの難易度表を運営してみる話

 このご時世こういう記事は探せばごまんと出てくるものではあろうが、それを読んでも分からんかった人間が他者に聞いて形にしたという話。私の場合、人にやってもらうというよりは自分用のメモみたいな感じで公開しているものなので、そういう趣味のない人はfavでフォルダにブチ込むなりでもいいとは思うが念のため。

 

 この方法、探せば他にめっちゃ丁寧に書いているところもある気がするので、私は実際やった事をずらずらと書くだけだ。

 

 取り敢えず私が参考にしたページは第二通常難易度表にある「次期難易度表フォーマット」というページとPMS Databaseの「Others」だ。そこを読めば「難易度表を表示するウェブページ用のファイル」「難易度表の名前やら何やらの情報を入れるヘッダ用のファイル」「難易度表に用いる譜面の情報を入れるファイル」という3種類のファイルが必要になる事がわかる。メモ帳やらで作る事は出来る(と思う)が、サンプルファイルがあったり、他のサイト等でも必要なファイルが最低限用意されているサンプルのDLが可能だったりなので「難易度表 作成」辺りで検索して探してほしい。そのサンプルをDLした前提で続ける。

 

 サンプルを開けるとjsonファイル2種類とwebページのファイル1種類、スタイルシートJavaScriptのファイルがあるけれども、基本的にスタイルシートJavaScriptのものもいじらなくて問題ない(はずな)ので放置。

 

 そんなわけで実際に作ってみようという事で。ウェブサイトの作成云々に関してはたぶん分かると思うので省略。FC2なり忍者なり色々あると思うので好きなところを登録しておいてほしい。難易度表を表示させたいページのURLは決めておくこと。表しか用意しないならindexでも問題はない(と思う)。私の場合は他者が作成した譜面で面白いと思ったものを表形式にしたかったので「dptasha_hyou」という名称にした。実際運営中だが更新をさぼっているので来年には再開したい。表の充実化のためにモットーを変更するかもしれない。既に「他者作成オススメ表」から「自己満足表」に名前を変更している。

 

 閑話休題。URLが決まったらヘッダの設定。サンプルに入っているヘッダは「header」という名称が使われているjsonファイルになっていると思うのでメモ帳として開く。中身は{}で囲われるように上からダブルクォーテーション(以下面倒なので「" "」表記)でname,symbol,data_url,level_orderという文字が括られている。

 nameはその名の通り難易度表の名前を入れる。私の場合は上に小さく書いた「自己満足表」。symbolはその難易度表で用いる難易度の記号等。通常難易度なら☆、発狂難易度なら★と表示しているアレ。某所で使用しているハンドルから「宮」と付けた。data_urlは後述する楽曲情報をブチ込むjsonファイルの名称。分かりやすくしておくならheader含めてjsonファイルの名称は変更しないほうがいい。だいたい「./score.○○.json」になるはず。level_orderは用いたい難易度の数値。[ ]で括られているところに数値を入力するのだが、例えばSP発狂難易度のように1~25で区切りたい場合は1,2,3,……,23,24,25と、数字をカンマで区切って入れていく。隔離難易度みたいに「?」とか「皿」みたいに算用数字以外の文字を用いる場合は" "で用いれば使用できる。

 

 次に譜面情報に関するファイル。「score」という名称が使われているファイルが入っていると思われる。たぶんサンプルによってまちまちなのかもしれないが、私が用いたものでは[ ]で大きく括り、譜面毎に{ }で括り、その中は" "でcomment,title,url,artist,name_diff,url_diff,level,lr2_bmsid,md5をそれぞれ括っている。

 commentはその譜面に対するコメントを表示するもの。譜面の傾向や備考等があれば記入でいいと思うし、それ以外に何かあれば書いても書かなくても問題なし。titleはその譜面の名前。IRで表示されているものをコピーペーストでOK。全角や半角はしっかりと確認しないと表示されないので注意url,artistは楽曲本体のファイル置場を設置する場合に使用。私は面倒なので記入していないが(そもそも個人用だし)、書いてあると利用者は大助かりだと思われる。name_diff,url_diffは先程の本体に同梱されていない差分ファイルで記入。こちらも書いてあると利用者が大助かりになる。levelは先程のheaderで設定したlevel_orderで決めた数値のいずれかひとつを括る。要するにここに入れた数値がこの難易度表における難易度になる。lr2_bmsidはLR2IRにおける譜面IDを入れる。サイトによってはここは記入しなくてもよいらしいのだが、私の用いているものはなぜか記入しないと表示されないので全部入力している。beatorajaに移行したら表作成を一からやらないとならない……。最後のmd5ハッシュ値と言われているもの。LR2からIRページに飛んだ際のURLだったり、GLAssist、BeMusicSeekerからでも得られる。一曲一曲やるのは面倒くさいが、効率よくDBを入手できる方法もあるらしいのだが、そういう方法を私は用いていないのでここでは書きません。

 ちょいと長々と書いたが、このファイルはtitle,level,md5(それとlr2_bmsid)さえしっかり記入すれば基本的に問題なく動作する(はずな)ので、それの記入を頑張ってほしい。

 

 ここまで終わったらURL用のページ、header、score、スタイルシートをアップロードでOK。今後楽曲を増減させる場合、あるいは難易度を変更する場合、scoreファイルの{ }で括られている箇所を弄る、足す等して再度アップロード。アップしたらscoreファイルは開いて更新したほうがいい。

 

 んで、実際ここまでやって思ったのは、運営は簡単に出来るようになっているのに面倒くさいと思ってしまう。これは開発者への文句とかではなく、運営する事自体が面倒になってしまうという意味だ。

 私の場合、今のDP発狂表に不満があるから運営を始めたクチなのだが、それに対するアンチテーゼにもなっていないし、自分で好きな曲を自分の思う難易度に設定できるという割には「やっぱこの譜面いらねえんじゃねえか」とかで入れてから一蹴したり。人から提案されて良し悪しを決めてとかではなく全部自分で判断だから譜面を片っ端から精査し、その上で難易度を決める。一曲単位だと「これはこんなもんかな」で済むのだが、これを何曲もやるので割としんどいのだ。

 まあ、個人運営だからこそメモ代わりに使えたり他人の思う難易度と比べたりというのが出来るので、特にDPだとそれが顕著になって面白いところではあるのだが。

 

 取り敢えず表に文句があろうとなかろうと、作ってみてはいかがだろうか。おわり。