跳到主要内容

音符类型与判定

本文档详细介绍 RhythMC 中的音符类型和判定系统。

音符类型 (NoteType)

类型值名称ZNearZFar说明
0TAP025点击音符
1LOOK025观察音符
2HOLD125长押音符
3DODGE-225躲避音符

TAP - 点击音符

最基础的音符类型。玩家需要在音符到达判定线时进行点击操作。

LOOK - 观察音符

需要玩家看向指定方向的音符。除了点击外,还需要调整视角面向指定方向。

HOLD - 长押音符

需要按住一段时间的音符。特性:

  • 同一轨道上 holdGroup >= 0 的音符会被视为同一个长押
  • holdGroup 相同的音符必须按顺序连续按下
  • 判定从第一个音符开始,到最后一个音符结束

DODGE - 躲避音符

需要玩家进行躲避操作的音符。通常与实体或投射物配合使用。


判定系统

判定窗口

判定时间窗口
PERFECT±110ms
GREAT±220ms
MISS>220ms

容差值 (Tolerate)

音符类型容差值
TAP / LOOK0.15
HOLD0.15
DODGE0.1

判定结果

结果说明
PERFECT完美命中
FAST_GREAT偏快的大好
LATE_GREAT偏慢的大好
MISS未命中

长押组 (HoldGroup)

holdGroup 字段用于将多个 HOLD 类型(noteType=2)的音符连接为同一个长押。

  • -1: 该音符不参与任何长押组
  • >= 0: 长押组ID

重要holdGroup 仅对 HOLD 音符生效,其他类型音符的此字段会被忽略。

系统会根据 holdGroup 自动识别长押,并分配以下位置标记:

位置说明
START长押起始音符
MIDDLE长押中间音符
END长押结束音符
SOLO单独的长押音符(整首歌只有这一个HOLD)

使用示例

创建一个2拍的完整长押(从拍数4.0到6.0):

[
{
"noteType": 2,
"beat": 4.0,
"pos": [0, 0, 0],
"scale": [1, 1, 1],
"rotation": [0, 0, 0],
"holdGroup": 0
},
{
"noteType": 2,
"beat": 6.0,
"pos": [0, 0, 0],
"scale": [1, 1, 1],
"rotation": [0, 0, 0],
"holdGroup": 0
}
]

这两个 HOLD 音符在拍数 4.0 到 6.0 之间会被系统识别为同一个长押:

  • 第一个音符会被标记为 START
  • 第二个音符会被标记为 END

注意事项

  • 必须是 HOLD 类型(noteType=2)的音符才能形成长押
  • 相同 holdGroup 的音符必须在同一轨道上
  • 音符按拍数顺序连续排列