日々、雑雑と。

いろいろなことを垂れ流し

EC2でBemuseの楽曲サーバを構築してみた

はじめに

BMSと呼ばれるフリーの音楽ゲームが、一部の界隈で流行っている。
今までにBMSを数十作ぐらい作ってきたが、BMSを遊ぶには、本体をインストールして、曲もダウンロードして、読み込まして、と結構面倒くさい。
その中、最近できたBemuseは、面倒くさい導入の作業をスキップして、ブラウザですぐにBMSを遊ぶことができる。
Bemuse: BEAT☆MUSIC☆SEQUENCEbemuse.ninja

Bemuseは、どこかのサーバに本体があって、どこかのサーバに置かれている楽曲データを読み込んでいる。楽曲データをこちら側で用意すれば、すぐ遊べる環境ができる。今回は、EC2でサーバを構築して、Bemuseで遊べる環境を構築した。

参考にしたページ

www40.atwiki.jp
CORSの設定さえ正しければ上のページ内に書かれてる通りにやってれば構築は終わる。

環境

サーバ EC2 t2.micro
Webサーバ nginx
登録楽曲 今まで使った自作曲

EC2サーバ構築

amazonAWSにログイン・登録。
今だとmicroが1年間無料なので、それを使う。
EC2で作ったサーバのネットワーク周りの設定は以下を参考にした。
qiita.com

あと、EC2で作られたサーバは、デフォルトだとSSH通信の認証に公開鍵を渡すようにしている。これは面倒くさいので、アカウントをもう一個作って、パスワード認証を行うように変更をした。
ここらへんを参考にした。
AWS EC2で鍵認証からパスワード認証に変更するには - mikurassのブログ

Bemuse用楽曲データの生成

Bemuseには独自のフォーマットがあり、BMSと互換をさせるには、bemuse-toolsを使う。これはnodejsやらいろんなフレームワークを事前に入れる必要がある。(Bemuseサーバー構築を参照)
環境が揃ったら、各楽曲のフォルダ毎に、「bemuse-tools pack [フォルダ名]」ってやって、Bemuse用の規格に沿ったファイルを生成。最後に、「bemuse-tools index」ってやって、全BMSの一覧データを生成。これを含めたフォルダ内のすべてのファイルをアップロードすればOK。

CORS周りの設定

ここが一番苦労した。色々なドキュメントを覗いてnginxに設定してたけど、Bemuse本体サーバからこちらのサーバ内のファイルにどうもアクセスできない。四苦八苦しながら最終的に下のやつを試したらうまく行った(原因がよくわからないのはまずいが)
michielkalkman.com

Bemuse楽曲サーバ完成

何回もエラーを見て直しながらしてたらどうにか構築できた。以下、自作曲のBMSサーバ
https://t.co/Ip1VcZbr59

まとめ

いざ構築してみると、サーバ構築の知識が結構求められて辛い場面が少なからずあった。しかし、楽曲の追加をスキップしてすぐに遊べるというメリットはかなり大きい。Bemuseは現時点では7keyとo2jam配置が対応されており、9keyも増えるとすごく嬉しい。