2.0 KiB
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 범위로 정규화한 뒤, '상수' 가중치를 적용하여 최종 난이도를 도출합니다.