読者です 読者をやめる 読者になる 読者になる

DDRの難易度を移動距離で評価し直してみた

 

クリスマスでも音ゲーやってる皆さんこんにちは。

この記事は音ゲーマー達の発信所(4枠目)の24日目の記事です。 

#音ゲーマー達の発信所 (4枠目) Advent Calendar 2014 - Adventar

 

前の人: op31_lyricism

次の人: R7iF

  

今回はDanceDanceRevolutionについての記事を書きました。

f:id:panchiga:20141224020255p:plain

 

はじめに

「Spanish snowy dance激が15なわけがない! 詐欺だ!」とか「FLOWER鬼は17レベルもない! 逆詐欺だ!!!」的な、表記されているレベルに見合っていないのではないか?って曲があると思う。

 

もしも「俺は15レベルならもしかしたらクリア出来るかも知れないけど、16は無理…」って人が16レベル相当の15レベル曲をプレイしてしまったら結果はたぶん悲しい事になると思う。

 

そこで、「曖昧なレベルって言う基準じゃなくてもっと明確な基準を作ればいいんだ」って事で今回は移動量を基準にしてむずいランキングを作りました~。

 

計算方法

単純に移動距離だけだとノーツ数多いやつが勝つに決まってるので、BPMなども加味して考えたのが以下の式。

 

疲れる度 += (今のBPM * 2ノーツの距離 * 四分の何倍か) / 2ノーツの隙間

疲れる度を求めたあと、偏差値を求める。

 

用語について

2ノーツの距離: 前に(右|左)足で踏んだノーツと今(右|左)足で踏んだノーツとの距離

  • 上→下など、反対の位置は56cm
  • 上→右など、隣の位置は40cm
  • 上→上など、縦連は足をあげる高さとして30cm
  • ジャンプはパターン分け直すのめんどかったので全部80cm

2ノーツの隙間: 上と同様にその隙間

gistadefa2394c90c3eda7c6

だったら"2"みたいな

四分の何倍か

八分なら四分の2倍速いから"2"みたいな

 

DDRの譜面は基本的に交互に踏むようにできてるのだが、たまに交互に踏もうとすると回転しないといけない時がある。

しかし、そういう場合とかを考えるとちょっとめんどいので、今回は腰のねじりに制限のない人を想定して作った。

 

#腰のねじりに制限無さそうな人 

f:id:panchiga:20141224194528j:plain

流れ

1. ddr_travel.rb移動距離を求める。

2. 1で求めた値をtravel.csvに追加していく

3. すべての曲が終わったらcalc_std.rb偏差値を求める

4. 3で求めた値をresult.csvに書き込む

5. result.csvを偏差値順に並び替える

 

コード

rubyで書いた。ちょっと長いのでリンクを。

わあいスパゲッティ~~~

 

対象曲

たまたま持ってた1stからX3までと嘆きの樹。

激譜面鬼譜面のみ。

合計745譜面!

 

むずいランキング

全文はここのall_result.csvで公開。

all_result.csv (https://github.com/panchiga/DDR_travel/blob/master/all_result.csv)

今は20レベル表記だが、旧曲だと10レベル表記なのでたまに10とか9が不思議なところにいるのがすごい嫌。Xからだけだと寂しいし仕方ないね…

あと、今は入ってない曲とかコースとかかな?が入っちゃってるけど分かる人が楽しむ感じで。

 

全部出すと本文より長くなりそうだったので上位30曲を順に並べた。

 

gist63e058505a2b4946748c

 

結果を見てみて

足19曲、両曲とも堂々の偏差値100超え!!!!!!

すごい!!

足18曲がやっぱりすごいけどそこに混じってくる16とか17はなんなんだろう

NEPHILIM DELTAがトップ30に入ってるのがちょっと面白い。運動量だけで言えば確かに疲れるから納得はできる。

Δ MAXどっちも17のくせして顕著な差がでたね…

FLOWER鬼(元17)、これ見る限りでは888激(14)より弱いね

 

課題点

ソフランとストップをどうしたら難しさとして数値に正しく出せるかを考えたい

・フリーズ踏みながらもう片足で捌くみたいなのの場合を今回考慮してないのでそのへんも課題点

・DPの対応も出来ないことはなさそうだし次の課題だ 

まとめ

  • 足19はやっぱりおかしかった
  • 偏差値的な値は分かりやすい
  • 10段階と20段階を混ぜると危ない
  • オブジェクト指向できてない!
  • rubyのコピーちょっとなんなんだ

感想

わりと正しい感じの値が出てよかったなあと。ただ、レベル毎にソートしてグラフを出したかったんだけどそれが出せなかったのが残念。

趣味で書くプログラムは本当に楽しいなあ…楽しかったなあ…

コードレビューお願いします!お願いします!コードレビューじゃなくても、もっといい計算式とかあるよって人、コメント待ってます。

 

最期に

Aizuアドベントカレンダーに参加させて頂いて記事を書いたら燃え上がって、人気ブロガー気分味わえて楽しかったです。見てない人は見てね!!

FF10の雷除けを自動化した話 - panchiga's blog