スコア計算 仕様解説
← 計算ページへ戻る本ページはスコア計算、特に判定縮小スキルの内部ロジックを 図で解説するものです。数値例は楽曲「MONSTER GENERATiON」(428ノート / 104秒) を基に記述しています。 有志による計測・推定値を含むため、ゲーム内の挙動と完全に一致することを保証するものではありません。
1. スコア計算の全体像
スコアは大きく分けて チーム属性値 → 1ノーツ素点 → ライト倍率 → 縮小加算 → バッジ の順に 計算されます。属性値段階でアシスト (×1.2) を適用し、per-note 単位で floor することでゲーム内挙動と揃えます。 縮小スキルは経路の一部として「発動中ノーツの追加スコア」を別途加算します。
2. 判定縮小スキルとは
判定縮小スキルは ノーツ数(count)ごとに 確率(per)% で発動し、 秒数(value)だけ持続する間、叩いたノーツを 倍率(rate、Lv5 で 1.6)でスコア加算するスキルです。
下図はパラメータ例 ノーツ数=20 / 確率=40% / 秒数=4秒 / 倍率=1.6 の発動タイムラインです。縦点線ごとに発動判定が行われ、コインが緑 なら発動(橙の塗りで秒数ぶんカバー)、 灰なら不発を表します。先頭の灰色領域は §3 で説明する 先頭除外 です。
2-1. インタラクティブに試す
ノーツ数 / 確率 / 秒数 のスライダー、 「+カード追加」 ボタンで縮小スキル枚数の変更、 「別の試行」 ボタンでシード変更ができます。 発動回数・カバー時間がデッキ構成でどう変わるか確認できます(実ゲームと同じ発動判定 + キューイング仕様を疑似的に再現、決定論シード付き)。
3. 先頭除外ロジック
判定縮小スキルは曲の最初のほうでは効果対象外になります。具体的には excludeHead = max(notes_20 のノート数, デッキ内縮小スキルの count の最小値) までのノートが 縮小倍率 rate の適用対象外 です。ライト点灯前の演出区間 (notes_20) と、最速で発動しうるタイミング (minCount) の大きい方が採用されます。
- 先頭除外は スコア寄与の計算(§5 の eligibleBaseScore)にのみ効き、UI 表示の「スキル最大発動回数」は
notesCount全体で計算します。 - 縮小スキルが複数枚あるときは
countが最小のカードが基準になります。
4. カバー率の合算と 100% キャップ
各縮小スキルの 最大縮小時間 floor(eligibleCount / count) × value を単純加算し、曲尺 (songDuration) で割ったものがカバー率です。 キューイング仕様より区間は重ならないため単純合算で等価になり、100% を超えた分は切り捨てられます。
- 表示用の raw カバー率は 100% 超の値をそのまま表示(超過分は「計算対象外」と注記)。
- 内部計算用は
min(raw, 1.0)で 100% キャップ。 - 期待カバー率は
Σ (numActivations × value × per/100) / songDurationの単純加算版。
5. 縮小スコア加算式
縮小スキルが曲全体に与える追加スコアは、以下の式で算出されます。 rate − 1.0 は「通常 1.0 倍を超える追加倍率」を意味し、 Lv5(rate=1.6)なら 0.6 倍分の加算となります。
- eligibleBaseScore: 先頭除外後のノートのアシスト適用済み素点合計(
note.group ≠ notes_20のみ対象)。 - rate − 1.0: Lv1 (1.2) なら 0.2、Lv5 (1.6) なら 0.6。
- coverageRate: §4 の内部カバー率(100% キャップ後)。期待値計算では期待カバー率を使用。
- 複数縮小スキルが重なっても倍率は
rateのまま(重ねがけなし)。
6. モンテカルロ分布のイメージ
スコア計算ページでは上記の期待値だけでなく、縮小スキルの確率発動を考慮した モンテカルロシミュレーション(既定 100 試行)も実行しています。 試行ごとに発動の当たり外れが変わるため、スコアには揺らぎが生じます。 以下は縮小スキル 1 枚構成を 1000 試行した疑似分布(シード固定)です。赤線は平均値、左右の広がりは確率発動による揺らぎを示します。
- 最小スコア = 縮小が一度も発動しないケース(§5 の coverageRate=0)。
- 最大スコア ≒ 全発動ケース(表示 raw カバー率が 100% 超なら内部は 100% キャップ)。
- mean / stddev / p90 / mcMin / mcMax を本体ページでは表示しています。