誰も止めないので書けるだけ書く

読みやすくするように頑張ります

Excelファイルで音ゲー欠陥指標をつくろう

Ashrmです。PC音ゲーExcelファイルを用いてスコアを管理する習慣があり、シクスターゲートも例外ではありませんが、今回はレーティングめいたものも作ってみようとした話です。

 

今回は基準が「私のプレイング*1」ということもあり、同意できないところが多々あるかと思います。統計学をまともにやってないのに勝手に作っておりますが、改善できそうなところがあったら伝えてくれると喜びます。

 

また、この記事はこうした要素の公式実装を望む意図のものではありません。

ただ作ってみたかったから作ってみただけです。

 

データは全て2022年7月下旬のものです。

 

 

シクスターゲート・スタートレールを購入以来2か月ほど楽しく続けられています。

このゲームの魅力については前回前々回の記事でたくさん書いたのでいいんですが、スコア詰めを楽しもうということで、Excelでスコアデータをまとめております。

とはいえ、EZ2ONDJMAXで同様のExcelファイルを作ってあまり機能していないのですが…

条件付き書式に自分の成績に対する考え方が表れています。難易度部分にフルコン・PB(理論値=1,000,000点)のランプをつけるとともに、スコア欄のデータバーは980,000点(SSの基準)以上しか示しておりません。そして、PBを取った譜面のスコア欄は1,000,000と記入されていますが、塗りつぶされています。

この表では、Supernova以上の譜面データについてスコアをまとめています。

私の場合はゲームを買ってまず最初に始めたことがCometとNovaのPB埋めであり、無事全部埋まった後にExcelを作り始めたためNova以下のスコア管理が意味をなさないのが理由の一つで、もう一つはNova以下は判定が広いのでSupernova以上のスコアと単純に比べられないという理由があります。

 

 

アイキャッチ難易度分布

 

さて、以前チュウニズムのOPなるMASTER・ULTIMA全譜面の成績をまとめた指標の存在を知り、興味深く思い、シクスターゲートの譜面を対象に似たようなものを勝手に作ろうと思い立ちました。どの譜面でもスコアを伸ばせば伸ばすだけ数値がよくなるのでスコア詰めのモチベに寄与すると考えたわけです。Excelのデータをこねくり回すのが好きなだけかもしれません。実力指標というよりは達成度の指標と言った方がよいでしょうか。

 

今振り返ると、この指標を作るうえで念頭にあったのは「私程度の実力の人から最高レベルの人まで残酷に差をつける」ことだったと思います。たぶん私以外誰も使わないんですが。

 

まず最初に、このゲームはPBランクの存在など「理論値をとること」に対する評価が割と大きいという印象があったということで、理論値からの距離に焦点を当てた指標を作ろうと考えました。

もし理論値が狙えるような譜面であれば、WHITE STAR以下の判定はノーツごとに一定の確率で出ると仮定すると*2、平均してn個のWHITE STARが出る譜面で理論値をとれる確率は十分ノーツ数の多い条件でe^{-n}になります*3

つまり、平均1落ちであれば.367の確率、平均2落ちであれば.135の確率になります。

この数字からは、実用的には「理論値の前には1落ちが少なくとも2~3回は出ると思え」くらいの精神衛生的アドバイスしか持ち帰れないと思いますが、この数字を見たときに、私が感じるスコアの「価値」のような感覚(ナンジャソリャ)にある程度沿っている気がしたので、この事実をベースに試しに計算式を書いてみました。

すなわち、まずある譜面の難易度数d、スコアxに対し、以下のように「欠点」fを定義します。

\displaystyle{f = \frac{1000000-x} {u(d)}}

ただし、u(d)は下表のような値です。*4。 

d 7 8 9 10 11 12 13 14 15
u(d) 500 450 400 350 300 250 250 200 150

 

このfを用いて、その譜面の「レーティングスコア(仮)R_M

\displaystyle{R_M = 2^{d-7}e^{-f} }

とします*5。これを各モードの全譜面の成績について足し合わせたものを、そのモードでの「レーティングスコア(仮)」とします。

 

この「レーティングスコア(仮)」は、2022年7月21日現在ではすべて理論値埋めした時にLUNAR MODEで5200点、SOLAR MODEで6030点になり、これだけみるとなんだかまともな指標に見えます*6

 

さて、現在の私の「レーティングスコア(仮)」を見てみましょう。

 



これの各曲での値を見てみましょう。



難易度数12以上の大概の譜面でまともに加算することができません。厳しすぎます。

 

これを生み出すに至った思想は論外で計算は馬鹿げているのであり、この指標は難易度数7の理論値に対して1点しか与えない一方で、難易度数15の理論値に対して256点が与えられます。尤もそんなことができる人はほとんどおりませんが。

しかし、点数が理論値に非常に近い値でなければまともに加算することができません。

以下に0.0001点加算するのに必要なおよそのスコアをまとめました。

難易度数 スコア
7 995,395
8 995,543
9 995,761
10 996,049
11 996,405
12 996,831
13 996,658
14 997,188
15 997,787

そもそも995,000点が必要なのに、さらに難易度数が上がるごとにボーダーが上がっていく始末です。通常のプレイでここまでの点数を意識するところは今のところまだまだ少ないです。

ここまで厳しい指標になることが予見できなかったのは、数に関する感覚が欠落している証拠です。

また、難易度数10まですべて理論値埋めできたとしても積み上げられる点数はLUNAR382点/SOLAR480点であり、相当少ないです。

結果として、ほぼ完全に「理論値力」とでもいうべきものを測る指標になりました。あるいは「根気」などといった精神的なものの指標かもしれませんが。

 

これでは高難易度のスコアを狙う意味が直接的にはほぼなくなってしまいます。もちろん高難易度のスコアを詰めていると低難易度の精度を上げられるようになったりするので意味なくはないのですが、それでももう少し良心的な、通常の地力があれば伸ばせる指標を作らなければならないと感じました。もう少し通常用いられていそうな指標に近い*7、少なくとも指数関数よりは極端でないものを作ろうとしました。

 

そこで、これまで考えてきた「レーティングスコア(仮)」を「Mental値」と呼称し、これから作るものを「Physical値」と呼ぶことにしました。

 

まず、ある譜面の1,000,000点に対して与えられるPhysical値を何点にするかなんですが、単純に難易度数×3にすると全部合わせてLUNAR MODEで5937点、SOLAR MODEで6048点になったので、それでいくことにしました。これだと譜面当たりの理論値が21点から45点とこれでも大きな幅になりますが、1点から256点よりはるかに良いです。

まず、スコアに対して下のように推移するように「Physical値(仮)」を作ってみました。

でもやっぱり詰めさせたいので理論値に近づくほど急勾配にしました。

とりあえず950,000点(Sランク基準)取れれば正のスコアが得られるようにしたわけですが、これを運用しているとやっぱり「低難易度を詰めた方が有利」な点は変わらないという問題に当たりました。

下の表は各難易度数の譜面において、98万点台と99万点台のそれぞれで1,000点スコアを伸ばした時の「Physical値(仮)」の上昇値です。

 

難易度数 7 8 9 10 11 12 13 14 15
98万点台 0.42 0.48 0.54 0.60 0.66 0.72 0.78 0.84 0.90
99万点台 1.05 1.20 1.35 1.50 1.65 1.80 1.95 2.10 2.25

 

98万点台と99万点台で傾きを2.5倍にしたのはまずい判断でした。

難易度数7~9の99万点台の伸び幅に比べて難易度数13~15の98万点台の伸び幅が小さすぎると感じたため、スコアを得られる点数を940,000点とし、99万点台の傾斜をやや緩めました*8

 

それでも980,000点と990,000点を境に傾きが倍になっているのですが。

とりあえずはこれで低難易度のスコア詰めと高難易度のスコア伸ばしがほぼ同様に評価されてきたかなと思います。1,000点スコアアップに対する伸び幅は下の表のようになりました。

難易度数 7 8 9 10 11 12 13 14 15
98万点台 0.42 0.48 0.54 0.60 0.66 0.72 0.78 0.84 0.90
99万点台 0.84 0.96 1.08 1.20 1.32 1.44 1.56 1.68 1.80

 

 

ただ、フルコンボもせっかくランプが分かれているので評価したいと思い、フルコンボに対しては値を7/6倍にして、これを現行のPhysical値として運用しています。

フルコンボボーナスにより「低難易度を詰めた方が有利」という傾向が若干復活したようにも思えますが、高難易度を繋ぐためのモチベーションにもなるので、今のところこれで満足できそうです。

 

そして、現状ではこのPhysical値に対して誤差の範囲に収まっているMental値を足し合わせて現状の達成度指標としています。

2022年7月22日のMirasharの計算結果

 

以上、私が迷走している様子をほぼ起こった順番で書きました。

 

もしプレイヤーが一般にこの指標を用いる場合、おそらくたいていの人はPhysical値を伸ばせば十分でしょう。そして、Physical値を伸ばすのに限界がきたころにはMental値を伸ばせるようになり、上手い人と物凄く上手い人はMental値より歴然と区別されるようになるのだろうなと妄想しております。

*1:2022年7月22日現在SOLARの未SSが15譜面、LUNARの未SSが7譜面と言って参考になるでしょうか。

*2:そしてこの仮定は各ノーツ処理が全く反復試行でないことからかなり無理があると思うのですが

*3:証明は読者の練習問題とするというやつです。いや、調べれば出てきます。

*4:fはもともとの意図はWS+YS \times 3+RS \times 4、つまり(ホールドノートを考えなければ)「失点をWHITE STARの数に換算した値」で、各プレイに対して「欠点」と呼ぶときはそれで計算していますが、これをスコアから計算するのに1ノーツのスコアを譜面ごとに調べるのは面倒なので、近似的に、譜面の各難易度数に対しuを定めてWHITE STAR1個当たりの減点ということにしています。この近似値自体は結構適当です

*5:難易度数が1上がるごとに理論値の取得は2倍難しくなるだろうという感じです。

*6:ただ桁数を見ただけです。

*7:最終的にはOverrapidのものに近いものができたと思います。

*8:このときS取れてない譜面ありましたし…。