スコア計算 仕様解説

← 計算ページへ戻る

本ページは当サイトのスコア計算に実装されているロジック全体を、計算の流れ順に図で解説するものです。 数値例はすべて下記のデモ編成 × 楽曲「MONSTER GENERATiON」(428ノーツ / 104秒) をビルド時に実際の計算エンジンへ通して生成しています。 有志による計測・推定値を含むため、ゲーム内の挙動と完全に一致することを保証するものではありません。

0. スコア計算の全体像とデモ編成

リザルトのスコアは チーム属性値 を土台に、ノーツ 1 個ずつの素点を積み、 そこへスコアアップスキル判定縮小スキルの上乗せ、最後にバッジ・ブローチの最終補正が掛かって決まります。以下の 6 段階を章ごとに拡大して見ていきます。

チーム属性値衣装6枠 + ブローチ+ センタースキル1ノーツ素点属性値 × ノートレート× ライト倍率スコアアップ加算発動ごとに固定値を加算判定縮小加算発動中のノーツを1.6倍などに増幅最終補正バッジ倍率+ ブローチ直接加算リザルト分布理論値・期待値MC シミュレーション

デモ編成(全章共通の数値例)

衣装属性スキル (Lv5)
センター四葉環「記念日2024」URMelody判定縮小(Perfect) 20ノーツ毎 / 40% / 4秒 / ×1.6
メンバー和泉一織「10th Anniversary」URMelodyスコアアップ(コンボ) 13ノーツ毎 / 49% / +4,618
メンバー九条天「7th Anniversary」URShoutスコアアップ(タイマー) 5秒毎 / 57% / +5,674
メンバー七瀬陸「リスポ2」URShout判定縮小(Perfect) 23ノーツ毎 / 39% / 5秒 / ×1.6
メンバー六弥ナギ「10th Anniversary」URMelodyスコアアップ(Perfect) 13ノーツ毎 / 40% / +5,846
フレンド亥清悠「7th Anniversary」URMelodyスコアアップ(コンボ) 13ノーツ毎 / 48% / +4,304

条件: 全員特訓済み / スキル Lv5 / イベント特効なし / ラビットノート・共通ブローチなし / スコアアップアシスト OFF / バッジ 16%(スコア計算ページの既定値)。

チーム属性値衣装6枠 + ブローチ+ センタースキル1ノーツ素点属性値 × ノートレート× ライト倍率スコアアップ加算発動ごとに固定値を加算判定縮小加算発動中のノーツを1.6倍などに増幅最終補正バッジ倍率+ ブローチ直接加算リザルト分布理論値・期待値MC シミュレーション

1. チーム属性値

まず編成 6 枠それぞれの Shout / Beat / Melody を合算してチーム属性値を作ります。 衣装 1 枠ぶんの値は「基礎値 × イベント特効」にラビットノートとブローチを足したもの。 合算後、センターとフレンドのセンタースキル(レアリティ別: UR +10% / SSR +7%)が 自属性と同じ属性へ上乗せされます。

衣装の基礎値特訓済み: *_max未特訓: 自属性のみsp_time×sp_value を減算× イベント特効特効倍率を乗算round (四捨五入)+ 加算アイテムラビットノート(キャラ初出スロット)ブローチ (UR のみ)6 枠を合算センター/メンバー/フレンド+ センタースキル合算値 × 増加率(UR 10% / SSR 7%)センター+フレンド合算後に floor⌊ ⌋= 小数点以下切り捨てが起きる場所衣装 1 枠ごとに左から順に計算し、最後にチーム全体へセンタースキルを適用します

デモ編成の実数値がこちら。センター(四葉環)とフレンド(亥清悠)がどちらも Melody UR のため、 Melody にはセンタースキルが 2 回分(+4,105 と +4,106)効いています。 スロット 1 / 4 の固有ブローチ +1,600 も Melody に乗っています。

衣装素値 (特効込み)ブローチセンタースキルフレンドスキルShoutShout 衣装素値 (特効込み): 33,48633,486BeatBeat 衣装素値 (特効込み): 25,64625,646MelodyMelody 衣装素値 (特効込み): 39,456Melody ブローチ: 1,600Melody センタースキル: 4,105Melody フレンドスキル: 4,10649,267
実装詳細(式・丸めタイミング)

実装: computeTeam() (src/lib/score/teamBuilder.ts)

  • 未特訓の衣装は自属性のみ sp_time × sp_value*_max から減算(他属性・特訓済みは max のまま)
  • イベント特効は枠ごとに Math.round(基礎値 × 特効倍率)(四捨五入)
  • ラビットノートは特効倍率を掛けないフラット加算。同キャラ複数積みでもキャラ初出スロット(0-4、フレンド除外)に 1 回だけ帰属
  • 固有ブローチは UR のみ装着可。条件(グループ縛り・全属性編成・同一衣装上限など)は resolveDeckBroachs() で判定。共通ブローチの装着数は容量ルール(非 UR=0 / 固有持ち UR=1 / それ以外 UR=2、ADR 0039)に従う
  • センタースキルはセンター分とフレンド分の増加率を合算してから 1 回だけ floor: floor(合算属性値 × (センター率 + フレンド率) / 100)(ADR 0040 / 0041)
チーム属性値衣装6枠 + ブローチ+ センタースキル1ノーツ素点属性値 × ノートレート× ライト倍率スコアアップ加算発動ごとに固定値を加算判定縮小加算発動中のノーツを1.6倍などに増幅最終補正バッジ倍率+ ブローチ直接加算リザルト分布理論値・期待値MC シミュレーション

2. 1ノーツの素点とライト倍率

ノーツを 1 個叩くたびに「そのノーツの属性のチーム属性値」から素点が計算されます。 レートは白ノーツ 2.5% / 色ノーツ 3.0%。さらにライブが進んでライトが増えるほどライト倍率が掛かり、サビ光では最大 3.0 倍になります。

×1.0×1.5×2.0×2.6×3.0序盤20: ×1×1序盤2021ノーツライト2: ×1×1ライト214ノーツライト3: ×1.1×1.1ライト346ノーツライト4: ×1.2×1.2ライト446ノーツライト5: ×1.3×1.3ライト549ノーツライト6: ×1.5×1.5ライト695ノーツサビ光5: ×2.6×2.6サビ光50ノーツサビ光6: ×3×3サビ光6157ノーツライブが進む(ライトが増える)ほど 1 ノーツの価値が上がり、サビ光では最大 3.0 倍になります

デモ編成でサビ光 (×3.0) 区間の Melody 色ノーツを 1 個叩いた場合の計算がこちら。 乗算のたびに小数点以下が切り捨てられる(⌊ ⌋)のがポイントです。

例: サビ光6 区間の Melody 色ノーツ 1 個のスコア(⌊ ⌋ = 直前の乗算結果を切り捨て)チーム属性値 (Melody)49,267× ノートレート 3.0%1,478× ライト倍率 3.04,434このノーツの素点4,434⌊ ⌋⌊ ⌋

これを全 428 ノーツぶん合算したものが、スキルが一切発動しなかった場合の素点合計762,905 です。

ノーツ素点: +762,905ノーツ素点+762,905スコアアップ: +286,771スコアアップ+286,771判定縮小: +294,534判定縮小+294,534最終補正: +215,073最終補正+215,073ここまで 762,905
実装詳細(式・丸めタイミング)

実装: calcNoteScore() (src/lib/score/simulation.ts)

  • perNoteBase = floor(appeal × NOTE_RATE)score = floor(perNoteBase × LIGHT_MULTIPLIER) の 2 段階 floor
  • NOTE_RATE = white 0.025 / color 0.030LIGHT_MULTIPLIER = 1.0〜3.0(8 グループ)
  • スコアアップアシスト ON のときは属性値段階appeal = floor(チーム属性値 × 1.2) を適用(最終スコアへの乗算ではない)
  • ノーツの並びはグループ(序盤20 → ライト2〜6 → サビ光)の順を保ち、グループ内のみシャッフルして近似(flattenNotes()
チーム属性値衣装6枠 + ブローチ+ センタースキル1ノーツ素点属性値 × ノートレート× ライト倍率スコアアップ加算発動ごとに固定値を加算判定縮小加算発動中のノーツを1.6倍などに増幅最終補正バッジ倍率+ ブローチ直接加算リザルト分布理論値・期待値MC シミュレーション

3. スコアアップスキル

スコアアップスキルは発動するたびに固定値をそのまま加算するスキルです。 発動タイミングの数え方で 2 種類あります:ノート型(コンボ / Perfect)は「◯ノーツごと」、タイマー型は「◯秒ごと」に 発動判定が走り、確率(per)を引けば +value 点です。

不発不発不発発動 +4,618発動 +4,618発動 +4,618不発不発不発発動 +4,618発動 +4,618不発不発発動 +4,618発動 +4,618不発発動 +4,618不発発動 +4,618不発不発不発不発不発発動 +4,618発動 +4,618不発不発不発不発不発発動 +4,618ノート型: 和泉一織 (13ノーツ毎 / 49% / +4,618)発動 12/32 回 → +55,416不発発動 +5,674不発不発発動 +5,674発動 +5,674不発不発発動 +5,674発動 +5,674発動 +5,674不発不発発動 +5,674発動 +5,674不発発動 +5,674発動 +5,674不発不発タイマー型: 九条天 (5秒毎 / 57% / +5,674)発動 10/20 回 → +56,7400s20s40s60s80s100s●=発動(value を即座に加算) / 灰=不発。ノート型はノーツ数、タイマー型は経過秒数で判定タイミングが決まります

デモ編成にはスコアアップが 4 枚います。期待値ベースの寄与は次のとおりで、合計 +286,771 です。

衣装タイプ最大発動回数期待値寄与理論最大寄与
和泉一織ノート型 (13ノーツ毎)32 回+74,498+152,038
九条天タイマー型 (5秒毎)20 回+67,270+118,019
六弥ナギノート型 (13ノーツ毎)32 回+76,987+192,468
亥清悠ノート型 (13ノーツ毎)32 回+68,016+141,700
ノーツ素点: +762,905ノーツ素点+762,905スコアアップ: +286,771スコアアップ+286,771判定縮小: +294,534判定縮小+294,534最終補正: +215,073最終補正+215,073ここまで 1,049,676
実装詳細(式・丸めタイミング)

実装: calcExpectedScore() / runOnce() (src/lib/score/simulation.ts)

  • 期待値: floor((denom / count) × per/100 × value)。分母 denom はノート型が総ノーツ数、タイマー型が曲の秒数。衣装単位で 1 回だけ floor(spec §6-6 H38 準拠)
  • 理論最大: floor((denom / count) × value)(全発動)
  • MC シミュレーションでは判定ごとに乱数ロール(rng.next()×100 < per)で発動を決める
  • 判定強化(BAD→Perfect など)・判定ガード・スコアダウンはスコアに影響しないため計算対象外(ADR 0037)
チーム属性値衣装6枠 + ブローチ+ センタースキル1ノーツ素点属性値 × ノートレート× ライト倍率スコアアップ加算発動ごとに固定値を加算判定縮小加算発動中のノーツを1.6倍などに増幅最終補正バッジ倍率+ ブローチ直接加算リザルト分布理論値・期待値MC シミュレーション

4. 判定縮小スキル

判定縮小スキルは「◯ノーツごと(タイマー型は◯秒ごと)」に確率 per% で発動し、持続◯秒のあいだに叩いたノーツの素点を倍率(Lv5 で 1.6 倍)に増幅するスキルです。 固定値加算のスコアアップと違い、素点そのものを底上げするためチーム属性値が高いほど効きます。

下図はデモ編成の縮小 2 枚(四葉環 / 七瀬陸)の発動タイムラインです。 縦点線ごとに発動判定が行われ、コインがなら発動 (橙の塗りで持続秒数ぶんカバー)、灰なら不発。 先頭の灰色領域は後述の先頭除外です。

先頭除外 21ノート12衣装1: 発動区間 101-117衣装1: 発動区間 121-137衣装1: 発動区間 141-157衣装2: 発動区間 159-179衣装1: 発動区間 221-237衣装1: 発動区間 241-257衣装2: 発動区間 297-317衣装1: 発動区間 317-333衣装1: 発動区間 333-349衣装2: 発動区間 349-369衣装1: 発動区間 369-385衣装1: 発動区間 401-417衣装2: 発動区間 417-428衣装1: 不発 (note=41)衣装2: 不発 (note=44)衣装1: 不発 (note=61)衣装2: 不発 (note=67)衣装1: 不発 (note=81)衣装2: 不発 (note=90)衣装1: 発動 (note=101)衣装2: 不発 (note=113)衣装1: 発動 (note=121)衣装2: 不発 (note=136)衣装1: 発動 (note=141)衣装2: 発動 (note=159)衣装1: 不発 (note=161)衣装1: 不発 (note=181)衣装2: 不発 (note=182)衣装1: 不発 (note=201)衣装2: 不発 (note=205)衣装1: 発動 (note=221)衣装2: 不発 (note=228)衣装1: 発動 (note=241)衣装2: 不発 (note=251)衣装1: 不発 (note=261)衣装2: 不発 (note=274)衣装1: 不発 (note=281)衣装2: 発動 (note=297)衣装1: 発動 (note=317)衣装2: 不発 (note=320)衣装1: 発動 (note=333)衣装1: 不発 (note=341)衣装2: 発動 (note=349)衣装1: 発動 (note=369)衣装2: 不発 (note=366)衣装1: 不発 (note=381)衣装2: 不発 (note=389)衣装1: 発動 (note=401)衣装2: 発動 (note=417)衣装1: 不発 (note=421)0s10s20s30s40s50s60s70s80s90s100s衣装1 (20ノーツ/40%/4秒): 9/20回 (36秒) / 衣装2 (23ノーツ/39%/5秒): 4/17回 (20秒) / 合計カバー 56秒 (53.8%)
キューイング仕様: 複数の縮小スキルが同時刻に重複発動することはなく、 先行スキルが終わってから後続スキルが連続発動します。そのためカバー時間は時間軸上で重ならず単純加算でき(曲全体を超えた分のみ切り捨て)、後述の 100% キャップの根拠になります。

4-1. インタラクティブに試す

スライダーでノーツ数 / 確率 / 秒数を変え、「+衣装追加」で縮小の枚数を増やし、 「別の試行」でシードを変えられます。発動回数・カバー時間がどう変わるか確認してみてください。

4-2. 先頭除外

曲の最初のほうは縮小の効果対象外です。除外幅は「序盤演出区間(最初の約 20 ノーツ)」と 「編成内でいちばん早く発動できる縮小の発動位置」の大きい方。 デモ編成では max(21, 20) = 21 ノーツが対象外です。

ケース A: このデモ編成(序盤演出区間 21 の方が長い)0714212834序盤演出区間21最速発動位置20先頭除外 = max(21, 20) = 21
ケース B: 縮小が 七瀬陸 のみの場合(最速発動位置 23 の方が遅い)0715223037序盤演出区間21最速発動位置23先頭除外 = max(21, 23) = 23

4-3. カバー率と 100% キャップ

各縮小スキルの「最大カバー秒数」を単純合算して曲の長さで割ったものがカバー率です。 デモ編成は 四葉環 81秒 + 七瀬陸 88秒 =169秒 で曲の長さ 104秒 を大きく超えるため、100% でキャップされます(超過分は無駄になる = 縮小の積みすぎは効率が落ちる、の根拠)。 さらに実際には発動確率 per(40% / 39%)があるため、 発動ムラを織り込んだ期待カバー率は 66.7% になります(下段バー)。

全発動できた場合のカバー時間(曲の長さ = 104秒 = 100%)四葉環 (20ノーツ毎 × 4秒) (実効部 81秒)七瀬陸 (23ノーツ毎 × 5秒) (実効部 23秒)七瀬陸 (23ノーツ毎 × 5秒) (超過部 = 切り捨て)100%→0s20s40s60s80s100s120s140s160s合算 169秒 / 104秒 = 162.5% → min(_, 100%) = 100.0%四葉環 (20ノーツ毎 × 4秒) = 81秒七瀬陸 (23ノーツ毎 × 5秒) = 88秒発動確率 per を織り込んだ期待カバー四葉環 期待 (実効部 32秒)七瀬陸 期待 (実効部 34秒)期待 66秒 → 期待カバー率 66.7%(実効 98.9秒ベース)

4-4. スコアへの上乗せ式

縮小の上乗せは「対象ノーツの素点合計 × 追加倍率 × カバー率」。倍率 1.6 のうち通常分 1.0 を除いた0.6 倍ぶんが上乗せです。ここで使うカバー率には 2 種類あります:

縮小スキルが曲全体に上乗せするスコア(⌊ ⌋ = 最後に 1 回だけ切り捨て)対象素点合計× (倍率 − 1.0) ×カバー率対象素点合計先頭除外の後にあるノーツの素点をすべて合算(実装名: eligibleBaseScore)倍率 − 1.0縮小倍率から通常分 1.0 を引いた「追加分」の倍率Lv1=0.2 / Lv5=0.6カバー率縮小が効いている時間の割合全発動時 = 100% でキャップ期待値 = 発動確率込みの期待カバー率
ノーツ素点: +762,905ノーツ素点+762,905スコアアップ: +286,771スコアアップ+286,771判定縮小: +294,534判定縮小+294,534最終補正: +215,073最終補正+215,073ここまで 1,344,210

4-5. スコアアタックでの位置づけ — 縮小 vs スコアアップ

スコアアタックの基本戦略: 判定縮小はスコアアップより 1 枚あたりの得点寄与が大きく、 チーム属性値が高いほど寄与が伸びます。まず縮小でカバー率 100% 以上を確保し (発動ムラに備えて余裕を持たせる)、その上でスコアアップスキルが全発動(神発動)するのを狙うのが基本です。

デモ編成で 1 枚あたりの寄与を比べると、縮小はスコアアップの約 2 倍。デッキ合計では スコアアップ 4 枚 vs 縮小 2 枚でほぼ同じ額になりますが、枚数あたりの効率は縮小が上です。

1 枚あたりのスキル得点寄与(デモ編成)四葉環理論最大 +361,474(単独想定)期待値 +142,804縮小期待 +142,804 / 最大 +361,474和泉一織理論最大 +152,038(単独想定)期待値 +74,498スコアアップ期待 +74,498 / 最大 +152,038九条天理論最大 +118,019(単独想定)期待値 +67,270スコアアップ期待 +67,270 / 最大 +118,019七瀬陸理論最大 +392,712(単独想定)期待値 +151,729縮小期待 +151,729 / 最大 +392,712六弥ナギ理論最大 +192,468(単独想定)期待値 +76,987スコアアップ期待 +76,987 / 最大 +192,468亥清悠理論最大 +141,700(単独想定)期待値 +68,016スコアアップ期待 +68,016 / 最大 +141,700濃色 = 期待値寄与淡色 = 理論最大寄与(各スキル単独想定)

さらにスコアアップは固定値加算のため属性値が伸びても寄与が変わらないのに対し、 縮小は素点の底上げのため属性値に比例して伸びます。イベント特効などで チーム属性値が跳ね上がるスコアアタック編成ほど、縮小の相対価値が上がります。

チーム属性値が伸びたときのスキル期待値寄与×1.0×1.5×2.0×2.5×3.0チーム属性値の倍率(イベント特効などによる増加の目安)判定縮小 +883,836スコアアップ +286,771
実装詳細(式・丸めタイミング)

実装: calcShrinkCoverage() / runOnce() (src/lib/score/simulation.ts)、computeShrinkExclusion() (src/lib/score/shrinkExclusion.ts)

  • 先頭除外 excludeHead = max(notes_20 サイズ, デッキ内縮小 count の最小値)。タイマー型はノート換算 floor((count / songDuration) × notesCount) で比較
  • カード別カバー秒 floor((対象ノーツ数 / count) × value)(タイマー型は分母 songDuration)。衣装単位で 1 回だけ floor(spec §6-6 H39)
  • 実効秒数 effectiveSeconds = songDuration − 先頭除外の秒換算。内部カバー率は effectiveSeconds で 100% キャップ、表示用 raw は超過可
  • 期待値スコアは (rateᵢ − 1) をスキルごとに加重した期待カバー率を使用し、構造的到達可能秒数でキャップ(ADR 0036)
  • 上乗せの基準スコア(eligibleBaseScore)は excluded ノーツを除いた素点合計。アシスト ON 時は floor(eligibleBaseScore / 1.2) でアシスト分を剥離してから縮小倍率を掛ける(spec §6-5 BN22)
  • 複数縮小の同時発動なし(キューイング)。発動中の倍率は「いずれか 1 つの rate」で重ねがけなし
  • UI の「スキル最大発動回数」表示はノーツ全体(タイマー型は曲全体)基準で、先頭除外はスコア寄与側にのみ効く
チーム属性値衣装6枠 + ブローチ+ センタースキル1ノーツ素点属性値 × ノートレート× ライト倍率スコアアップ加算発動ごとに固定値を加算判定縮小加算発動中のノーツを1.6倍などに増幅最終補正バッジ倍率+ ブローチ直接加算リザルト分布理論値・期待値MC シミュレーション

5. 最終補正(バッジ・ブローチ)

ライブ終了時スコア(素点 + スコアアップ + 縮小)に、最後の 2 つの補正が掛かります。SCOREUP バッジはスコア全体への倍率(例: 16% なら ×1.16)、ブローチのスコア直接加算(種類 9 の固有ブローチ)は倍率の外側でのフラット加算です。 このデモ編成に種類 9 のブローチはないため +0 ですが、持っている編成では最後に足されます。

デモ編成の期待値経路での実数値(バッジ 16% / ブローチ直接加算はこの編成では 0)ライブ終了時スコア1,344,210× バッジ倍率 (1 + 16%)1,559,283+ ブローチ直接加算+0最終リザルト1,559,283⌊ ⌋
ノーツ素点: +762,905ノーツ素点+762,905スコアアップ: +286,771スコアアップ+286,771判定縮小: +294,534判定縮小+294,534最終補正: +215,073最終補正+215,073最終 1,559,283
実装詳細(式・丸めタイミング)

実装: applyFinalBonus() (src/lib/score/simulation.ts)

  • finalScore = floor(liveEndScore × (1 + badge% / 100)) + broachScoreBonus
  • スコアアップアシスト(+20%)は §2 のとおり属性値段階で適用済みのため、ここでは乗算しない
  • ブローチのスコア直接加算(種類 9)はバッジ倍率の外側(倍率が掛からない)
チーム属性値衣装6枠 + ブローチ+ センタースキル1ノーツ素点属性値 × ノートレート× ライト倍率スコアアップ加算発動ごとに固定値を加算判定縮小加算発動中のノーツを1.6倍などに増幅最終補正バッジ倍率+ ブローチ直接加算リザルト分布理論値・期待値MC シミュレーション

6. 理論値・期待値・シミュレーション

スキルは確率発動なので、同じ編成でもスコアは揺らぎます。スコア計算ページでは 3 種類の数値を出しています:理論最低(全スキル不発)、理論最高(全スキル発動)、期待値(発動確率で加重した平均的な見込み)。さらにモンテカルロ(MC)シミュレーションで発動の当たり外れを乱数で再現し、分布として観測します。

MC 分布の範囲 (1,277,124 〜 1,741,763)理論最低全スキル不発884,969期待値確率で加重1,559,283MC 平均p90=1,630,6461,531,124理論最高全スキル発動2,097,827グレーの帯(点線)= MC シミュレーションで実際に観測されたスコアの範囲

デモ編成を 1000 試行した実際の分布がこちら。平均 1,531,124 / 標準偏差 75,680 / 上位 10% ライン (p90) 1,630,646 でした。

1,277,124〜1,283,319: 1回1,283,319〜1,289,514: 0回1,289,514〜1,295,710: 0回1,295,710〜1,301,905: 1回1,301,905〜1,308,100: 0回1,308,100〜1,314,295: 0回1,314,295〜1,320,490: 1回1,320,490〜1,326,685: 1回1,326,685〜1,332,881: 1回1,332,881〜1,339,076: 1回1,339,076〜1,345,271: 2回1,345,271〜1,351,466: 0回1,351,466〜1,357,661: 2回1,357,661〜1,363,857: 1回1,363,857〜1,370,052: 2回1,370,052〜1,376,247: 6回1,376,247〜1,382,442: 2回1,382,442〜1,388,637: 7回1,388,637〜1,394,833: 9回1,394,833〜1,401,028: 8回1,401,028〜1,407,223: 11回1,407,223〜1,413,418: 15回1,413,418〜1,419,613: 7回1,419,613〜1,425,808: 15回1,425,808〜1,432,004: 8回1,432,004〜1,438,199: 13回1,438,199〜1,444,394: 19回1,444,394〜1,450,589: 14回1,450,589〜1,456,784: 25回1,456,784〜1,462,980: 24回1,462,980〜1,469,175: 22回1,469,175〜1,475,370: 24回1,475,370〜1,481,565: 26回1,481,565〜1,487,760: 17回1,487,760〜1,493,956: 28回1,493,956〜1,500,151: 28回1,500,151〜1,506,346: 24回1,506,346〜1,512,541: 36回1,512,541〜1,518,736: 24回1,518,736〜1,524,931: 34回1,524,931〜1,531,127: 32回1,531,127〜1,537,322: 32回1,537,322〜1,543,517: 29回1,543,517〜1,549,712: 27回1,549,712〜1,555,907: 32回1,555,907〜1,562,103: 39回1,562,103〜1,568,298: 21回1,568,298〜1,574,493: 33回1,574,493〜1,580,688: 32回1,580,688〜1,586,883: 23回1,586,883〜1,593,079: 34回1,593,079〜1,599,274: 23回1,599,274〜1,605,469: 21回1,605,469〜1,611,664: 22回1,611,664〜1,617,859: 15回1,617,859〜1,624,054: 11回1,624,054〜1,630,250: 13回1,630,250〜1,636,445: 15回1,636,445〜1,642,640: 11回1,642,640〜1,648,835: 17回1,648,835〜1,655,030: 10回1,655,030〜1,661,226: 8回1,661,226〜1,667,421: 5回1,667,421〜1,673,616: 10回1,673,616〜1,679,811: 7回1,679,811〜1,686,006: 6回1,686,006〜1,692,202: 3回1,692,202〜1,698,397: 2回1,698,397〜1,704,592: 4回1,704,592〜1,710,787: 1回1,710,787〜1,716,982: 1回1,716,982〜1,723,177: 0回1,723,177〜1,729,373: 0回1,729,373〜1,735,568: 0回1,735,568〜1,741,763: 2回平均1,277,1241,370,0521,462,9801,555,9071,648,8351,741,763010202939スコア (MC 1000 試行)度数

6-1. 全発動モード

スコア計算ページの「縮小全発動」「スコアアップ全発動」チェックを ON にすると、 MC 試行内で該当スキルの確率ロールを常に成功扱いにできます。確率の揺らぎがどれだけスコアに 効いているかを、OFF/ON の比較で分離して確認できます。

実装詳細(MC の内部構造)

実装: runSimulation() / runOnce() (src/lib/score/simulation.ts)

  • 乱数は sfc32(seed 指定で決定論化、ADR 0038)。既定 100 試行、このページのデモは seed 固定 1000 試行
  • 1 試行 = タイマー型スキルの事前ロール → ノーツ順に「縮小キュー処理 → 発動判定 → 素点 + 縮小上乗せ + スコアアップ加算」→ 最終補正
  • 期待値は理論最高を超えないよう同段階合計でクランプ(縮小の秒→ノート離散化誤差対策、ADR 0036)
  • 統計値: mean / median / stddev / p90 / mcMin / mcMax と衣装別の平均発動回数・平均寄与

関連ページ