k•KINDNICK김광진 · 포트폴리오
← 전체 작업
소프트웨어 / KINDNICK / Streamingle

Virtual DMX · 가상 조명

구현
구현한 기능

음악·영상 분석을 편집 가능한 Unity 조명 Timeline으로 바꾸는 가상 조명 도구를 개발했습니다. 빔·레이저 표현과 타이밍·캐릭터 수광 조절을 만들었습니다.

내가 한 일

음악 분석 연동·Timeline 생성·가상 빔/레이저·보정·배포 도구 개발

  • 분석 결과를 검사하고 조명별 Timeline을 생성하도록 만들었습니다.
  • 박자·시작 시각과 캐릭터의 얼굴·몸에 닿는 빛을 조절하게 했습니다.
  • 가상 빔·레이저와 제작·재생 환경의 배포 검사를 개발했습니다.
기술과 문제 해결 과정구현 방법 · 문제 해결 사례 2개 · 시험 조건

작업 배경

자동 분석의 박자 판단이 모호하거나 빔이 캐릭터를 과하게 밝히는 문제를 제작자가 조절할 수 있어야 했고, 제작 PC와 재생 Player의 의존성도 나눠야 했습니다.

구현한 내용

  1. 01

    로컬 음악 분석 결과를 음원 해시·길이·스키마로 검사하고 fixture별 Timeline cue를 생성했습니다.

  2. 02

    템포 배수·마디 첫 박·시간 오프셋을 원본 분석과 분리된 에셋에서 조절하도록 만들었습니다.

  3. 03

    NiloToon의 선택적 화면 마스크로 빔·고보·레이저의 얼굴·몸 수광률을 따로 조절했습니다.

  4. 04

    조명 저작에 필요한 Python·ffmpeg·Demucs와, 이미 생성한 Timeline을 재생하는 Player 요구사항을 분리했습니다.

  5. 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
작업 구분
구현