🎧 고급 사운드 제어하기 (좌/우 오디오 이동)¶
이 튜토리얼에서는 소리가 왼쪽 → 오른쪽 → 중앙 으로 자연스럽게 이동하는
“공간 오디오 이동 효과(Panning Effect)” 를 만드는 방법을 배웁니다.
VSP에서는 오디오의 Balance(좌우 위치) 값을 제어함으로써
이러한 효과를 매우 간단하게 구현할 수 있습니다.
여기서는 특히 중요한 개념인:
- “~초 동안 진행됩니다”는 블로킹이 아니다
- 순차 실행을 위해서는 “특정 시간만큼 대기합니다” 액션이 반드시 필요하다
라는 점을 명확하게 설명합니다.
1️⃣ 사운드 가져오기¶
- 왼쪽 패널 → 사운드(Sound) 탭
- 가져오기(Import) 클릭
- mp3 파일 선택
- 목록에 사운드가 추가됩니다.
2️⃣ 타임라인에 사운드 배치하기¶
- mp3 파일을 드래그
- 오디오 트랙(Audio Track) 위에 배치
배치된 순간부터 스크립트로 제어할 수 있습니다.
3️⃣ Balance(좌우 위치) 이해하기¶
Balance 값은 다음과 같은 의미를 갖습니다:
- -1.0 → 완전 왼쪽 (Left)
- ** 0.0 → 중앙 (Center)**
- +1.0 → 완전 오른쪽 (Right)

타임라인에서 오디오 블록을 더블클릭하면 L/R 개별 볼륨 조절은 가능하지만
Balance(좌우 위치)는 반드시 스크립트로 제어해야 합니다.
⚠ 매우 중요한 개념¶
“~초 동안 진행됩니다”는 블로킹이 아님¶
예시:
Balance 를 [1] 만큼 대입합니다. [3초 동안 진행됩니다.]
→ 값은 3초 동안 0 → 1로 부드럽게 이동하지만
→ 스크립트 실행 자체는 멈추지 않고 다음 액션을 즉시 실행합니다.
따라서 아래처럼 코드를 배치하면 의도한 순서가 보장되지 않습니다:
(잘못된 예)
Balance 1 로 3초 이동
Balance 0 으로 1초 이동
→ 두 설정이 충돌하여 원하는 결과가 나오지 않음
✔ 순차 제어를 반드시 안정적으로 만들려면¶
- Balance 보간
- 특정 시간만큼 대기
이 두 개를 항상 세트로 구성해야 합니다.
4️⃣ 사운드 이동 스크립트 만들기¶
좌 → 우 → 중앙 이동 흐름 구현
목표:
1) 처음 즉시 왼쪽(-1)
2) 2초 동안 오른쪽(+1)으로 이동
3) 1초 동안 다시 중앙(0)으로 이동
📌 정확한 스크립트 구성¶
✔ 1단계: 왼쪽으로 즉시 이동¶
Balance 를 [-1] 만큼 대입합니다. [0초 동안 진행됩니다.]
✔ 2단계: 오른쪽으로 2초 동안 이동¶
Balance 를 [1] 만큼 대입합니다. [2초 동안 진행됩니다.]
✔ 3단계: 2초 대기¶
특정 시간만큼 [2초] 동안 대기합니다.
✔ 4단계: 중앙으로 1초 동안 이동¶
Balance 를 [0] 만큼 대입합니다. [1초 동안 진행됩니다.]
✔ 5단계: 1초 대기¶
특정 시간만큼 [1초] 동안 대기합니다.
이렇게 해야 정확한 시간 순서대로 값이 적용됩니다.
📌 왜 이렇게 구성해야 하나?¶
Balance의 “N초 동안 진행됩니다”는 Lerp(보간) 기능일 뿐
스크립트의 흐름을 멈추지 않습니다.
따라서:
1) Balance 변화 명령
2) 동일한 시간만큼의 대기
이 두 과정이 반드시 1:1 대응해야 합니다.
5️⃣ 스크립트 예시 이미지¶

6️⃣ 변수 기반 사운드 이동 (고급)¶
변수를 활용하면 더 다이나믹한 사운드 이동이 가능합니다.
예)
1) Lerp ← 0
2) Lerp ← 1 을 3초 동안 대입
3) Balance ← Lerp
4) 3초 동안 대기
장점:
- 여러 위치에서 재사용 가능
- 어떤 장치 축(X0)과도 쉽게 연동
- UI 슬라이더와 조합 가능
- 미니게임/연출에 흔히 사용
7️⃣ UI 슬라이더로 Balance 실시간 제어하기¶
실제 제작자들은 이 기능을 자주 활용합니다:
- ASMR 좌/우 테스트 UI
- VR에서 사운드 방향 보정 메뉴
- 효과음 테스트 화면
- X0 기반 디버그 패널
- 실시간 오디오 조절형 미니게임
이번 챕터에서는 슬라이더를 움직이기만 해도 소리가 즉시 이동하는 인터랙티브 UI를 만듭니다.
7-1️⃣ 슬라이더 UI 배치하기¶
- UI 탭 → 새 UI
- 왼쪽 컨트롤 목록에서 Slider 드래그
-
속성 패널에서 값 범위 설정
-
Minimum = -1
- Maximum = 1
- Value = 0 (중앙)

7-2️⃣ 슬라이더 값 변경 시 실행될 스크립트 만들기¶
- Slider 선택
- 오른쪽 → Script → ValueChanged → 편집
- 새로운 임시 스크립트가 열립니다.
7-3️⃣ 스크립트 구성¶
슬라이더의 값이 곧바로 Balance가 되도록 설정합니다.
✔ 액션 구성¶
Balance ← UI → Slider → Value

이 한 액션만으로 완료.
Tick Script 없이도 즉시 적용됩니다.
7-4️⃣ 결과¶
- 슬라이더를 왼쪽으로 → 소리 왼쪽(L)
- 슬라이더를 오른쪽으로 → 소리 오른쪽(R)
- 중앙 → Center
즉, 실시간 인터랙티브 사운드 방향 제어 UI가 완성됩니다.
8️⃣ 전체 흐름 요약¶
✔ Balance(좌우 위치) 제어
✔ “~초 동안 진행됩니다”는 블로킹이 아님
✔ 순차 실행에는 “특정 시간 대기” 필요
✔ 좌→우→중앙 이동 효과
✔ 변수 기반 사운드 이동
✔ UI 슬라이더로 실시간 오디오 방향 조절
✨ 다음 튜토리얼¶
다음은 자막 감지(Subtitle Detection) 기능입니다.
👉 자막 감지