Files
fumen-measure-analyze/.gemini/factorization-method.md
2026-04-20 00:21:53 +09:00

2.0 KiB

TJA Factorization 방법론

이 문서는 Raw TJA 데이터를 5대 난이도 요소(Factor)로 변환하는 표준 공정을 정의합니다.

1. 전처리: 절대 타임라인 생성 (Timeline Mapping)

TJA의 상대적 마디/박자 구조를 초 단위의 절대 시간축으로 선형화합니다.

  • 상태 추적: #BPMCHANGE, #MEASURE, #DELAY를 실시간 반영하여 각 노트의 발생 시간(T_n)을 계산합니다.
  • 이벤트 객체화: 각 노트를 위치(T_n), 타입(Don/Ka), 현재 속도(BPM/SV)를 포함한 객체로 변환합니다.

2. 요소별 특징 추출 (Feature Extraction)

A. 물리적 밀도 (Physical)

  • Peak NPS: 2초 단위의 슬라이딩 윈도우를 사용하여 가장 밀도가 높은 구간의 초당 노트 수를 측정합니다.
  • 지수화: Window_Note_Count / Window_Size.

B. 지구력 (Stamina)

  • Stream 정의: 노트 간 간격이 1/16박자(약 150-200ms) 이하로 지속되는 구간을 하나의 스트림으로 봅니다.
  • 지표: 가장 긴 스트림의 노트 개수(S_{max})와 곡 전체 대비 스트림 비중(R_{stream})을 결합합니다.

C. 배치 복잡도 (Technical)

  • Color Transition: 인접한 두 노트의 색상이 다를 때(d↔k)를 전환으로 카운트합니다.
  • 지표: Total_Transitions / Total_Notes. 0.5에 가까울수록 복잡도가 높습니다.

D. 리듬 복잡도 (Accuracy)

  • Subdivision Analysis: 각 마디가 몇 등분 되었는지 분석하여 12, 24, 48분 음표 등 비정형 박자의 사용 빈도를 측정합니다.
  • 지표: Non_Standard_Notes / Total_Notes.

E. 가독성 및 기믹 (Reading)

  • Velocity Flux: #BPMCHANGE 횟수와 #SCROLL 변화량의 절대값 합산으로 시각적 혼란도를 측정합니다.

3. 정규화 및 통합 (Normalization)

각 지표의 원시 수치를 0.0 ~ 1.0 범위로 정규화한 뒤, '상수' 가중치를 적용하여 최종 난이도를 도출합니다.