スコア計算式について
本ツールは、アイマス ミリシタ攻略まとめwikiの検証式 (Ver 1.2.500 : 2017/12/14 改訂版)を下に、スコア計算を行っています。検証を行ってくれている方々に感謝しております。
基本スコア
ミリシタでは、楽曲レベルと総アピール値が同じならば、楽曲種を問わず必ず同じスコアが出ます
(ただし、スコアアップ・コンボボーナススキルが未発動かつ、オートライブのようにAll Perfect、ロング・ムーブノーツを規定長さで全て取得することが前提です)
このスコアを基本スコア( \(basal\,score\) )とします
基本スコアは、以下の式で表されます
$$
\scriptsize
\begin{eqnarray}
basal \ score = appeal \ value × \frac{(33 + difficulty \ Lv)}{20}
\end{eqnarray}
$$
$$
\tiny
{appeal \ value :総アピール値, \quad difficulty \ Lv:楽曲Lv}
$$
基礎パラメータ
基本スコアから単ノーツあたりのスコアを求めるために、2つの基礎パラメータ( \(s\), \(c\) )を導入します
\(s\) :ノーツ種, ロング/ムーブノーツの継続, 精度判定, スコアアップスキルに関わるパラメータ
\(c\) :継続コンボ数, コンボボーナススキルに関わるパラメータです。
\(s\), \(c\)は、以下の式で表されます。
※\(s\) 算出時に利用する重み付きノーツ数( \(N_w\) )については次項
$$\scriptsize
\begin{eqnarray}
s = 0.7 × \frac{basal \ score}{N_w}
\end{eqnarray}
$$
$$\scriptsize
\begin{eqnarray}
c = 0.3 × \frac{basal \ score}{2N-66}
\end{eqnarray}
$$
$$\scriptsize
{N_w :重み付きノーツ数, \quad N:総ノーツ数}
$$
ノーツ倍率と重み付きノーツ数
ミリシタでは、ノーツの種類によって、タップ時のスコア計算にかかる倍率が変わります
ノーツ種ごとの倍率は以下の通りです
ノーツ種 | ノーツ倍率 \(w\) |
小タップ,小ロング/ムーブ(始点/終点),フリック | 1 |
大タップ,大ロング(始点/終点),大ロング終点フリック | 2 |
スペシャルアピールノーツ | 10 |
また、\(s\) 計算時に利用する重み付きノーツ数(\(N_w\))は、ノーツ倍率和(\(W\))とロングノーツの総ホールド時間(\(T\))を用いて以下のように表されます。 $$\scriptsize \begin{eqnarray} W =\sum_{ i = 1 }^{ N } w_i \end{eqnarray} $$ $$\scriptsize \begin{eqnarray} T =\sum_{ i = 1 }^{ L } t_i \end{eqnarray} $$ $$\scriptsize \begin{eqnarray} N_w =W+2T \end{eqnarray} $$ $$\tiny N :総ノーツ数 $$ $$\tiny w_i:i番目ノーツのノーツ倍率$$ $$\tiny L:総ロング/ムーブノーツ数$$ $$\tiny t_i:i番目ロング/ムーブノーツのホールド時間 [sec]$$
コンボ倍率
ミリシタでは、コンボ継続数(≠割合)によって、タップ時のスコア計算にコンボ倍率がかかってきます
継続数ごとの倍率は以下の通りです
コンボ数 | コンボ倍率 \(k\) |
1-9 | 0 |
10-29 | 1.0 |
30-49 | 1.3 |
50-69 | 1.6 |
70-99 | 1.8 |
100- | 2.0 |
ここで、総ノーツ数( \(N\) ) ≧ 99の場合、コンボ倍率の総和( \(N_c\) )は、
$$\scriptsize
\begin{eqnarray}
N_c =\sum_{ i = 1 }^{ N } k_i = 2N - \sum_{ i = 1 }^{ 99 } (2 - k_i) = 2N-66
\end{eqnarray}
$$
となります
判定倍率
タップ精度によって、タップ時のスコア計算にコンボ倍率がかかってきます
精度判定ごとの判定倍率は以下のとおりです
精度判定 | 判定倍率 \(a\) |
Perfect | 1.0 |
Great | 0.8 |
Good | 0.5 |
Fast/Slow | 0.2 |
Miss | 0 |
スキル倍率
スコアアップ特技の倍率( \(score\,skill\) )、コンボボーナス特技の倍率( \(combo \, skill\) )は、それぞれ発動している中で最も倍率が高いものが反映されます
ここで「スコアがX%アップ」が反映される場合、
$$\scriptsize
\begin{eqnarray}
\scriptsize{score \ skill = 1 + \frac{X}{100}}
\end{eqnarray}
$$
となりますが「コンボボーナスがY%アップ」が反映される場合、
$$\scriptsize
\begin{eqnarray}
\scriptsize{combo \ skill = 1 + \frac{3Y}{100}}
\end{eqnarray}
$$
のように内部計算でボーナス値が3倍補正されます (Ver 1.2.500 でのコンボボーナス強化)
ノーツあたりのスコア計算
以上6項目をふまえて、一つのタップノーツあたりのスコアは以下のように定められます
$$\scriptsize
\begin{eqnarray}
tap \ score_i = s \cdot w_i \cdot a_i \cdot score \ skill_i \ + \ c \cdot k_i \cdot combo \ skill_i
\end{eqnarray}
$$
$$\tiny w_i :i番目ノーツのノーツ倍率$$
$$\tiny a_i:i番目ノーツの判定倍率$$
$$\tiny k_i:i番目ノーツのコンボ倍率$$
$$\tiny score \ skill_i:i番目ノーツにかかるスコアアップ特技の倍率$$
$$\tiny combo \ skill_i:i番目ノーツにかかるコンボボーナス特技の倍率$$
また、i番目ロング/ムーブノーツのホールド時のスコア計算は以下のように行われます
$$\scriptsize
hold \ score_i = 2s \cdot \sum_{ j = 1 }^{ Z } t_{i,j} \cdot LNscore \ skill_j
$$
$$\tiny{Z:i番目ロング/ムーブノーツのホールド中に切り替わる発動スキル倍率の種類}$$
$$\tiny{t_{i,j}:i番目ロング/ムーブノーツのホールド中j個目に発動したスキルの発動時間 \ [sec] \ \left( \sum_{ j = 1 }^{ Z } t_{i,j} = t_i \right)}$$
$$\tiny{LNscore \ skill_j:i番目ロング/ムーブノーツのホールド中j個目に発動したスキル倍率}$$
とくに、ホールド中のスコアアップ特技の倍率が一定の場合には
$$\scriptsize
hold \ score_i = 2s \cdot t_i \cdot LNscore \ skill_i
$$
$$\tiny{t_i:i番目ロング/ムーブノーツのホールド時間 [sec]}$$
$$\tiny{LNscore \ skill_i:i番目ロング/ムーブノーツのホールド中にかかるスコアアップ特技の倍率}$$
となります。
ここで、特技なし(特技倍率 = 1)・All Perfect(判定倍率 = 1) として、総ノーツにわたるスコア和を取ると、 $$\scriptsize \begin{eqnarray} total \ score &=& \sum_{ i = 1 }^{ N } tap \ score_i + \sum_{ i = 1 }^{ L } hold \ score_i\\[ 5pt ] &=& s \cdot \sum_{ i = 1 }^{ N } w_i + c \cdot \sum_{ i = 1 }^{ N } k_i + s \cdot \sum_{ i = 1 }^{ L } 2t_i \\[ 5pt ] &=& s \cdot \left(\sum_{ i = 1 }^{ N } w_i + \sum_{ i = 1 }^{ L } 2t_i\right) + c \cdot \sum_{ i = 1 }^{ N } k_i\\[ 5pt ] &=& 0.7 × \frac{basal \ score}{N_w} \cdot N_w + 0.3 × \frac{basal \ score}{2N-66} \cdot (2N-66)\\[ 5pt ] &=& basal \ score \end{eqnarray} $$ ※全てのiにおいて、\(\tiny a_i = 1,\, score skill_i = 1,\, combo \ skill_i = 1\)
このように、
総スコア = 基本スコアとなることが確かめられます。