意味ねぇ・beatmania IIDX スコア計算式解明への道 長かったぁ〜! んもぅ、疑問の嵐でした。 スコア計算式解明までの道のりなどをつらつら書いてみました。 途中、ふんだんに数式や理論が出てくるので、数学ギライな方々は決して読まないでくださいね。 発狂すること請け合いです。 しかも、長いです。 誰が読むんだ、こんなもん。 |
1.甘過ぎた…… |
|||||||||||||||||||||
最初、E坂さんはタカをくくってたんですねぇ。 実は、「ポップンと同じだろ? どうせ」と思ってました。 だもんで、一応、正確なスコア計算式を出すためにデータ取りをしたとは言え、けっこうテキトーにデータ取りしたんです。 ところが……いやはや、これが疑問の連鎖のはじまりだったとは。 E坂さんは「200000点をノート数で割れば、光GREAT の得点になるだろ」と思ってました。 そして、「GOOD は光GREAT の5分の1だろ」とも思ってました。 だから、「あとは、GREAT の点さえわかればオッケーだー!」と思ってたんですねぇ。 そこで、E坂さんは「GREAT の点数は光GREAT の何パーセントかな?」と考えて、プレイ結果(以下リザルト)を基にパーセンテージを求めてみたのでした。 対象にしたリザルトデータは、LIGHT7 の“sync”。
これを、E坂さんの推測した計算式にあてはめて計算。 すると……、出てきた答えは 約75.733% ありゃ? こんなハンパなの !? 「また変な値が出たもんだ」と思いつつ、他の曲のリザルトデータで同じようにパーセントを求めてみると…… 今度は 約73.157%になった。 ええ〜っ !? 曲によって 光GREAT/GREAT の得点比率が違うのか !? もしかしたらホントに違うのかもしれないけど、いや、でも、いくらなんでも曲によって GREAT点の比率をわざわざ変えるなんてのはなんか変だ。メモリがもったいない。 しかも、上の2つのパーセントはともに簡単な分数では表せないような中途半端な数。 「もしかしたら、GOOD は光GREAT の4分の1とか? 3分の1とか?」 「もしかしたら、GREAT は光GREAT の5分の4とか?」 などと、いろいろためしてはみたものの、どれもこれもあえなく却下。 結局、テキトーなデータ取りでは、何もわかりませんでした。 E坂さん、甘かった。 しょうがない、リキ入れて研究するかー! |
|||||||||||||||||||||
2.たりないじゃん !? |
|||||||||||||||||||||
2回目のデータ取り。 今回は、基本に立ち返って「光GREAT、GREAT、GOODの得点を調べる」ことをしました。 対象曲は、前出の“sync”(LIGHT7)。 曲が始まったら何をしたか。 譜面を血まなこで凝視しつつ、タイミング合わせてボタンを一回だけポチっ! あとは、スコアを一心不乱にノートに書き写す! うははははっ。モロ原始的! でも、これが一番確実なんでさぁね。 で、これで得られたデータは、光GREAT が 273点、GREAT が 182点、GOOD が 36点。 ホントならこのデータを使って計算したいものがいろいろあるんだけれど、さすがにゲーセンにパソコンとかを持っていくわけにもいかず、かといって手計算なんてジョーダンじゃない。 すぐさま家路へと急ぎました。 しかし、途中であることに気がついた。 “sync”のノート数は 549 だったよなぁ。 光GREAT がたったの 273点じゃぁ、オール光GREAT でも満点の 200000点に届かないんじゃねぇか? 自宅に着いたあと、実際に電卓で確かめる。 273 かける 549 は……、273×549= 149877 あああっ、やっぱり! 全然たりないじゃん! でも、待てよ。 この6ケタ、よく見ると…… あっ! 15万に近いっ! そこで、ためしに 150000 を 549 で割ってみました。 150000÷549= 273.22404 …… ここでE坂さん、頭の上にピーンッと電球がともった! すべて光GREAT だと 150000点になるという勘定ですなッ! 思わぬ発見に喜び余って、GREAT と GOOD についても同じことをやってみました。182×549 と 36×549 をピピッと計算。 おおおっ。案の定、案の定っ! すべて GREAT だと 100000点、すべて GOOD だと 20000点になるという勘定です。 うおおっ! これは大きい収穫だっ! でも、すべて光GREAT でも 15万点にしかならないという事実は変わらない。つまり、5万点たりないんです。 じゃぁ、残りの5万点っていったい何なのだろう? またひとつ、新たな疑問が湧いたE坂さんでした。 |
|||||||||||||||||||||
3.この5万点って、いったい何だ !? |
|||||||||||||||||||||
E坂さんは、こう推測しました。 おそらく、20万点のうち、15万点は GREAT などのリズム判定による得点、残り5万点は別の何かによる得点なのだろう。 とりあえず、まずは 15万点の部分を数式化してしまおう! 15万点をノート数で割ると、光GREAT の得点になる。 10万点をノート数で割ると、GREAT の得点になる。 2万点をノート数で割ると、GOOD の得点になる。 そして、ポップン同様に各判定を出すごとに単純に各得点が加算されると考えた。 そうすると、15万点部のスコアは次のようになるわけです。 とりあえず、15万点部分はこれでいいのだろう。 あとは、残りの5万点部分がわかれば……! そこで、今まで取ったリザルトデータを基に、この部分はいったい何なのかを推測してみることにしました。 スコアは『15万点部』と『5万点部』の合計だし、15万点部は上記のように数式で計算できるようになった。 ということは、各リザルトデータのスコアを 15万点部と5万点部に分けることができる! よしっ、分けてしまおう! 電卓のキーをたたくこと数百回。 いくつものスコアを2つずつに分けていったところ、ある結果に目がいきました。 1.のところで“sync”のリザルトデータがあったけれど、これって、BAD と POOR はひとつもカウントされてないですよね。 このデータの『5万点部』は何点だったかというと……実は、5万点だったんです。つまり満点。 それに対して、BAD や POOR(カラ打ちは除く)を出してしまっているリザルトデータでは満点はひとつもなかった。 ここでE坂さん、あるひとつの推測が立ちました。 もしかして、コンボを全部つなげば満点か? BAD や POOR が出ればコンボはとぎれる。すべて GOOD 以上ならフルコンボ。 となれば、『5万点部』はコンボが関係してるんじゃないか !? よしっ! じゃぁ、15万点部を『リズム判定点』、5万点部を『COMBOボーナス点』と改称して、コンボについて考えることにしよう! |
|||||||||||||||||||||
4.うーん…… |
|||||||||||||||||||||
3回目のデータ取り。 今回は、『COMBOボーナス点』の解明が目的なので、変則的なコンボでプレイしてみました。 たとえば、最後の1個でコンボが途切れる。 たとえば、最高コンボが2以下。 たとえば、最初30コンボのあと、キーを押さない。 たとえば、途中までキーを押さないであとはフルコンボ。 いろいろな変則コンボでリザルトデータを取って家路を急ぎました。 自宅。 電卓を使って、スコアを『リズム判定点』『COMBOボーナス点』の2つに分けます。 各スコアに対していろんな COMBOボーナス点が出たけれど、E坂さんの研究結果、 全然わかりません。 お手上げです。 いやぁ、マジでわからん! とりあえず、仮説は立ててたんですよ。「5万点をノート数で割った値が、コンボした回数だけ加算されていくんじゃないか」って。 この仮説ならコンボが多ければ COMBOボーナス点が多くなるし、フルコンボでちょうど5万点になる。 しかし、この仮説はあっさり棄却されました。 うーむ、E坂さんには仮説がひとつしか立てられなかったから、コレが棄却されたとなると……行き詰まった。 その後、データを基になんとか法則を探ろうとするものの、まったく見当もつきません。 いったいどう計算しちょるんだー! COMBOボーナス点はーッ! |
|||||||||||||||||||||
5.法則発見! |
|||||||||||||||||||||
4回目のデータ取り。 コンボに関して、おもいっきり基本に立ち返ります。 E坂さん、何をしたか。 コンボ1だと、COMBOボーナス点は何点? コンボ2だと、COMBOボーナス点は何点? コンボ3だと、COMBOボーナス点は何点? コンボ4だと、COMBOボーナス点は何点? コンボ5だと、COMBOボーナス点は何点? これをいちいち調べたんです。 うははははっ! おもいっきり基本だぁ〜! ヘタに同時押しなんかが来るとE坂さんはパニックになっちゃうので、対象曲は★1レベルの“5.1.1.”(LIGHT7)。 んもぅ、やりましたよ! 名づけて「コンボを一定数つなげたあとはキーに一切さわらないで曲終了までボ〜ッと作戦!」 いやぁ、いくら COMBOボーナス点を調べるとはいえ、プレイせずに直立不動で一曲をボヘ〜ッと見てるだけってぇのは冷や汗ダラダラです! 200円入れて、ただ突っ立ってるだけなんて! しかも、点数を書き写すために、筐体にはノートとボールペン。 「コイツ、キーも叩かんでノートとボールペン出して何やってんだ?」 なんかもぅ、ロクにプレイもせんと自分のプレイ結果をいちいち書き写し、プレイもせんと書き写し、……。恥ずかしいったらありゃしないっ! は、早く曲終わってぇ〜〜ッ ! ! ! ! ! そんな羞恥地獄を 20回近く耐えたE坂さん、家路を急いで COMBOボーナス点を研究しました。 コンボ1だと、COMBOボーナス点は 0点。 コンボ2だと、COMBOボーナス点は 53点。 コンボ3だと、COMBOボーナス点は 160点。 コンボ4だと、COMBOボーナス点は 320点。 ……。 ……。 とりあえず、点数を並べてみる。まるで数学の“数列”みたいやなぁ。懐かしい。 並べただけでは、まだ法則は見つからない。 そこで、E坂さん、受験数学のころを思い出して、こんなことを実行しました。 「階差をとってみるか!」 見た感じ法則が見つからないような数列の法則性を知るには、まず階差をとってみるのが大事! これは、数学の講師なら必ず言うほどの基本的な考えかたです。 受験生のみなさん、覚えましょう! ……とまぁ受験のことは置いといて、実際に階差をとってみます。つまり、左右隣りあう数で引き算してみます。 さて、どうなるやら……。 あっ! もしかしたら大発見しちゃったかもっ! 引き算の答えの数字(緑色数字)を順次見ていくと……多少の誤差はあるものの、 だいたい 53 ずつ増えていき、535 からは一定になる。 そして、53 は一番左にある。 ははーん。そういうことか! コンボをするたびに、COMBOボーナス点に 0点、53点、53点×2、53点×3、53点×4、……が順次加算されていく。 そして、53点×10 からはずっと同じ点が加算されていく。 要領はそんな感じだ。 なるほどなるほど。COMBOボーナス点の仕組みがなんとなくわかってきたぞ !? でも、この 53点、いったいどこから出てきたのか? これを解くカギは、フルコンボにありました。 ここで、今、この 53点をひとつの単位として、これを「53点=1ポイント」と定めることにしましょう。 そうすると、コンボを続けていったとき、COMBOボーナス点は0ポイント、1ポイント、2ポイント、……と加算されていくということが言えます。 そして、10ポイントからは、一律 10ポイントずつ加算されていくわけです。 ということは、もし、フルコンボをしたとき、合計はいったい何ポイントになるのか? これは、簡単に求まります。 最初のコンボ1〜10 までは0、1、2、3、……、8、9ポイントが加算される。 この 10個を除いた残りは全部10ポイントずつ加算される。 “5.1.1.”(LIGHT7)のノート数は 99なので、10ポイントは89回加算されることになります。 だから、フルコンボしたときの総ポイント数は 0+1+2+3+4+5+6+7+8+9+10×89= 935 となるわけです。 で、ここで、COMBOボーナス点は5万点満点でしたよね。 935ポイント取れば5万点だから、単純に 50000 を 935 で割ってみる。すると、 50000÷935= 53.4759…… おおおーっ! 53点になるではないかッ! つまり、“5.1.1.”における COMBOボーナス点というのは、50000点を 935等分したうちの1つ分を単位(=1ポイント)としてそれがいくつ分あるのかということを表した数値なんですね。 これはもぅ! コンボが続く限り、0、1、2、3、……、8、9、10、10、10、……とポイントを順次加算していく方法をとっているとみて間違いないでしょう! でも、この方法は“5.1.1.”だけにしか適用されないかもしれない。 他の曲では、方法は違うかもしれない。 一応、念のため他のリザルトデータに対しても同じ要領で COMBOボーナス点を計算してみました。 結果は? ……ステキな結果にE坂さん、顔がほころびっぱなしです♪ |
|||||||||||||||||||||
6.では、実際には COMBOボーナス点はどう算出されるのか |
|||||||||||||||||||||
実のところ、上の割り算にもあるように、COMBOボーナス点を算出する基準となる「1ポイント」の点数は小数点以下の端数を含むことがほとんどです。 なので、実際に算出するときは「ポイント」を単位とした方がいいでしょう。 ここで、単位「ポイント」について、正確な定義をします。 では、COMBOボーナス点はどういう手順で計算されているのか。 こういう手順です。
【2】を見てわかる通り、コンボが多くなると加算ポイントも多く、コンボが少ないときは加算ポイントも少ないです。 だから、あんまりコンボが何度もボコボコ途切れるようだと高ポイントが加算されず、コンボ換算点も低いまま。結局は、COMBOボーナス点も低得点に終わるわけです。 コンボを長く長く続けた方が、高得点になりやすいんですね。 ちなみに、コンボ換算点は次の式で一発計算できます(計算後、小数点以下端数を切り捨て)。 なぜこういう式になるのかは省略。ゴメン! |
|||||||||||||||||||||
7.あとは、最後の細かい仕上げ |
|||||||||||||||||||||
3.において『リズム判定点』、5.と6.において『COMBOボーナス点』の仕組みがわかりました。 あとは、この2つを合計してスコアの完成! ……といきたいところなんだけれど、実は、まだ完全じゃない。 E坂さん、チョット気になってたことがあったんです。 ある日。 E坂さんが LIGHT7+AUTO SCRATCH で“B4U”をやってたときのこと。 いつもより調子がよくて「もしかして、初の17万点いくか !? 」とドキドキしながらプレイしてたんだけれど、驚きのスコアが出たんです。 そのスコアは…… なんと、169999点。 く、くやしーッ ! ! あと1点かよ! そのときは超くやしいE坂さんでしたが、同時にこう思いました。 「えらい変なスコアだなぁ……」 下のケタが 9999。 E坂さん、これに違和感を覚えたんです。 ポップンで言えば 84999点を取ったようなもんなんだけど、ポップンのスコア計算法では“下のケタ 999”なんていうスコアはあり得ないんです。降ってくるポップくんがべらぼうに多くない限り。 ちなみに、ポップンで 84999点を取るために必要なポップくん数を求めてみると、なんと、5001個だったんですね。最低でも 5001個。 ということは、ポップンで 84999点キッカリ取ることは実質的に不可能だと言っていい。 IIDX でも同じ計算法をとっているのなら、169999点を取ることは不可能なハズ。せめて、スコアは「170000」と表示されるハズなのだが……。 うーん、この“下のケタ 9999”という現象はいったい何なのか? E坂さんは、こう推測しました。 端数切り捨てをしすぎて、1点減ったんじゃねぇか? 端数の切り捨てられどころが多ければ、切り捨て点数が積もり積もって1点や2点くらいにはなるものです。 たぶん、これに違いないだろう。 3.の『リズム判定点』計算式をもう一度書いてみます。 これによると、光GREAT、GREAT、GOOD の3項について“得点×個数”の値を求め、最終的に赤色のように1項にまとめています。 でも、もしかしたら、緑色の時点で3項それぞれの小数点以下端数を切り捨ててから1項にまとめてんじゃないだろうか? そうすれば、切り捨てられる端数が積もって1点くらい減るんじゃないか? そう思ったわけです。 で、いろいろなリザルトデータでためしてみた結果、次の結論に達しました。
『リズム判定点』の算出方法を修正しておきましょう。 以下のようになります。 さぁ、これで、『リズム判定点』と『COMBOボーナス点』の詳細が明らかになりました! あとは、この2つを合計すれば、beatmania IIDX におけるスコア計算式ができあがるわけです。 |
|||||||||||||||||||||
8.あとがき |
|||||||||||||||||||||
ふぅ〜。 やぁっとこれで、解明できた! いやぁ、正直言っておもしろかったです。 算出法を突き止めるまではウンウンうなってばっかりだったけど。 ポップンのように単純じゃなかった分、突き止め甲斐がありました。 コンボ数もスコアの一要素にくわえていたし、それに、「コンボを長く続けないとハイスコアが出にくい」というシステムにしていることもわかったし。 けっこう奥が深かった! でも。 リザルトデータを手に入れるためとはいえ、何度 わざと一曲落ち をしたことか! しかも、羞恥に耐えながら。 100円や 200円を入れては、“5.1.1.”のムービーで羞恥心をまぎらわすE坂さん。 も、もぅ、こんな変なプレイやらないっ! |
EPSILON ★ DELTA 管理人:E坂もるむ |