작업 배경
자동 분석의 박자 판단이 모호하거나 빔이 캐릭터를 과하게 밝히는 문제를 제작자가 조절할 수 있어야 했고, 제작 PC와 재생 Player의 의존성도 나눠야 했습니다.
구현한 내용
- 01
로컬 음악 분석 결과를 음원 해시·길이·스키마로 검사하고 fixture별 Timeline cue를 생성했습니다.
- 02
템포 배수·마디 첫 박·시간 오프셋을 원본 분석과 분리된 에셋에서 조절하도록 만들었습니다.
- 03
NiloToon의 선택적 화면 마스크로 빔·고보·레이저의 얼굴·몸 수광률을 따로 조절했습니다.
- 04
조명 저작에 필요한 Python·ffmpeg·Demucs와, 이미 생성한 Timeline을 재생하는 Player 요구사항을 분리했습니다.
- 05
배포 검사에서 필수 shader·LFS 포인터·로컬 전용 에셋·외부 fixture 의존성을 점검하도록 구성했습니다.
UnityTimelineGDTF음악 분석Shader가상 조명
01
BPM이 맞아도 첫 박이 어긋나는 자동 분석 교정
- 문제
- 템포 추정기들이 합의해도 마디의 첫 박 후보 점수 차이가 작으면 조명 cue가 잘못된 박에 놓일 수 있습니다.
- 처리 방법
- 낮은 신뢰도의 후보를 정답으로 고정하지 않고 원본 분석을 보존한 타이밍 override를 만들었습니다. 음원 해시·길이가 맞을 때만 phase·half/double-time·오프셋을 적용해 Timeline을 다시 생성합니다.
- 결과·범위
- 코드와 사용 문서에서 원본을 덮어쓰지 않는 교정 경로를 확인했습니다. 문서의 한 곡은 downbeat confidence 0.061로 기록되어 있으며 수동 선택도 최종 청취 검수 대상으로 남겼습니다.
02
빔·레이저가 아바타 얼굴을 과하게 덮는 문제 처리
- 문제
- 투명 additive 빔과 고보·레이저가 캐릭터 픽셀에도 같은 세기로 더해져 아바타가 무대에서 떠 보였습니다.
- 처리 방법
- 캐릭터 셰이더를 직접 고치는 대신 선택적 NiloToon prepass 마스크를 읽어 얼굴·몸과 효과 종류별 수광률을 나눴습니다. 마스크가 없는 프로젝트에서는 해당 감쇠를 우회합니다.
- 결과·범위
- 리그 루트의 제어 컴포넌트가 하위 빔·레이저에 값을 전달하는 구현을 확인했습니다. 외부 NiloToon 패키지를 필수 의존성으로 추가하지 않았습니다.
구현과 검증 범위구현
실행·측정 결과는 각 사례에 적힌 당시 기록과 조건을 따릅니다. 시험 조건과 적용 범위
가상 렌더링용 조명 시스템입니다. 실물 DMX 콘솔 출력 경력이나 모든 공연의 자동 미술 완성을 뜻하지 않습니다.
- 활동
- KINDNICK / Streamingle
- 작업 구분
- 구현