LOOK 音符 - 观察音符
概述
LOOK 音符需要玩家看向指定方向的音符。除了点击外,还需要调整视角面向指定方向。
技术规格
| 属性 | 值 |
|---|---|
| 类型值 | 1 |
| ZNear | 0 |
| ZFar | 25 |
| Java 枚举 | NoteType.LOOK |
JSON 格式
{
"noteType": 1,
"beat": 4.0,
"pos": [0, 0, 0],
"scale": [1, 1, 1],
"rotation": [0, 0, 0],
"holdGroup": -1
}
字段说明
| 字段 | 类型 | 必需 | 说明 |
|---|---|---|---|
| noteType | int | 是 | 固定为 1 |
| beat | double | 是 | 音符出现的拍数位置 |
| pos | double[3] | 是 | [X, Y, Z] 坐标(数组格式) |
| scale | float[3] | 是 | [X, Y, Z] 缩放(数组格式) |
| rotation | float[3] | 是 | [X, Y, Z] 旋转角度(数组格式) |
| holdGroup | int | 是 | 固定为 -1(LOOK 不参与长押组) |
判定系统
判定窗口
| 判定类型 | 时间窗口 | 说明 |
|---|---|---|
| PERFECT | ±110ms | 完美命中 |
| FAST_GREAT | 110ms ~ 220ms | 偏快的大好 |
| LATE_GREAT | -220ms ~ -110ms | 偏慢的大好 |
| MISS | >220ms 或 <-220ms | 未命中 |
容差值
- 空间容差: 0.15(
TOLERATE_TAP_LOOK) - 判定逻辑: 同时检测视角方向和点击时机
判定逻辑
LOOK 音符的判定比 TAP 更复杂,需要同时满足两个条件:
- 视角方向判定: 玩家的视线方向必须指向音符位置
- 点击时机判定: 点击时间必须在判定窗口内
LOOK 链式判定
LOOK 音符支持链式判定(chain rescue):
- 如果当前帧已经有 LOOK 判定成功,后续的 LOOK 音符可以被"拯救"
- 这允许玩家在快速连续的 LOOK 音符中保持判定
使用示例
基本 LOOK 音符
{
"noteType": 1,
"beat": 4.0,
"pos": [0, 2, 0],
"scale": [1, 1, 1],
"rotation": [0, 0, 0],
"holdGroup": -1
}
多个连续 LOOK 音符
[
{
"noteType": 1,
"beat": 4.0,
"pos": [0, 2, 0],
"scale": [1, 1, 1],
"rotation": [0, 0, 0],
"holdGroup": -1
},
{
"noteType": 1,
"beat": 4.5,
"pos": [1, 2, 0],
"scale": [1, 1, 1],
"rotation": [0, 0, 0],
"holdGroup": -1
}
]
与 TAP 的区别
| 特性 | TAP | LOOK |
|---|---|---|
| 判定条件 | 仅点击时机 | 点击时机 + 视角方向 |
| 链式判定 | 不支持 | 支持(chain rescue) |
| 容差值 | 相同 (0.15) | 相同 (0.15) |
| 适用场景 | 基础节奏点 | 需要方向感的节奏点 |
注意事项
- LOOK 音符需要玩家主动调整视角,难度高于 TAP
- 链式判定可以提高连续 LOOK 音符的容错率
- 视角方向检测使用光线追踪,精度较高
- 音符位置会影响视角调整的难度