오디오 기술 / 오디오 해설

리듬게임 싱크 보정, 평균과 중앙값으로 읽는 입력 오차

같은 박을 반복해 누른 기록이 대부분 조금 늦고 한 번 크게 늦었다면, 두 현상을 나눠 읽어야 한다. 가상 입력 일곱 개를 평균과 중앙값으로 요약하고 45ms를 뺀 뒤에도 남는 흔들림을 같은 축에서 확인한다.

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

기사 요약

  • 타격 오차의 측정 기준과 사람·장치가 섞인 조건을 적는다.
  • 가상 표본의 평균 61ms·중앙값 45ms를 검산한다.
  • 잔여 e−c와 분포 범위를 함께 읽고 조건별로 재시험한다.
연습 모드 실제 개발 화면. 들리는 리듬과 입력을 연결하는 장면의 사례다.

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

입력 안내와 퍼펙트 효과를 관찰하는 실제 연습 화면이다. 반복 입력을 기록할 상황의 예로 사용하고 수치 계산은 아래 가상 표본에서 수행한다.

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

계속 조금 늦는 입력과 한 번 크게 늦는 입력

연습 화면에는 반복할 목표와 입력 결과가 보인다. 실제 보정 시험을 설계한다면 같은 패턴·출력·입력 방식에서 반복 기록을 얻고, 어느 시점과 비교한 오차인지 먼저 적는다. 이 글의 일곱 값은 계산을 설명하기 위해 만든 가상 표본이다.

보정은 분포 전체를 앞뒤로 옮기는 조작이다. 같은 양을 빼도 회차 사이의 간격은 남는다. 분포의 중심과 개별 입력의 흩어짐을 같은 축에서 살펴보면 한 값으로 조정할 부분과 추가 조사할 부분이 드러난다.

무엇이 섞인 측정인지 정한다

반복 타격에는 소리·화면 단서, 사람의 예측, 입력 장치와 소프트웨어 전달이 함께 들어간다. 리듬을 예상해 누르는 과제는 신호 이후 반응하는 과제와 측정 정의가 다르다. 오차를 곧 장치 지연이나 반응시간으로 이름 붙이기 전에 과제를 적는다.

목표와 입력을 같은 시간 기준으로 바꾸고 e=입력−목표로 정한다. getOutputTimestamp는 출력 프레임의 오디오/performance 시각 대응에 사용한다. 물리 출력 지연을 얻는 시험에는 별도 센서와 시작·끝 사건의 정의를 둔다.

관련 원자료: MDN · getOutputTimestamp() ↗

가상 일곱 회차와 45ms 이동

가상 일곱 회차와 45ms 이동
회차원래 오차(ms)잔여(ms)
141−4
243−2
344−1
4450
5461
6483
7160115
DJMAX RESPECT V의 PC판 화면. 중앙 레인으로 노트가 내려오며 아래쪽에 판정 위치가 있다. 음악 영상과 입력 정보가 화면의 영역을 나눠 쓴다.

DJMAX RESPECT V · 공식 PC판 화면

판정선과 입력 결과 표시를 보여 주는 화면이다. 보정 UI·타임스탬프 로그·기기 지연 계측은 각 자료에서 별도로 확인한다.

이미지 출처: NEOWIZ / Steam · 제공 페이지 ↗ · 원본 ↗

평균 61ms와 중앙값 45ms를 검산한다

41·43·44·45·46·48·160ms의 합계는 427ms, 평균은 61ms다. 정렬한 일곱 값의 가운데인 네 번째 값은 45ms다.160ms를 포함한 분포에서는 평균과 중앙값이 다른 위치를 나타낸다.

NIST는 위치 대표값을 분포 형태와 극단값의 영향에 따라 설명한다. 여기서는 두 대표값을 후보로 비교하고,160ms가 기록된 순간의 부하·입력·조건 변경을 확인할 항목으로 둔다. 값을 제외할 기준과 이유는 계산 전에 정의해 남긴다.

관련 원자료: NIST · Measures of Location ↗

같은 축에서 보는 45ms 보정 전후

같은 축에서 보는 45ms 보정 전후. 일곱 가상 오차를 모두 45ms 이동했다. 원래 평균 61ms·중앙값 45ms, 보정 뒤 평균 16ms·중앙값 0ms다.

편집부 작성 도표 · 일곱 가상 오차를 모두 45ms 이동했다. 원래 평균 61ms·중앙값 45ms, 보정 뒤 평균 16ms·중앙값 0ms다.

가로축: 목표 대비 오차(ms), 위아래 축 공통. 두 묶음은 보정 전·후이며 원 하나는 한 가상 입력이다. 가까운 점은 세로로 나눴다.

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

도표의 값과 읽는 순서
  1. 원래 41·43·44·45·46·48·160ms
  2. 잔여−4·−2·−1·0·1·3·115ms
  3. 범위 119ms는 유지

보정 부호를 정하고 같은 축에 옮긴다

이 예제의 규약은 잔여 오차 r=e−c다. c=45ms를 적용하면 −4·−2·−1·0·1·3·115ms가 된다.45ms였던 입력은 0이 되고 160ms였던 입력은 115ms로 남는다.

원래 범위 160−41=119ms와 잔여 범위 115−(−4)=119ms는 같다. 고정 이동은 위치를 바꿨다. 게임 설정에서 목표 시각을 옮기는 방식은 부호 정의가 다를 수 있어, 알려진 이른/늦은 입력으로 실제 변화 방향을 대조한다.

큰 잔여 오차의 원인을 기록으로 조사한다

115ms가 남았다는 값만으로 특정 원인을 정하지 않는다. 사건 시각, 프레임 지연, 단서 노출과 출력 조건의 변화 기록을 함께 읽는다. 같은 축의 보정 전후 그림은 무엇이 이동했고 무엇이 남았는지 보여 준다.

유선·기기 스피커·무선 출력, 브라우저와 부하 조건을 나누어 새 기록을 모은다. 개인별 요약과 개별 점, 표본 수를 같이 제시하고 한 조건에서 고른 값이 다른 조건에서도 맞는지 다시 확인한다.

중심이 비슷해도 흔들림이 다른 두 조건

중심이 비슷해도 흔들림이 다른 두 조건. 조건 A/B의 합성 점 자료로 위치와 산포를 나눈다. 특정 출력 장치의 우열을 측정한 자료와 구분한다.

편집부 작성 도표 · 조건 A/B의 합성 점 자료로 위치와 산포를 나눈다. 특정 출력 장치의 우열을 측정한 자료와 구분한다.

가로축: 입력 오차(ms), 축 범위 동일. 점 하나=가상 회차.

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

도표의 값과 읽는 순서
  1. A:36·38·40·42·44ms, 중앙값 40ms·범위 8ms
  2. B:0·20·40·60·80ms, 중앙값 40ms·범위 80ms

기본값과 재시험 경로를 함께 제공한다

운영 UI에는 현재 값과 단위, 변화 방향, 기본값 복귀를 제공할 수 있다. 시험에는 단서 종류·장치·회차·빌드·날짜·보정값을 남긴다. 숫자 변경과 실제 입력 과제를 같은 조건에서 비교한다.

일곱 가상 표본은 대표값과 부호를 익히는 예다. 제품의 안정적인 보정값과 필요한 반복 수는 대상 환경에서 확인한다. 계산 대조, 주관 입력 시험과 물리 계측 결과를 각각의 기록으로 관리한다.

보정 기록의 측정 정의

보정 기록의 측정 정의
항목적을 내용
목표 사건음악 파일/출력 기준 중 선택한 시점
입력 사건정규화한 이벤트와 시계
단서청각·시각·둘 다·예측 과제
환경기기·브라우저·입력/출력·부하
계산e=입력−목표, r=e−c, 단위ms
검토표본 수·전체 점·대표값·산포·제외 이유

출처·확인 범위

2026.10.17 NIST의 평균·중앙값과 극단값 설명, getOutputTimestamp의 반환 대상과 단위를 확인했다. 일곱 값·45ms 이동은 자체 학습 예제다. 실제 사람·장치 자료, 기기별 권장 보정과 표본 수는 별도 측정 과제다.

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

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