리듬 설계 / 리듬 해설

판정 범위 ±80ms, 경계와 노트 선택 규칙의 설계

목표 전후 80ms를 성공으로 정했다면 경계 입력은 어떻게 처리할까. 같은 입력이 두 노트의 창에 들어갈 때에는 어떤 대상을 먼저 고를까. 같은 시간 기준의 오차에서 출발해 경계·후보 선택·상태 확정을 하나의 예제로 연결한다.

글·편집 게임 제작 노트 · 자료 확인·보강 · 5분 읽기

기사 요약

  • ±80ms는 양쪽 경계를 포함한 전체 160ms의 예제 창이다.
  • 겹친 창에서 최근접과 선행 정책의 결과를 비교한다.
  • 입력 결과와 노트 상태를 나누고 시한 순서를 명시한다.
챕터 3 권투 배경의 실제 개발 화면. 다가오는 대상의 방향과 시점에 맞춰 받아치는 장면이다.

CAT BEAT : 비트를 깨워 · 개발 중 실제 화면

퍼펙트 글자와 좌우 표식을 구별할 수 있다. 표시를 읽는 위치와 밀리초 판정 명세는 본문에서 다른 자료로 설명한다.

이미지 출처: 오늘도 레벨업 · 제공 페이지 ↗ · 원본 ↗

목표 전후의 시간을 성공 범위로 정한다

CAT BEAT 권투의 발바닥 표식과 태고의 판정 위치는 어느 순간에 입력할지 읽는 단서다. 이 글은 표시를 관찰한 뒤 단일 탭의 판정 명세를 따로 작성한다. 예제의 허용 폭은 목표 전후 80ms이 며 양끝을 포함한다. 전체 구간의 폭은 160ms다.

입력과 목표를 같은 음악 시간으로 변환한 뒤 비교한다. 목표 10.000초와 입력 10.060초의 차이는+0.060초, 곧+60ms다. 늦은 입력을 양수, 이른 입력을 음수로 기록한다.

경계의 값과 놓침을 확정할 순서를 쓴다

성공 조건을 |e|≤80ms로 정하면 −81·+81ms는 범위 밖이고 −80·0·+80ms는 안이다. 내부 단위가 초라면 0.080과 비교한다. 계산 단위·저장 해상도·표시 반올림은 각각 명시한다.

늦은 경계도 포함하므로 목표 1.000초의 1.080초 입력은 유효하다. 놓침 확정은 그 경계를 지난 뒤 수행한다. 정수ms 명세에서는 1.081초가 한 예다. 같은 시각에 입력과 시한 검사가 있을 때의 순서도 계약에 둔다.

같은 음악 기준의 경계 시험

같은 음악 기준의 경계 시험
오차|e|≤80ms결과
−81ms불충족이른 입력 범위 밖
−80ms충족이른 경계 포함
0ms충족목표
+80ms충족늦은 경계 포함
+81ms불충족늦은 입력 범위 밖
태고의 달인 Rhythm Festival의 후대 플레이 화면. 빨강과 파랑 노트가 북의 면과 테에 대응하며 위쪽 레인의 판정 위치로 다가온다.

Taiko no Tatsujin: Rhythm Festival · 공식 PC판 화면

가로 레인·노트·판정 위치와 GOOD 표시를 관찰한다. 아래 겹침 정책은 이 사진에서 추출한 실제 규칙이 아닌 자체 비교 모형이다.

이미지 출처: Bandai Namco Entertainment / Steam · 제공 페이지 ↗ · 원본 ↗

±80ms와 전체 160ms를 같은 축에서 읽는다

±80ms와 전체 160ms를 같은 축에서 읽는다. 목표 10.000초의 가상 성공 창 9.920~10.080초. 닫힌 끝점도 성공에 포함한다.

편집부 작성 도표 · 목표 10.000초의 가상 성공 창 9.920~10.080초. 닫힌 끝점도 성공에 포함한다.

가로축: 목표 대비 오차(ms). 원=입력, 청록=성공, 적색=실패. 예제 목표 시각은 10초다.

작은 화면에서는 도표를 좌우로 밀어 볼 수 있다. 도표 크게 보기 ↗

도표의 값과 읽는 순서
  1. 10.060초 →+60ms, 성공
  2. −80ms와+80ms는 포함
  3. −81ms와+81ms는 범위 밖

겹친 두 창에서는 선택 정책이 결과를 바꾼다

같은 방향의 미처리 A=1.000초와 B=1.100초를 놓으면 창은 각각 0.920~1.080초,1.020~1.180초다. 겹침은 1.020~1.080초다.1.070초 입력은 A에+70ms, B에−30ms여서 두 후보에 들어간다.

최근접 정책은 B를, 선행 목표 정책은 A를 고른다. 이어 1.110초에 누르면 선행 정책에서는 B를 처리한다. 최근접 정책에서는 B가 이미 성공했고 A의 창이 닫혀 유효 후보가 없다. 같은 창에서도 입력 순서의 결과가 달라진다.

1.070초 입력이 두 노트의 후보가 되는 구간

1.070초 입력이 두 노트의 후보가 되는 구간. 동일 방향의 미처리 탭 두 개와 입력 1.070·1.110초의 가상 비교.

편집부 작성 도표 · 동일 방향의 미처리 탭 두 개와 입력 1.070·1.110초의 가상 비교.

가로축: 음악 시각(초). 두 행은 A·B의 성공 창이며 선은 입력 1.070초다. 후속 1.110초의 선택 결과는 설명과 표에서 읽는다.

작은 화면에서는 도표를 좌우로 밀어 볼 수 있다. 도표 크게 보기 ↗

도표의 값과 읽는 순서
  1. A창 0.920~1.080 / B창 1.020~1.180
  2. 겹침 1.020~1.080
  3. 최근접:B→유효 후보 없음 / 선행:A→B

한 입력의 결과와 노트 상태를 구분한다

대상 후보 만들기→정책에 따른 선택→시간 등급 판정→노트 상태 확정으로 기록을 남긴다. 대기·성공·놓침은 노트 상태다. 잘못된 방향과 너무 이른 입력은 입력 결과로 따로 기록할 수 있다.

이 글의 계약은 물리 입력 하나가 단일 탭 하나를 처리하는 모형이다. 유지와 해제, 동시 입력 묶음은 필요한 사건과 상태를 더 정의한다. 이미 성공한 노트와 같은 요청ID는 다시 결과를 늘리지 않도록 점검한다.

정책별 사건 기록

정책별 사건 기록
사건최근접 후보 정책선행 후보 정책
1.070초 입력B성공, A대기A성공, B대기
1.080초 경계A의 늦은 경계까지 유효A는 이미 성공
경계를 지난 시한 검사A놓침 확정B창 유지
1.110초 입력성공한 B와 놓친 A 제외B성공 확정

공개 구현에서는 버전과 적용 지점을 읽는다

osu!의 HitWindows.ResultFor는 절댓값과 WindowFor의 경계 포함 비교를 사용한다. 공식 Notelock 문서는 앞 객체와 겹친 창이 입력 선택에 미치는 영향을 설명하며 stable과lazer의 차이도 다룬다.

경계 비교 코드와 후보 선택 문서는 서로 다른 층의 근거다. 본문의 최근접/선행 비교는 자체 명세 예로 두고, 제품을 분석할 때에는 버전·규칙·해당 코드 경로를 함께 기록한다.

관련 원자료: ppy/osu · HitWindows.cs · ResultFor / WindowFor ↗ · osu! · Notelock, stable/lazer 설명 ↗

계산 검사 뒤 기기 조건에서 판정을 조정한다

계산 검사는 ±80/81ms, 겹친 두 입력, 방향 오류, 중복 요청과 늦은 시한을 대조한다. 임의의 작은 허용 오차를 덧붙이면 정한 창이 달라지므로 해상도와 표현 단위에 맞춘 정책을 쓴다.

판정 폭을 선택할 때에는 음원 원점·출력 조건·입력 시각을 먼저 맞추고 대상 플레이어의 오차와 놓침을 살핀다. 예제 80ms는 설명을 위한 값이며, 실제 체감은 장치·채보·플레이 목표와 함께 평가한다.

출처·확인 범위

2026.10.17 master 경로의 ResultFor·WindowFor 주석과 공식 Notelock의 원인·lazer 비교를 확인했다. ±80ms와 A/B 처리 순서는 편집부의 동일 방향 단일 탭 모형이다. 사진의 실제 게임 판정 수치, 특정 릴리스 전체 코드 경로와 기기 체감은 별도 확인 범위다.

화면·사진의 권리는 각 권리자에게 있다. 작품의 조작과 특징을 설명하기 위해 게재했으며, 버전과 제공처는 각 캡션에 표기했다.

수정 기록: 2026-10-17 사례·계산 예제·도표와 원자료 설명 보강. 오류 제보: 편집 이메일