LinuxのBMSプレイヤー
最近、ふと音ゲーをしたくなってBM98みたいなのを探しました。
せっかくLinuxマシンをいいのにしたので、それで遊べるのを探しましたが、 全然ないですね。大体がWindows向け。
Wine入れたらLR2が使えるみたいなのをみかけましたが、正直環境エミュレータもしたくないです。
探したらAngolmoisとraindropというのを見つけました。 まずangolmoisについてまとめておこうと思います。
前提
Ubuntu16。
Linux 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2)
ライブラリの用意
angolmoisはSDLというライブラリを使ってGUI描写をしています。
apt-get install libsdl2-dev libsdl2-mixer-dev libsdl2-image-dev
ただsmpegはapt-getではsmpeg1.2しかなく、必要なsmpeg2は自分でビルドするしかないです。
cd /path/you/want/ wget http://www.libsdl.org/projects/smpeg/release/smpeg2-2.0.0.tar.gz tar xvzf smpeg2-2.0.0.tar.gz cd smpeg2-2.0.0 ./configure make sudo make install
ソースコードの用意
githubからcloneします。
https://github.com/lifthrasiir/angolmois.git
まあbitbucketの移植ですので、そっちに行ってもいいかもしれません。
コード自体はCで、単一のソースファイルのみです。潔いですね。
ビルド
いつものmakeです。
make
ビルドするとangolmoisという実行ファイルができます。
実行、プレイ
コマンドラインから、プレイしたいbms/bmeファイルを引数に渡して実行します。
./angolmois /path/to/something.bms
ロードのあと、フルスクリーンで始まります。
プレイ画面中。今回は-wオプションをつけることでウィンドウモード、-vオプションをつけることでオートプレイモードとしています。
キーコンフィグは、デフォルトでは
スクラッチ: 左シフト
白鍵: ZXCV
青鍵: SDF
あとジョイスティックが使えます。
曲が終わると、標準出力にスコアがプリントされます。
*** CLEARED! *** COOL 198 GREAT 420 GOOD 96 BAD 13 MISS 11 MAX COMBO 98 SCORE 0180118 (max 0331583)
ミスが多くて失敗しますと、一行だけ
YOU FAILED!
と出ます。
エスケープキーで終わらせると何も出ません。
設定
ノートの落下速度とかランダムはコマンドライン引数で指定します。
./angolmois -3 /path/to/something.bms
で3倍速。速度はより細かく指定出来るようです。
./angolmois -a 3.14 -s BMS/btm_mario/mario-5.bms
これで、列をシャッフル、3.1倍速となります。
キーコンフィグは環境変数で指定します。たとえば
export ANGOLMOIS_1P_KEYS="Left shift%M|Z|S%,|X|D%.|C|F%/|V|left alt"
とすると、スクラッチが左シフト、Mの2つで白鍵がZXCV、青鍵がSDFと.,/の2ヵ所になります。 最後のleft altはペダルです。
具体的に指定したいキーの名前は、
https://wiki.libsdl.org/SDL_Scancode
で参照できます。
特徴
お察しのとおり、指定した一曲だけをプレイするだけの関数型的なプログラムで、設定やスコア履歴管理など一切やりません。
そういったことは環境変数やコマンドライン引数、標準出力など、シェル端末なら扱いやすいものでできますので、 逆に自分なりの管理ツールを自分で作れるという利点かと思います。
ただ一曲内のスコア履歴グラフを描くにはゲーム中の一定フレームごとのスコアの情報が要りますが、 そのままでは出力されずメモリとともに消えるようなので、 それを作るには何らかで出力するようソースコードの改変が必要かと思います。
あとスキンはどうもハードコーディングされていること、 フォントもアスキーアートみたいなデータフォーマットですので、 見た目は変えられないものと思った方がいいかもしれません。
端末と友達なら最高に手軽なツールかと思います。


















