跳到主要内容

DODGE 音符 - 躲避音符

概述

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

技术规格

属性
类型值3
ZNear-2
ZFar25
Java 枚举NoteType.DODGE

JSON 格式

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

字段说明

字段类型必需说明
noteTypeint固定为 3
beatdouble音符出现的拍数位置
posdouble[3][X, Y, Z] 坐标(数组格式)
scalefloat[3][X, Y, Z] 缩放(数组格式)
rotationfloat[3][X, Y, Z] 旋转角度(数组格式)
holdGroupint固定为 -1(DODGE 不参与长押组)

判定系统

判定窗口

判定类型时间窗口说明
PERFECT±110ms成功躲避
MISS碰撞发生躲避失败

容差值

  • 空间容差: 0.1(TOLERATE_DODGE
  • 判定逻辑: 检测玩家是否与音符碰撞箱发生碰撞

判定逻辑

DODGE 音符的判定逻辑与 TAP/LOOK 完全相反:

  1. 碰撞检测: 检测玩家身体(头部或脚部)是否与音符碰撞箱相交
  2. 时间判定: 如果在判定窗口内没有碰撞,则判定为 PERFECT
  3. 失败条件: 如果发生碰撞,则等待音符过期后判定为 MISS

身体碰撞检测

检测逻辑:

  1. 将玩家位置转换到音符的局部空间
  2. 检查投影点是否在 2D 碰撞箱内(忽略 Z 轴深度)
  3. 使用音符的缩放和轨道的缩放计算碰撞箱大小

使用示例

基本 DODGE 音符

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

配合实体使用的 DODGE

{
"noteType": 3,
"beat": 8.0,
"pos": [0, 1, 5],
"scale": [2, 2, 2],
"rotation": [0, 0, 0],
"holdGroup": -1
}

这个音符表示玩家需要躲避一个从远处飞来的实体。

连续 DODGE 音符

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

与 TAP/LOOK 的区别

特性TAP/LOOKDODGE
操作类型主动点击/观看被动躲避
判定条件命中音符避免碰撞
容差值0.150.1
ZNear0-2
成功条件时间窗口内点击时间窗口内无碰撞

ZNear 和 ZFar 的含义

  • ZNear = -2: 音符在玩家身后 2 格开始可见(允许玩家看到后方的躲避音符)
  • ZFar = 25: 音符在玩家前方 25 格消失

注意事项

  1. DODGE 音符的成功条件是"不碰撞",而不是"点击"
  2. 检测的是玩家身体(头部和脚部)的碰撞,不仅仅是视线
  3. 如果发生碰撞,音符会在过期后自动判定为 MISS
  4. DODGE 音符通常需要配合视觉效果(如投射物动画)使用
  5. 容差值比 TAP/LOOK 更小(0.1 vs 0.15),判定更严格

相关文档