PART 3 · 강의 3/3

오디오 & 이벤트 트랙

시퀀서에서 사운드 재생과 Blueprint/C++ 이벤트 호출을 시간 기반으로 제어합니다

01

Audio Track

시퀀서에서 사운드 재생하기

UMovieSceneAudioTrack은 Sound Wave 또는 Sound Cue를 타임라인에 배치하여 정확한 시간에 재생합니다. 볼륨, 피치를 키프레임할 수 있습니다.

오디오 트랙 추가 방법

  1. 시퀀서 좌측 패널에서 + Track → Audio Track
  2. 타임라인에서 우클릭 → Sound Wave 또는 Sound Cue 선택
  3. 섹션 드래그로 시작 시간 조절
  4. 섹션 속성에서 Volume, Pitch Multiplier 키프레임

오디오 섹션 프로퍼티

프로퍼티설명키프레임
Sound 재생할 Sound Wave / Sound Cue X
Volume Multiplier 볼륨 배율 (0~1+) O
Pitch Multiplier 피치 배율 O
Start Offset 사운드 시작 오프셋 (초) X
Attenuation Settings 공간 감쇠 설정 (3D 사운드) X
Suppress Subtitles 자막 숨김 X
마스터 트랙 vs 액터 트랙 오디오

마스터 트랙의 오디오는 2D 사운드(비공간적)로 재생됩니다. 액터 트랙에 추가한 오디오는 해당 액터의 위치에서 3D 공간 사운드로 재생됩니다. BGM은 마스터 트랙, 발자국이나 대사는 액터 트랙에 배치합니다.

02

Event Track

타임라인에서 코드 실행하기

UMovieSceneEventTrack은 특정 시간에 Blueprint 함수나 C++ 함수를 호출할 수 있는 강력한 트랙입니다. 컷씬 중 게임플레이 로직을 트리거하는 데 핵심적입니다.

이벤트 유형

Trigger (트리거)

특정 시간에 한 번 호출됩니다. 폭발 스폰, 파티클 재생, UI 표시 등 일회성 이벤트에 적합합니다.

Repeater (반복)

섹션 범위 내에서 매 프레임 호출됩니다. 지속적인 효과(매 프레임 위치 업데이트 등)에 사용합니다.

이벤트 함수 설정

Blueprint - 이벤트 함수 정의
// 1. Level Blueprint 또는 Actor BP에서 Custom Event 생성 // 2. 함수 이름을 "OnCutsceneExplosion" 등으로 설정 // 3. 시퀀서 Event 키에서 해당 함수를 연결 // Event Track 키 속성: // - Event: Director Blueprint에서 호출할 함수 선택 // - Director Blueprint: 시퀀스 에셋에 내장된 BP // Director Blueprint 내부: // Custom Event "OnExplosion" // → SpawnEmitterAtLocation(ExplosionFX, Location) // → PlaySound2D(ExplosionSound) // → ApplyRadialDamage(500, Location, 300)
Director Blueprint

각 Level Sequence에는 내장 Director Blueprint가 있습니다. 시퀀서 Event Track의 키를 더블클릭하면 Director Blueprint가 열리며, 여기서 이벤트 발생 시 실행할 로직을 BP로 구현합니다. 바인딩된 액터에 대한 참조도 자동으로 제공됩니다.

03

C++에서 이벤트 처리

시퀀서 이벤트를 C++ 함수로 연결

C++ - 시퀀서 이벤트 수신 (Interface 방식)
// 1. 이벤트 수신용 인터페이스 정의 UINTERFACE() class USequencerEventReceiver : public UInterface { GENERATED_BODY() }; class ISequencerEventReceiver { GENERATED_BODY() public: UFUNCTION(BlueprintNativeEvent, BlueprintCallable) void OnCutsceneEvent(FName EventName); }; // 2. Actor에서 인터페이스 구현 void AMyActor::OnCutsceneEvent_Implementation(FName EventName) { if (EventName == "StartBattle") { StartBattleSequence(); } else if (EventName == "OpenDoor") { DoorComponent->Open(); } } // 3. Director Blueprint에서 바인딩된 액터의 OnCutsceneEvent 호출

시퀀서 이벤트 바인딩 패턴

패턴장점단점
Director Blueprint 시퀀스 에셋에 포함, 이식성 좋음 C++ 접근 제한
Interface 호출 C++ 구현 가능, 타입 안전 인터페이스 구현 필요
Level Blueprint 레벨별 커스텀 로직 이식성 낮음
04

Visibility & Particle 트랙

기타 유용한 빌트인 트랙들

Visibility Track

액터의 가시성을 시간에 따라 토글합니다. Bool 채널로 Show/Hide를 키프레임하며, 오브젝트 등장/퇴장 연출에 사용합니다.

Particle System Track

UMovieSceneParticleTrack은 Legacy Cascade 파티클 시스템의 Activate/Deactivate를 제어합니다. Niagara 시스템은 별도의 프로퍼티 트랙으로 파라미터를 제어합니다.

Niagara System 시퀀서 연동

Niagara + 시퀀서 워크플로
// Niagara System을 시퀀서에서 제어하는 방법: // // 1. NiagaraComponent를 가진 Actor를 시퀀서에 추가 // 2. Actor 트랙 → + Track → NiagaraComponent // 3. 노출된 User Parameters를 키프레임 // - Scalar: SpawnRate, Lifetime 등 // - Vector: Color, Velocity 등 // // 4. Activate/Deactivate는 Visibility 트랙 또는 // Event 트랙 + ActivateSystem() 호출로 제어

Fade Track

전체 화면의 페이드 인/아웃을 제어하는 마스터 트랙입니다. 0 = 정상, 1 = 완전 검정(또는 지정 색상). 씬 전환에 필수적입니다.

트랙 조합 팁

시네마틱에서 폭발 장면을 연출할 때: Event 트랙(폭발 함수 호출) + Audio 트랙(폭발음) + Camera Shake(충격) + Material 트랙(이미시브 플래시)을 동일 시간에 배치하면 통합적인 연출이 가능합니다.

SUMMARY

핵심 요약

  • Audio Track은 마스터 트랙(2D)과 액터 트랙(3D 공간)으로 구분되며, Volume/Pitch를 키프레임한다
  • Event Track은 Trigger(일회성)과 Repeater(매 프레임) 방식으로 함수를 호출한다
  • 이벤트 로직은 Director Blueprint(시퀀스 내장 BP)에서 구현하는 것이 가장 이식성이 좋다
  • C++에서 이벤트를 받으려면 Interface 패턴을 사용하여 타입 안전하게 처리한다
  • Niagara System은 User Parameter를 시퀀서 프로퍼티 트랙으로 노출하여 키프레임한다
  • Fade Track으로 전체 화면 페이드 인/아웃을 마스터 레벨에서 제어한다
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 오디오 트랙 기본 설정

시퀀서에 Audio Track을 추가하고 사운드를 배치하세요. Volume, Pitch 서브트랙으로 Fade In/Fade Out 효과를 키프레임으로 구현하세요.

실습 2: 이벤트 트랙으로 게임플레이 연동

Event Track으로 특정 시점에 Blueprint Custom Event를 호출하세요. 3초에 파티클 활성화, 5초에 문 열림, 8초에 NPC 대사 시작을 연출하세요.

심화 과제: 인터랙티브 오디오 시퀀스

플레이어 행동에 따라 음악 레이어가 추가되는 인터랙티브 오디오를 구현하세요. 전투 시작 시 드럼, 위기 상황에서 스트링 레이어가 추가되고 Volume을 크로스페이드하세요.