오늘 실습에서는 언리얼 엔진 5의 메타사운드(MetaSound) 시스템을 사용하여, 캐릭터의 이동 속도에 따라 동적으로 변화하는 바람 소리를 구현했습니다. 단순히 오디오 파일을 재생하는 것이 아니라, 절차적(Procedural)으로 사운드를 생성하고 블루프린트와 연동하는 과정을 정리했습니다.
1. 메타사운드 소스 생성 및 기본 설정
현장감을 더하기 위해 3D 공간 연산이 필요 없는 2D 스테레오 배경음을 설계했습니다.
- 에셋 생성: MSS_Wind라는 이름의 메타사운드 소스 생성.
- 인터페이스 정리: 퍼시스턴트(지속형) 사운드로 사용하기 위해 UE.Source.OneShot 인터페이스와 On Finished 노드를 제거했습니다.
- 출력 포맷: 디테일 패널에서 출력 포맷을 **스테레오(Stereo)**로 변경하여 좌우 출력을 확보했습니다.
2. 메타사운드 그래프 빌드 (노이즈 기반)
화이트 노이즈와 필터를 사용하여 절차적인 바람 소리 로직을 구성했습니다.
- 노이즈 생성: 두 개의 Noise 노드를 생성하고, 서로 다른 Seed 값을 부여하여 자연스러운 스테레오 분리감을 주었습니다.
- 필터링: One-Pole Low Pass Filter를 통과시켜 고주파를 깎아 부드러운 바람 소리를 만들었습니다.
- LFO 활용: LFO 노드(0.1Hz)를 필터의 컷오프 주파수에 연결해, 바람 소리가 미세하게 넘실거리는 다이내믹을 추가했습니다.
- 속도 파라미터 연동: PawnSpeed라는 Float 입력을 생성하고, InterpTo 노드를 통해 사운드 게인이 부드럽게 변하도록 처리했습니다.

3. 레벨 블루프린트 로직 구성
플레이어의 실제 이동 속도를 계산해 메타사운드의 파라미터로 전달하는 로직을 작성했습니다.
- 사운드 스폰: Event BeginPlay 시점에서 Spawn Sound 2D로 MSS_Wind를 실행합니다.
- 실시간 속도 계산:
- Get Player Pawn → Get Velocity로 현재 속도 벡터를 구합니다.
- Vector Length로 속도의 크기(스칼라값)를 추출합니다.
- Map Range Clamped 노드를 사용하여 캐릭터 속도(200~1000)를 사운드 파라미터 범위(0~1)로 매핑합니다.
- 파라미터 업데이트: 매 프레임(Event Tick)마다 계산된 값을 메타사운드의 PawnSpeed 입력으로 전달합니다.

4. 실습 결과 및 회고
✅ 테스트 결과
- 캐릭터가 정지해 있거나 느리게 걸을 때는 바람 소리가 낮고 잔잔하게 들립니다.
- 캐릭터가 빠르게 이동하면 속도에 비례하여 바람 소리가 커지며 속도감이 강조되는 것을 확인했습니다.
💡 배우고 느낀 점
- 절차적 사운드의 장점: 별도의 오디오 파일 없이 노이즈만으로도 충분히 풍부한 환경음을 만들 수 있다는 점이 놀라웠습니다.
- 최적화 고려: 메타사운드는 오디오 엔진 수준에서 실행되므로 기존 사운드 큐보다 더 정교하고 효율적인 제어가 가능하다는 것을 배웠습니다.
- 향후 계획: 다음에는 속도뿐만 아니라 캐릭터의 고도(높이)나 주변 환경(동굴, 숲 등)에 따라 필터 값을 다르게 적용하는 심화 로직을 시도해보고 싶습니다.
'게임사운드공부' 카테고리의 다른 글
| [UE5] 메타사운드 기초: 절차적 폭발 사운드 제작 및 블루프린트 연동 (0) | 2026.04.17 |
|---|