自分のbeatmania IIdxの成長の軌跡を出す

f:id:panchiga:20180511185646j:plain

はじめに

今年の1月からbeatmania IIdxをやりはじめた。

今のところ順調に成長しているとは思うが、このゲームのレベルの刻み方が非常に粗く(レベル1から12までしかない。そのくせレベル10だけで400曲以上ある)、何ヶ月も同じレベルの曲をやるだけで本当に成長があるのか疑わしくなってくる。

beatmania公式サイトから自分のスコアデータがダウンロードできるとの事だったので、それを使って自分がちゃんと成長してることを確認しようと思い立った。

 

準備

環境

  • Python 3.6
  • pandas 0.20.1
  • matplotlib 2.0.2

(anacondaで入れた)

beatmania

KONAMIを払って「スコアデータCSV」をダウンロードできるようにしておく

f:id:panchiga:20180511183348j:plain

 利用方法

1. 以下のリポジトリからDownload Zipとかして手元に持ってきて解凍する

github.com

 

2. あらかじめ用意しておいたスコアデータCSV、「beatmania_growth/data」フォルダに格納(複数ファイルOK)

なお、このスコアデータCSVは「YYYYMMDD.csv」って名前で保存すること(例:20180510.csv

 

3. terminalで上記のフォルダを開き、実行する

  python beatmania_growth_visualization.py

  ファイルの読み込みが始まって読んでるファイルが出力されれば問題なし。

 

4. 「data/result」以下に更新記録が保存される

グラフはレベルが高い曲ほど濃い色で表示するようにした。

結果

  開始当初

f:id:panchiga:20180511192120j:plain

 4ヶ月後

f:id:panchiga:20180511192434j:plain

f:id:panchiga:20180511191926p:plain

 

苦労したとこ

Pandasあまり使ったことがなくてデータフレームの結合すると思ったのと違うってなることがあった。

  • 横方向

スコアデータCSVにはすべての曲が記載されていて、曲をプレイする度にNO PLAYから更新されていくんだろうなと思っていた。しかしCSVに載るデータは「NORMAL、HYPER、ANOTHERのどれかをプレイした事がある曲」だったので、今までやった事がない曲をやる度CSVの行が増えていく。

これに気づかないで単純にpd.merge(after, base)すると、新しくやったはずの曲が無かったことにされてしまった。

マージのオプションhow=‘outer’を付けることで存在しない場合はNanで埋めるって事ができて、当初想定していた結合ができた。

 

pd.concat([growth_df, add_growth])ってやるとgrowth_dfadd_growthが足されたデータフレームが返るんだけど、growth_dfが勝手に更新されると誤解していた。

ちゃんと代入しよう。growth_df = pd.concat([growth_df, add_growth])

 

感想とか

  • まず人が見る用じゃない「スコアデータCSV」を人が見る形にできたのが良かった。記録の確認が捗る。
  • スコアデータを手元に溜めておくとああこの頃はこんなスコアでクリアしてたんだなってのが見えて、今のスコアと見比べると確かに成長が実感できる。(ああこの頃は〜〜ってのをやるには更新前のスコアが書かれてるスコアデータCSVと更新後の最新のスコアデータCSVを持ってる必要あり。毎日スコアデータCSVをダウンロードしよう。)
  • 一番めんどくさいbeatmania公式サイトに行ってスコアデータCSVの保存をしてーって作業が結局手作業になってるのが微妙な点。CSV直接ダウンロードできるAPIが欲しい。
  • FAILEDも一応更新として残すか悩んだけどクリアしてる曲だけを集計することにした。最後グラフ出したかったからこれで良かったのかとも思ってる

割と気軽に達成感とか緊張感とかが味わえていつもは聞かないジャンルの曲とか知れるので音ゲー楽しい。虚無な会社通いしてる人には特にオススメ。成長を実感していこう。