Skip to content

判定定义

本文档定义《Milthm》的普通判定等级、判定窗口与判定序列。

符号速查

符号名称含义
δ\delta击打偏差玩家操作与普通判定点之间的时间差。
J\mathcal{J}普通判定组普通判定等级集合,包含缺省 Miss 元素 m=m = \varnothing
JJ判定映射将击打偏差映射为普通判定等级的函数。
Σ\Sigma普通判定点序列谱面中的有序普通判定点序列。
NN普通判定物量本规范中定义为 Σ\Sigma 的长度,不包含闪电音符。
Δ\Delta击打偏差序列击打偏差的有序序列。
Ξ\Xi普通判定序列普通判定结果的有序序列。
Jf\mathcal{J}_f闪电判定组闪电音符使用的专用判定集合。
Φ\Phi闪电判定序列闪电判定结果的有序序列。
FsF_s闪电 Exact 数闪电 Exact 的累计数量。
FmF_m闪电 Miss 数闪电 Miss 的累计数量。
HfH_f闪电血量用于承受闪电 Miss 的专项储备值。
OfO_f闪电溢出当前闪电 Miss 中超出剩余闪电血量的伤害。

判定等级

《Milthm》设置以下普通判定等级。

判定等级名称击打偏差时间区间实际范围宽度
ssExact[35,35][-35, 35] ms7070 ms
ppPerfect[70,35)(35,70][-70, -35) \cup (35, 70] ms7070 ms
ggGreat[105,70)(70,105][-105, -70) \cup (70, 105] ms7070 ms
nnGood[140,105)(105,140][-140, -105) \cup (105, 140] ms7070 ms
bbBad[155,140)(140,155][-155, -140) \cup (140, 155] ms3030 ms
mmMiss\varnothing不适用

判定术语

普通音符 指雨露、雨丝与雨滴。普通音符产生普通判定。

普通判定 是普通音符产生的判定结果。普通判定构成序列 Ξ\Xi,并用于 ScoreV3、AccV2、普通连击、All Perfect 与 All Combo 条件。

闪电音符产生 闪电判定。闪电判定构成独立的序列 Φ\Phi,不进入 Ξ\Xi,也不计入普通判定物量 NN

普通判定点 是用于判定玩家特定普通操作的基准时刻。

击打偏差 是玩家操作与普通判定点之间的时间差,单位为毫秒。负值表示早于普通判定点,正值表示晚于普通判定点。

判定等级可以视为实数轴上若干连续时间区间的并集。对于判定等级 ll

l=i=1nIil = \bigcup_{i = 1}^{n} I_i

其中每个 IiI_iR\mathbb{R} 上的一段连续区间。

普通判定组 J\mathcal{J} 包含所有普通判定等级,并包含缺省元素 m=m = \varnothing,用于表示未产生有效判定。不同判定等级互不重叠,普通击打窗口的并集为连续区间。

判定映射

判定映射 J:RJJ: \mathbb{R} \to \mathcal{J} 定义如下:

J(δ)={j,jJ(δj),m,otherwise.J(\delta) = \begin{cases} j, & \exists j \in \mathcal{J} \left(\delta \in j\right), \\ m, & \text{otherwise.} \end{cases}

判定序列

设普通判定点序列为:

Σ={σ1,σ2,,σN}\Sigma = \{\sigma_1, \sigma_2, \cdots, \sigma_N\}

其中 Σ\Sigma 为有限、单调不减序列。本文档中,普通判定物量 NN 定义为该序列的长度,不包含闪电音符。

击打偏差序列为:

Δ={δ1,δ2,,δN}\Delta = \{\delta_1, \delta_2, \cdots, \delta_N\}

普通判定序列为:

Ξ={ξ1,ξ2,,ξN},ξi=J(δi)\Xi = \{\xi_1, \xi_2, \cdots, \xi_N\}, \qquad \xi_i = J(\delta_i)

闪电统计

闪电音符使用专用统计判定组:

Jf={fs,fm}\mathcal{J}_f = \{f_s, f_m\}

其中 fsf_s 表示闪电 Exact,fmf_m 表示闪电 Miss。

设闪电判定序列为:

Φ={ϕ1,ϕ2,,ϕM},ϕkJf\Phi = \{\phi_1, \phi_2, \cdots, \phi_M\}, \qquad \phi_k \in \mathcal{J}_f

闪电统计使用以下状态变量。

符号名称含义初始值
FsF_s闪电 Exact 数闪电 Exact 的累计数量。00
FmF_m闪电 Miss 数闪电 Miss 的累计数量。00
HfH_f闪电血量用于承受闪电 Miss 伤害的专项储备值。256256
OfO_f闪电溢出当前闪电 Miss 中,闪电血量耗尽后剩余的溢出伤害。00

谱面开始时:

Fs=0,Fm=0,Hf=256F_s = 0, \qquad F_m = 0, \qquad H_f = 256

闪电血量上限为 256256。普通 Exact 与 Perfect 判定会回复闪电血量:

Hf{min(Hf+2,256),ξi=s,min(Hf+1,256),ξi=p,Hf,其他。H_f \leftarrow \begin{cases} \min(H_f + 2, 256), & \xi_i = s, \\ \min(H_f + 1, 256), & \xi_i = p, \\ H_f, & \text{其他。} \end{cases}

闪电 Exact 不回复闪电血量。对每一次闪电判定:

fs:FsFs+1,fm:FmFm+1.\begin{aligned} f_s &: F_s \leftarrow F_s + 1, \\ f_m &: F_m \leftarrow F_m + 1. \end{aligned}

每次闪电 Miss 造成 6464 点闪电血量伤害。设 HfH_f^- 为承受伤害前的闪电血量,则当前闪电 Miss 的溢出伤害为:

Of=max(64Hf,0)O_f = \max(64 - H_f^-, 0)

承受伤害后的闪电血量为:

Hfmax(Hf64,0)H_f \leftarrow \max(H_f^- - 64, 0)

Of>0O_f > 0,溢出伤害会作用于 ScoreV3 的连击分状态,并可能降低最终分数。见 计分 V3

闪电判定只计入闪电专项计数器,不加入普通判定序列 Ξ\Xi

闪电判定、闪电血量与闪电溢出不影响 All Perfect 或 All Combo 的达成条件。这些条件只根据普通判定计数器判断。

当闪电音符与普通音符同时判定时,闪电音符在普通音符之后判定。如果雨丝已经处于激活状态,闪电判定不会使已激活的雨丝断开。