Wwise 오디오 최적화

2025. 5. 19. 00:01·Dev./Wwise 와이즈

1. 개요

  • 목표:
    1. 반복 루프(Loop)로 인한 CPU·메모리 과다 사용 문제 해결
    2. 게임 루프 최적화 설계
    3. 프로파일러 활용 및 비동기 로딩 적용으로 프레임 드롭 방지

2. 주요 이슈 & 원인 분석

이슈 원인
도끼 함정 루프 사운드 재생 시 렉 발생 Loop 처리로 사운드 인스턴스가 매 프레임 재생→삭제를 반복하며 리소스 과다 소모
게임 루프 내 오디오·오브젝트 매 프레임 생성·삭제 상태 변화 없이도 매 틱마다 처리 로직이 호출되어 CPU 사용률 급증

 


3. 해결 방법

  1. Trigger 방식으로 전환
    • Loop 컨테이너 대신, Sequence Container나 One–Shot Trigger 방식을 사용해 한 번만 재생
    • 블루프린트에서 조건 발생 시 PostEvent 호출
  2. 프로파일러 활용
    • 언리얼 "Stat Audio" / Wwise "Profiler"로 CPU 시간, 메모리 사용량, 오디오 인스턴스 수 모니터링
    • 병목 구간(Function Call Duration 등)을 정확히 파악
  3. 최적화된 게임 루프 설계
    • State Change가 있을 때만 사운드·이펙트 처리
    • 불필요한 Tick 및 반복 체크 제거
  4. 비동기(Async) 처리
    • 오디오 뱅크(Bank) 로딩, 대용량 사운드 파일 읽기 등을 비동기 호출로 분리
    • 메인 스레드 부하 최소화

 


4. 샘플 워크플로우

[플레이어 함정 접촉]
    ↓
[블루프린트 Trigger Event]
    ↓
[PostEvent("SFX_Axe_Swing_OneShot")]  ← Sequence Container 사용
    ↓
[Profiler로 재생 확인]
    ↓
[다음 조건 충족 시만 재생 로직 진입]

5. 배운 점 정리

  • Loop 컨테이너 남용 금지: 반복 효과는 게임 퍼포먼스에 직결되므로 필요 시에만 사용
  • 프로파일러 우선 점검: 시각화된 지표를 통해 '어디서' 지연이 일어나는지 파악하는 것이 핵심
  • State-Based 처리: Tick 의존 로직을 State Change 이벤트 기반으로 전환하면 CPU 사용량을 크게 줄일 수 있음
  • 비동기 로딩을 적극 활용해 메인 루프 스파이크를 방지

6. 추가 팁

  • Wwise에서 "Garbage Collection" 주기를 늘려 불필요한 인스턴스 삭제 비용 최소화
  • RTPC나 Switch 사용 시에도 과도한 값 업데이트를 피하고, 변경점이 있을 때만 호출하도록 설계
  • 자주 쓰는 SoundBank는 미리 로드(Preload)하고, 사용 빈도가 낮은 뱅크는 레벨 스트리밍과 연동해 필요 시에만 로드

'Dev. > Wwise 와이즈' 카테고리의 다른 글

상태에 따른 음향 변화  (0) 2025.05.19
RTS 사운드 구현  (0) 2025.05.19
Wwise와 Unreal 연동 가이드(3) : 연결  (0) 2025.05.09
[TIL_250503] Wwise와 Unreal 연동 가이드(2) : Event 만들기  (0) 2025.05.03
[TIL_250425] Wwise와 Unreal 연동 가이드(1) : Wwise 기본 세팅  (0) 2025.04.25
'Dev./Wwise 와이즈' 카테고리의 다른 글
  • 상태에 따른 음향 변화
  • RTS 사운드 구현
  • Wwise와 Unreal 연동 가이드(3) : 연결
  • [TIL_250503] Wwise와 Unreal 연동 가이드(2) : Event 만들기
raindrovvv
raindrovvv
raindrovvv 님의 블로그 입니다.
  • raindrovvv
    raindrovvv 님의 블로그
    raindrovvv
  • 전체
    오늘
    어제
    • 분류 전체보기 (101) N
      • Dev. (94) N
        • UE 언리얼 엔진 (49) N
        • Unity 유니티 (0)
        • Wwise 와이즈 (7)
        • 게임 네트워크 (8)
        • 그래픽스 Graphics (22)
        • 프로젝트 (4)
        • 기타 개발 관련 (4)
      • Computer Science (0)
        • 하드웨어 HW (0)
        • 소프트웨어 SW (0)
        • 통신 (0)
        • 데이터 (0)
      • 블로그 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Wwise
    UE
    게임네트워크
    unrealengine
    그래픽스
    언리얼엔진
    게임
    깃
    게임사운드
    머티리얼
    셰이더
    TA
    네트워크
    Git
    언리얼
    고라니
    게임음향
    게임개발
    Unreal
    AI
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
raindrovvv
Wwise 오디오 최적화
상단으로

티스토리툴바