Wwise Unreal Integration Documentation: Wwise Unreal 통합

Wwise Unreal Integration Documentation
Wwise Unreal 통합

Wwise Unreal 통합은 Unreal 게임에서 Wwise 사운드 엔진을 사용할 수 있게 해주는 Unreal 플러그인입니다. 이 정보는 Wwise SDK와 Wwise 도움말 문서를 보완해줍니다. 런타임 때 Wwise가 지원하는 모든 기능에 대한 내용은 Wwise SDK를 참고하세요.

문서

이 문서는 다음의 주요 섹션을 포함하고 있습니다.

  • 요구 사항
    플러그인에 대해 요구되는 사항.

  • 설치
    플러그인 설치 방법.

  • 플러그인 빌드하기
    플러그인이 담겨 있는 Unreal 빌드 생성하는 방법.

  • 통합 사용하기
    통합 사용 방법. 제공되는 기능 설명.

  • 시작 튜토리얼
    Wwise Unreal 통합을 사용하는 초보자를 위한 튜토리얼 시리즈.

  • Going Further
    Spatial Audio 및 Customizable Modules와의 통합을 최대로 활용하는 방법.

  • 릴리즈 노트 2022.1.5.8242.2714
    플러그인의 해당 버전에서 추가 및 변경된 사항.

  • 이전 버전 릴리즈 노트
    이전 Wwise 릴리즈에서의 플러그인 변경 사항 목록을 확인하려면 이 섹션을 참고하세요.

  • 자주 겪는 문제
    통합에서 이미 알려진 문제에 대한 목록을 읽으려면 다음 섹션을 참고해주세요.

  • Android 관련 정보
    Refer to this page to read about Android-specific information.

  • iOS-Specific Information
    Refer to this page to read about iOS/tvOS-specific information.

  • Wwise의 오픈 소스 컴포넌트
    통합의 오픈 소스 컴포넌트에 대한 라이선스는 이 페이지를 참조해 주세요.


Wwise Unreal Integration Documentation: 요구 사항

요구 사항

언리얼 엔진

Unreal Wwise 플러그인의 각 릴리즈는 특정 버전의 Unreal Engine용으로 맞춤화되어 있습니다. 릴리즈 노트 2022.1.5.8242.2714 에서 표시한대로 해당 Unreal Engine에서 지원되는 버전을 사용해주세요.

Unreal Project Defaults

The Wwise Unreal Integration does not support Blueprint-only Unreal projects. During project creation, you must select the C++ Project Default, although you can add Blueprints to your C++ projects later. Refer to Creating a New Project for more information about project creation and Project Defaults.

Wwise

이 플러그인은 Wwise 2022.1.5 build 8242를 기반으로 합니다. 다른 버전의 Wwise SDK를 사용할 수는 있지만 플러그인 코드를 변경해야 할 수 있습니다.

플랫폼

이 플러그인은 Windows, Mac, Linux, Xbox One, Xbox Series X, Playstation 4, Playstation 5, Nintendo Switch, Android, iOS, tvOS, Hololens 및 Stadia에서 시험되었습니다. 다른 플랫폼을 대상으로 할 경우 변경해야 할 수 있습니다.

크로스 플랫폼 개발을 쉽게 하기 위해서 Unreal Wwise 플러그인을 설치하기 전에 Windows와 Mac용 Wwise SDK를 반드시 설치해야 합니다.

개발 환경 설정

Unreal Engine 문서를 참고하세요.

UE4의 경우:

  • "언리얼 엔진 4 소스 코드 내려받기"
  • "언리얼 엔진 4용 Visual Studio 구성"
  • "소스에서 언리얼 엔진 4 빌드하기"

UE5의 경우:

  • "언리얼 엔진 4 소스 코드 내려받기"
  • "언리얼 엔진 5용 Visual Studio 구성"
  • "소스에서 언리얼 엔진 5 빌드하기"


Wwise Unreal Integration Documentation: 설치

설치

설치를 진행하기 전에 먼저 요구 사항 페이지로 가서 지원되는 버전의 Unreal Engine 및 Wwise를 설치했는지 확인해 주세요.

이 UE 통합 패키지는 Wwise 플러그인에 관한 파일만 담고 있으며 Unreal Engine 소스 코드나 Wwise SDK를 담고 있지 않습니다.

프로젝트를 이전 버전의 Wwise에서 버전 2022.1로 마이그레이션하는 경우 Wwise 2022.1로 프로젝트 업그레이드하기 를 참고하세요.

For suggested system configurations for large and small development teams, refer to Understanding Development Workflows.

설치 과정

Wwise Unreal 통합은 게임 플러그인이나 엔진 플러그인으로서 설치할 수 있습니다.

참고: 엔진 플러그인과 게임 플러그인('설치' 플러그인이라고도 함)의 차이점에 대한 더 많은 정보는 Unreal Engine 문서를 참고하세요.

Wwise Unreal 통합을 게임 플러그인으로서 설치하기

게임 플러그인으로서의 설치는 Audiokinetic 런처에서 실행됩니다. 런처 문서에서 Unreal 프로젝트에 Wwise 통합하기를 참고하세요.

오프라인 통합 파일을 사용하여 Wwise를 통합할 수도 있습니다. 런처 문서에서 오프라인 파일을 사용하여 Unity나 Unreal 통합 설치하기를 참고하세요.

Wwise 프로젝트에 어떤 영향이 있는지 이해하려면 Changes to your Wwise Project 를 참고하세요.

Wwise 플러그인 관리하기

Wwise에는 다양한 플러그인이 제공됩니다. 이 플러그인을 Wwise Unreal 통합에서 사용하려면 플러그인을 올바르게 설치해야 합니다. Wwise용 플러그인은 Audiokinetic 런처를 통해 관리됩니다. Wwise용 플러그인 관리에 대한 더 많은 정보는 Unity 및 Unreal 통합 플러그인 추가런처 문서를 참고하세요.

참고: Wwise Unreal 통합을 사용할 때 Wwise 설치에서 플러그인을 찾을 수 없을 경우, LogAkAudio: Error: Could not find plugin dynamic library라는 에러가 뜹니다.

Wwise Unreal 통합을 엔진 플러그인으로서 설치하기

주의: Wwise Unreal 플러그인을 엔진 플러그인으로서 설치하는 것은 전문 사용자에게만 권장해드립니다.

여러 Unreal 프로젝트에서 작업하고 각 프로젝트에서 Wwise를 사용할 예정이라면 Wwise Unreal 통합을 엔진 플러그인으로 설치하는 것이 좋습니다.

  1. Wwise Unreal Engine 통합 패키지 다운로드하기:
    1. Audiokinetic 런처를 열고 Unreal 페이지를 선택합니다.
    2. RECENT UNREAL ENGINE PROJECTS 메뉴에서 Download Wwise Integration to use as an engine plug-in을 선택합니다. Wwise Unreal 통합 다운로드 페이지가 열립니다.

    3. 원하는 Wwise 버전 번호로 시작하는 Wwise Integration Version을 선택합니다.
    4. 설치한 버전에 해당하는 Unreal Version을 선택합니다.
    5. 원하는 Download Directory를 지정합니다. 런처가 자동으로 이 입력란을 C:\Users\<username>\Documents\Wwise Unreal Engine integration으로 채웁니다. 폴더가 이미 있는 경우 해당 내용을 덮어씁니다.
    6. Download를 클릭하세요. Unreal 페이지의 프로젝트 목록 위에 OFFLINE FILE DOWNLOADS가 진행률 표시줄, Unreal Engine 통합 플러그인 버전 및 폴더 경로와 함께 표시됩니다. 계속하기 전에 다운로드가 완료될 때까지 기다립니다.

  2. Wwise 통합 및 SDK 파일을 Unreal Engine Plugins 폴더에 복사하기:
    1. Wwise Unreal Engine integration 폴더 안에는 Wwise라는 폴더가 있습니다. Wwise 폴더를 기존의 Plugins 폴더 …\<UE installation directory>\Engine\Plugins로 복사하세요.
    2. …\<UE installation directory>\Engine\Plugins\Wwise 폴더 안에 ThirdParty라는 폴더를 만드세요.
    3. 패키징 과정 도중 Unreal Editor가 Wwise UE 통합을 다시 빌드해야할 수 있습니다. 그렇기 때문에 Wwise SDK 설치 폴더에서 Wwise\ThirdParty 플러그인 폴더 계층 구조로 몇 가지 폴더를 반드시 복사해야 합니다. 다음 폴더를 여세요:
      • 원본 파일 위치: C:\Program Files (x86)\Audiokinetic\Wwise 2022.1.5.8242\SDK\
      • 복사할 위치: ...\Plugins\Wwise\ThirdParty\
    4. 다음 폴더를 원본 폴더에서 목표 폴더로 복사하세요:
      • include
      • Win32_*
      • x64_*
      • Mac
    5. 프로젝트가 SDK 소스 폴더에 폴더가 있는 다른 플랫폼에 배포되는 경우 해당 폴더(플랫폼의 라이브러리 포함)도 ThirdParty 폴더에 복사해야 합니다..

  3. 플러그인 활성화 및 Unreal과 Wwise 프로젝트 연결하기:
    1. Unreal Editor에서 프로젝트를 엽니다.
    2. 툴바에서 Edit > Plugins를 클릭합니다.
    3. 열리는 대화 상자에서 Installed > Audio 페이지로 갑니다.
    4. Wwise Unreal Engine integration 아래의 체크 상자를 선택하여 플러그인을 활성화합니다.
    5. 툴바에서 Edit > Project Settings를 클릭합니다.
    6. Wwise > Integration Settings 페이지로 갑니다.
    7. Installation 섹션에서 Wwise Project Path를 지정하고 대화 상자를 닫습니다.

Wwise 프로젝트에 어떤 영향이 있는지 이해하려면 Changes to your Wwise Project 을 참고하세요.


Wwise Unreal Integration Documentation: Wwise 2022.1로 프로젝트 업그레이드하기

Wwise 2022.1로 프로젝트 업그레이드하기

Wwise 2022.1 Unreal 통합 정보

이 버전은 Wwise용 Unreal Integration의 큰 주요 지점입니다. Unreal Engine 5가 엔진을 새로운 영역으로 성장시키는 것과 마찬가지로 Audiokinetic의 Unreal Wwise 통합은 두 도구가 함께 성취할 수 있는 한계를 뛰어 넘습니다. 1년 이상의 개발에 걸쳐 많은 것들이 변경되었으며 Wwise와 Unreal 조합으로 가능한 한계를 넓히기 위한 개발자들의 많은 논의가 있었습니다. 지난 몇 년 동안 점진적인 최적화 과정 및 요청된 기능들을 기반으로 많은 교훈을 얻었습니다. 예를 들어, 저희는 처음에 전제 조건이 저마다 다른 게임이 가진 가능한 모든 작업 과정을 지원하고 싶었습니다. 하지만 커스터마이징 없이 모든 부분을 환상적으로 사용할 수 있도록 하는 것은 환상에 가까운 것이었습니다. 그런 점에서 Wwise 사용자들의 기쁨과 어려움, 좌절을 저희와 공유해주셔서 대단히 감사합니다. 바로 여러분들의 목소리가 궁극적으로 우선순위를 설정할 수 있게 해주었습니다.

Quick Start

Wwise 2022.1로 마이그레이션하기

마이그레이션을 시작하기 전에 Wwise와 Unreal 프로젝트에서 필요한 모든 파일을 수정할 수 있는 상태인지 먼저 확인하세요.

버전 컨트롤에서 체크 아웃해야 하는 파일:

  • 전체 Wwise 프로젝트 폴더
  • 모든 Unreal Wwise 에셋(Event, SoundBank, Aux Bus 등)
  • Unreal 프로젝트 설정 파일:
    • DefaultGame.ini
    • DefaultUser.ini

AkAudioBank 에셋을 참조하는 Maps나 Blueprints을 확인하세요. 이러한 파일들은 마이그레이션 과정의 일부로 삭제됩니다.

평소와 같이 마이그레이션은 Wwise Launcher의 Unreal 탭에서 Wwise Unreal 통합을 업그레이드하는 것으로 시작됩니다.

참고: 프로젝트에서 이전에 2022.1.0 Beta 2를 사용하고 있었다면 파일 이름의 대소문자 변경으로 인해 파일 시스템이 대소문자를 엄격히 구분하는 플랫폼에서 빌드 문제가 발생할 수 있습니다. Wwise Launcher에서 업그레이드한 후 파일 이름에 "ShareSet"이라는 단어가 포함된 모든 파일의 철자가 올바른지 확인하세요("ShareSet"에서 각 S는 대문자로 표기됩니다).

업그레이드가 완료되고 Wwise 프로젝트를 열면 "Project Migration" 대화 상자가 나타납니다.

계속하려면 Update 버튼을 클릭하세요.

Wwise 프로젝트가 업데이트되고 저장되면 Unreal 프로젝트를 열 수 있습니다. Unreal 프로젝트를 열면 Wwise Integration Migration 대화 상자가 나타납니다. 대화 상자에서 수행할 마이그레이션 작업을 선택할 수 있습니다. 모든 마이그레이션 작업은 바로 수행되는 것이 좋지만 필요한 경우 마이그레이션 과정을 연기하거나 각 작업을 개별적으로 수행할 수 있습니다. 이러한 단계를 독립적으로 수행하려는 경우 프로젝트 마이그레이션을 시도하기 전에 먼저 부분 마이그레이션 및 프로젝트 마이그레이션 상태 섹션을 살펴보세요. 여러 마이그레이션 작업을 선택한 경우 마이그레이션 창에 나타나는 순서대로 수행됩니다. 모든 마이그레이션 작업이 완료될 때까지 Audiokinetic Migration > Finish Project Migration 아래의 Build Menu에서 마이그레이션 대화 상자에서 언제든 액세스할 수 있습니다.

마이그레이션에는 4가지 작업이 있습니다:

  • SoundBank 마이그레이션
  • 더 이상 사용되지 않는 에셋 삭제하기
  • Wwise 에셋 마이그레이션
  • 프로젝트 설정 업데이트

SoundBank 마이그레이션

SoundBank 관리가 Wwise Authoring으로 리턴되어 AkAudioBank 에셋이 더 이상 필요하지 않습니다. 이전 작업 과정에서 SoundBank는 Unreal 프로젝트에서 수동으로 생성된 AkAudioBank 에셋으로 표시되었습니다. 그런 다음 Event와 Aux Bus 에셋을 이 SoundBank로 직접 그룹화할 수 있었습니다. 레거시 작업 과정에서는 이 작업이 필수였지만 Event Based Packaging을 사용할 경우에는 선택 사항입니다.

Unreal 프로젝트에 AkAudioBank 에셋이 포함되어 있는지 여부에 따라 대화 상자에서 이 섹션이 표시되지 않을 수 있습니다. Wwise 2022.1에서 이 마이그레이션 작업을 거치면 기존 SoundBank를 Unreal 프로젝트에서 다시 Wwise 프로젝트로 옮기고 더 이상 사용되지 않는 AkAudioBank 에셋을 제거할 수 있습니다.

Option | Description
Transfer SoundBanks to Wwise | 이 옵션을 선택하면 반드시 전송 방법을 선택해야 합니다.. 아래의 전송 방법 섹션을 참조해 주세요.
Transfer Auto Load property | Unreal의 AkAudioBank 에셋에는 뱅크 데이터가 에셋과 함께 자동으로 로드되어야 하는지(예: 에셋이 블루프린트에서 사용되는 즉시) 혹은 수동적으로 로드되어야 하는지 사용자가 지정할 수 있는 속성이 있습니다. 이 옵션을 선택하면 이 속성의 값이 뱅크 내에서 그룹화된 에셋으로 이전됩니다.
Delete AkAudioBank Assets | 프로젝트의 모든 AkAudioBank 에셋이 삭제됩니다. Transfer SoundBank도 선택했을 경우 이 단계는 전송이 완료된 후 완료됩니다. 이러한 에셋은 더 이상 용도가 없으므로 삭제하는 것이 좋습니다. 삭제된 후에는 "Transfer SoundBanks to Wwise"를 더 이상 실행할 수 없습니다.

전송 방법

SoundBank는 SoundBank Definition File을 생성하거나 WAAPI를 사용하여 Wwise로 전송됩니다.

Create SoundBank Definition File은 SoundBank 이름 목록과 그 내용이 포함된 텍스트 파일을 생성하여 Wwise로 가져올 수 있습니다. 이 옵션을 선택하면 생성된 파일의 대상을 선택할 수 있는 입력란이 나타납니다. 이 파일을 Wwise 프로젝트로 가져오는 방법에 대한 자세한 내용은 공식 문서를 참고하세요.

WAAPI는 Unreal Editor와 Wwise Authoring 간에 설정된 WAAPI 연결을 사용하여 Wwise 프로젝트가 SoundBank를 포함하도록 업데이트합니다. SoundBank가 전송되면 반드시 Wwise 프로젝트를 저장해 주세요.

이 기능을 사용하려면 Wwise Authoring이 열려 있어야 합니다. WAAPI 연결을 설정할 수 없는 경우 Wwise User Settings에서 'Auto Connect to WAAPI' 프로젝트 설정이 비활성화되었을 수 있습니다.

SoundBank 전송 실패

SoundBank에서 Wwise로의 WAAPI 전송이 부분적으로 실패하거나 프로세스가 SoundBank 정의 파일에 쓰기에 실패하면 오류 목록이 있는 대화 상자가 나타납니다. 대화 상자에서 마이그레이션을 취소하거나 오류를 무시하고 계속 진행 할 수 있습니다. 일부 오류는 허용되거나 예상되는 오류일 수 있습니다. 예를 들어 Wwise 프로젝트에서 제거된 이벤트가 Unreal 프로젝트의 에셋으로 여전히 존재하는 경우 해당 이벤트와 관련된 WAAPI 호출이 실패합니다.

더 이상 사용되지 않는 에셋 삭제하기

이전 통합 버전에서 사용된 일부 Wwise 에셋 유형은 더 이상 사용되지 않으며 프로젝트에서 제거해야 합니다. Deprecated Assets 옵션을 선택하면 AkMediaAsset, AkFolder 및 AkPlatformAssetData 유형의 모든 에셋이 삭제됩니다.

Wwise 에셋 마이그레이션

Wwise 에셋 속성이 변경되어 더 이상 SoundBank나 미디어 바이너리 데이터를 직렬화(serialize)하지 않습니다. Wwise 에셋에 직렬화된 유일한 정보는 에셋을 로드하거나 쿠킹(cooking)할 때 사용되는 GUID, ShortID, Name 및 유형별 메타데이터 속성뿐입니다. 쿠킹되는 동안 리소스 로딩에 필요한 정보는 게임에 패키징된 에셋에 직렬화됩니다.

Migrate Wwise assets을 선택하면 프로젝트의 모든 Wwise 에셋이 Dirty로 표시되고 저장됩니다. 이전에 EBP를 사용하고 Split Switch Container Media가 활성화했을 경우 저장하기 전에 모든 이벤트의 EventInfo.SwitchContainerLoading 플래그가 LoadOnReference로 설정됩니다.

참고: Migrate Wwise Assets를 유일한 마이그레이션 작업으로 선택하면 나중에 "Transfer SoundBanks to Wwise"하는 데 필요한 정보가 관련 에셋에서 지워지기 때문에 "Transfer SoundBanks to Wwise"가 불가능하게 됩니다.

프로젝트 설정 업데이트

Update Project Settings를 선택하면 Event-Based Packaging을 사용했는지 아니면 Legacy 작업 과정을 사용했는지에 따라 프로젝트 설정이 업데이트됩니다. 변경한 후에 프로젝트를 저장하는 것을 잊지마세요.

Event-Based Packaging:

  • Wwise에서는
    • Enable Auto Defined Soundbanks가 활성화됩니다.
    • Create Sub-Folders for Generated Files가 활성화된 경우 Split Media Per Folder가 활성화됩니다.
  • Unreal에서는
    • Directories To Always Cook에서 Wwise Sound Data Folder가 제거됩니다.

Legacy: Wwise 프로젝트에서는 설정이 변경되지 않습니다.

  • Unreal에서는
    • Wwise Sound Data Folder가 Directories To Always Stage As UFS에서 제거됩니다.
    • Wwise Sound Data Folder에 생성된 .bnk 및 .wem 파일이 삭제됩니다.

두 경우 모두,

  • GeneratedSoundBanks folder location 입력란에 설정된 경로가 Unreal 프로젝트의 Wwise 설정에 있는 Generated Sound Banks Folder 설정에 적용됩니다. 이 입력란은 Unreal 프로젝트에 설정된 현재 GeneratedSoundBanks Folder 경로로 기본 설정됩니다. 프로젝트에 특정한 요구 사항이 있는 경우가 아니라면 표준 <Wwise Project\/GeneratedSoundBanks 경로를 사용하는 것이 좋습니다.
경고: 마이그레이션 중에 Generated Sound Banks folder location를 수정하면 Wwise에서 수동으로 설정을 업데이트해야 할 수도 있습니다. 수동 업데이트가 필요한 설정 를 참고하세요.
참고: Legacy 프로젝트에서 GeneratedSoundBanks Folder는 패키징을 위해 Unreal 프로젝트의 Content 폴더 내에 배치해야 했습니다. 이는 필수가 아니며 Unreal 프로젝트 Content 내의 폴더를 GeneratedSoundBanks으로 사용하지 않는 것이 좋습니다. GeneratedSoundBanks Folder가 Unreal의 Content Folder 안에 있으면 SoundBank가 생성될 때 파일을 임포트하라는 메시지가 표시됩니다. 이 메시지를 무시해도 되지만 이를 보고 싶지 않다면 GeneratedSoundBanks Folder를 Unreal 프로젝트 외부에 두는 것이 좋습니다. GeneratedSoundBanks Folder는 나중에 Wwise Authoring Project Settings 및 Unreal Project Settings에서 변경할 수 있습니다. 두 설정은 각각 최신 상태로 유지되어야 합니다.

마이그레이션 대화 상자의 모든 작업이 완료되면 추가 마이그레이션 단계가 필요한 외부 음원을 사용하지 않는 한 프로젝트가 준비가 완료되었을 것입니다.

프로젝트 마이그레이션 Commandlet

또한 통합에는 이전 섹션에서 설명한 마이그레이션 작업을 수행하기 위해 명령줄에서 커맨드렛 또한 제공됩니다 ( Using the Project Migration Commandlet 참고).

수동 업데이트가 필요한 설정

Wwise Installation Path(Unreal에서) 컴퓨터에 Wwise가 설치되어 있으며 WAAPI를 사용하지 않고 Unreal 내에서 SoundBank를 생성하고 싶다면 Wwise User Settings에서 Wwise Mac/Windows 설치 경로를 직접 지정해야 합니다.

SoundBank Root Output Path(Wwise에서) Wwise 저작의 SoundBanks Settings에 있는 Root Output Path가 Unreal Wwise Settings에 있는 Generated Sound Banks Folder에 설정된 경로와 일치하는지 확인하세요.

참고: Root Output Path는 Wwise 프로젝트와 관련되어 있는 반면, Generated Sound Banks Folder는 Unreal 프로젝트의 Content 폴더와 관련되어 있습니다.

마이그레이션된 Legacy 프로젝트의 경우 플랫폼 전용 SoundBank 폴더 설정이 Unreal 프로젝트의 Content 폴더 내 위치에 지정되지 않도록 하세요.

외부 음원 마이그레이션하기

2022.1에서는 외부 음원에 대한 지원 구현이 크게 변경되었습니다. 이제 고급 사용자가 외부 음원를 설정하고 추적하기 위해 자체 시스템을 구현할 수 있습니다. 또한 Unreal Data Tables를 사용하여 외부 음원 미디어를 추적하고 외부 음원 ID에 미디어를 할당하는 API 및 블루프린트 기능을 제공하는 WwiseSimpleExternalSourceManager에 대한 기본 지원도 제공합니다.

FAkExternalSourceInfo 및 FAkSDKExternalSourceArray 구조는 이 모듈에서 더 이상 사용되지 않습니다. 블루프린트에서 생성되는 FakExternalSourceInfo의 각 인스턴스에 대해 WwiseSimpleExternalSourceManager::SetExternalSourceMedia 블루프린트 노드로 교체해야 할 것입니다.

그런 다음 블루프린트에서 해당 참조를 제거할 수 있습니다. 또한 FakSDKExternalSourceArrays에 연결된 PostEvent 노드가 포함된 블루프린트를 다시 컴파일해야 할 수도 있습니다.

Wwise 2022.1에서 External Source로 작업하는 방법에 대한 자세한 내용은 Using the Wwise Simple External Source Manager 을 참고하세요.

부분 마이그레이션 및 프로젝트 마이그레이션 상태

모든 마이그레이션 작업은 동시에 수행하는 것이 좋습니다. 그러나 한 번에 한 단계씩 수행하거나 특정 작업을 수동으로 수행하려면 다음에 유의하세요.

  • 에셋을 마이그레이션하면 Event와 Auxiliary 버스 에셋에 포함된 SoundBank 그룹화 정보(grouping information)가 삭제되어 Unreal에서 Wwise로 SoundBank를 이전하려는 다음 시도는 무효화됩니다. 이렇게 되면 AkAudioBank 에셋에서 그룹화된 Event나 Aux Bus로 "AutoLoad" 설정을 전송할 수 없게 됩니다.
  • 더 이상 사용되지 않는 에셋과 AkAudioBank 에셋을 삭제하려면 이러한 에셋들의 참조가 포함된 추가(Wwise가 아닌 것) 에셋을 체크아웃해야 할 수 있습니다.

프로젝트 마이그레이션의 상태는 주로 DefaultGame.ini 파일의 입력란을 사용하여 추적합니다:

  • bSoundBanksTransfered: SoundBank Transfer 작업이 수행되었는지 여부를 추적합니다.
  • bAssetsMigrated: Asset Migration 작업이 수행되었는지 여부를 추적합니다.
  • bProjectMigrated: Project Migration 작업이 수행되었는지 여부를 추적합니다.

마이그레이션 프로세스는 해당 마이그레이션 작업이 성공했는지 여부에 따라 이러한 설정을 업데이트합니다.

프로젝트 마이그레이션 상태도 Unreal 프로젝트의 콘텐츠에 따라 결정됩니다. 프로젝트에 AkAudioBank 에셋이 포함되어 있지 않으면 SoundBank 마이그레이션이 필요하지 않으며 설정이 자동으로 업데이트됩니다. 마찬가지로 더 이상 사용되지 않는 에셋을 삭제하는 옵션은 이러한 에셋이 프로젝트에서 발견되는 경우에만 표시됩니다.

마이그레이션 마무리하기

마이그레이션이 완료되면 Wwise SoundBank를 재생성해야 합니다. 이 작업은 Unreal의 Wwise Picker 또는 Build 메뉴에서 수행하거나 Wwise에서 직접 수행할 수 있습니다(이제 SoundBank 관리가 Wwise로 돌아왔습니다).

SoundBank 생성에 성공하면 이제 Wwise Picker에서 Wwise Project 구조를 보고 Play In Editor에서 소리를 들을 수 있습니다.

참고:

마이그레이션 후 다음 메시지가 나타날 수 있습니다:

Unable to load <Asset>_FOLDER with outer Package <Package> because its class does not exist. (해당 클래스가 존재하지 않기 때문에 외부 패키지 <Package>가 있는 <Asset>_FOLDER를 로드할 수 없습니다.).

이러한 에셋은 2022.1에서 더 이상 유용하지 않습니다. 이러한 에셋이 프로젝트에 여전히 존재하는 경우(직접 혹은 마이그레이션 도중) 삭제할 수 있지만, 그렇지 않으면 이 메시지를 무시할 수 있습니다.

공간 음향

포털

  • OpenPortal and ClosePortal로의 호출이 더 이상 '쌓이지' 않도록 AkPortalComponent 기능이 업데이트됨. 띠리사 OpenPortal로의 호출이 즉시 포털을 열게 되며 ClosePortal로의 호출이 즉시 포털을 닫게 됩니다. 오래된 기능의 경우 OpenPortal로의 호출이 여러 개가 될 경우 포털을 닫기 위해 동일한 수의 ClosePortal 호출이 필요했습니다. 이 기능을 사용하는 코드가 있을 경우 업데이트해주세요.

AkGeometry 컴포넌트

  • AkGeometryComponent 의 기본 Mesh Type이 Simple Collision으로 변경되어 이러한 컨포넌트가 맵에 추가되는 것을 최적화했습니다. 22.1로 업데이트 후 AkGeometryComponent 를 Static Mesh로 설정했다면 Simple Collision으로 변경되기 때문에 이를 다시 설정해야 합니다.

PreDelay 단위가 초에서 밀리초로 변경됨

  • Unreal 통합에서 PreDelay 리버브 매개 변수가 이전에 초 단위로 추정되었습니다. 이 값은 이제 밀리초 단위로 계산됩니다. 사용자가 반드시 RTPC가 밀리초 범위를 사용하도록 PreDelay 값을 수신하는 RTPC를 업데이트해야 합니다. 예를 들어, PreDelay에 매핑된 RTPC의 이전 범위가 0.0 ~ 1.0(초)인 경우 범위를 0.0 ~ 1000.0(밀리초)으로 변경해야 합니다.

CollisionChannel 속성

  • AkSpatialAudioVolume 및 AkAcousticPortal 의 CollisionChannel 속성과 AkComponent 의 OcclusionCollisionChannel 속성의 기본 유형이 변경되었습니다. 이는 프로젝트 기본 충돌 채널(collision channel)이 변경될 때 기존 오브젝트에 어떤 일이 발생하는지를 보다 명확하게 하기 위해 수행되었습니다. 블루프린트나 C++를 통해 이러한 속성을 직접 조작하는 코드가 있는 경우 유형을 업데이트하고 다시 컴파일해야 합니다.

Event를 SoundBank로 그룹화하기

이전에는 이벤트를 SoundBank로 그룹화하려면 에셋을 우클릭하고 Group into Sound Bank를 선택해야 했습니다. 이러한 프로세스는 더 이상 가능하지 않습니다. 대신에 Wwise Authoring 애플리케이션에서 User-Defined SoundBank를 사용하면 동일한 결과를 얻을 수 있습니다.


Wwise Unreal Integration Documentation: Understanding Development Workflows

Understanding Development Workflows

Game development projects vary greatly in complexity, size, and team composition. Depending on the size of the development studio and the nature of the project, sound design and integration might be a specialized task with its own team of internal sound designers, it might be outsourced to a third party that specializes in sound and music, or it might be divided among a small development team responsible for all aspects of game development.

In different development scenarios, the development workflow changes accordingly. Some roles might use Wwise exclusively and no other development tools, others might use Unreal exclusively, while others might use both tools. The development workflow affects some aspects of the Wwise Unreal Integration because certain integration features require an active connection between Unreal and Wwise through WAAPI.

Development Workflows for Large Teams

Large development teams usually divide work among specialists such as sound designers, game developers, and audio integrators. Depending on the structure of the team, some contributors might work with Unreal and Wwise, while others might only use one of the two. The following sections contain suggested configurations for different development roles.

Setup for Game Developers

Many game development roles do not need to work with Wwise: 2D and 3D artists, gameplay developers, UI/UX specialists, and so on. For these users, Wwise Authoring is not required but we recommend that the appropriate team add the GeneratedSoundBanks folder to your source control system. Specifically, we strongly recommend that you add the following file extensions to source control:

  • *.json
  • *.bnk
  • *.wem In order for developers to run the Integration code and have sound, they only need to do two things:
  • Install the Wwise plug-in.
  • Be able to access the GeneratedSoundBanks folder for the Editor platform (Windows or Mac). You can change the GeneratedSoundBanks path in Unreal in the Project Settings under the Wwise Integration Settings, and in Wwise Authoring in the SoundBank Settings.

Setup for Audio Integrators

The recommended setup for audio integrators is almost the same as the one for game developers, although in this case a Wwise Authoring installation can be beneficial. Audio integrators can use the WAAPI connection between Wwise Authoring and Unreal to streamline asset integration, although this is not a requirement.

The principal advantage of installing both Wwise and Unreal is that this setup supports dynamic asset creation and modification of the Wwise project through the integration: you can create or fix Events and names in Wwise Authoring or in Unreal through the Wwise Browser.

Using Naming Conventions for Asset Creation

Audio integrators must sometimes ensure that assets follow naming conventions. The setup described in the previous section facilitates predictable asset naming in two ways:

  • You can first create assets in Wwise according to the desired naming convention, which ensures Events with stable GUIDs and correct Event IDs. In Unreal, you can then use the Wwise Browser to drag the newly created Events into folders in the Content Browser.
  • Alternatively, you can create assets together with the synchronization option. This approach requires both Wwise Authoring and Unreal to be open at the same time.

Setup for Technical Audio Designers

Technical audio designers typically work in both Wwise and Unreal. Therefore, in an optimal setup, both Wwise Authoring and Unreal are open at the same time and a WAAPI connection is maintained between the two. If you enable the WAAPI asset synchronization option, any Wwise Events you create in the Wwise project are automatically created in the Unreal project as well. These assets are created in a default folder hierarchy, but you can move them if required.

If SoundBanks are generated by a server or if designers need to experiment, you can temporarily override the GeneratedSoundBanks folder location through a user setting. You can do this in Unreal (through the project's Wwise User Preferences) and in Wwise Authoring (in the SoundBank Generation user preferences). Ensure that both point to the same folder location.

Setup for Third-Party Interactive Audio Designers

Third-party audio designers often work exclusively in Wwise, so the only things they need are Wwise Authoring and the Wwise project. If the designers prefer not to use Wwise Soundcaster, then obviously they need Unreal as well.

Setup for Servers

For large projects, it can be useful to have a dedicated server for SoundBanks. The SoundBank generation commandlet (see Generating SoundBanks with the GenerateSoundBanks Commandlet) can run on this server on a schedule, for example every night, and push the generated SoundBanks to a location under source control. Other developers can then work with latest SoundBanks in Unreal without the need to generate the banks themselves. In large projects, SoundBank generation can be time-consuming and there might be multiple contributors who work on different parts of the game audio (music, speech, sound effects, and so on) so automation can make the process more efficient than manual SoundBank generation.

However, some users might need to generate SoundBanks themselves to experiment or test during the course of development. In this case, you can maintain the server-based setup but use user overrides to generate SoundBanks locally. Refer to Overriding Generated SoundBanks Directories for Local Users for more information.

Development Workflows for Small Teams

Small teams develop their products holistically, without a variety of specialists who work on different aspects of the game (such as audio). In this scenario, we recommend that all users start with the same generic configuration: use the same pre-installed Unreal Engine and the same version of Wwise Authoring. It might be necessary for the developers to generate SoundBanks every time they retrieve the project from source control, although this process is much faster for small projects than for large ones.


Wwise Unreal Integration Documentation: Changes to your Wwise Project

Changes to your Wwise Project

When you open the Unreal project for the first time after you integrate Wwise, certain settings in the Wwise project will change if they were set differently before.

When you open the SoundBank Settings (Project > Project Settings > SoundBanks), you can see that the following settings are enabled:

  • Copy Loose/Streamed Media
  • Remove Unused Generated Files
  • Generate Per Bank Metadata File (All Bank Metadata File also possible)
  • Generate JSON Metadata
  • Include in Metadata:
    • Object GUID
    • Object Path
    • Max Attenuation (highly recommended)
    • Estimated Duration (highly recommended)

When you open Project > Project Settings > Logs, you can see that the following settings are disabled:

  • Media is duplicated in several SoundBanks
  • Media not found in any SoundBank


Wwise Unreal Integration Documentation: 플러그인 빌드하기

플러그인 빌드하기

WwiseSoundEngine.Build.cs file ( …\Plugins\Wwise\Source\WwiseSoundEngine\WwiseSoundEngine.Build.cs 에 있음)은 지원되는 각 플랫폼용 플러그인에 대해 빌드 매개 변수를 설정하는 역할을 합니다. 이 파일은 다음의 특정 작업을 수행합니다.

  • 연결할 정적 라이브러리 지정
  • 런타임 때 로드될 동적 라이브러리 지정
  • 수많은 통합 기능을 제어하는 데에 사용되는 전(前)처리 장치 정의

전처리 장치 정의

다음은 WwiseSoundEngine.Build.cs 에 있는 전처리 장치 정의입니다.

  • AK_CONFIGURATION
    이 설정은 Wwise 빌드 설정을 지정하여 정적/동적 라이브러리가 들어갈 알맞은 하위 폴더를 지정합니다.
  • AK_SUPPORT_OPUS
    이 설정은 Wwise Opus 라이브러리를 사용할 수 있음을 지정합니다.
  • AK_SUPPORT_WAAPI
    이 설정은 Wwise Authoring API 라이브러리를 사용할 수 있음을 지정합니다.
  • AK_UNREAL_MAX_CONCURRENT_IO
    이 설정은 동시에 읽고 제작할 수 있는 최대 개수를 지정합니다.

소스 코드로부터 Wwise Unreal 통합 빌드하기

뱅크 생성 중에 …\Content\Wwise\EditorOnly\ActivatedPlugins.uasset 에셋이 변경되어 플랫폼 이름의 매핑이 각 플랫폼에서 필요한 플러그인의 이름 목록에 들어가도록 합니다.

다음 플랫폼의 경우 ThirdParty 의 각 bin 폴더 안에 있는 모든 Wwise 플러그인이 최종 실행 파일 안으로 패키징됩니다.

  • Android
  • iOS
  • tvOS
  • Switch

Android의 경우 UPL 파일이 …\Plugins\Wwise\Source\AkAudio\Wwise_APL.xml 에 있습니다. 이 파일은 모든 공유 라이브러리가 빌드 중인 이진 파일의 아키텍처를 위한 최종 실행 파일 안으로 패키징됨을 지정합니다.

iOS와 tvOS의 경우 플러그인 등록이 …\Plugins\Wwise\Source\AkAudio\Private\Generated\AkiOSPlugins.h 헤더 안에서 처리됩니다. 이 파일은 뱅크 생성 시에 생성되며 …\Plugins\Wwise\Source\AkAudio\Private\AkAudioDevice.cpp 안에 들어 있습니다.

Switch의 경우 플러그인 등록이 …\Plugins\Wwise\Source\AkAudio\Private\Generated\AkSwitchPlugins.h 헤더 안에서 처리됩니다. 이 파일은 뱅크 생성 시에 생성되며 …\Plugins\Wwise\Source\AkAudio\Private\AkAudioDevice.cpp 안에 들어 있습니다.

참고: 출시하는 실행 파일의 크기를 줄이기 위해서는 …\Plugins\Wwise\ThirdParty 안의 bin 폴더에서 사용자가 사용하지 않는 공유 라이브러리를 삭제하는 것이 좋습니다.

다음 플랫폼의 경우 공유 (동적) 라이브러리가 …\Binaries\<UEPlatform>\<TargetName>.target 파일에서 생성되는 런타임 의존성의 목록에 추가됩니다.

  • Linux
  • Mac
  • PS4
  • PS5
  • Windows
  • XboxOne
  • XboxSeriesX
참고: 디버그 CRT를 사용하는 UE 디버그 구성에서 Wwise Unreal 통합을 사용하려면 WwiseUEPlatform_Windows.Build.cs 안에 있는 bIsDebugBuild 변수를 true로 설정하세요. 이렇게 변수를 true로 설정하면 현재 디버그 CRT를 지원하지 않는 AkOpusDecoder와 AkAutobahn 라이브러리가 비활성화됩니다.

설치 에 설명된 설치 단계를 올바르게 실행하면 Unreal Engine을 다시 빌드하는 것과 동일한 방식으로 Wwise 통합을 다시 빌드할 수 있습니다. 이 과정에 대한 더 자세한 설명은 Unreal Engine 문서를 참고하세요.

소스 코드가 있는 플러그인에 대한 더 많은 정보는 Unreal Engine 문서를 참고하세요.


Wwise Unreal Integration Documentation: 통합 사용하기

통합 사용하기
  • Quick Start
    시작을 위한 기본 작업 과정.
  • Project Settings
    통합으로 Unreal을 빌드한 후 Wwise를 사용하여 구성하는 방법.
  • Unreal Engine C++ Projects
    C++ 프로젝트 사용 시작에 대한 간단한 개요.
  • Using the Wwise Demo Game
    통합 기능을 설명해주는 UnrealWwiseDemo 게임에 대한 간단한 개요.
  • Using Wwise Unreal Objects
    An explanation of the various Wwise Unreal objects included in the integration.
  • 블루프린트 함수
    시각적 스크립팅을 통해 사용할 수 있는 블루프린트 함수.
  • Managing SoundBanks
    How to generate SoundBanks.
  • Using the Integration in the Unreal Editor
    Describes how to use the Integration features available in the Unreal Editor.
  • Triggering Wwise Events in Animation Sequences
    Event를 위한 Animation Notify.
  • Localizing Audio Assets
    오디오 현지화 통합 방법.
  • 외부 음원 사용하기
    External Source 사용 방법.
  • Optimizing Memory Usage with Reference-Loaded Switch Containers
    Switch 컨테이너를 상ㅇ할 때 올바른 미디어만 메모리에 로드되도록 하여 메모리 사용량을 최적화하는 법.
  • Using the Level Sequencer
    Event와 RTPC를 위한 Sequencer Track.
  • Providing Audio Input to Wwise
    Wwise에 오디오 입력 제공하기.
  • Using the AkAudioMixer Module
    Wwise를 통해 Unreal 마스터 믹스와 서브믹스 라우팅하는 방법.
  • Combining Unreal 5 and Wwise Audio with AudioLink
    How to route Unreal objects through Wwise with AudioLink.
  • 자주 묻는 질문
    자주 묻는 질문에 대한 답변.


Wwise Unreal Integration Documentation: Quick Start

Quick Start

Creating a New Project

  1. Create a new Wwise project. Refer to Creating a New Project in the Wwise Help.
  2. Create a new Unreal project. Refer to Creating a New Project in the Unreal Engine 5 documentation.
  3. Integrate Wwise in your project through the Launcher. 런처 문서에서 Unreal 프로젝트에 Wwise 통합하기를 참고하세요.
참고
  • Changes to your Wwise Project

Adding an Ambient Sound (Wwise)

Under the Master-Mixer Hierarchy, in the Default Work Unit, import a new audio file as a Sound FX.

Create a Play Event for the newly-created SFX.

With User-Defined SoundBanks

With Enable Auto-Defined SoundBanks unselected in the SoundBanks tab of the Wwise Project Settings dialog, you will have to create a new SoundBank. After creating the new SoundBank, add your Event to the SoundBank.

With Auto-Defined Soundbanks

With Enable Auto-Defined SoundBanks selected in the SoundBanks tab of the Wwise Project Settings dialog, you will see the following SoundBanks:

It is now possible to generate the required banks. Select the required banks, platforms, and languages, and click Generate Checked. Otherwise click Generate All.

Generating SoundBanks (Unreal Wwise Browser + Build menu)

Back in Unreal, to set the GeneratedSoundBanks folder, open Edit > Project Settings > Wwise > Integration Settings. Here, you can set the path to both the Wwise Project and the Generated Sound Banks Folder.

This should be the same folder as the Root Output Path in the Wwise Authoring SoundBanks settings.

Then open Window > Wwise Browser.

If the SoundBanks have been generated, you will see the following:

If the SoundBanks have not yet been generated, or the SoundBanks directory has not been set, you will see this:

Adding an asset from the Wwise Browser

You will see your Event listed under the Events in the Wwise Browser.

You can either drag it directly from the Browser onto the map, or first drag it onto the content browser. If you drag it directly onto the map, the asset is created in the folder specified in Edit > Project Settings > Wwise > Integration Settings > Default Asset Creation Path.

Playing from Level Blueprint

Add a new Ak Ambient Sound to the default map, then modify the Level Blueprint.

Playing the Sound

Start Play In Editor. The Event will be posted and you can hear your sound playing. If you are using the default empty Unreal project, remove all sounds from the map first.


Wwise Unreal Integration Documentation: Project Settings

Project Settings

Wwise 통합에 관련된 모든 설정은 Unreal Project Settings(Edit > Project Settings)의 Wwise 섹션에서 찾을 수 있습니다. You can copy and paste data from one platform setting structure to another, even if the structures are not identical. Unreal copies matching data and ignores the rest.

초기화 설정

이 섹션에는 Unreal Engine 설치에서 지원되는 모든 Wwise 플랫폼의 초기화 설정이 들어 있습니다. 에디터 설정의 변경 사항은 에디터를 다시 시작한 후에만 적용됩니다. 하지만 'Standalone(독립형)' 플레이 모드를 사용하면 현재 설정으로 SoundEngine의 새로운 인스턴스를 초기화할 수 있습니다.

Common Settings

  • Sample Rate
    Sampling rate in Hz. 기본 값은 48000 입니다. Use 24000 for low quality audio. Any positive, reasonable sample rate is supported. However, very low sample rates might cause the sound engine to malfunction.
  • Maximum Number of Memory Pools
    Maximum number of memory pools. A memory pool is required for each loaded bank.
  • Maximum Number of Positioning Paths
    Maximum number of automation paths for sound positioning.
  • Command Queue Size
    Size of the Command Queue.
  • Samples Per Frame
    Number of samples per audio frame (256, 512, 1024, 2048).
  • Streaming Look Ahead Ratio
    Multiplication factor for all streaming look-ahead heuristic values.
  • Number Of Refills in Voice
    Number of refill buffers in voice buffer. Set to 2 for double-buffered. The default value to 4.

Main Output Settings

  • Audio Device ShareSet
    The name of a custom audio device to use. Custom audio devices are defined in the Audio Device ShareSet section of a Wwise project. Leave this empty to output normally through the default audio device.
  • Device ID
    Device-specific identifier when you are using multiple devices of the same type. Leave the setting at 0 (default) if you are using only one device.
  • Panning Rule
    Rule for 3D panning of signals routed to a stereo bus. In "Speakers" mode, the angle of the front loudspeakers is used. In "Headphones" mode, the speaker angles are superseded by constant power panning between two virtual microphones spaced 180 degrees apart.
  • Channel Config Type
    A code that completes the identification of channels by uChannelMask. Anonymous: Channel mask == 0 and channels. Standard: Channels must be identified with standard defines in AkSpeakerConfigs. Ambisonic: Channel mask == 0 and channels follow standard ambisonic order.
  • Channel Mask
    A bit field, whose channel identifiers depend on AkChannelConfigType (up to 20).
  • Number of Channels
    The number of channels, identified (deduced from channel mask) or anonymous (set directly).

Communication Settings

  • Initialize System Comms
    Indicates whether or not to initialize the communication system. Some consoles have critical requirements for the initialization of their communication systems. Set to false only if your game already uses sockets before sound engine initialization.
  • Pool Size
    Size of the communication pool.
  • Discovery Broadcast Port
    The port where the Wwise Authoring application broadcasts "Game Discovery" requests to discover games running on the network. The default value is 24024. It cannot be set to 0.
  • Command Port
    The "command" channel port. Set to 0 to request a dynamic/ephemeral port.
  • Network Name
    The name used to identify this game within the Wwise Authoring application. Leave empty to use FApp::GetProjectName()

Advanced Settings

  • Use Head Mounted Display Audio Device
    Enable when working on projects for head-mounted displays with audio capabilities.
  • Max System Audio Objects
    Maximum number of System Audio Object to reserve. Other processes will not be able to use them. The default is 128.
  • Enable Multi Core Rendering
    When set to true, distributes SoundEngine processing tasks across the Unreal Engine Task Graph. If you change this setting, you must restart the Editor.
  • Job Worker Max Execution Time Usec
    Maximum time allotted for Sound Engine processing tasks in microseconds. If you change this setting, you must restart the Editor.
  • IO Memory Size
    Size of memory pool for I/O (for automatic streams). "It is rounded down to a multiple of <tt>uGranulrity</tt> and then passed directly to <tt>AK::MemoryMgr::CreatePool()</tt>."
  • IO Granularity
    I/O request granularity (typical bytes/request).
  • Target Auto Stream Buffer Length
    Targeted automatic stream buffer length in milliseconds. When a stream reaches the buffer limit, it is only scheduled for I/O except if the scheduler is idle.
  • Use Stream Cache
    If true, the device attemps to reuse I/O buffers that have already been streamed from disk. This is particularly useful when streaming small looping sounds. However, there is a small increase in CPU usage when allocating memory, and a slightly larger memory footprint in the StreamManager pool.
  • Maximum Pinned Bytes in Cache
    Maximum number of bytes that can be "pinned" using AK::SoundEngine::PinEventInStreamCache() or AK::IAkStreamMgr::PinFileInCache().
  • Enable Game Sync Preparation
    Set to true to enable AK::SoundEngine::PrepareGameSync usage.
  • Continuous Playback Look Ahead
    The number of quanta ahead where continuous containers instantiate a new voice before the following sounds start playing. This look-ahead time allows I/O to occur, and is especially useful to reduce the latency of continuous containers with trigger rate or sample-accurate transitions.
  • Monitor Queue Pool Size
    Size of the monitoring queue pool. This parameter is ignored in Release builds.
  • Maximum Hardware Timeoput Ms
    Time (in milliseconds) to wait for the hardware devices to trigger an audio interrupt. If there is no interrupt after that time, the sound engine reverts to silent mode and continues operating until the hardware finally responds again.
  • Debug Out Of Range Check Enabled
    Debug setting: Enable checks for out-of-range (and NaN) floats in the processing code. Do not enable in any normal usage because this setting uses a lot of CPU. It prints error messages in the log if invalid values are found at various points in the pipeline.
  • Debug Out Of Range Limit
    Debug setting: Only used when Debug Out Of Range Check Enabled is true. This defines the maximum values samples can have. Normal audio must be contained within +1/-1. Set this limit to a value higher than 1 to allow temporary or short excursions out of range. The default value is 16.

Integration Settings

Reverb

  • Max Simultaneous Reverb Volumes
    사운드를 변경할 수 있는 Ak Reverb Volume의 최대 개수를 말합니다. 이 값을 0으로 설정하면 게임에 있는 모든 Ak Reverb Volume이 비활성화됩니다. Ak Room Component를 담고 있는 액터에 있는 Ak Late Reverb Component는 이 설정의 영향을 받지 않습니다.

설치

  • Wwise Project Path
    The location of the Wwise project for the UE game. Unreal Content Browser (혹은 Build 메뉴) 안에서 Generate SoundBanks 함수를 사용하여 게임에 필요한 Wwise 에셋을 생성하기 위해서 Wwise 통합은 이 경로를 필요로 합니다. This path is relative to the Unreal Project directory, as given by FPaths::ProjectDir() in the Unreal Engine.
  • Generated Sound Banks Folder
    The location of the Wwise GeneratedSoundbanks folder, relative to the Unreal project's content directory, as given by FPaths::ProjectContentDir().
    참고: If you are using external sources, changes to this path must be reflected in the External Source settings in your Wwise project.

Cooking

  • Wwise Staging Directory
    The directory to which .bnk and .wem files will be copied when staging files during cooking.

Occlusion

  • Default Occlusion Collision Channel
    오디오 차단 계산에 사용되는 기본 충돌 채널을 말합니다.

Fit to Geometry

  • Default Fit to Geometry Collision Channel
    The default value for Collision Channel when fitting Ak Acoustic Portals and Ak Spatial Audio Volumes to surrounding geometry.

AkGeometry Surface Properties Map

  • Ak Geometry Map
    AkAcousticTexture 와 전달 손실 값을 Physical Material과 연결합니다. 이 설정은 메시를 Spatial Audio Geometry로 변환하는 AkGeometryComponent 과 함께 사용됩니다. AkAcousticTexture와 전달 손실 값에 사용한 Physical Material를 여기에 연결할 수 있습니다.

Audio Mixer

  • Audio Input Event
    Input event associated with the Wwise Audio Input. See Using the AkAudioMixer Module

Localization

  • Unreal Culture to Wwise Culture
    Unreal Culture 코드에서 Wwise Language로의 매핑을 말합니다. This enables calling Set Current Audio Culture directly with an Unreal Culture code. 더 자세한 정보는 Localizing Audio Assets 을 참고하세요.

Asset Creation

  • Default Asset Creation Path
    The path in which to create assets dragged from the Wwise Browser.

Viewports

  • Visualize Rooms and Portals
    Visualize rooms and portals in the viewport. The "realtime" setting must be enabled in the viewport.
  • Show Reverb Info
    When enabled, information about AkReverbComponents will be displayed in viewports, above the component's UPrimitiveComponent parent. The "realtime" setting must be enabled in the viewport.

Reverb Assignment Map

  • Clear Map
    Clears all entries in the map.
  • Insert Decay Key
    Click to insert a key to the Environment Decay Aux Bus map. Any Decay value higher than the highest key is assigned to the Default Reverb Aux Bus. Any Decay value between X and Y keys is assigned to the corresponding Y key Reverb Aux Bus.
  • Global Decay Absorption
    잔향 쇠퇴 값을 예측할 때 사용되는 전역적 흡수 값입니다. 기본 값은 0.5 입니다. 더 많은 정보는 Automatically Assigning the Aux Bus 을 참고하세요.
  • Default Reverb Aux Bus
    보조 버스 자동 지정 기능을 사용할 때 사용되는 기본 보조 버스입니다. 더 많은 정보는 Automatically Assigning the Aux Bus 을 참고하세요.
  • Environment Decay Aux Bus Map
    쇠퇴 값으로부터 잔향 보조 버스 자동 지정에 사용되는 보조 버스로의 여러 가지 매핑입니다. 더 많은 정보는 Automatically Assigning the Aux Bus 을 참고하세요.

RTPC

  • HFDamping Name
    (Legacy workflow) The name of the RTPC used to set the high-frequency damping produced by the environment. Overridden by the HFDamping RTPC value, if there is one.
  • Decay Estimate Name
    (Legacy workflow) The RTPC name used to estimate the time taken for the sound pressure level to reduce by 60dB. Overridden by the Decay Estimate RTPC value, if there is one.
  • Time to First Reflection Name
    (Legacy workflow) The RTPC name used to set the time taken for the first reflection to reach the listener. Overridden by the Time to First Reflection RTPC value, if there is one.
  • HFDamping RTPC
    The RTPC used to set the high-frequency damping produced by the environment.
  • Decay Estimate RTPC
    The RTPC used to estimate the time taken for the sound pressure level to reduce by 60dB.
  • Time to First Reflection RTPC
    The RTPC used to set the time taken from the first reflection to reach the listener.

사용자 설정

설치

  • Wwise Windows Installation Path
    Windows 개발 장치에서 Wwise Authoring Application의 위치를 말합니다. 이 경로는 통합 변경에 의해 새로운 버전의 Wwise Authoring Application을 필요로 할 경우 업데이트되어야 합니다.
  • Wwise Mac 설치 경로
    Mac 개발 장치에서 Wwise Authoring Application의 위치를 말합니다. You must update this value when integration changes require you to install a new version of the Wwise Authoring Application.
  • Generated SoundBanks Folder User Override
    Override the GeneratedSoundBanks folder in Integration Settings.

If these paths are not correctly set, Unreal cannot generate the Wwise SoundBanks required for the game.

WAAPI

  • WAAPI IP Address
    Wwise 저작 API (WAAPI) 에 연결하는 데 사용되는 IP Address를 말합니다.
  • WAAPI Port
    WAAPI에 연결하는 데에 사용되는 포트를 말합니다.
  • Auto Connect to WAAPI
    Enables the automatic connection of the Unreal Editor to Wwise through WAAPI.
  • Auto Sync Selection
    Whether to synchronize the selection between the Wwise Browser and the Wwise Project Explorer.

Error Message Translator

  • XML Translator Timeout
    Maximum time allotted to search for IDs (milliseconds) for the XML file reader. Set to 0 to disable.
  • Waapi Translator Timeout
    Maximum time allotted to search for IDs (milliseconds) through the WAAPI connection. Set to 0 to disable.

The Error Translators purpose is to transform numerical IDs in error messages into human-readable names, whenever the information is available. There are two methods available: through SoundBanksInfo.xml and through WAAPI. If the SoundBanksInfo.xml file is present beside the SoundBank files (it is optional), using the XML method is faster. WAAPI has the advantage of reading directly from an instance of Wwise, with the latest information. But the network communication can be very slow. Because of that it is disabled by default.

Assets Reload

  • Ask for Wwise Assets Reload
    Opens a notification that the user must accept before reloading Wwise Asset Data when working in the Unreal Editor.

Spatial Audio 설정

  • Max Sound Propagation Depth
    사운드가 전달될 수 있는 포털의 최대 개수를 말합니다.
  • Movement Threshold
    반사/회절의 재계산을 트리거하기 위해 이미터나 리스너가 이동해야 하는 정도를 말합니다. 값이 더 클수록 CPU 부하량이 적어지며 정확도가 떨어집니다.
  • Number Of Primary Rays
    확률적 레이캐스팅에서 사용되는 주요 레이 (각 리스너로부터의 캐스트)의 개수를 말합니다.
  • Reflection Order
    1~4 범위 사이의 최대 리플렉션 순서를 말합니다.
  • Diffraction Order
    Maximum diffraction order: the number of "bends" in a diffraction path. A high diffraction order accommodates more complex geometry at the expense of higher CPU usage. Diffraction must be enabled on the geometry to find diffraction paths. Set to 0 to disable diffraction on all geometry. This parameter limits the recursion depth of diffraction rays cast from the listener to scan the environment, and also the depth of the diffraction search to find paths between emitter and listener. To optimize CPU usage, set it to the maximum number of edges you expect the obstructing geometry will traverse.
  • Diffraction on Reflections Order
    Maximum possible number of diffraction points at each end of a reflection path. Diffraction on reflection allows reflections to fade in and out smoothly as the listener or emitter moves in and out of the reflection's shadow zone. When greater that zero, diffraction rays are sent from the listener to search for reflections around one or more corners from the listener. Diffraction must be enabled on the geometry to find diffracted reflections. Set to 0 to disable diffraction on reflections.
  • Maximum Path Length
    리플렉션/회절 경로의 최대 길이를 말합니다.
  • CPU Limit Percentage
    Controls the maximum percentage of an audio frame the raytracing engine can use. Percentage [0, 100] of the current audio frame. A value of 0 indicates no limit on the amount of CPU used for raytracing.
  • Load Balancing Spread
    The computation of spatial audio paths is spread on LoadBalancingSpread frames. Spreading the path computation on several frames can prevent CPU peaks. The spread introduces a delay in the path computation.
  • Enable Geometric Diffraction and Transmission
    Enables the computation of geometric diffraction and transmission paths for all sources that have the Enable Diffraction and Transmission box selected in the Positionning tab of the Wwise Property Editor. This flag enables sound paths around (diffraction) and through (transmission) geometry. Set Enable Geometric Diffraction and Transmission to false to ensure that geometry is only used to calculate reflection. Diffraction edges must be enabled on geometry for diffraction calculation. If Enable Geometric Diffraction and Transmission is false but a sound has "Enable Diffraction and Transmission" selected in the positionning tab of the Wwise Authoring tool, the sound only diffracts through portals but passes through geometry as if it were not there. Disable this setting if the game performs its own obstruction calculation, but geometry is still passed to spatial audio for reflection calculation.
  • Calc Emitter Virtual Position
    When set to true, Wwise Spatial Audio calculates the apparent or virtual position of emitters that diffract through portals or around geometry, and then sends the position to the sound engine.

Wwise Simple External Source Manager Settings

  • Media Info Table
    Table of all information required to properly load all external source media in the project. All files in this table are packaged in the built project.
  • External Source Default Media
    Optional table that defines a default media entry in the MediaInfoTable to load when an External Source is loaded.
  • External Source Staging Directory
    Staging location for External Source media when cooking the project. This is the location from which to load External Source media in the built project.

Initializing the SoundEngine

SoundEngine 초기화 단계는 FAkSoundEngineInitialization::Initialize() 메소드에서 실행됩니다. 이 메소드에서는 각 플랫폼용 Wwise Initialization Settings에서 설정된 값으로 메모리, 스트리밍 IO, 사운드 엔진, 플랫폼, 음악 엔진, 커뮤니케이션 설정을 구성합니다.

SoundEngine 초기화에 대한 더 자세한 정보는 Wwise SDK 설명서의 사운드 엔진의 서로 다른 모듈 초기화하기 섹션을 참고하세요.


Wwise Unreal Integration Documentation: Wwise 저작 API (WAAPI)

Wwise 저작 API (WAAPI)

The Wwise Authoring API communicates with the Wwise Authoring application. Through WAAPI, the Unreal integration can request and alter information about the Wwise project during a session if Unreal and Wwise Authoring are both running, and Unreal is connected to WAAPI.

WAAPI와 해당 기능에 대한 더 많은 정보는 https://www.audiokinetic.com/library/edge/?source=SDK&id=waapi.html을 참고하세요.

참고: WAAPI is only available on the Windows and Mac platforms, both in Editor and in Game.

WAAPI에 연결하기

After you integrate Wwise into your Unreal project, you must update an Unreal congifuration setting to connect to WAAPI.

To enable WAAPI in your Unreal project:

  1. Open your project in the Unreal Editor and the corresponding Wwise project in Wwise Authoring.
  2. In Unreal, click Edit > Project Settings. The Unreal Project Settings dialog opens.
  3. In the left panel, scroll to the Wwise section and click User Settings.
  4. Select Auto Connect to WAAPI. WAAPI features such as inside the Wwise Browser are now enabled.

WAAPI로 활성화되는 기능을 실행하려면 Wwise Authoring에서 열려 있는 Wwise 프로젝트가 Integration Settings의 Wwise Project Path에서 정의된 프로젝트와 빈드시 대응해야 합니다.

Integration Settings

WAAPI에 연결하기 위해 사용되는 IP 주소와 포트는 Wwise User Settings에서 설정할 수 있습니다.

User Settings

C++에서 WAAPI 사용하기

WAAPI C++ 샘플 클라이언트를 위한 Unreal 래퍼 클래스는 AkAudio 모듈의 일부로 제공됩니다.

이 래퍼 클래스를 사용하려면 먼저 Unreal Engine C++ Projects 에서 제시한 단계를 따라 AkAudio 모듈을 게임의 의존성으로 반드시 추가해야 합니다. 모듈을 게임의 의존성으로 추가한 후에 FAkWaapiClient 클래스를 사용할 수 있습니다.


Wwise Unreal Integration Documentation: Unreal Engine C++ Projects

Unreal Engine C++ Projects

Linking Modules

The Wwise Unreal Integration is separated into multiple modules. In order to use Wwise's functionality within a C++ project, you must link these modules within your project's build file (.Build.cs). You can disable a module by removing it from the build file.

In the following example, the project includes the following modules as public: Core, CoreUOBject, Engine, InputCore, AkAudio, and WwiseSoundEngine. AkAudio and WwiseSoundEngine are Wwise modules.

public class MyModule : ModuleRules
{
public MyModule(ReadOnlyTargetRules Target) : base(Target)
{
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "AkAudio", "WwiseSoundEngine" });
// Other settings
}
}

In this case, the functionality of the WwiseSoundEngine module and AkAudio module are available. Modules can be in the PublicDependencyModulesNames or PrivateDependencyModulesNames. More information about modules can be found in the Unreal Engine Documentation.

Module Overview

The Integration is organized in the following modules:

  • AkAudio: The root module for most of the Integration’s user-facing features.
  • AkAudioMixer: Allows a project to pipe the audio output, as well as audio submixes, from Unreal audio components to a Wwise project’s mixer.
  • AudiokineticTools: Implements editor-specific tools and utilities like the Wwise Browser.
  • WwiseFileHandler: Provides the Wwise Sound Engine with the media, SoundBanks, and external sources it needs, including handling requests from the Wwise Location Resolver and I/O Hook.
  • WwiseProjectDatabase: Provides a memory-based database view of the current state of the Wwise project’s generated SoundBanks.
  • WwiseResourceCooker: Converts WwiseObjectInfo Structures to Cooked structures and copies the required resources to the staging directory.
  • WwiseResourceLoader: Handles loading and unloading of all resources needed for all Wwise assets types.
  • WwiseSoundEngine: Provides the bridging between the Wwise Sound Engine API and the Unreal project.

The Integration's module dependencies are illustrated in the following figure:

Overriding the Wwise Unreal Integration

The modules in the Integration, aside from WwiseSoundEngine, AudiokineticTools, and AkAudio, are designed to be extensible through inheritance. Most functions in these modules are virtual to allow developers to override them and modify their behavior to best suit their project. To override a module, create a new module and make sure it inherits the module you want to override. Then, override the desired functions. To use your new module, make sure it is included in the Build.cs of your game and added to the DefaultEngine.ini like this:

[Audio]
WwiseFileHandlerModuleName=WwiseSimpleExternalSource

The <tt>WwiseSimpleExternalSource</tt> module is an example of overriding a module. It overrides the WwiseFileHandler module to handle external sources with Data tables.

Creating AkComponents Using C++

When creating a new AkComponent using C++, you must attach it to a parent component. The AkComponent is necessary for the API to work as intended. The following sections provide examples of how to add an AkComponent.

Using the Wwise API in your Unreal Projects

It's possible to use the Wwise API through the Wwise Unreal Integration. You can call most functions through the WwiseSoundEngine module or the AkAudio module.

WwiseSoundEngine Module

The WwiseSoundEngine module provides low-level access to most SoundEngine API operations. With the WwiseSoundEngine module, you can access API functions directly and securely, as shown in the following example:

#include "AkAudioEvent.h"
#include "AkComponent.h"
#include "Wwise/LowLevel/WwiseLowLevelSoundEngine.h"
void PostEventSoundEngine(UAkAudioEvent* Event, AActor* GameObject)
{
if (auto* SoundEngine = IWwiseSoundEngineAPI::Get())
{
if(Event && GameObject)
{
TArray<UAkComponent*> Array;
GameObject->GetComponents<UAkComponent>(Array);
//The Actor doesn't have an AkComponent attached. This component is needed if we want sound to be emitted from this actor.
if (Array.Num() == 0)
{
//PostEvent doesn't load the event. The Event needs to be loaded beforehand.
if (!Event->IsLoaded())
{
Event->LoadData();
}
auto* AkAudioComponent = NewObject<UAkComponent>(GameObject);
AkAudioComponent->SetupAttachment(GameObject->GetDefaultAttachComponent());
Array.Add(AkAudioComponent);
AkAudioComponent->RegisterComponent();
}
SoundEngine->PostEvent(Event->GetWwiseShortID(), Array[0]->GetAkGameObjectID());
}
}
}

This code posts an Event on a given actor. You must add the UAkComponent on the actor to register it with Wwise. The Event must be loaded as well since loading an Event isn't automatically performed in the WwiseSoundEngine module.

참고: Prior to version 2022.1 of the Integration, it was impossible to access code outside the AkAudio module because the API needed to be accessed in the same dynamic library.

AkAudio Module

The AkAudio module is the root module for most of the Integration’s user-facing features. It can accomplish most of what the WwiseSoundEngine module can using Unreal Components. It contains classes for the asset types and components used by the Integration. As an alternative to calling the SoundEngine directly, the AkAudioDevice provides many helper functions to wrap common uses of the WwiseSoundEngine API. These helper functions also check that the necessary resources required to use the API are loaded, and they provide more informative logging.

The following code, just like the previous example, posts an Event on a given actor, but also takes care of attaching the AkComponent and loading the Event:

#include "AkAudio.h"
void PostEvent(UAkAudioEvent* Event, AActor* GameObject)
{
if (FAkAudioDevice::Get())
{
FAkAudioDevice::Get()->PostAkAudioEventOnActor(Event, GameObject);
}
}

More examples of code can be found in the WwiseDemoGame under WwiseDemoGame/WwiseCodeExample and can be experimented with in the WwiseDemoCodeExampleMap.

Debug Features

Logging

Each module in the Integration has an independent log verbosity level. This helps to debug efficiently. If an error occurs, you can find which module produced the error, and then you can set the verbosity of that module's logs to Verbose or VeryVerbose to better understand why the error occurred. You can change the verbosity level of each module in the Core.Log section of the DefaultEngine.ini file. There's also a special logging category called LogWwiseHints enabled by default across all modules, which warns about using deprecated functions and other bad habits.

The following verbosity levels are possible:

  • Fatal: Causes a crash when program execution cannot or should not continue. For example, if required plug-in modules are not loaded.
  • Error: Prevents packaging the game if the audio is not in a functional state.
  • Warning: Indicates when non-critical features might have unpredictable behavior. It can also prevent packaging if desired.
  • Display: Logs information regarding the initialization of modules and provides Commandlet information.
  • Log: Logs various important operations.
  • Verbose: Logs all operations that a module is performing.
  • VeryVerbose: Logs every step of each operation a module is performing.

In the following example, you can see the verbosity level associated with each module:

[Core.Log]
LogAudioKineticTools=Log
LogWwiseProjectDatabase=Log
LogWwiseSimpleExtSrc=Error
LogWwiseResourceLoader=Warning
LogWwiseResourceCooker=Log
LogWwiseFileHandler=Verbose
LogAkAudio=Verbose
LogWwiseHints=Warning

More information about verbosity levels can be found in the Unreal Engine Documentation.

Stats

The Integration includes the following Stats that might help with debugging:

  • AkAudioDevice: Logs information about Post Event Async calls.
  • AkSoundBankGenerationSource: Logs WAAPI calls related to SoundBank generation.
  • WwiseFileHandler: Logs information about loaded media, SoundBanks, and external sources.
  • WwiseFileHandlerLowLevelIO: Logs information about streaming sounds.
  • WwiseProjectDatabase: Logs information about physical memory.
  • WwiseResourceLoader: Logs information about referenced AkTypes.
  • WwiseSoundEngine: Logs information about API calls.

To access this information, select the Stats that interest you in the Unreal Viewport options.

More information about Stats can be found in the Unreal Engine Documentation.

Packaging Requirements

When you package your Unreal project, the assets are "tree-shaken." In other words, Unreal assets that represent Wwise objects are automatically included if they are referenced either by another packaged asset or by a packaged map. If they are, any associated SoundBanks and media files are copied into the built package. Any Wwise Unreal assets that do not satisfy one of these conditions are not included.

This packaging approach is efficient, but in certain cases some Wwise Unreal assets might be improperly excluded, which can cause errors. The following scenarios can cause this type of problem:

  • The project uses Wwise Unreal assets that are not directly referenced by packaged maps.
  • The project uses Events that are posted by string or from code.

If one of these scenarios applies to your project, you must therefore ensure that either the asset is directly referenced by a map, or ensure that the required assets are manually loaded. To manually add assets, add the containing directory to the project's Additional Asset Directories to Cook in the Project Settings. Refer to Project Section of the Unreal Project Settings for more information.


Wwise Unreal Integration Documentation: Using the Wwise Demo Game

Using the Wwise Demo Game

The Wwise Demo Game, which contains the Wwise Unreal Integration, is available to download from the Audiokinetic Launcher. The game's map provides several demonstration stations where you can test various integration features.

In order to build the demo game, you must install the Wwise SDK and modify the Wwise integration in the sample game. Refer to Installing Wwise and Component Packages and Upgrading or Modifying an Integration Package for more information.

To download the Wwise Demo Game:

  1. In the Audiokinetic Launcher, click Unreal.
  2. In the RECENT UNREAL ENGINE PROJECTS menu, click Add Demo Game > IntegrationVersion.
    A file explorer window opens.
  3. Browse to the folder in which you want to save the Unreal project and click Select. The integrated Unreal project is installed.

Generation of the SoundBanks

  1. Unreal Editor에서 WwiseDemoGame을 여세요.
  2. From the toolbar, under Build, select Generate SoundBanks... from the Audiokinetic category.
  3. 원하는 모든 플랫폼과 언어를 선택한 후 OK를 클릭하세요.

After the SoundBanks are generated, the Wwise project associated with your GeneratedSoundBanks folder is re-parsed, and the Wwise assets in your project are reloaded.

맵 콘텐츠

AkEvent Animation Notify

Animation Notify를 사용하면 SoundEngine으로 AkEvent를 게시할 수 있습니다. Animation Notify 사용에 대한 데모는 FPP_Fire animation에서 확인할 수 있습니다.

환경음 데모

맵의 이 구역에서는 AkAmbientSound 액터의 사용을 보여줍니다. 레벨에 있는 AmbientNoise_Spatialized 환경음 이미터는 Level Blueprint 안에 있는 Start All Ambient Sounds 노드에 의해 시작됩니다. 액터의 위치를 찾는 데에 도움을 주기 위해 게임을 시작하면 노란색 감쇠구가 표시됩니다. The Event used by this emitter is part of the AmbientBank SoundBank.

또한 이 구역에서는 차단 기능도 보여줍니다. 플레이어 폰을 환경음 근처에 있는 벽 뒤나 (노란색 구역 안에 있어야 함) 구 안에 있는 큰 상자 뒤로 옮기면 소리가 차단되는 것을 들을 수 있습니다. 차단은 Blueprint 레벨의 'Ambient Sound handling' (빨간색) 섹션에서 설정하여 활성화할 수 있습니다.

시퀀서 데모

맵의 이 구역에서는 WwiseDemoSequence 에ㅅ셋에서 Event와 RTPC 트랙의 사용을 보여줍니다. Sequencer 에디터에서 레벨 시퀀스를 열면 Event 트랙이 움직이는 정육면체를 대상으로 하는 드럼 박자를 재생하는 것이 보이며, DrumKitModulation 게임 매개 변수가 RTPC 트랙에 의해 구동되는 것이 보입니다.

Spatial Audio Tutorial Map으로 이동하기

Sequencer 근처에는 Spatial Audio Tutorial Map으로 텔레포트시켜주는 보이지 않는 트리거가 있습니다. 이를 통해 맵 전환을 시험할 수 있습니다.

RTPC 데모

맵의 이 섹션에서는 액터를 대상으로 하는 Set RTPCValue 노드의 사용을 Level Blueprint에서 보여줍니다 (초록색 댓글 섹션). 마우스 스크롤 휠 (게임 패드에서는 상하 D-패드, 터치 스크린에서는 두 손가락으로 스와이프)은 'Velocity' Game Parameter로 제공되는 변수와 연결되어 있습니다. 이 매 변수는 Wwise 프로젝트에서 VelocityLoop 사운드의 피치를 제어합니다.

The "Create RTPC button Event dispatchers" section of the level Blueprint also demonstrates how to post an Event that targets an actor, using the Post Event node.

Reverb Demo

맵의 이 섹션에서는 AkReverbVolume 의 사용을 보여줍니다. 구 모앙의 동굴 안에는 AkReverbVolume 을 사용하여 무기음에 Reverb Effect를 추가합니다. 해당 사운드를 방사하는 액터는 잔향 볼륨 기능을 무시하도록 설정할 수 있습니다. 그렇게 하기 위해서는 MyCharacter Blueprint의 WeaponAkComponent 에서 'Use Reverb Volume'을 선택 해제하세요.

Switch Demo

This section of the map demonstrates how to set a Switch using Blueprints (in the "Switch Logic" section of the Blueprint level). 버튼을 사용하면 (버튼 앞에 있는 벽에 적힌 설명을 보세요) SoundEngine으로 Event를 게시할 수 있습니다. 키보드에서 L이나 H를 누르면 (게임 패드에서는 D-패드의 좌우, 터치 스크린에서는 세/네 손가락으로 탭) 스위치의 값이 변경됩니다.

Subtitle Demo

맵의 이 섹션에서는 Blueprint에서의 이벤트 콜백 사용과 Wwise 에셋에서의 사용자 데이터 사용을 보여줍니다.

이 Event는 WAV 마커를 담고 있는 사운드 파일을 재생합니다. 해당 Event와 연관된 마커 콜백을 등록하면 버튼 앞에 있는 벽에 있는 자막을 업데이트할 수 있습니다. 이렇게 자막을 업데이트하기 위해서 Level Blueprint에서 Callback mask 입력 핀이 Marker 로 설정되었습니다. 그런 다음 PostEventCallback 입력 핀을 HandleSubtitles 라는 커스텀 Blueprint Event와 연결했습니다.

실제 자막은 /Game/WwiseAssets/SubtitleTable.uasset에 있는 DataTable 에셋에 저장됩니다. 그런 다음 이 SubtitleTable 은 SubtitleEvent 속성의 사용자 데이터에서 설정됩니다.

HandleSubtitles 이벤트에서는 Get Ak Audio Type User Data 를 사용하여 사용자 데이터 에셋을 가져옵니다. 그런 다음 MarkerCallback 의 Identifier 입력란을 표의 색인으로 사용하여 올바른 자막을 접근하고 벽에 있는 TextRenderActor 로 해당 텍스트를 적용합니다.

For more information on using callbacks in Blueprints, see Using Callbacks in Blueprints.

External Sources Demo

맵의 이 섹션은 Blueprint에서 External Source의 사용을 보여줍니다.

레벨 Blueprint는 CurrentExternalSourceArray 변수를 포함합니다. 이 변수는 이미 구성되어 있는 AkExternalSourceInfo 구조를 담고 있습니다. 이 이벤트를 게시하면 CurrentExternalSourceArray 변수 안에 담긴 세 파일이 순차적으로 재생됩니다.

External Source 사용에 대한 더 많은 정보는 외부 음원 사용하기 을 참고하세요.

Localized Voice Demo

맵의 이 섹션은 Blueprint에서 Localized Voice의 사용을 보여줍니다.

해당 이벤트는 Wwise 프로젝트에서 설정한대로 현지화된 음성을 재생합니다. 왼쪽 버튼을 사용하면 영어 대사를, 오른쪽 버튼을 사용하면 불어 대사가 재생됩니다.

Localization에 대한 더 많은 정보는 Localizing Audio Assets 를 참고하세요.

Sub level Demo

맵의 이 섹션에서는 스위치 컨테이너 미디어 분할이 Level Streaming과 상호 작용하는 방식을 보여줍니다.

데모의 시작 맵에서는 Footstep_Material 스위치 컨테이너의 Metal 스위치 값만 사용합니다. Wwise 프로파일러에 연결하면 이 컨테이너를 위해 로드되는 미디어는 Metal 미디어 데이터뿐인 것을 볼 수 있습니다. Sub Level Demo에서 버튼을 누르면 Wood와 Grass 스위치 값도 사용하는 스트리밍 레벨이 로드됩니다. Wwise 프로파일러를 보면 이 스위치 값과 연관된 미디어도 이제 로드됩니다. 버튼을 다시 누르면 레벨이 언로드되어 Grass와 Wood 미디어 파일도 언로드됩니다.

For more information on splitting switch container media, see Optimizing Memory Usage with Reference-Loaded Switch Containers.

WAAPI 위젯 데모

맵의 이 섹션에서는 WAAPI UMG 위젯 을 사용하여 게임에서 Wwise를 직접 제어하는 법을 보여줍니다.

왼쪽 벽에 있는 데모는 Unreal Engine의 기본 위젯을 Blueprint 스크립팅과 함께 사용하여 Wwise를 제어하는 법을 보여줍니다. 1 단계에서, 키보드는 Editable Text Box에서 텍스트를 변경합니다. 텍스트가 변경되면 WAAPI 블루프린트 함수 를 사용하여 WAAPI Call이 생성되며 Widget's Graph섹션에 있는 'Search for an item' 섹션에서 보이는 것과 같이 입력된 텍스트 (2 단계에서 볼 수 있음)와 대응하는 Wwise 요소를 찾습니다. WAAPI는 대응하는 요소의 목록을 JSON Objects 로 리턴합니다. 그런 다음 이 목록이 파싱되어 3 단계에 있는 드롭다운 메뉴를 구성합니다. 요소가 선택되면 버튼을 사용하여 해당 요소를 재생하거나 중단할 수 있습니다. 이 작동 방식을 제어하는 Blueprint 스크립트는 Widget's Graph의 '선택한 요소 재생/중단하기' 섹션에서 확인할 수 있습니다.

참고: Mac 플랫폼에서는 Unreal Engine의 알려진 이슈로 인해 3D 위젯에서 ComboBox의 값을 업데이트할 수 없습니다. 여전히 게임에서 'P'를 눌러서 이 위젯의 2D 버전을 사용하여 데모를 확인해볼 수 있습니다.

뒷쪽 벽에 있는 데모는 Ak Wwise Tree 와 Ak Item Bool 속성 위젯을 사용하여 Ak 체크 상자 를 제어하는 법을 보여줍니다. 이 나무를 사용하면 제어할 Wwise 오브젝트를 찾을 수 있습니다. 이 요소를 UE Checkbox나 Ak Checkbox로 드래그하면 체크 상자가 제어하는 요소를 설정할 수 있습니다. Bool Properties 피커에서도 동일하게 실행되어야 합니다. 요소와 속성이 체크 상자에 설정되면 이 체크 상자를 사용해서 Wwise에서 해당 속성을 직접 활성화하거나 비활성화할 수 있습니다. Wwise에서 속성을 변경하면 두 체크 상자에도 변경 내용이 반영됩니다. UE Checkbox는 내장 Checkbox 위젯과 Blueprint 스크립팅을 통해 이 작업을 실행할 수 있는 법을 보여줍니다. Ak Checkbox는 Blueprint 스크립팅 없이 동일한 작동 방식을 성취할 수 있다는 것을 보여줍니다.

오른쪽 벾에 있는 데모는 이전 Checkbox 데모와 아주 비슷하지만, Ak Wwise Tree 와 Ak 요소 속성 를 사용하여 Ak 슬라이더 를 제어하는 법을 보여줍니다.

이 세 가지 데모는 모두 게임 플레이 도중 키보드에서 'P'키를 눌러서 일반 2d UMG 위젯으로 실행할 수 있습니다.


Wwise Unreal Integration Documentation: Using Wwise Unreal Objects

Using Wwise Unreal Objects

The Wwise Unreal Integration provides a variety of objects that you can use in the Unreal Editor. Refer to the following topics for more information about the different objects:


Wwise Unreal Integration Documentation: Wwise Unreal Assets

Wwise Unreal Assets

목차

  • Wwise Unreal Assets
  • WwiseObjectInfo Structures
    • FWwiseObjectInfo
    • FWwiseEventInfo
    • FWwiseGroupValueInfo
  • Wwise Asset Cooked and Loaded Data
  • Wwise Unreal Asset Types
    • UAkAudioType
    • UAkAudioEvent
    • UAkInitBank
    • UAkAuxBus
    • UAkEffectShareSet
    • UAkGroupValue
    • UAkStateValue
    • UAkSwitchValue
    • UAkRtpc
    • UAkTrigger
    • UAkAcousticTexture
    • Deprecated Asset and Data Types
  • Viewing Asset Links in Unreal

Wwise Unreal Assets

The Unreal Integration requires users to create assets to represent corresponding objects in the Wwise project. You can create these assets through Using the Drag-and-Drop Feature drag-and-drop from the Wwise Browser, or from the right-click menu in the Content Browser. Assets created through drag-and-drop automatically contain the information (GUID, ShortID, Name) required to link them to the Wwise objects they represent. When you create assets through the Content Browser, you must add this information manually. In both cases, you can edit assets afterwards to point to new or different Wwise objects. For more information about the Blueprint functions that use these asset types, refer to 블루프린트 함수.

참고: When you directly reference Wwise assets in your maps and Blueprints, all of the Wwise resources (.bnk and .wem files) the assets require are automatically packaged in the game. However, if you choose to load these assets through code only, you must ensure that they are packaged correctly.

The following table lists the Wwise objects types that have corresponding Unreal asset classes.

Wwise Unreal Objects
Wwise Object Type | Unreal Asset Class | Description
Acoustic Texture | UAkAcousticTexture | Wrapper for ShortId, which identifies it to the SoundEngine.
RTPC | UAkRtpc
Trigger | UAkTrigger
Auxiliary Bus | UAkAuxBus | Contains the ShortId and also ensures that the required media and SoundBank resources are loaded into memory and packaged in the built game.
Event | UAkAudioEvent
Effect ShareSet | UAkEffectShareSet | Wrapper for ShortId, also required to dynamically set Effect ShareSets from within the game. Ensures that its required media and SoundBank resources are loaded into memory and packaged in the built game.
Init Bank | UAkInitBank | Ensures that the Init Bank file is packaged in the game and loaded before other SoundBanks.
State Value | UAkStateValue | Wrapper for ShortId as well as the ShortId of the parent group. Required for the advanced setting SwitchContainerLoading::LoadOnReference of the FWwiseEventInfo structure in UAkAudioEvent assets to function properly. When enabled, loading and unloading these group value assets triggers dynamic loading of switched media resources. For more information, refer to Optimizing Memory Usage with Reference-Loaded Switch Containers.
Switch Value | UAkSwitchValue

WwiseObjectInfo Structures

Wwise Unreal assets contain a FWwiseObjectInfo information structure that points to a unique object in the Wwise project. Some asset classes use a subclass with additional fields that affect behaviors such as how data is prepared for loading. This structure is serialized in the asset when it is saved, but discarded when it is cooked for a packaged build. During cooking, the structure is passed to the WwiseResourceCooker to fetch the cooked data, which is serialized in the packaged asset. Refer to Wwise Asset Cooked and Loaded Data for more information about the CookedData structure.

FWwiseObjectInfo

The base information struct. When assets in the editor are loaded and cooked, this struct is used to query the WwiseDatabase to obtain the CookedData structure that is used to load all the asset's required resources (.bnk and .wem files) into memory.

속성:

  • WwiseGuid: The GUID that identifies this asset in the Wwise project.
  • WwiseShortId: 32-bit integer that represents the asset in the Wwise SoundEngine.
  • WwiseName: String name of the asset in the Wwise project. It does not have to match the name of the Unreal asset that contains it. However, in the rare case in which all identifying fields in the WwiseObjectInfo are blank when the asset is serialized, the WwiseName field is updated to match the Unreal asset name.
  • HardCodedSoundBankShortId: 32-bit integer that identifies which SoundBank the asset must load as a dependency. For example, if an Event is included in multiple SoundBanks, you can specify which SoundBank to package and load with that asset. If the field is not set, all SoundBanks that contain the Wwise object are loaded with it.
참고: The HardCodedSoundBankShortId property only affects UAkAudioEvent, UAkAuxBus, and UAkEffectShareSet assets, because they are the only assets that require SoundBanks resources.

Searches in the Wwise Database prioritize fields in the following order: WwiseGuid, WwiseShortId, and finally WwiseName. For example, if the WwiseGuid is invalid, the WwiseShortId is used to search for the object.

If any of the three properties that identify the Wwise object in the WwiseObjectInfo (WwiseShortId, WwiseGuid, or WwiseName) are modified in the Unreal Asset inspector, the Wwise Project Database is searched for an object that matches the new property's value and the other two fields are updated accordingly.

Subclasses of FWwiseObjectInfo include additional information used to load data correctly. Any changes to the properties of the WwiseObjectInfo (or any of the fields of a subclass) in the inspector also cause the asset's Wwise resources to be reloaded.

FWwiseEventInfo

Subclass of FWwiseObjectInfo for UAkAudioEvent assets. The FWwiseEventInfo contains additional options for users to customize the Event asset's behavior when it is loaded and destroyed.

Additional Properties:

  • SwitchContainerLoading: "AlwaysLoad" to load all switched media with the event that uses it, or "LoadOnReference" to only load media when the switch or group values are also in memory. For more information, refer to Optimizing Memory Usage with Reference-Loaded Switch Containers.
  • DestroyOptions: "StopEventOnDestroy" to stop Event playback when it is destroyed or "WaitForEventEnd" to wait for the event to stop playing.

FWwiseGroupValueInfo

Subclass of FWwiseObjectInfo for Switch and State Value assets. The FWwiseGroupValueInfo also contains the State or Switch Group's ShortId.

Additional Properties:

  • GroupShortId: 32-bit integer that identifies the Group that includes the asset.

Wwise Asset Cooked and Loaded Data

Wwise Assets contain a CookedData structure that is used to load their required resources (.bnk and .wem files), and to monitor their dependencies on other Wwise Objects (for example, which switches are used by Events that play Switch Containers). The WwiseResourceCooker module provides functions that accept FWwiseObjectInfo structures and return the CookedData structure for that Wwise object. It also provides functions that take FWwiseObjectInfo structures and stage the required resources for packaging.

When working in editor, the CookedData structure is transient and is not serialized to the asset. This prevents changes to the data or to relationships between Wwise objects from unnecessarily dirtying their corresponding Unreal assets. During packaging, the CookedData is serialized in the packaged asset and the Wwise info structure is discarded.

The WwiseResourceLoader module loads an asset's required resources into memory. It provides functions that accept a CookedData structure and manages the loading of the actual resources by calling methods in the WwiseFileHandler module. It then returns a reference to the "Loaded" structure.

참고: UAkRtpc, UAkTrigger, and UAkAcousticTexture assets do not need to load additional resources. They do not interact with the WwiseResourceLoader, and their CookedData structure only contains their ShortId.

Wwise Unreal Asset Types

UAkAudioType

Base class for all Wwise Unreal Assets.

속성:

  • AutoLoad: Determines whether to load Wwise data (banks and media) automatically with the Unreal Asset.
  • UserData: 사용자 데이터의 배열입니다. Can store anything useful for a custom feature that uses the Wwise integration. For example, UserData can store subtitle data for voiceover events.

Blueprint functions:

  • LoadData: Loads the resources (.bnk and .wem files) required by the asset. Use this when AutoLoad is disabled to load Wwise resources manually. It is safe to call multiple times, but might cause resources to be reloaded unnecessarily.
  • UnloadData: Unloads the resources (.bnk and .wem files) required by the asset. If the resources are required by other loaded assets, they are not unloaded until all of those assets are unloaded as well.

UAkAudioEvent

Subclass version of UAkAudioType for Events.

속성:

  • MaxAttenuationRadius: Maximum attenuation radius.
  • IsInfinite: Indicates whether the sound played by the Event loops endlessly.
  • MinimumDuration: Estimate of the minimum duration of the sound played by the Event.
  • MaximumDuration: Estimate of the maximum duration of the sound played by the Event.
  • EventInfo: FWwiseEventInfo that fills the EventCookedData property when in the editor.
  • EventCookedData: Transient FWwiseLocalizedEventCookedData that contains the mapping from languages to language-specific FWwiseEventCookedData.
참고: The EventCookedData, MaxAttenuationRadius, IsInfinite, MinimumDuration, and MaximumDuration properties are filled in when the AkAudioEvent asset is loaded in the editor, and serialized to the asset when cooking it. The integration uses MaxAttenuationRadius to display additional information in the component visualizer, while the other three are used when displaying events in timeline tracks.

Unreal Content Browser Context Menu Options:

  • Play Event: Event를 게시합니다.
  • Stop Event: 현재 재생 중인 모든 Event를 중단합니다.

UAkInitBank

Subclass of UAkAudioType for the Init Bank.

  • InitBankCookedData: Transient FWwiseInitBankCookedData.
참고: The Autoload property of UAkAudioType does not affect this asset type.

UAkAuxBus

Subclass of UAkAudioType Auxiliary Busses.

  • AuxBusInfo: FWwiseObjectInfo that fills in the AuxBusCookedData property when in editor.
  • AuxBusCookedData: Transient FWwiseLocalizedAuxBusCookedData that contains the mapping from languages to language-specific FWwiseAuxBusCookedData.

UAkEffectShareSet

Subclass of UAkAudioType for Effect ShareSets.

  • ShareSetInfo: FWwiseObjectInfo that fills in the AuxBusCookedData property when in editor.
  • ShareSetCookedData: Transient FWwiseLocalizedShareSetCookedData that contains the mapping from languages to language-specific FWwiseShareSetCookedData.

UAkGroupValue

Subclass of UAkAudioType and base class for UAkStateValue and UAkSwitchValue.

  • GroupValueInfo: FWwiseGroupValueInfo that fills in the GroupValueCookedData property when in the editor.
  • GroupValueCookedData: Transient FWwiseGroupValueCookedData.

UAkStateValue

Subclass of UAkGroupValue for State values.

UAkSwitchValue

Subclass of UAkGroupValue for Switch values.

UAkRtpc

Subclass of UAkAudioType for RTPC / Game Parameters.

  • RtpcInfo: FWwiseObjectInfo that fills in the GameParameterCookedData property when in the editor.
  • GameParameterCookedData: Transient FWwiseGameParameterCookedData.
참고: The Autoload property and the LoadData and UnloadData Blueprints of UAkAudioType do not affect this asset type.

UAkTrigger

Subclass of UAkAudioType for Music Triggers.

  • TriggerInfo: FWwiseObjectInfo that fills in the TriggerCookedData property when in the editor.
  • TriggerCookedData: Transient FWwiseTriggerCookedData.
참고: The Autoload property and the LoadData and UnloadData Blueprints of UAkAudioType do not affect this asset type.

UAkAcousticTexture

Subclass of UAkAudioType for Acoustic Textures. For information about how to use this with Spatial Audio features, refer to AkAcousticTexture.

  • TriggerInfo: FWwiseObjectInfo that fills in the AcousticTextureCookedData property when in the editor.
  • AcousticTextureCookedData: Transient FWwiseAcousticTextureCookedData.
참고: The Autoload property and the LoadData and UnloadData Blueprints of the UAkAudioType do not affect this asset type.

Deprecated Asset and Data Types

The following classes and structs are deprecated, and are only used for migration from older projects:

  • UAkAssetData
  • UAkAssetPlatformData
  • UAkAudioBank
  • UAkExternalMediaAsset
  • UAkFolder
  • UAkLocalizedMediaAsset
  • UAkMediaAsset
  • UAkMediaAssetData

Viewing Asset Links in Unreal

The relationships between Events and media are maintained through Unreal references. You can therefore use the Unreal Reference Viewer to view links between assets, as shown in the following image.

For more information about the Unreal Reference Viewer, refer to Finding Asset References.


Wwise Unreal Integration Documentation: Wwise Unreal Actors

Wwise Unreal Actors

목차

  • AkAmbientSound
  • AkReverbVolume

AkAmbientSound

AkAmbientSound is an AActor class used in the same way as the AAmbientSound object that is included with the Unreal Audio system. There are two ways to control its playback: through its own object Blueprint functions, or with the Start All Ambient Sounds and Stop All Ambient Sounds global helper functions. An AkAmbientSound also contains an AkComponent, which has its own Properties.

속성:

  • Stop When Owner Is Destroyed: The Event is stopped automatically when the AkAmbientSound is destroyed.
  • Auto Post: Automatically post the associated UAkAudioEvent on BeginPlay.

Blueprint Functions:

  • Start All Ambient Sound: 모든 환경음의 재생을 시작합니다.
  • Start Ambient Sound: 선택된 환경음의 재생을 시작합니다.
  • Stop All Ambient Sound: 모든 환경음의 재생을 중단합니다.
  • Stop Ambient Sound: 선택된 환경음의 재생을 중단합니다.

AkReverbVolume

AkReverbVolume is an AVolume class used in a similar way to the AReverbVolume object that is included with the Unreal Audio system. Any Brush in the Editor can spawn it. The reverb effect is obtained with an AkLateReverbComponent.


Wwise Unreal Integration Documentation: Wwise Unreal Components

Wwise Unreal Components

목차

  • AkLateReverbComponent
  • AkComponent
  • AkAudioInputComponent

AkLateReverbComponent

You can add this component to any UPrimitiveComponent to create a reverb zone from that Primitive Component. To obtain the reverb effect, assign a Wwise Auxiliary Bus to the component and route all AkComponents that enter this volume to the associated Wwise Auxiliary Bus. If there is volume overlap, a Priority property determines which Auxiliary Busses the target AkComponent is routed to. AkReverbVolume 을 오고 나가는 Auxiliary Bus의 레벨에 일시적인 페이드 인/아웃 Effect가 적용됩니다. If an Ak Late Reverb Component is active on an actor that also has an AkRoomComponent, the Late Reverb Component is disabled and reverb is handled by the AkRoomComponent, which uses the Spatial Audio engine to render Effects.

Information about the reverb parameters is displayed above any objects with attached Ak Late Reverb Components. You can enable or disable this text in the Wwise Integration Settings under Viewports - Show Reverb Info, or from the Unreal Level Editor Viewport menu.

Show Reverb Info in the Level Editor Viewport Menu

속성:

  • Enable Late Reverb: 해당 컴포넌트를 활성화/비활성화 합니다.
  • Send Level: Wwise Auxiliary Bus와 연관된 최대 Send Level 입니다.
  • Fade Rate: Rate at which to fade in/out the Send Level of the current Late Reverb Component when entering/exiting it, in percentage per second. For example, a value of 0.2 makes the fade time 5 seconds.
  • Priority: The order in which to apply the Late Reverb Components. In the case of overlapping volumes, only the ones with the highest priority are chosen (the number of simultaneous Late Reverb Components is configurable in the Unreal Editor Project Settings under Wwise > Integration Settings). If two or more overlapping Late Reverb Components have the same priority, it is not possible to predict which Late Reverb Component will be applied first.
  • Auto Assign Aux Bus: Automatically assigns the aux bus for this reverb component by estimating the decay time of the reverb produced by the parent Primitive Component, given its volume and surface area. 이 쇠퇴 값은 통합 설정에서 Automatically Assigning the Aux Bus 으로부터 보조 버스를 선택하는 데에 사용됩니다. 이 속성은 기본적으로 활성화되어 있습니다.
  • Aux Bus: UAkAuxBus assigned to this volume. In the Wwise project, this aux bus enables game-defined auxiliary sends. If you are using Late Reverb with AkRoomComponent and AkPortalComponent, Listener Relative Routing for Positioning must also be enabled and must have a 3D Spatialization assigned.
  • Environment Decay Estimate: 후기 잔향이 연결된 Primitive Component를 기반으로 해당 잔향의 환경에 대한 T60(음압 레벨이 60dB만큼 감소하는 데에 걸리는 시간)의 예상 값입니다. 이 T60 값은 통합 설정에서 Automatically Assigning the Aux Bus 을 사용하는 보조 버스를 자동으로 지정하는 데에 사용되거나, 혹은 통합 설정에서 Driving Global Reverb RTPCs 로부터 Decay Estimate RTPC를 구동하는 데에 사용됩니다.
  • HFDamping: 연관된 AkGeometryComponent (혹은 이를 소유하는 Actor가 Volume일 경우 AkSurfaceReflectorSetComponent )에 따라 해당 환경에 의해 생성되는 고주파수 감폭(damping)의 예상 값입니다. To estimate the HF damping, a geometry component must be associated with this reverb component through the AssociateAkTextureSetComponent function. If this late reverb component has a sibling geometry component (or surface reflector set component), it is associated automatically and there is no need to call AssociateAkTextureSetComponent. If AssociateAkTextureSetComponent is used, the HFDamping value is only accurate during play. 이 값이 0.0일 경우 모든 주파수가 동일하게 감폭됨을 의미합니다. A value greater than 0.0 indicates more damping for higher frequencies than lower frequencies. A value less than 0.0 indicates more damping for lower frequencies than high frequencies. 이 값은 통합 설정의 Driving Global Reverb RTPCs 로부터 HFDamping RTPC를 구동하는 데에 사용될 수 있습니다. Average absorption values are calculated using each of the textures in the collection, weighted by their corresponding surface area.
  • Time to First Reflection: An estimation of the time required for the first reflection to reach the listener, based on the primitive component to which the late reverb is attached. The estimate is based on an emitter and listener positioned at the centre of the parent primitive component. 이 값은 통합 설정에서 Driving Global Reverb RTPCs 로부터 Time To First Reflection RTPC를 구동하는 데에 사용될 수 있습니다.

Blueprint Functions:

  • Associate Ak Texture Set Component: Set the component (either AkGeometryComponent or AkSurfaceReflectorSetComponent) to use to estimate the HFDamping. For example, in a Blueprint that has a static mesh component with an AkGeometryComponent child component, you can call this function in BeginPlay to associate that AkGeometryComponent with this reverb component. If this late reverb component has a sibling AkGeometryComponent (or AkSurfaceReflectorSetComponent), it is associated automatically and there is no need to call this function.
참고:
  • An Ak Late Reverb Component must be attached to a UPrimitiveComponent in the component hierarchy. If an Ak Late Reverb Component does not have a UPrimitiveComponent as its parent, an error is logged and the component does not have an effect.
  • If you use an AkLateReverbComponent in a custom Blueprint class, we recommended that you use a simple collision component as the parent, such as BoxCollision, SphereCollision, or CapsuleCollision component. 더 많은 정보는 Spatial Audio Blueprint 컴포넌트 를 참고하세요.
  • To use the Environment Decay Estimate, HFDamping, and Time to First Reflection values with the Driving Global Reverb RTPCs in the integration settings, the reverb component must have a sibling AkRoomComponent (in other words, an AkRoomComponent that shares the same Primitive parent component). The RTPC values are set on the Room IDs.
  • When working with Ak Late Reverb Components in the level editor, we strongly recommended that you enable Realtime in the Viewport Options. If Realtime is disabled, the reverb parameter estimation values are not updated when actors are scaled or when acoustic texture parameters are changed in the Wwise project.

AkComponent

AkComponent is derived from USceneComponent and represents an active Wwise Event.

속성:

  • Attenuation Scaling Factor: If the Ambient Sound uses attenuation in Wwise, you can use this property to modify the attenuation computations on the ambient sound to simulate sounds with a larger or smaller area of effect.
  • Use Reverb Volumes: Determines whether or AAkReverbVolumes influences the component.
  • Occlusion (차단)
    • Occlusion Refresh Interval: 차단/방해 확인 (리스너와 해당 게임 오브젝트 간의 직결선) 간의 시간 간격을 설정합니다. 값을 0으로 설정할 경우 해당 컴포넌트에서 차단/방해가 비활성화됩니다. We recommend that you disable it if you want to use full Spatial Audio diffraction.
  • Spatial Audio
    • Enable Spot Reflectors: Enable reflections on AkSpotReflector for this AkComponent.
    • Radial Emitter
      • Outer Radius: 해당 입락련을 원하는 외부 반경 크기로 설정하세요. The specified number is sent directly to the Spatial Audio AK:SpatialAudio::SetGameObjectRadius() call without any transform. When the actor is selected, a yellow sphere outline is drawn around the game object's position to visualize the size.
      • Inner Radius: 해당 입력란을 원하는 내부 반경 크기로 변경하세요. The size must be equal to or smaller than the size of the outer radius. The specified number is sent directly to the spatial audio AK:SpatialAudio::SetGameObjectRadius() call without any transform. When the actor is selected, a yellow sphere outline is drawn around the game object's position to visualize the size.
    • Reflect (반사)
      • Early Reflection Aux Bus: Set the early reflection auxiliary bus for the current game object. The component calls AK::SpatialAudio::SetEarlyReflectionsAuxSend() with the selected auxiliary bus. 보조 버스 매개 변수는 저작 도구에서 게임 오브젝트에서 재생되는 초기 반사 보조 버스가 지정되지 않은 사운드에 적용됩니다. 각 사운드에 지정된 초기 반사 보조 버스 매개 변수는 여기로 전달된 값보다 우선시됩니다.
      • Early Reflection Bus Send Gain: Set an early reflection send volume for the current game object. The component calls AK:SpatialAudio::SetEarlyReflectionsVolume() with the specified volume value. 이 값은 저작 도구에서 지정된 초기 반사 볼륨과 조합되며 해당 게임 오브젝트에서 재생되는 모든 사운드에 적용됩니다. 유효한 값은 [0, 1] 입니다. When set to 0, all reflection processing for this game object is disabled.
    • Reflect (DEPRECATED)
      • Early Reflection Order: (추후 버전에는 사용 중단) 2019.2 버전부터 Early Reflection Order는 Project Settings의 Spatial Audio Initializaion Settings에서 설정되어야 합니다.
      • Early Reflection Max Path Length: (추후 버전에는 사용 중단) 2019.2 버전부터 Early Reflection Max Path Length는 Authoring에서 해당 사운드의 Attenuation Max 거리값에 의해 설정되어야 합니다.
    • Room (DEPRECATED)
      • Room Reverb Aux Bus Gain: (추후 버전에는 사용 중단) 2019.2 버전부터 Room Reverb Aux Bus Gain은 Authoring에서 Sound Property Editor의 Game-Defined Auxiliary Sends Volume에 의해 설정되어야 합니다.
    • Geometric Diffraction (DEPRECATED)
      • Diffraction Order: (추후 버전에는 사용 중단) 2019.2 버전부터 Diffraction은 Authoring의 Sound Property Editor에서 활성화되어야 합니다.
      • Diffraction Max Paths: (추후 버전에는 사용 중단) 2019.2 버전부터 Diffraction은 Authoring의 Sound Property Editor에서 활성화되어야 합니다.
      • Diffraction Max Path Length: (추후 버전에는 사용 중단) 2019.2 버전부터 Diffraction은 Authoring의 Sound Property Editor에서 활성화되어야 합니다.
    • Debug Draw options: Use these options to visualize the raycasts performed by the Spatial Audio Engine, as well as the triangles hit by those raycasts. The visualizations are helpful when you have to debug the Spatial Audio engine. 이 기능은 동시에 한 컴포넌트에서만 작동할 수 있습니다.
  • AkEvent
    • Ak Audio Event: The UAkAudioEvent that is posted when the AkAmbientSound object is instructed to start playing. Spatial Audio 기능을 사용하려는 경우 Event의 효과음이 게임에서 정의한 보조 센드를 활성화해야 합니다.
참고
  • AkComponent 블루프린트 함수
  • Creating AkComponents Using C++.

AkAudioInputComponent

AkAudioInputComponent 는 AkComponent 에서부터 파생되며 오디오 입력 인스턴스를 나타냅니다.

Blueprint Functions:

  • Post Associated Audio Input Event: 지정된 Event의 재생을 시작하며 알맞은 콜백을 등록합니다.


Wwise Unreal Integration Documentation: Wwise Spatial Audio Objects

Wwise Spatial Audio Objects

AkAcousticTexture

Unreal object that represents a Wwise Acoustic Texture. This object can be applied to a AkSurfaceReflectorSetComponent's polygons or to a AkSpotReflector.

You can associate AkAcousticTextures with Unreal Physical Materials through the AkGeometry Surface Properties Map in the Integration Settings.

  • 속성:
    • Edit Color: Editor-only property that defines the color to use when coloring AkSurfaceReflectorSetComponent polygons that have an AkAcousticTexture assigned. The Edit Color is automatically retrieved from the Acoustic Texture in the Wwise project. If there is an active WAAPI connection, changes to Acoustic Texture colors in Wwise are immediately applied to the AkAcousticTexture Edit Color.
참고
  • UAkAcousticTexture

AkSpotReflector

You can use the Spot Reflector actor to place an omnidirectional point reflector in the 3D world. Spot reflectors are useful when they are placed on distant objects that have large radii, such as distant mountains.

There are several options you can use to control Spot Reflector behavior:

Spot Reflectors reflect any sound that comes from an AkComponent that has Enable Spot Reflectors enabled.

To ensure that the Spot Reflector only reflects sounds from the same Spatial Audio Room, enable Same Room Only. In this case, an AkComponent feeds a Spot Reflector if they are both outside rooms or if they are both in the same room. 공간은 AkRoomComponent 가 연결된 볼륨을 사용하여 생성할 수 있습니다.

To override the room that contains the Spot Reflector, enable Enable Room Override and assign a room to Room Override. If you do not set a Room Override, the Spot Reflector is virtually placed outside rooms.

AkSpotReflector calls AK::SpatialAudio::AddImageSource() from the Spatial Audio API on BeginPlay.

속성:

  • Aux Bus: UAkAuxBus that has the AkReflect plug-in for early reflection DSP. This aux bus enables game-defined auxiliary sends, with Listener Relative Routing enabled but 3D Spatialization set to None.
  • Acoustic Texture: AkAcousticTexture that filters sounds reflected by the image source.
  • Distance Scaling Factor: 허음원 거리 척도입니다. This number scales the sourcePosition vector relative to the listener and, consequently, scales distance and preserves orientation.
  • Level: Game-controlled linear level for the source.

AkSurfaceReflectorSetComponent

This component is equivalent to AkGeometryComponent, but must be attached to an AVolume actor. On BeginPlay, all of the volume's enabled polygons are sent to the Spatial Audio engine.

AkSurfaceReflectorSetComponent 를 사용하여 작업할 경우 반드시 뷰포트를 Realtime으로 설정해서 시각적으로 올바르게 업데이트되도록 해주세요.

뷰포트 옵션에서 Realtime 활성화하기

속성:

  • Enable Surface Reflector Set: Enables this component.
  • Acoustic Surfaces: Use these controls to edit the properties associated with one or more faces on the volume. By default, changes to these properties are applied to all faces on the selected actor or actors. To change the faces you are editing, click Enable Edit Surfaces. The Unreal editor switches to Brush Editing mode and hides all non-selected actors in the level. To return to the standard editor mode, click Disable Edit Surfaces. In Edit Surfaces mode, you can select one or more individual faces on the volume. 음향 표면 속성을 변경하면 선택된 모든 면에 해당 내용이 적용됩니다. 각 속성 뒤에 있는 괄호 안의 텍스트는 몇 개의 면이 편집되는지를 표시해줍니다.
    • AkAcousticTexture: 선택된 면과 연결된 AkAcousticTexture 입니다. The texture's Edit Color determines the color of the faces, and the texture's name is displayed on the faces in the Game Viewport. For completely reflective surfaces, set this to None, so that no additional texture filter is applied.
    • Transmission Loss: 사운드가 표면을 통과하여 얼마나 전달되는지를 나타냅니다. 유효한 값은 0.0~1.0 입니다 이 값이 0.0일 경우 사운드가 표면을 완전히 통과하게 됩니다. 이 값이 1.0일 경우 사운드게 표면에 의해 차단됩니다.
    • Enable Surface: 선택된 면이 Spatial Audio 엔진으로 전송될지의 여부를 표시합니다. 비활성화된 면은 텍스처 이름이나 Transmission Loss 값을 표시하지 않습니다.
  • Geometry Settings:
    • Enable Diffraction: Enables geometric diffraction for this Geometry.
    • Enable Diffraction on Boundary Edges: Enables geometric diffraction on boundary edges for this Geometry. Boundary edges are edges connected to only one triangle. Depending on the specific shape of the geometry, boundary edges might or might not be useful and it is beneficial to reduce the total number of diffraction edges to process.
    • Associated Room: (Optional) Associates this Surface Reflector Set with a Room. Associating a surface reflector set with a particular room limits the scope in which the geometry is visible or accessible. When set to None, this geometry has a global scope. We recommend that you associate geometry with a room when the geometry is (1) fully contained in the room (not visible to other rooms except through portals), and (2) the room does not share geometry with other rooms. This type of association reduces the search space for ray casting performed by reflection and diffraction calculations. Note that when one or more geometry sets are associated with a room, that room is not able to access geometry that is in the global scope.
참고
  • AkSurfaceReflectorSetComponent Blueprint 함수
  • Spatial Audio 지오메트리 SDK 설명서
  • Reflect 설명서

AkRoomComponent

You can add this component to any UPrimitiveComponent to register a Spatial Audio Room with the Wwise sound engine. 공간은 두 가지 목적을 가집니다.

  • Oriented reverb. All Auxiliary Busses applied to a game object within a Room are oriented towards the volume's front vector.
  • When used in conjunction with AkAcousticPortal or AkPortalComponent, you can route the wet signal from one Room through a Portal to another Room.

In both cases, in the Auxiliary Bus you must have enable Listener Relative Routing for Positioning to specify a 3D Spatialization and assign an attenuation.

속성:

  • Is Dynamic: Enables runtime changes to the portal connections for this room based on the room's movement. For worlds that contain many portals, enabling this property can be computationally expensive. When this option is disabled, the room's portal connections might still change if dynamic portals are moved (that is, portals with bDynamic enabled).
  • Enable Room: Enables this component.
  • Priority: Determines the order in which the rooms are applied. If rooms overlap, the one with the highest priority is selected. If two or more overlapping rooms have the same priority, it is not possible to predict which room will be selected.
  • Transmission Loss: Sets the transmission loss value on the direct sound emitted in the Room when the listener is in another room. Think of this value as 'thickness', because it relates to how much sound energy is transmitted through the room's walls. The valid range is 0.0f-1.0f and is mapped, by default, to the occlusion curves of the Wwise project.
  • Room Tone
    • Ak Audio Event: The event to post to the room game oject.
    • Aux Send: Send level for sounds that are posted to the room. 유효 범위: (0.f-1.f). 값이 0일 경우 보조 센드가 비활성화됩니다.
    • Auto Post: Automatically post the audio event posted to the room on BeginPlay.
참고:
  • An Ak Room Component must be attached to a UPrimitiveComponent in the component hierarchy. If an Ak Room Component does not have a UPrimitiveComponent as its parent, an error is logged and the component does not have effect.
  • An Ak Room Component uses the position and bounds of its parent (UPrimitiveComponent) when updating Wwise. Any translation, rotation, or scaling applied directly to an Ak Room Component does not have an effect.
  • When you use an AkRoomComponent in a custom Blueprint class, we recommend that you use a simple collision component as the parent, such as BoxCollision, SphereCollision, or CapsuleCollision. 더 많은 정보는 Spatial Audio Blueprint 컴포넌트 를 참고하세요.
참고
  • AkRoomComponent Blueprint 함수
  • 공간과 포털 SDK 설명서

AkPortalComponent

You can add this component to any UPrimitiveComponent to register a Spatial Audio Portal with the Wwise sound engine. This component allows sounds contained in an actor with AkRoomComponent attached (for example, AkSpatialAudioVolume) to leak into other actors with AkRoomComponent attached. Such actors that overlap with Portals are detected at initialization time. Both panned and 3D-spatialized sounds can be routed through portals. 포털은 앞 공간과 뒷 공간을 가집니다. 포털에는 적어도 한 개의 공간이 연결되어 있어야 하며, 앞 공간과 뒷 공간이 반드시 서로 달라야 합니다.

You can view rooms and portals in the Viewport to adjust their positions, and to visualize portal-room connections. You can enable or disable visualization from the Wwise Integration Settings under Viewports - Visualize Rooms and Portals. You can also toggle this setting directly from the Unreal Level Editor Viewport menu.

Visualize Rooms and Portals in the Level Editor Viewport Menu

속성:

  • Is Dynamic: Enables runtime changes to the room connections for this portal based on the portal's movement. For worlds that contain many rooms, enabling this property can be computationally expensive. When this option is disabled, the portal's room connections might still change if dynamic rooms are moved (that is, rooms with bDynamic enabled).
  • Initial State: Determines whether to initialize this Portal in an open (enabled) or closed (disabled) state.
  • Obstruction Refresh Interval: 방해 확인 (리스너와 포털의 열린 공간 사이의 직결선) 간의 시간 간격을 설정합니다. 값을 0으로 설정할 경우 방해 확인을 비활성화합니다. We recommend that you disable it if you want to use full Spatial Audio diffraction.
  • Obstruction Collision Channel: The object collision channel that creates the collision of the obstruction ray-casts between the Portal and the listener with the desired geometry.
참고:
  • An AkPortalComponent must be attached to a UPrimitiveComponent in the component hierarchy. If an AkPortalComponent does not have a UPrimitiveComponent as its parent, an error is logged and the component does not have an effect.
  • When a portal is selected, the names of its connected rooms are displayed on each side.
  • An AkPortalComponent uses the position and bounds of its parent (UPrimitiveComponent) when updating Wwise. Any translation, rotation, or scaling applied directly to an AkPortalComponent does not have an effect.
  • If you add multiple AkPortalComponents to a custom Blueprint Class, the Unreal Editor might become unresponsive when you move an instance of that class in the Level Editor. 이 문제를 방지하려면 다음과 같이 Class Settings에서 Run Construction Script on Drag를 비활성화하세요.
    1. Blueprint Editor에서 커스텀 Blueprint Class를 엽니다.
    2. Class Settings를 클릭합니다.
    3. In the Details Panel, under the Blueprint Options, disable Run Construction Script on Drag.
참고
  • AkPortalComponent Blueprint 함수
  • 공간과 포털 SDK 설명서

AkSpatialAudioVolume

An AkSpatialAudio volume is included in the integration. It consists of a simple volume with a AkSurfaceReflectorSetComponent, a AkRoomComponent, and a AkLateReverbComponent attached.

AkAcousticPortal

세계로 스폰할 수 있는 컨비니언스(convinience) 액터입니다. 이 액터에는 AkPortalComponent 가 연결되어 있습니다.

AkGeometryComponent

This component is equivalent to AkSurfaceReflectorSetComponent but instead of brushes, it must be added to a StaticMeshComponent. The AkGeometryComponent converts its mesh to Spatial Audio Geometry. The static mesh and the simple collision mesh are the two meshes from which it can be converted. In the case of simple collision, sphere and capsule primitives are approximated to a bounding box mesh.

When debugging a game, you can see the spatial audio geometry in the Wwise Authoring Game Object 3D Viewer. With the AkGeometryComponent, you can send more complex shapes, which can prevent the Game Object 3D Viewer from displaying the geometry. Ensure that the Monitor Queue Pool Size in the 초기화 설정 is set accordingly to compensate for the additional data the game sends.

When you choose either mesh type, the Acoustic Textures and transmission loss values are deduced from the Physical Materials of the mesh. Use the AkGeometry Surface Properties Map in the Integration Settings to associate Physical Materials with AkAcousticTextures and transmission loss values.

  • For static meshes, the surface properties are deduced from the Physical Material of each Material the static mesh uses.
  • For simple collisions, the surface properties are deduced from the Simple Collision Physical Material.

Note that in Unreal, when no Physical Material is chosen (set to None), the DefaultPhysicalMaterial is used instead. Associate an AkAcousticTexture with DefaultPhysicalMaterial for meshes that do not have assigned Physical Materials.

속성:

  • Geometry
    • Mesh Type: Determines whether the geometry is converted from the static mesh or the simple collision mesh.
    • LOD (Level Of Detail): If you select Static Mesh in the Mesh Type list, you can use this parameter to choose the level of detail to use as spatial audio geometry.
    • Welding Threshold: If you select Static Mesh in the Mesh Type list, you can use this parameter to choose the local distance in Unreal units between two vertices to weld together. Any two vertices closer together than this threshold are treated as the same unique vertex and assigned the same position. Increasing this threshold decreases the number of gaps between triangles, which results in a more continuous mesh and less sound leaking through, and eliminates triangles that are too small to be significant. Increasing this threshold also helps Spatial Audio's edge-finding algorithm find more valid diffraction edges.
    • Acoustic Properties Override
      • Acoustic Texture: Overrides the acoustic texture that is automatically chosen based on the physical material of the mesh. If you select Static Mesh in Mesh Type, you can override the acoustic texture of each material individually.
      • Enable Transmission Loss Override: Overrides the transmission loss value.
      • Transmission Loss: Overrides the transmission value that is automatically chosen based on the physical material of the mesh. If you select Static Mesh in Mesh Type, you can override the transmission loss value of each material individually.
  • Diffraction
    • Enable Diffraction: Enables geometric diffraction for this Geometry.
    • Enable Diffraction on Boundary Edges: Enables geometric diffraction on boundary edges for this Geometry.
  • Optimization
    • Associated Room: (Optional) Associates this Geometry with a Room. This type of association limits the scope in which the geometry is visible and accessible. When set to None, this geometry has a global scope. We recommend that you associate geometry with a room when the geometry is (1) fully contained within the room (not visible to other rooms except through portals), and (2) the room does not share geometry with other rooms. Such an association reduces the search space for ray casting performed by reflection and diffraction calculations. When one or more geometry sets are associated with a room, the room cannot access geometry that is in the global scope.
참고: When you add an AkGeometryComponent in the Blueprint Editor in Unreal, the acoustic textures array is not automatically filled in when Mesh Type is set to Static Mesh because Component Details panels in the Blueprint Editor show details for template Component instances, which are not connected to other Components in the Blueprint.
참고
  • Unreal Spatial Audio 튜토리얼
  • AkGeometry Blueprint 함수
  • Spatial Audio 지오메트리 SDK 설명서
  • Reflect 설명서


Wwise Unreal Integration Documentation: WAAPI 위젯

WAAPI 위젯

WAAPI UMG 위젯

Ak 체크 상자

Use this WAAPI-enabled check box to control a boolean property in Wwise.

속성:

  • Property to control: Wwise에서 제어할 불리언 속성의 이름입니다.
  • Item to control: Wwise에서 제어할 요소입니다.
  • On Check State Changed: Event called when the state of the check box changes.
  • On Item Dropped: 체크 상자에 요소가 놓일 때 호출할 Event 입니다.
  • On Property Dropped: 체크 상자에 속성의 이름이 놓일 때 호출할 Event 입니다.

블루프린트 메소드:

  • IsPressed: 해당 버튼이 현재 눌려 있을 경우 true를 리턴합니다.
  • IsChecked: 해당 체크 상자가 현재 선택되어 있을 경우 true를 선택합니다.
  • GetCheckedState: 현재 선택된 전체 상태를 리턴합니다.
  • SetIsChecked: 선택된 상태를 설정합니다.
  • SetCheckedState(ECheckBoxState InCheckedState): 선택된 상태를 설정합니다.
  • SetAkItemId: 해당 체크 상자가 컨트롤하는 요소 ID를 설정합니다.
  • GetAkItemId: 현재 제어되는 요소의 ID를 리턴합니다.
  • SetAkBoolProperty: 이 체크 상자가 제어하는 속성의 이름을 설정합니다.
  • GetAkProperty: 현재 요소의 속성을 리턴합니다.

Ak Item Bool 속성

Bool 속성을 위해 미리 제작된 피커입니다. Useful for drag-and-drop use with Ak 체크 상자 or Ak 슬라이더.

Ak 요소 속성

부동 소수점 속성을 위해 미리 제작된 피커입니다. Useful for drag-and-drop use with Ak 체크 상자 or Ak 슬라이더.

Ak 슬라이더

This WAAPI-enabled slider can control any float property in Wwise. When the controlled property is changed, the range for the slider's values are automatically adjusted to the range defined in Wwise.

속성:

  • Property to control: Wwise에서 제어할 불리언 속성의 이름입니다.
  • Item to control: Wwise에서 제어할 요소입니다.
  • Value: The value of the slider.
  • On Value Changed: Event called when the value of the slider changes.
  • On Item Dropped: Event called when an item is dropped on the slider.
  • On Property Dropped: Event called when a property name is dropped on the slider.

블루프린트 메소드:

  • GetValue: 현재 값을 리턴합니다.
  • SetValue: 현재 값을 설정합니다.
  • SetCheckedState(ECheckBoxState InCheckedState): 선택된 상태를 설정합니다.
  • SetAkSliderItemId: 이 슬라이더가 제어하는 요소 ID를 설정합니다.
  • GetAkSliderItemId: 현제 제어되는 요소의 ID를 리턴합니다.
  • SetAkSliderItemProperty: 이 슬라이더가 제어하는 속성 이름을 설정합니다.
  • GetAkSliderItemProperty: 이 슬라이더가 제어하는 속성 이름을 리턴합니다.

Ak Wwise Tree

This widget is an exact copy of Managing Assets with the Wwise Browser, available in-game. It enables item assignment to Ak 체크 상자 and Ak 슬라이더 through drag-and-drop.

속성:

  • On Selection Changed: Event called when the current tree selection changes.
  • On Item Dragged: 트리에서 요소가 놓일 때 호출하는 Event 입니다.

블루프린트 메소드:

  • GetSelectedItem: 현재 트리에서 선택된 요소를 리턴합니다.
  • GetSearchText: 검색 상자에 있는 현재 텍스트를 리턴합니다.
  • SetSearchText: 검색 상자의 현재 텍스트를 설정합니다.

Ak Wwise Tree 선택 버튼

A compact version of the Ak Wwise Tree, which opens a separate window to select the item.

속성:

  • On Selection Changed: Event called when the current tree selection changes.
  • On Item Dragged: 트리에서 요소가 놓일 때 호출하는 Event 입니다.

Slate 위젯

FWwiseTreeItem

Structure that contains everything required to represent a Wwise item.

멤버:

  • DisplayName: The item name.
  • FolderPath: The path of the tree item in Wwise, including the name.
  • ItemType: The type of item.
  • ItemId: The ID of the item.

FWwisePropertyDragDropOp

Handles drag-and-drop of a property name. Pass the property name to FWwisePropertyDragDropOp::New to create the drag-and-drop operation.

FWwiseUmgDragDropOp

Handles drag-and-drop of a Wwise item. Pass a shared pointer to a FWwiseTreeItem to FWwisePropertyDragDropOp::New to create the drag-and-drop operation.

Ak 슬라이더

This WAAPI-enabled slider can control any float property in Wwise. It handles drag-and-drop through FWwisePropertyDragDropOp and FWwiseUmgDragDropOp.

공용 메소드:

  • GetAkSliderValue: Wwise Authoring 애플리케이션에 표시된 대로 슬라이더의 현재 값을 가져옵니다.
  • GetAkSliderProperty: 제어된 속성의 이름을 가져옵니다.
  • GetAkSliderItemControlled: Gets the name of the item that the slider controls.
  • SetAkSliderItemProperty: Sets the property to control with the slider.
  • SetAkSliderItemId: Sets the ID of the item to control (GUID string in "Digits with Hyphens in Braces" format).
  • SetAkSliderRangeMin: Sets the minimum slider value.
  • SetAkSliderRangeMax: Sets the maximum slider value.
  • GetAkSliderRangeMin: Gets the minimum slider value.
  • GetAkSliderRangeMax: Gets the maximum slider value.


Wwise Unreal Integration Documentation: 블루프린트 함수

블루프린트 함수

Several Wwise-specific global functions are exposed to scripting, many of which convert and pass their arguments to their corresponding Wwise API. The following functions are available in the Audiokinetic category.

Cancel Event Callback

PostEvent 에 제공된 콜백 이벤트를 취소합니다. The Blueprint Event is no longer called after this node is executed.

Get Ak Audio Type User Data

주어진 에셋에서 지정된 타입의 사용자 데이터를 리턴합니다.

Get Ak Component

연결되어 있는 AkComponent 를 가져오며 지정된 컴포넌트를 따릅니다. Refer to AkComponent 블루프린트 함수 for more information about the methods available on AkComponent.

Get Ak Media Asset User Data

주어진 미디어 에셋에서 지정된 타입의 사용자 데이터를 리턴합니다.

Get Occlusion Scaling Factor

차단 척도 비율을 가져옵니다.

Get RTPC Value

Gets the value of a Game Parameter and, optionally, targets the root component of a specified actor.

Get Speaker Angles

지정된 장치의 스피커 각도를 가져옵니다. For more information, refer to GetSpeakerAngles.

Is Editor

실행 중인 애플리케이션이 Editor일 경우 true를, 아닐 경우 false를 반환합니다.

Is Game

Returns true if a world can be obtained from the WorldContextObject argument and its WorldType is a Game, GamePreview, or Play-In-Editor. 그렇지 않을 경우 false를 반환합니다.

Post Event At Location

지정된 위치에서 Wwise Event를 게시합니다. 이 함수는 자체유도적 사운드이며 해당하는 AkComponent 없이 임시 Wwise Game Object에서 생성됩니다.

Post Event At Location Async

지정된 위치에서 Wwise Event를 게시합니다. The async version waits until the media is loaded and then posts the event. 이 함수는 자체유도적 사운드이며 해당하는 AkComponent 없이 임시 Wwise Game Object에서 생성됩니다.

Set Bus Config

지정된 버스의 채널 구성을 강제 설정합니다. For more information, refer to SetBusConfig.

Set Multiple Channel Emitter Positions

한 게임 오브젝트에 여러 위치를 설정하며 입력 채널을 자유롭게 지정할 수 있도록 해줍니다. Note that this function is incompatible with Spatial Audio.

매개 변수:

  • GameObjectAkComponent: The AkComponent of the game object on which to set positions.
  • ChannelMasks: Array of channel masks to apply for each position.
  • Positions: Array of transforms to apply.
  • MultiPositionType: Position type.

Set Multiple Positions

Sets multiple positions for a single game object, which simulates multiple emission sources but only uses the resources of a single voice. You can use this function to simulate wall openings, area sounds, or multiple objects emitting the same sound in the same area. Calling SetMultiplePositions() with only one position is the same as calling SetPosition(). Note that this function is incompatible with Spatial Audio.

매개 변수:

  • GameObjectAkComponent: The AkComponent of the game object on which to set positions.
  • Positions: Array of transforms to apply.
  • MultiPositionType is the Position type. For more information on the different position types, refer to MultiPositionType.

Set Multiple Speaker Emitter Positions

한 게임 오브젝트에 여러 위치를 설정하며 입력 스피커를 자유롭게 설정할 수 있도록 해줍니다. Note that this function is incompatible with Spatial Audio.

매개 변수:

  • GameObjectAkComponent: The AkComponent of the game object on which to set positions.
  • SpeakerMasks: Array of speaker masks to apply for each position.
  • Positions: Array of transforms to apply.
  • MultiPositionType: Position type.

Set Occlusion Scaling Factor

차단 척도 비율을 설정합니다.

Set Panning Rule

지정된 출력의 패닝 규칙을 설정합니다. You can change it any time after the sound engine is initialized. For more information, refer to SetPanningRule.

Set RTPC Value

Sets the value of a Game Parameter, and optionally targets the root component of a specified actor. 액터가 지정되지 않거나 null일 경우 전역적 Game Parameter 값이 설정됩니다.

Set Speaker Angles

지정된 장치의 스피커 각도를 설정합니다. For more information, refer to SetSpeakerAngles.

Set State

주어진 State Group의 활성한 State를 설정합니다.

Spawn Ak Component at Location

지정된 위치에서 새로운 AkComponent를 생성합니다. By default, the component is automatically destroyed after the Event finishes playing.

매개 변수:

  • Auto Post: Controls whether to post the event immediately upon the component's creation. The default value is false.
  • Auto Destroy: Controls whether to destroy the component when the first Event posted on this component is done. The default value is true.

You can use this Blueprint node to set a Switch on a fire-and-forget sound. To do so, disable Auto Post, set a Switch on the spawned Ak Component, and then post the Event, as shown in the following image:

Stop All

재생 중인 모든 사운드를 중단합니다.

Set Current Audio Culture

Refer to Localizing Audio Assets for more information.

Set Current Audio Culture Async

Refer to Localizing Audio Assets for more information.

Other Blueprint Functions

그외 다른 함수는 하위 카테고리에서 사용할 수 있습니다.

  • 액터 블루프린트 함수
  • Spatial Audio 오브젝트 Blueprint 함수
  • AkAmbientSound 블루프린트 함수
  • AkComponent 블루프린트 함수
  • AkAudioInputComponent 블루프린트 함수
  • SoundBank 블루프린트 함수
  • 디버그 블루프린트 함수
  • Using Callbacks in Blueprints
  • WAAPI 블루프린트 함수


Wwise Unreal Integration Documentation: 액터 블루프린트 함수

액터 블루프린트 함수

이 Blueprint 함수는 Actor의 루트 컴포넌트를 대상으로 합니다. Actor의 루트 컴포넌트에 AkComponent 가 연결되지 않았을 경우 자동으로 생성됩니다.

Post and Wait for End of Event

지정된 Actor의 루트 컴포넌트에 연결되었으며 이 컴포넌트를 따르는 Wwise Event를 게시한 후 Event가 끝날 때까지 기다린 후 그래프 실행을 진행하는 잠재적인 Blueprint 노드입니다.

Post and Wait for End Of Event Async

지정된 Actor의 루트 컴포넌트에 연결되었으며 이 컴포넌트를 따르는 Wwise Event를 게시한 후 Event가 끝날 때까지 기다린 후 그래프 실행을 진행하는 잠재적인 Blueprint 노드입니다. The async version waits until the media is loaded and then posts the event.

Post Event

지정된 Actor의 루트 컴포넌트에 연결되었으며 이 컴포넌트를 따르는 Wwise Event를 게시합니다.

Post Event Async

지정된 Actor의 루트 컴포넌트에 연결되었으며 이 컴포넌트를 따르는 Wwise Event를 게시합니다. The async version waits until the media is loaded and then posts the event.

Execute Action on Event

Executes an action on an Event attached to and following the root component of the specified Actor. You can specify a fade time and an interpolation curve type. To execute the Action on a specific instance, use the playing ID, which is the value returned by the Post Event Blueprint.

Post Trigger

Posts a Trigger to Wwise that targets the root component of a specified Actor.

Set Occlusion Refresh Interval

루트 컴포넌트에 연결된 AkComponent 가 차단 계산을 실행하는 시간 간격을 설정합니다. 0으로 설정하면 해당 컴포넌트에서 차단이 실행되지 않습니다.

Set Switch

Sets the active Switch for a given Switch Group, and targets the root component of a specified Actor.

Set Output Bus Volume

Sets the direct output bus volume to use for the specified game object. The Bus Volume value is a number from 0.0f to 1.0f.

Stop Actor

주어진 Actor에서 모든 사운드를 중단합니다.

Use Reverb Volumes

Sets whether the AkComponent attached to the root component is influenced by AkReverbVolume.


Wwise Unreal Integration Documentation: Spatial Audio 오브젝트 Blueprint 함수

Spatial Audio 오브젝트 Blueprint 함수

AkGeometry Blueprint 함수

  • ConvertMesh: Converts the parent mesh to FAkGeometryData, a structure usable with Spatial Audio Geometry. 스태틱 메시 종류의 경우 상위 메시의 색인과 정점이 사용됩니다. 단순 충돌 메시 종류의 경우 상위 계층의 BodySetup이 FAkGeometryData 로 변환됩니다. If the simple collision is composed of box, sphere or capsule primitives, a bounding box for each of the primitives is used. 단순 충돌이 볼록한 선체를 가질 경우 이 충돌의 색인과 정점이 사용됩니다.
  • RemoveGeometry: Calls AK:SpatialAudio::RemoveGeometry() to remove the geometry in Spatial Audio.
  • UpdateGeometry: Sends the FAkGeometryData components to Spatial Audio.

AkLateReverbComponent Blueprint 함수

  • AssociateAkTextureSetComponent: Sets the component to use to estimate the HFDamping. For example, in a Blueprint that has a static mesh component with an AkGeometry child component, you can call this function in BeginPlay to associate that AkGeometry component with this reverb component. If this late reverb component has a sibling geometry component (or surface reflector set component), it is associated automatically and it is not necessary to call this function.

AkRoomComponent Blueprint 함수

  • GetPrimitiveParent: Returns the UPrimitiveComponent attached to this Ak Room Component.

AkPortalComponent Blueprint 함수

Several Wwise-specific actions can be executed on AkPortalComponent objects. These are available in the Ak Portal Component Category.

  • OpenPortal: Portal을 엽니다. Emitters positioned in the AkRoomComponent in front of and behind the Portal emit through it.
  • ClosePortal: Portal을 닫습니다. The Portal opening acts as an obstruction.
  • GetCurrentState: Returns an AkAcousticPortalState, which represents the state of the Portal (Open or Closed).
  • GetPrimitiveParent: Returns the UPrimitiveComponent attached to this Ak Portal Component.
  • PortalPlacementValid: 포털 위치와 방향이 유효할 경우 true를 반환합니다. 포털은 앞 공간과 뒷 공간을 가집니다. They must have at least one connected room, and the front room must be different than the back room. Refer to AkPortalComponent and AkRoomComponent for more information.

AkSurfaceReflectorSetComponent Blueprint 함수

  • SendSurfaceReflectorSet: Calls AK:SpatialAudio::SetGeometry() to convert the brush's indices and vertices to Spatial Audio Geometry data and send it to Spatial Audio.
  • RemoveSurfaceReflectorSet: Calls AK:SpatialAudio::RemoveGeometry() to remove the geometry in Spatial Audio.
  • UpdateSurfaceReflectorSet: Calls SendSurfaceReflectorSet to send a new conversion of the brush to Spatial Audio.
참고
  • Wwise Spatial Audio Objects
  • Unreal Spatial Audio 튜토리얼


Wwise Unreal Integration Documentation: AkAmbientSound 블루프린트 함수

AkAmbientSound 블루프린트 함수

Several Wwise-specific actions can be executed on AkAmbientSound actors. These are available in the Ambient Sound category.

A

Start All Ambient Sounds

현재 맵에 있는 모든 AkAmbientSound 의 재생을 시작합니다.

Start Ambient Sound

AkAmbientSound 의 재생을 시작합니다.

Stop All Ambient Sounds

현재 맵에 있는 모든 AkAmbientSound 의 재생을 중단합니다.

Stop Ambient Sound

AkAmbientSound 의 재생을 중단합니다.


Wwise Unreal Integration Documentation: AkComponent 블루프린트 함수

AkComponent 블루프린트 함수

Several Wwise-specific actions can be executed on AkComponent scene components. These are available in the Ak Component category.

Get Attenuation Radius

이 AkComponent 의 실질적인 반경 (ScalingFactor * MaxAttenuation)을 리턴합니다.

Post Ak Event

Posts the specified UAkAudioEvent in Wwise.

Post Ak Event Async

Posts the specified UAkAudioEvent in Wwise. The async version waits until the media is loaded and then posts the event.

Post Ak Event and Wait for End

Latent Blueprint node that posts the specified UAkAudioEvent in Wwise, and then waits until the end of the Event to continue the graph's execution.

Post Ak Event and Wait for End Async

Latent Blueprint node that posts the specified UAkAudioEvent in Wwise, and then waits until the end of the Event to continue the graph's execution. The async version waits until the media is loaded and then posts the event.

Post Associated Ak Event

Posts this AkComponent's internal UAkAudioEvent in Wwise.

Post Associated Ak Event Async

Posts this AkComponent's internal UAkAudioEvent in Wwise. The async version waits until the media is loaded and then posts the event.

Post Associated Ak Event and Wait for End

Latent Blueprint node that posts this AkComponent's internal UAkAudioEvent in Wwise, and then waits until the end of the Event to continue the graph's execution.

Post Associated Ak Event and Wait for End Async

Latent Blueprint node that posts this AkComponent's internal UAkAudioEvent in Wwise, and then waits until the end of the Event to continue the graph's execution. The async version waits until the media is loaded and then posts the event.

Post Trigger

연관된 AkComponent 에서 트리거를 게시합니다.

Set Attenuation Scaling Factor

Sets the attenuation scaling factor, which modifies the attenuation computations on the game object to simulate sounds with a larger or smaller area of effect.

Set Listeners

AkComponent 의 리스너를 설정합니다.

Set Occlusion Refresh Interval

AkComponent 가 차단 계산을 실행하는 시간 간격을 설정합니다. 0으로 설정하면 해당 컴포넌트에서 차단이 실행되지 않습니다.

Set Output Bus Volume

Sets the output direct bus volume to use for the specified game object. The Bus Volume value is a number from 0.0f to 1.0f.

Get RTPC Value

연관된 AkComponent 의 Game Parameter 값을 가져옵니다.

Set RTPC Value

연관된 AkComponent 의 Game Parameter 값을 설정합니다.

Set Stop when Owner Destroyed

해당 AkComponent 에서 StopWhenOwnerDestroyed 값을 설정합니다.

Set Switch

연관된 AkComponent 에서 주어진 Switch에 Switch Group을 설정합니다.

Stop

Stops the UAkAudioEvent associated with the AkComponent from playing.

Use Early Reflections

(DEPRECATED) Enables Early Reflections in the Authoring.

Use Reverb Volumes

Sets whether the AkComponent is influenced by AkReverbVolume.

Set GameObject Radius

Calls AK:SpatialAudio::SetGameObjectRadius() to set the outer and inner radius of the game object and sends them to Spatial Audio.


Wwise Unreal Integration Documentation: AkAudioInputComponent 블루프린트 함수

AkAudioInputComponent 블루프린트 함수

Several Wwise-specific actions can be executed on AkAudioInputComponent scene components. These are available in the Ak Audio Input Component category.

Post Associated Audio Input Event

Posts this AkAudioInputComponent's internal UAkAudioEvent in Wwise and registers the appropriate callbacks.


Wwise Unreal Integration Documentation: SoundBank 블루프린트 함수

SoundBank 블루프린트 함수

Most SoundBank handling functions were deprecated in 2022.1. Refer to the Wwise 2022.1로 프로젝트 업그레이드하기 for details.

Clear Banks

Unloads Wwise resources (banks and media) for all loaded Wwise Assets.

Init Bank functions

The following functions exist for Init Bank management:

  • Load Init Bank
  • Unload Init Bank

Removed and Deprecated Functions

As of 2022.1, these Blueprint functions no longer exist. To manually load and unload the bank and media resources for your Wwise Assets, use the LoadData and UnloadData Blueprint functions described in Wwise Unreal Assets.

  • Clear Banks
  • Load Bank
  • Load Bank Async
  • Unload Bank
  • Unload Bank Async

The following functions have been deprecated:

  • Load Bank By Name
  • Unload Bank By Name


Wwise Unreal Integration Documentation: 디버그 블루프린트 함수

디버그 블루프린트 함수

이 Blueprint 함수는 게임 디버그 작업을 도와줍니다.

Start Output Capture

Wwise 출력 캡처를 시작합니다. The output file is located in the same folder as the SoundBanks.

Add Output Capture Marker

츨력 캡처 파일에 텍스트 마커를 추가합니다.

Stop Output Capture

Wwise 출력 캡처를 중단합니다. The output file is located in the same folder as the SoundBanks.

Start Profiler Capture

Wwise Profiler 캡처를 시작합니다. The output file is located in the same folder as the SoundBanks.

Stop Profiler Capture

Wwise Profiler 캡처를 중단합니다. The output file is located in the same folder as the SoundBanks.


Wwise Unreal Integration Documentation: Using Callbacks in Blueprints

Using Callbacks in Blueprints

Event callbacks are exposed to Blueprints. They are implemented with custom Events.

Event Callbacks

Most callbacks exposed in the C++ sound engine API are exposed to Blueprints. For more information on what the various callback types accomplish, refer to the SDK documentation.

참고: Blueprint graphs need to be executed on the game thread, so callbacks that require you to modify the AkCallbackInfo structure (AK_SpeakerVolumeMatrix, for example) cannot be exposed to Blueprints. Implement them with C++ code.

Using Event Callbacks

To subscribe to an Event callback, select it in the Callback Mask input pin dropdown. You can then implement the Blueprint graph you want to execute in the selected callback with a custom Blueprint Event:

Subscribing to Multiple Callback Types

To subscribe to more than one callback type, select multiple values in the Callback Mask input pin dropdown:

Then, in your Custom Event graph, you can use a Switch on the Callback Type variable to determine the current callback type, then cast the Callback Info class to the appropriate type:

Using MIDI Callbacks

MIDI Event callback 정보 클래스의 내용은 현재 MIDI Event 타입에 따라 다르게 해석됩니다. MIDI 콜백 정보를 간소화하기 위해 SwitchOnMidiType 이라는 Blueprint 매크로가 제공됩니다. 이 매크로는 콜백 정보 오브젝트를 자동으로 파싱해서 알맞은 실행 핀을 트리거합니다.

참고: MIDI Callback Info 클래스의 Chan 멤버는 MIDI 채널을 말합니다. 이 멤버의 범위는 1~16 입니다.


Wwise Unreal Integration Documentation: WAAPI 블루프린트 함수

WAAPI 블루프린트 함수

These Blueprint functions connect to the Wwise Authoring application through the Wwise Authoring API.

For more information on WAAPI and its features, refer to the WAAPI documentation.

JSON Objects

WAAPI uses JSON extensively, so the integration includes a Blueprint wrapper for the Unreal FJsonObject. For more information about nodes found under "WAAPI Json Manager", refer to the Unreal Engine documentation on FJsonObject.

Call WAAPI

Calls WAAPI and gets or sets information and parameters according to the specified URI.

매개 변수:

  • WaapiUri: The function to call when an event occurs.
  • WaapiArgs: in_uri 함수가 레퍼런스하는 인자입니다.
  • WaapiOptions: An optional flag, which retrieves additional information about the event.
  • Return Value: A JSON object that contains information about the event call process. It returns an error if the call fails.

Register WAAPI Connection Lost Callback

Subscribes to an event that is broadcast when the WAAPI connection is lost. Use this function to clean up any resources that use WAAPI.

매개 변수:

  • Callback: 연결이 해제될 경우 호출할 이벤트입니다.

Register WAAPI Project Loaded Callback

Subscribes to an event that is broadcast when the correct Wwise project is loaded (as defined by the Wwise Project Path in the Wwise Plugin Settings). Use this function to initialize any resources that use WAAPI.

매개 변수:

  • Callback: 연결이 성립될 경우 호출할 이벤트입니다.

Subscribe To WAAPI

Subscribes to notifications according to the event.

매개 변수:

  • WaapiUri: The reference to the event.
  • WaapiOptions: An optional flag, which retrieves additional information about the event.
  • Callback: A delegate to execute during the subscription event.

반환값:

  • SubscriptionId: The ID of the subscription.
  • Result: Indicates whether the subscription was successful.
  • Return Value: A JSON object that contains information about the event subscription process. It returns an error if the subscription failed.

Unsubscribe

Unsubscribes from an event.

매개 변수:

  • SubscriptionId: ID of the current event subscription.

반환값:

  • UnsubscriptionDone: Indicates whether the unsubscription succeeded.
  • Return Value : A JSON object that contains information about the event unsubscription process. It returns an error if the unsubscription failed.


Wwise Unreal Integration Documentation: Managing SoundBanks

Managing SoundBanks

The Wwise Unreal Integration includes several options for SoundBank management, which are described in the following sections.

  • Understanding Auto-Defined and User-Defined SoundBanks
    Explains the differences between user-defined and auto-defined SoundBanks.
  • Generating SoundBanks
    Explains how to generate SoundBanks from Wwise Authoring or the Unreal Editor.
  • Generating SoundBanks with the GenerateSoundBanks Commandlet
    Explains how to generate SoundBanks with the commandlet.
  • Overriding Generated SoundBanks Directories for Local Users
    Explains how to override generated SoundBank directories.
  • Refreshing the Project Database
    Explains how to refresh Wwise assets by parsing SoundBank data.


Wwise Unreal Integration Documentation: Understanding Auto-Defined and User-Defined SoundBanks

Understanding Auto-Defined and User-Defined SoundBanks

Your SoundBank management strategy has significant implications for your Wwise Unreal Integration project. Your approach affects memory usage, file packaging, file size, and the way in which SoundBanks are loaded. There are three basic strategies: use auto-defined SoundBanks, use user-defined SoundBanks, or take a hybrid approach with user-defined SoundBanks for some audio assets and auto-defined SoundBanks for others. Each approach has advantages and disadvantages, which are discussed in the following sections.

User-defined SoundBanks were part of the Legacy workflow in Wwise Unreal Integration versions 21.1, 19.2, 19.1 and earlier. Auto-defined SoundBanks were the default used in Event-Based Packaging in versions 19.2 and 21.1.

Using User-Defined SoundBanks

With user-defined SoundBanks, you create the SoundBanks yourself and decide what to include in them. User-defined SoundBanks give you direct control over SoundBank content, although this degree of control requires planning, time, and effort to manage.

User-defined SoundBanks possess several important characteristics:

  • They include Events as well as all associated audio assets.
  • They are loaded with the corresponding Unreal levels and are available for any of the Events they contain.
  • The entire bank is loaded for any Event, even if only a single Event out of hundreds in the bank is required.
  • Loading time might be shorter than auto-defined SoundBanks because only a single SoundBank is loaded, instead of separate SoundBanks for every Event. Conversely, the larger size of the single SoundBank might require a longer time to load. File sizes are also generally larger.

For instructions on how to create user-defined SoundBanks, refer to Creating a SoundBank. The Wwise 251 Certification also describes in detail how to optimize user-defined SoundBanks.

Using Auto-Defined SoundBanks

Auto-defined SoundBanks, in contrast to user-defined SoundBanks, are created automatically when you enable the corresponding option in your Wwise Project Settings. They automate some of the manual tasks related to SoundBank management but function differently than user-defined SoundBanks. They possess several important characteristics:

  • A separate SoundBank is created for each Event.
  • Each SoundBank contains only the Event and structure information, while media is stored outside of the SoundBank. Therefore, if multiple Events require the same media asset, it is generated on disk once and loaded once.
  • File sizes are generally smaller than those associated with user-defined SoundBanks. Auto-defined SoundBanks rely on Unreal to map dependencies and load the necessary audio. An Unreal component can link to a specific Event and load only the files required for playback. In contrast to user-defined SoundBanks, auto-defined SoundBanks provide much more granularity.

You can enable auto-defined SoundBanks in Wwise Authoring. For details, refer to Automatically Defining SoundBanks.

Reference-Loaded Switch Containers

In addition to the memory optimization that auto-defined SoundBanks provide, you can use them in combination with reference-loaded Switch Containers to further optimize memory usage. The Wwise Unreal Integration can determine which assets in a Switch Container are used in the current map, and only loads the media assets when required. For example, you might have a footstep Event that uses different surface types, but only certain types of surface are used in different maps (sand in desert maps but not city maps, leafy surfaces in forest maps but not desert maps, and so on). For more information about this type of Switch Container, refer to Optimizing Memory Usage with Reference-Loaded Switch Containers.

Taking a Hybrid Approach

If desired, you can take a hybrid approach to SoundBank management: use both user-defined and auto-defined SoundBanks. With this method, you can optimize your project's use of SoundBanks. There is no ideal hybrid approach, but here are some possible use cases:

  • Use a user-defined SoundBank for all small user interface sounds, additional user-defined SoundBanks for the core atmosphere of every level, and auto-defined SoundBanks for all other Events. In this way, the short and repetitive UI interactions are loaded only once, level music is loaded only as required, and Event assets are loaded dynamically.
  • Put most sounds and Events in a user-defined SoundBank, and use several optimized Switch Container Event SoundBanks for complex asset hierarchies such as music or banter.
  • Isolate debugging Events in auto-defined SoundBanks so that you can remove them from the packaged game.
  • Store Events and their associated media in different user-defined SoundBanks (the Integration Demo Sample contains an example of this). You could implement a highly complex user-defined SoundBank inclusion pattern and use a custom strategy to load Switch Containers. For example, you could use a media-centric SoundBank for different surface types (such as grass, wood, and metal), and put the Event in a separate SoundBank.
경고: There are many possible ways to manage and generate SoundBanks in Wwise Authoring, but be aware of the potential risks when you are working with the Wwise Unreal Integration. If your desired pattern is very complex, it might not be supported and could cause asset duplication, missing assets, or even cause the Integration to malfunction.


Wwise Unreal Integration Documentation: Generating SoundBanks

Generating SoundBanks

There are several ways to generate the Wwise SoundBanks: from Wwise Authoring, from the Unreal Editor, or through a commandlet. This section explains how to generate SoundBanks in Unreal.

To generate SoundBanks in Unreal:

  1. Do one of the following:

    • From the menu bar, click Build > Generate SoundBanks.
    • In the upper-right corner of the Wwise Browser, click Generate SoundBanks

    The Generate SoundBanks dialog opens.

    The dialog lists the platforms and languages that the Wwise project supports.

  2. Select the desired platforms and languages. If you do not select any platforms or languages, all items in the respective list will be generated.
  3. (Optional) To reduce soundbank generation time, select Skip generation of localized assets.
  4. Click Generate. The SoundBanks are generated.

SoundBank Generation Details

SoundBank Generation with WwiseConsole

When WAAPI is disabled or Wwise Authoring is closed, SoundBanks are generated with WwiseConsole in the GeneratedSoundBanks folder.

SoundBank Generation with WAAPI

When WAAPI is connected, the command to generate SoundBanks is sent directly to Wwise Authoring through WAAPI, but banks are still generated on disk in the GeneratedSoundBanks folder.

SoundBank Generation Watchers

When the Unreal Editor is open, a directory watcher monitors changes in the GeneratedSoundBanks folder. Changes to files in this folder trigger a countdown timer that appears in a temporary window in the lower-right corner of the screen. Any subsequent changes reset the timer.

When the timer expires, the JSON metadata in the GeneratedSoundBanks folder is parsed, which updates the integration's internal database of the Wwise project.

After the project is parsed, all currently loaded Wwise assets are reloaded to properly apply changes in project data.

Triggering Generated SoundBanks Parsing

If you do not manually generate SoundBanks, any operation that synchronizes the GeneratedSoundBanks folder contents causes the directory watcher to trigger the parsing process.

The following operations parse the project metadata from the GeneratedSoundBanks folder:

  • Opening the Unreal Editor.
  • Clicking Refresh in the Wwise Browser.
  • Clicking Refresh Project Database in the Build menu.
  • Changing the Generated SoundBanks Folder setting in the Unreal project's Wwise Integration Settings.
  • Changing the Generated SoundBanks Folder User Override in the Unreal project's Wwise User Settings.
  • Changing any of the files in the GeneratedSoundBanks folder.

Optional Asset Reloading

To avoid reloading in-memory assets every time you change the contents of the GeneratedSoundBanks folder, you can select an option in the Unreal Project Wwise User Settings to enable a prompt before assets are reloaded. When this setting is enabled, Wwise assets can only be reloaded with explicit user input except during the initialization of the Wwise Project Database when the Unreal editor is opened.

This is the prompt that appears in the bottom right corner of the screen:

After 10 seconds, if you do not click either option, the "Not Now" option is automatically selected.


Wwise Unreal Integration Documentation: Generating SoundBanks with the GenerateSoundBanks Commandlet

Generating SoundBanks with the GenerateSoundBanks Commandlet

The Wwise Unreal plug-in includes a Commandlet you can use to generate SoundBanks and submit them to source control from the command line.

다음은 Commandlet 사용법입니다:

<UnrealEditor-cmd.exe> <path_to_uproject> -run=GenerateSoundBanks [-platforms=listOfPlatforms] [-languages=listOfLanguages] [-wwiseConsolePath=pathToWwiseConsole]
참고: If you are using Unreal Engine 4, the Editor executable is called UE4Editor-cmd.exe.

The Commandlet has the following parameters:

  • platforms: (Optional) Comma-separated list of platforms for which to generate SoundBanks, as specified in the Wwise project. If not specified, SoundBanks are generated for all platforms.
  • languages: (Optional) Comma-separated list of Languages for which to generate SoundBanks, as specified in the Wwise project. 지정되지 않은 경우 모든 언어가 생성됩니다.
  • wwiseConsolePath: (Optional) Full path to the Wwise command-line tool, used to generate the SoundBanks. If not specified, the path from the Wwise settings is used.
  • help: (선택 사항) 이 도움 메시지를 출력합니다. 이 매개 변수는 Commandlet을 즉시 종료합니다.

사용 예시:

C:\UE_5.0\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\MyProjects\Demo\WwiseDemoGame.uproject -run=GenerateSoundBanks -platforms=Windows,Mac
참고: If you have problems because the Development Editor is not built or available yet, you can skip the plugin activation by setting the environment variable SKIP_PLUGIN_ACTIVATION to true.


Wwise Unreal Integration Documentation: Overriding Generated SoundBanks Directories for Local Users

Overriding Generated SoundBanks Directories for Local Users

Some organizations generate and store their SoundBanks on dedicated servers under source control. This approach can be efficient with large projects or teams, in which different contributors work on different aspects of audio. If the SoundBanks are generated automatically on a schedule, for example with the SoundBank generation commandlet (Generating SoundBanks with the GenerateSoundBanks Commandlet), the changes are reconciled and the SoundBanks are available for other developers to use. However, some team members might need to generate SoundBanks locally to experiment or test changes in Unreal. In this case, you can override the project settings to generate and store SoundBanks in custom locations outside of source control.

Before you change anything, it is important to understand how Wwise stores the SoundBank path information, and also how Unreal accesses that information.

Wwise records SoundBank path locations in a ProjectInfo.json metadata file, which is created when you first generate SoundBanks for a project and is located at the Wwise project's Root Output Path. The default Root Output Path is in following directory:

[WwiseProjectName]\GeneratedSoundBanks

SoundBanks, by default, are generated in subdirectories of the same folder, divided by platform:

[WwiseProjectName]\GeneratedSoundBanks\[Platform]

The ProjectInfo.json file itself contains a list of paths to the generated SoundBanks for each platform. In the Unreal Project Settings, the Generated Sound Banks Path actually points to the Root Output Path, which contains the ProjectInfo.json file, and not the paths that contain the actual generated SoundBanks. This is an important thing to remember when you want to override paths, for the following reasons:

  • For the Wwise Unreal Integration to function correctly, the Unreal Generated Sound Banks Path must be the same as the Wwise Root Output Path.
  • If your Wwise SoundBank paths and the Root Output Path are both under source control, you have to override both.
  • If you use a user override for the Root Output Path, you must also set a user override in Unreal to match the Wwise override.

Essentially, Unreal requires access to the ProjectInfo.json file to determine where the SoundBanks are. It does not have any direct knowledge of the SoundBank folder paths.

To override the SoundBanks directory:

  1. In Wwise, click Layouts > SoundBank. The SoundBank Layout opens.
  2. In the upper right of the SoundBank Manager, click the gear icon > User SoundBank Settings. The User SoundBank Settings dialog opens.
  3. Select Override Project SoundBank Settings and Override Project SoundBank Paths. The various SoundBank settings are activated.
  4. Click the ellipses next to Root Output Path and in the file explorer, browse to the desired local directory and click Select Folder. Ensure that the location is not under source control.
  5. Click the ellipses next to a SoundBank Folder and in the file explorer, browse to the desired local directory and click Select Folder. Ensure that the location is not under source control. Repeat for each platform for which you want to generate SoundBanks locally.
  6. Click OK, then generate SoundBanks. The SoundBanks are created in the folders you specified, and the ProjectInfo.json file is created in the Root Output Path you specified.
  7. In Unreal, click Edit > Project Settings. The Project Settings dialog opens.
  8. Scroll to the Wwise section and click User Settings. The Wwise - User Setting page opens.
  9. Click the ellipses next to Generated Sound Banks Folder User Override. In the file explorer, browse to the same Root Output Path directory you specified as a use override in Wwise.

    You can now modify the Wwise project and generate SoundBanks as required, without any effect on the shared project SoundBanks.


Wwise Unreal Integration Documentation: Refreshing the Project Database

Refreshing the Project Database

Click Build > Refresh Project Database to parse the Wwise Project in your GeneratedSoundBanks folder, and then reload the loaded Wwise assets in your project.

Refer to Triggering Generated SoundBanks Parsing for other ways to refresh your assets.


Wwise Unreal Integration Documentation: Using the Integration in the Unreal Editor

Using the Integration in the Unreal Editor

The Wwise Unreal Integration adds various options to the Unreal Editor. You can use the additional options to perform important tasks, which are described in the following sections:

  • Managing Wwise and Unreal Assets. When you update Assets in Wwise Authoring, corresponding Unreal Assets are automatically updated. If a WAAPI connection is enabled, any deletions or name changes through the Wwise Browser in Unreal are also applied to the Wwise project.
  • Managing Assets with the Wwise Browser. The Wwise Browser is a viewer that you can use to drag Wwise objects into Unreal, preview sounds, rename objects, and delete objects. Changes you make in Unreal also apply to the Wwise project.
  • Working with Reverb. Use the AkLateReverbComponent to assign aux busses and drive global reverb RTPCs.
  • Visualizing Radii. When you update AkAmbientSound assets in Wwise Authoring, you can see the radii change in Unreal.
  • Using the Editor Listener. Use the Editor Listener to preview positioned audio and 3D-spatialized sounds.
  • Testing with Multiple Play In Editor and Wwise Instances. Run multiple Play In Editor sessions with separate Wwise instances.


Wwise Unreal Integration Documentation: Managing Wwise and Unreal Assets

Managing Wwise and Unreal Assets

When you integrate Wwise and Unreal projects, a relationship is established between corresponding Assets in each project. Any changes you make to the Wwise Assets are automatically applied to the Assets in Unreal. If a WAAPI connection is enabled, any changes to Unreal Assets are automatically applied to the Wwise Assets as well.

To enable a connection to the Wwise project through WAAPI, refer to Wwise 저작 API (WAAPI).

Synchronizing from Wwise to Unreal

Synchronization from Wwise to Unreal is automatic if the Unreal Editor is running. If it is, then when you generate SoundBanks in Wwise, Unreal parses the content of the generated SoundBanks and updates the contents of the Wwise Browser. In addition, any assets that are currently loaded in Unreal are then reloaded, and include the changes made in the Wwise project.

As shown in the following image, the associated Unreal and Wwise Assets can have different names. The association between the two is determined by the GUID, ShortID, and Asset Name properties. Therefore, you can rename Unreal assets without affecting the Wwise objects they reference.

Synchronizing from Unreal to Wwise (WAAPI Only)

If WAAPI is enabled, any time you rename or delete assets through the Wwise Browser are immediately reflected in the Wwise project. However, you must then manually save those modifications in the Wwise Authoring application.


Wwise Unreal Integration Documentation: Managing Assets with the Wwise Browser

Managing Assets with the Wwise Browser

You can use the Wwise Browser to access objects from your Wwise project in Unreal. To access the Wwise Browser, click Window > Wwise Browser.

The Wwise Browser includes a variety of features, some of which require a connection to the Wwise Authoring API (WAAPI), and others that do not. For more information about WAAPI features, refer to Using Waapi Features.

The Wwise Browser's contents are refreshed automatically after you regenerate SoundBanks. To manually refresh the list, click the Refresh button.

You can use the Wwise Browser to:

  • Locate files on disk.
  • Importing Wwise Assets Import Wwise Assets
  • Using the Drag-and-Drop Feature Drag Assets into Unreal Blueprint nodes or object components and properties.

Using Waapi Features

Certain Wwise Browser features require the Wwise Authoring API (WAAPI). To enable these features, you must:

  • Enable the Wwise Authoring API. Refer to Wwise 저작 API (WAAPI) for instructions.
  • Open the Wwise project in Wwise Authoring.

The Wwise Browser is populated in real time with data from the Wwise Authoring tool. Any changes you make in Wwise are immediately reflected in the Wwise Browser, even before you save your changes in Wwise.

After WAAPI is enabled, you can use the Wwise Browser to:

  • Preview sounds.
  • Toggle item selection sync between Wwise and Unreal.

Previewing Sounds

You can use the Wwise Browser to preview sounds from your Wwise project in the Unreal Editor before you generate SoundBanks.

To preview a sound in the Wwise Browser, do one of the following:

  • Select an Event or an Actor-Mixer and press the Space bar.
  • Right-click the Event or Actor-Mixer and then click Play/Stop.

To stop a sound, do one of the following:

  • Press Space bar.
  • Right-click any element and click Stop All.

Finding Work Units on Disk

You can use the Wwise Browser to open the folder in your file system that contains the Work Unit associated with an object.

To show the Work Unit location on disk:

  • Right-click the element in the Wwise Browser, then click Show in Folder.

Using the Drag-and-Drop Feature

You can drag Events, Auxiliary Busses, Acoustic Textures, States, Switches, Game Parameters (RTPCs), and Triggers from the Wwise Browser into the Unreal Content Browser to create corresponding UAkAudioEvent, UAkAuxBus, UAkAcousticTexture, UAkStateValue, UAkSwitchValue, UAkRtpc, UAkTrigger assets.

To drag Wwise Assets into Unreal:

  1. Open the Content Browser folder in which you want to create the asset.
  2. In the Wwise Browser, select the Wwise object you want to use.
  3. Drag the Wwise object into the Content Browser. A corresponding Unreal object is created.

In addition to individual items, you can drag any container (Work Unit, Folder, Switch/State Group) into the Content Browser to recreate the hierarchy as it exists in Wwise Authoring.

In addition, you can drag objects into:

  • Parameters to Blueprint nodes.
  • Object components or properties.
참고: If you drop an object anywhere other than the Content Browser, the asset is created in the folder specified by the Default Asset Creation Path.

Setting the Default Asset Creation Path

You can specify a default asset creation path. Assets that are automatically created from Wwise objects (for example, by dropping an object from the Wwise Browser onto a Blueprint) are created in this folder.

To set the default asset creation path:

  1. In the Unreal menu bar, click Edit > Project Settings. The Project Settings dialog opens.
  2. On the Wwise - Integration Settings page, scroll to the Asset Creation section and type or paste the desired Default Asset Creation Path:

Importing Wwise Assets

You can import Wwise Assets into your Unreal project from the Wwise Browser.

To import a Wwise Asset:

  1. In the Wwise Browser, right-click the Asset you want to import and in the contextual menu, click Import Selected Assets. A file browser opens.
  2. Browse to the desired location and click Select Folder. The Asset is imported to the folder.

Wwise Browser Columns

The Wwise Browser is separated into four columns, which are described in the following sections.

Name Column

The Name column recreates the hierarchy of the project as it exists in the SoundBanks and displays the name of the Wwise Items. It prioritises the name found in the Generated SoundBanks over the name in Wwise if the names are different.

Wwise Project vs SoundBank Column

The Wwise Project vs SoundBank Column compares the Wwise Project to the Generated SoundBanks and provides information about the differences between the two. For this column to work properly, the Wwise Browser musbe connected to Waapi.

  • New in Wwise: The Wwise Project has the information but the SoundBanks do not. Generating the SoundBanks creates the item in the SoundBanks and changes this column to SoundBank Up to Date.
  • Deleted in Wwise: The SoundBanks have the item information but Wwise does not. Generating the SoundBanks removes the item from the Wwise Browser or, if a UAsset of the item exists, changes the column to Not in Wwise or SoundBank.
  • Renamed in Wwise: The Wwise Project and the SoundBanks have the same item but with different names. Generating the SoundBanks renames the item inside the SoundBanks to match the name in Wwise.
  • Not in Wwise or SoundBank: A UAsset uses an item that does not exist in Wwise or the SoundBanks. Avoid using this UAsset in your game.
  • Moved in Wwise: The item exists in both Wwise and the SoundBank, but in a different location in each. Generating the SoundBanks moves the item to the same location it is in Wwise and changes this column to SoundBank Up to Date. Items with this label are shown where they are according to the SoundBanks in the Wwise Browser.
  • SoundBank Up to Date: The Wwise Project and the SoundBanks have the same information about the item.

Unreal Assets Column

The Unreal Assets Column provides information about the Wwise assets inside the Unreal project. If the Wwise item does not have a matching UAsset, this column is empty. If only one UAsset exists for the item, the Column shows the name of the UAsset. If there are multiple UAssets for the item, then “Multiple UAssets” followed by the number of UAssets is displayed. To see all the items, right-click on the item and click Show in Content Browser.

SoundBank vs UAsset Column

The SoundBank vs UAsset Column compares the Generated SoundBanks to the assets in the Unreal project.

  • UAsset Missing: The item exists in the SoundBanks but there are no UAssets associated with it. This means that the item is not used in your game.
  • Not in SoundBank or Unreal: The item exists only in Wwise. Generating the SoundBanks changes this item to UAsset Missing.
  • UAsset Orphaned: This UAsset has no item associated with it. Using it in your game will throw warnings.
  • Renamed in SoundBank: The item exists and there is a single UAsset associated with it but the name of the item and the UAsset are different.
  • Multiple UAssets: The item exists and there are multiple UAssets associated with it.
  • UAsset Up to Date: There is one UAsset associated with the item and its information is up to date with the SoundBanks.

Filtering

You can filter Wwise objects to reduce the number of objects displayed in the Browser. There are three categories of filtering: SoundBank Status, UAsset Status, and Types. The SoundBank Status filters on the “Wwise Project vs SoundBanks” column, The UAsset Status filters on the SoundBanks vs UAssets column and Types filters on the Wwise item type. When you select a filter, all Wwise objects that do not satisfy the condition are filtered out of the Wwise Browser.

For an item to remain in the Wwise Browser, it must satisfy the conditions of all three categories. 예시:

In this case, the Wwise objects must be Events or Switches that are UAsset Orphaned or Not in SoundBank or UAsset and Renamed in Wwise or New in Wwise.

There is also a filter bar in which you can type Wwise object names to search for those objects.


Wwise Unreal Integration Documentation: Working with Reverb

Working with Reverb

With the Wwise Unreal Integration, you can use the AkLateReverbComponent to assign Aux Busses automatically. You can also use it to drive globabl reverb RTPCs. The following sections provide details.

Automatically Assigning the Aux Bus

You can use AkLateReverbComponent to automatically assign the aux bus through the Aux Bus Assignment Map. For each decay value, there is a corresponding aux bus asset. The decay estimate for the AkLateReverbComponent is checked against the decay values in the map. The assigned aux bus is the first aux bus in the map that has a decay value greater than the decay estimate for the AkLateReverbComponent. Therefore, a decay estimate between decay value X and decay value Y in the map is assigned the aux bus that corresponds to decay value Y. If the decay estimate is greater than the maximum decay value in the map, it is assigned the Default Reverb Aux Bus.

The Global Decay Absorption value acts as a global scaling factor for the decay estimations. It controls the absorption constant that is used in the Sabine equation when estimating the T60 decay. 기본 값은 0.5 입니다.

Driving Global Reverb RTPCs

You can use AkLateReverbComponent to drive global reverb RTPCs with values calculated from the parent Primitive Component of the AkLateReverbComponent. These RTPC fields determine which RTPCs to set with the reverb parameter estimations from AkLateReverbComponent. 이 RTPC 에셋 입력란은 이름 입력란보다 우선시됩니다. If no asset is assigned, the string in the name field is used to set the RTPC. If the name field is also empty, no RTPC is set.

참고: For AkLateReverbComponent to use the global reverb RTPCs, the reverb component must have a sibling AkRoomComponent (in other words, an AkRoomComponent that shares the same Primitive parent component). The RTPC values are set on the Room IDs.


Wwise Unreal Integration Documentation: Visualizing Radii

Visualizing Radii

When you select an AkAmbientSound, the relevant asset radii are drawn. If you modify the assets in Wwise Authoring while a WAAPI connection is enabled, the radii are updated in real time.

To update an asset radius:

  1. In the Unreal Actor Browser, select an AkAmbientSound.
  2. In Wwise Authoring, change any object associated with the Event assigned to the AkAmbientSound.
  3. If WAAPI is not enabled, regenerate SoundBanks.
  4. Select the AkAmbientSound again. The size of the corresponding sphere in the Unreal Editor changes at the same time.

If WAAPI is not enabled, the Max Attenuation is obtained from the generated SoundBanks. In your Wwise Project Settings, under the SoundBanks tab, ensure that Generate Per Bank Metadata File, Generate JSON Metadata, and Max Attenuation are selected. The next time you generate SoundBanks in the Unreal Editor, the Max Attenuation information is added to all UAkAudioEvents, and the attenuation spheres are visible in your level viewport.


Wwise Unreal Integration Documentation: Using the Editor Listener

Using the Editor Listener

A single listener is activated in edit mode. You can use it to, for example, properly preview Level Sequences that contain positioned audio. 이 리스너의 위치는 포커스된 뷰포트의 카메라 위치에 따라 결정됩니다. Click between multiple viewports to "jump" from one position to another.

The listener is also used in the Animation Editor viewport, where you can accurately preview 3D-spatialized sounds while you work on animations.

Note that when you start a Play in Editor (PIE) session, the Editor listener is deactivated, and the traditional listener on the Camera is enabled. When you leave a PIE session to start a Simulate in Editor (SIE) session, both the Editor listener and the Camera listener are active at the same time. When you switch back to PIE mode, the Editor listener is disabled again.


Wwise Unreal Integration Documentation: Testing with Multiple Play In Editor and Wwise Instances

Testing with Multiple Play In Editor and Wwise Instances

If you are testing multiplayer audio in Unreal, you might want to run separate Play in Editor (PIE) sessions with a separate Wwise instance for each session. One way to do this is through a multiplayer option in Unreal. If you disable Run Under One Process in the Play In Editor Multiplayer Options, each PIE instance uses an independent instance of Wwise. However, be aware that this approach consumes more system resources and might affect perfomance.


Wwise Unreal Integration Documentation: Triggering Wwise Events in Animation Sequences

Triggering Wwise Events in Animation Sequences

You can use an Animation Notify to trigger Wwise Events in Animation Sequences.

An AkComponent must be attached to the animated mesh component. If you use the Animation Notify on a mesh component that does not have an attached AkComponent, an AkComponent is created with default values for all UPROPERTIES, and it is not possible to modify them. If you want to modify the notify's behaviour, we recommend that you create a copy in your project and modify the copy.

The Blueprint for the Animation Notify is located here: …/Plugins/Wwise/Content/AnimNotify_AkEvent.uasset

To add an Animation Notify:

  1. In the Unreal Content Browser, open an Animation Sequence asset.
  2. Right-click the Notifies track in the Animation Sequence Editor and click Add notify > AkEvent or AkEventByName.
    The animation notification has the following properties:
    • Event or Event Name: The UAkAudioEvent to post.
    • Attach Name: The name of the socket that emits the UAkAudioEvent. If not defined, the animation owner emits the AkAudioEvent.
    • Follow: Determines whether the Event follows the mesh or is posted at a specific location.

For more information on the Animation Sequence Editor in Unreal, refer to Animation Sequence Editor.


Wwise Unreal Integration Documentation: Localizing Audio Assets

Localizing Audio Assets

You can use Wwise Unreal Integration features to map Unreal Cultures to Wwise languages and ensure that your corresponding Unreal and Wwise projects support the same set of languages for asset localization. After the mapping is complete, you can change languages with certain Blueprint nodes or through the C++ AkAudioDevice API.

Mapping Unreal Cultures to Wwise Languages

For Unreal Cultures, you can use any ISO-639-1 language code and, optionally, an ISO 3166 country code (fr-CA, en-GB, and so on). For the Wwise Language, you can use any of the languages in your Wwise project. For more information on localization in Wwise, refer to Localizing Your Project.

To map an Unreal Culture to a Wwise language:

  1. From the Unreal menu bar, click Edit > Project Settings.
  2. In the Wwise section, click Integration Settings. The Localization section includes the mapping of Unreal Cultures to Wwise languages:
  3. Click Add Element (+). A new row is added to the list.
  4. In the text box on the left, type a valid Unreal Culture and in the text box on the right, type a corresponding Wwise language.
참고:

The Wwise language must match the specified language in the Wwise project exactly (capitalization, spacing, and any special characters such as parentheses).

Changing Languages with Blueprints

After you map the Unreal Cultures to the Wwise languages, you can use Blueprint nodes to change audio languages and cultures in Unreal. Two Blueprint nodes are available:

  • Set Current Audio Culture
  • Set Current Audio Culture Async

Changing Languages with the API

You can change the audio language or culture directly from code in the C++ AkAudioDevice API FAkAudioDevice::Get()->SetCurrentAudioCulture(). You can pass either a Wwise language or an Unreal Culture to the C++ function or Blueprint node.

When SetCurrentAudioCulture() is called:

  1. The string passed to the function determines the Wwise language to set.
  2. The Integration calls FWwiseResourceLoader::SetLanguage with the EWwiseReloadLanguage::Immediate parameter.
  3. The Integration then calls IWwiseStreamMgrAPI::SetCurrentLanguage with the new language.

The asynchronous variant immediately calls IWwiseStreamMgrAPI::SetCurrentLanguage, and FWwiseResourceLoader::SetLanguage (which does the heavy lifting of reloading Wwise resources) is called in an asynchronous task. When FWwiseResourceLoader::SetLanguage is finished, the Completed Blueprint event is fired.

Advanced users might want to use different values of EWwiseReloadLanguage. If this is the case, we recommend that you avoid using the supplied Blueprints and the AkAudioDevice API and to call the FWwiseResourceLoader::SetLanguage and IWwiseStreamMgrAPI::SetCurrentLanguage functions directly.

The three possible states of EWwiseReloadLanguage are:

  • EWwiseReloadLanguage::Immediate
    • The CurrentLanguage variable in the FWwiseResourceLoader used when loading event resources is set to the new language.
    • The resources of all Soundbanks, ShareSets, Aux Busses, and Events that were loaded in the previous language are reloaded.
  • EWwiseReloadLanguage::Safe
    • Does the same things as Immediate, but also calls IWwiseSoundEngineAPI::StopAll() to stop all playing sounds before resources are reloaded.
  • EWwiseReloadLanguage::Manual
    • Only the CurrentLanguage variable in the FWwiseResourceLoader is changed to the new language.
    • The user is responsible for unloading and reloading the Wwise resources that require the language change.
참고: Due to limitations in the Wwise Sound Engine, we recommend that you change languages when no localized sounds are playing. If an event is playing, the Sound Engine does not unload the bank that contains it. A loaded bank cannot be replaced by a new bank with the same name, even if it is in a different language. The bank must be unloaded first.

Packaging Localized Assets

When localized Wwise assets are cooked, the resources (.bnk and .wem files) for each language are packaged with the assets. Refer to Cooking and Packaging on the 자주 겪는 문제 page.


Wwise Unreal Integration Documentation: 외부 음원 사용하기

외부 음원 사용하기

목차

  • Using the Wwise Simple External Source Manager
  • Setting up External Sources in Wwise
  • Understanding External Sources
  • Understanding the Wwise External Source Manager
  • Implementing the Wwise External Source Manager
  • Wwise External Source Manager Blueprints
  • State Structures Used by the External Source Manager
    • FWwiseExternalSourceState
    • FWwiseExternalSourceFileState

External Sources are a type of source that developers can associate with a Wwise sound object to dynamically change the media associated with a source. External Sources provide sound data at runtime.

For this reason, developers will likely want to implement their own systems determining which media should be loaded and how (and when) this loading should occur. The External Source Manager was designed with this in mind, it provides a highly extensible base class which provides most of the boilerplate implementation for tracking the states of External Sources and their media, but requires extension to define the actual loading behavior.

Using the Wwise Simple External Source Manager

The integration includes a sample extension of the Wwise External Source Manager called the Wwise Simple External Source Manager. It supports basic External Source management and provides a reference for developers who want to implement their own manager. Refer to Using the Wwise Simple External Source Manager for more information.

Setting up External Sources in Wwise

The generation path for External Sources is set in Wwise Authoring, in the External Sources tab in the Project Settings dialog. Refer to Specifying the Input/Output Locations for External Sources for more information.

Understanding External Sources

An External Source is an empty container. The game has to fill it and inform the Sound Engine about what it contains.

An External Source uses a Cookie, similar to a ShortId, as an identifier. To obtain the Cookie, hash the name specified for the External Source plugin in the source's Contents Editor. Refer to Contents Editor: Wwise External Source for more information.

When an Event that uses External Sources is posted to the SoundEngine, an array of AkExternalSourceInfo structures that identify the media to use for each Cookie must be passed with it. This media can be in-memory or streamed, and the game must ensure that these resources are ready when the Event is posted.

For more information about External Sources, refer to the following topics:

  • Wwise External Source Overview
  • Contents Editor: Wwise External Source
  • AkExternalSourceInfo Struct Reference

For more details about External Source conversion, refer to Integrating External Sources.

Understanding the Wwise External Source Manager

External Sources have several notable characteristics:

  • Multiple Events can use the same External Source.
  • Multiple External Sources can use the same Media.
  • The media an External Source uses is not defined in a SoundBank and can be changed at any time by game logic.

Given the complex relationship between Events, External Sources, and Media, the Wwise External Source Manager has several responsibilities:

  • Tracking the state of External Sources used by loaded Events.
  • Providing AkExternalSourceInfo structures for calls to PostEvent.
  • Tracking the state of loaded media used by External Sources.
  • Tracking the mapping between loaded External Sources and media.
  • Triggering the loading and unloading of media used by External Sources.
  • Packaging the media files used by External Sources in the game.

Implementing the Wwise External Source Manager

To implement a custom Wwise External Source Manager, you must first create a new Unreal module. At a minimum, the module must contain two classes:

  • A class that inherits FWwiseExternalSourceManager, which handles the responsibilities listed in the previous section.
    • FWwiseExternalSourceManager contains the pure virtual interface required to define External Sources. For special cases, a project can define this as its inheritance point and fully control the External Source pipeline.
    • FWwiseExternalSourceManagerImpl has all the functions necessary for the runtime to load and unload the media used by External Sources. It has a map of External Source cookies to media IDs, handles the I/O operations, and keeps track of the media lifetime. Inheriting this class simplifies the implementation of custom tracking operations and packaging. The FWwiseExternalSourceManagerImpl class handles complex I/O details itself.
    • You can also use FWwiseSimpleExtSrcModule as a parent class because it is extendable.
  • A class that implements FWwiseFileHandlerModule, which overrides InstantiateExternalSourceManager in order to return an instance of the first class.

Afterwards, to enable the module you can set the WwiseFileHandlerModuleName to the name of the new module in the [Audio] section of the DefaultEngine.ini file. Refer to Enabling the Simple External Source Manager for more information.

The Wwise External Source Manager is an interface in the WwiseFileHandler module. When Wwise Event assets that use External Sources are loaded, the WwiseResourceLoader module passes the External Source information in the Event's CookedData (refer to Wwise Unreal Assets) to the WwiseFileHandler, which then delegates resource loading to the Wwise External Source Manager Implementation. What happens next depends on the implementation.

In the default implementation, the External Source Manager creates a FWwiseExternalSourceState structure that tracks the External Source. Depending on the implementation and the information available at the time, the media is either loaded or prepared for streaming. Similarly, when an Event asset is unloaded, the External Source Manager is notified and updates the state of the External Source accordingly. This behavior, which fulfills the External Source Manager's first responsibility (tracking the state of External Sources), is implemented in the following functions:

  • PrepareExternalSourceInfos: Public method that selects and retrieves the media list to play depending on the requested External Source, and prepares the AkExternalSourceInfo necessary to play the External Sources.
  • LoadExternalSource: Public method that prepares a call to LoadExternalSourceImpl in the manager's execution queue.
  • UnloadExternalSource: Public method that prepares a call to UnloadExternalSourceImpl in the manager's execution queue.
  • LoadExternalSourceImpl: (Virtual) Handles the creation of, or updates to, tracked External Source States. It then calls LoadExternalSourceMedia.
  • UnloadExternalSourceImpl: (Virtual) Handles the removal of, or updates to, tracked External Source States. If the External Source State is to be removed, UnloadExternalSourceMedia is called.

The second responsibility (filling AkExternalSourceInfo structures) is handled by PrepareExternalSourceInfos, which returns the PostEvent External Source parameter. It retrieves the data in the CookieToMedia, uses that information to define the different file states, and provides the AkExternalSourceInfo structure necessary to post the event. You can override it if you want to use a more complex selection algorithm.

In the Wwise Simple External Source Manager extension, a fixed MediaInfo DataTable identifies all External Source media in the project as well as their relevant metadata. A more advanced system could dynamically update the list of known media. Because there are many different ways to implement such a system, all operations are virtualized. You can create code with random containers that change every single PostEvent, or structures that change based on external states, such as a language change.

In order to perform the next set of responsibilities (tracking the state of loaded media, tracking their mapping to External Sources, and loading them from disk), the FWwiseExternalSourceManagerImpl class tracks known External Source media and the information necessary to load them. This state tracking is done internally through the ExternalSourceStatesById map.

After you implement the system and structures mentioned above, we recommend that you implement the following virtual functions:

  • LoadExternalSourceMedia: Find the media that an External Source uses and load it (or prepare it for streaming). We recommend that you use the methods inherited from FWwiseFileHandlerBase to track media loading states and FWwiseExternalSourceFileState structures to manage media resources.
  • UnloadExternalSourceMedia: Find the media that an External Source uses and unload its resources.
  • SetExternalSourceMediaById: Set the media ID of an External Source identified by its name.
  • SetExternalSourceMediaByName: Set the media name of an External Source identified by its name.
  • SetExternalSourceMediaWithIds: Set the media ID of an External Source identified by its Cookie.

The SetExternalSourceMedia functions assume that each External Source media has a unique ID and, in the case of SetExternalSourceMediaByName, that it is possible to retrieve a media ID from its name. We recommend that you use Simple Wwise External Source Manager as a reference for these functions, because it is likely that your implementation will only differ in how you store, update, and retrieve your External Source to media mapping. Remember that dynamic changes to the mapping between External Sources and media files can lead to resources being loaded and unloaded.

The current implementation treates these as blocking functions, which potentially run through the Game Thread. However, this is not a requirement.

경고: Forcibly unloading External Source media while it is playing causes the SoundEngine to crash. The FWwiseExternalSourceFileState can handle this automatically through the BindPlayingIdToExternalSources and OnEndOfEvent methods to increment and decrement their play count.

After you finish the implementation of the various functions discussed so far, the most complex part of the External Source manager is complete. If everything works properly, loading an Event Asset (or however your system implements External Source preparation) loads the media used by its External Sources in memory or prepares it for streaming.

Finally, you must package the External Source media. A simple method consists of generating External Source media inside your Unreal project in a directory that is set to always cook. To implement more complex packaging logic, override the External Source Manager's Cook method, which is called by the Wwise Resource Cooker for each External Source contained in cooked Wwise Assets.

The following overridable functions are also available:

  • BindPlayingIdToExternalSources: Override this to update your manager's internal state when Events that use External Sources are posted.
  • OnEndOfEvent: Override this to update your manager's internal state when Events that use External Sources stop playing.
  • SetGranularity: Set the granularity (minimum number of bytes to read) of the prefetch chunk of streaming media.

Wwise External Source Manager Blueprints

By default, three Blueprint functions are exposed in WwiseExternalSourceStatics :

  • SetExternalSourceMediaById
  • SetExternalSourceMediaByName
  • SetExternalSourceMediaWithIds

These functions call the corresponding functions defined in the External Source Manager extension. Refer to External Source Manager Blueprint Functions for more information.

State Structures Used by the External Source Manager

FWwiseExternalSourceState

Structure used by default in WwiseExternalSourceManagerImpl to reference count loaded External Sources.

FWwiseExternalSourceFileState

State structure used by the Wwise Simple External Source Manager to handle media resources. The state tracks its reference count as well as whether it is currently being played. Unloading External Source media while it is playing causes the SoundEngine to crash. Two subclasses are available to handle in-memory or streaming media:

  • FWwiseInMemoryExternalSourceFileState
    • Media Data is loaded into memory so it can be used to create an AkExternalSourceInfo struct to pass to the SoundEngine.
  • FWwiseStreamedExternalSourceFileState
    • The FileState registers itself with the FWwiseFileHandlerBase base class of the External Source Manager. When requests to stream media are passed to the External Source Manager, the registered FileState is retrieved and it handles the subsequent I/O requests.


Wwise Unreal Integration Documentation: Using the Wwise Simple External Source Manager

Using the Wwise Simple External Source Manager

목차

  • Enabling the Simple External Source Manager
  • Settings
    • Media Info Table
    • External Source Default Media
  • How the Simple External Source Manager Works
  • Updating the Data Tables
  • External Source Manager Blueprint Functions
  • External Source Manager API
  • Limitations of the Simple External Source Manager

When you work with External Sources, it is important to remember that External Sources and their media are decoupled by default. The designer (or developer) must explicitly establish the mapping between an External Source Cookie, which is essentially a ShortID, and the media to play. External Source media can be generated alongside SoundBanks and streaming media, but the designer must also track the media files and their metadata.

The Simple External Source Manager provides features you can use to track External Source media and map them to External Sources. This is done through the use of Data Tables (.csv files) that describe the External Source media to use in the game as well as an API and Blueprint functions to assign media to External Sources.

참고: Example usage of this SubModule is available in the WwiseDemoGame.

Enabling the Simple External Source Manager

By default, the Simple External Source Manager module is disabled. To enable it, add the following lines to the DefaultEngine.ini file in your Unreal project:

[Audio]
WwiseFileHandlerModuleName=WwiseSimpleExternalSource

This code overrides the WwiseFileHandlerModule with a module that uses the Wwise Simple External Source Manager submodule to handle loading External Sources.

Settings

There are two Data Tables and a Directory to set in the Wwise Simple External Source Manager Settings:

  • Media Info Table contains the metadata necessary to load media files.
  • External Source Default Media (optional) defines an initial mapping between External Sources and media in the Media Info Table. You can update or add to this mapping with the API or Blueprint functions described later in this document.
  • External Source Staging Directory specifies where to copy the External Source media files relative to the "Game" folder in the packaged game.

Media Info Table

Entries in the media info table have the following properties:

  • Name: Must match the ExternalSourceMediaInfoId. Used for lookup in the table.
  • ExternalSourceMediaInfoId: Unique ID used to track media in the manager.
  • MediaName: File name (with extension) used to find the file on disk. Also used by the manager to look up media IDs when setting media by name.
  • CodecID: ID of the codec used to decode the media data. Refer to the AkCodecId enum in AkGameplayTypes.h.
  • bIsStreamed: Determines whether to load the media as streaming or in-memory.
  • bUseDeviceMemory: Determines whether to use device-specific memory. Only applies to in-memory media.
  • MemoryAlignment: Memory alignment to use. Only applies to in-memory media.
  • PrefetchSize: Amount of data to prefetch (in bytes). Only applies to streaming media.

External Source Default Media

Entries in the default media table have the following properties:

  • Name: Must match the ExternalSourceCookie. Used for lookup in the table.
  • ExternalSourceCookie: Unique ID of the External Source, found in Wwise Authoring or in SoundBank metadata.
  • ExternalSourceName: Used for logging.
  • MediaInfoId: Must match an ExternalSourceMediaInfoId in the Media Info Table.
  • MediaName: Used for logging.

How the Simple External Source Manager Works

When the Simple External Source Manager is instantiated, it reads the Media Info Table to populate its list of media metadata. At the same time, a map of media names to media IDs is populated for use with the External Source Manager Blueprint Functions.

Next, the External Source Default Media is read, and External Source Cookie / media ID pairs are added to a map. This optional Data Table sets "default" media for External Sources to use in the game. This system reduces the number of Blueprint and function calls to the SetExternalSourceMedia methods: if the default media are already defined, it is only necessary to use these methods for External Sources that dynamically change their media.

When the External Source Manager loads an External Source (usually triggered by an AkAudioEvent being loaded), a state structure that tracks the number of assets that reference the External Source is created and this map is checked. If a media pairing exists in the map, a state structure for the media is created or updated if it already exist. Depending on the information read from the Media Info Table, the media is either loaded into memory from disk or, if it is streamed, the created state is registered to handle incoming streaming requests from the SoundEngine.

If an External Source Cookie / media ID pair is set during gameplay (for example, by the External Source Manager Blueprint Functions), and if the External Source is already loaded, the media is loaded immediately. If the Exteral Source was already mapped to a different media, the reference count of that media is decremented. If the reference count is 0, it is unloaded after it stops playing.

All PostEvent calls that pass through the AkAudioDevice, including PostEvent calls from the Integration's Blueprint functions, call the External Source Manager's PrepareExternalSourceInfos method. This method selects the media to post on the passed External Source cookies. After the operation succeeds (or fails), the BindPlayingIdToExternalSources method is called to bind all the selected media onto the posted event's Playing ID. Similarly, when Events finish playing, the OnEndOfEvent method is called, which informs the External Source Manager that the media are no longer used by that Playing ID.

Finally, the Cook method supports the packaging of External Source media. When any Event that uses External Sources is packaged, the Cook method is called for each External Source. When this method is called, the Simple External Source Manager stages every media file in its Media Info Table for packaging. Because this only needs to happen once, a flag is set and subsequent calls to Cook do nothing.

참고: If you post events with External Sources directly through the WwiseSoundEngine API, ensure that you implement the External Source Manager's PrepareExternalSourceInfos, BindPlayingIdToExternalSources, and OnEndOfEvent at the appropriate times. Otherwise, if you switch the media an External Source uses while it is playing, the previous media might be unloaded prematurely, which could cause the SoundEngine to crash. At a lower level, you can also override the I/O Hook and handle the file management yourself.

Updating the Data Tables

When the Data Tables on disk are modified and the Unreal Editor is open, their contents are re-parsed. Afterwards, all loaded Wwise Events Assets are unloaded, then reloaded. This brute force approach is the simplest way to ensure that the External Source Manager's state is properly updated.

External Source Manager Blueprint Functions

To update the mapping between External Sources and media, the module provides Blueprint functions to set external source media.

There are three Blueprint functions that take names or IDs, depending on your preference:

  • SetExternalSourceMediaById: Use the External Source name to specify the External Source and the MediaID to specify the media.
  • SetExternalSourceMediaByName: Use the External Source name to specify the External Source and the MediaName in the Media Info Table to specify the media.
  • SetExternalSourceMediaWithIds: Use the External Source Cookie to specify the External Source and the MediaID to specify the media.

When you set an External Source media with strings, the Cookie is determined by a hash of the name string (as in Wwise Authoring). The MediaID is retrieved by looking up the the media name in a map that is populated when the Media Info Table is parsed.

참고: Blueprints can only use signed short integers. To circumvent this restriction, we use a FAkUniqueID variable to set the External Source cookie value.

External Source Manager API

Developers can set External Sources through code in two ways: they can call the Blueprint functions described in the previous section, or they can retrieve the External Source Manager instance and call its methods directly. Most methods in the Wwise Simple External Source Manager are virtual, so developers can extend this manager in a new module to use their own data structures and logic to track media and pair with External Sources.

Limitations of the Simple External Source Manager

The main limitation of the Simple External Source Manager design is the inflexibility of the Media Info Table with respect to multi-platform games. Different platforms use different codecs to decode media, but the structure of the Media Info Table does not support this. One potential solution in an extension of the manager is to create platform-specific Media Info Tables and package the correct one depending on the build target.

When streaming, External Sources have more limitations than internally packaged media. Zero Latency is not possible with External Sources, and the prefetched data is only provided to the SoundEngine when it is requested for playback. There is a playback delay between the initial PostEvent and the actual sample processing, as would occur with any media that do not have Zero Latency.


Wwise Unreal Integration Documentation: Optimizing Memory Usage with Reference-Loaded Switch Containers

Optimizing Memory Usage with Reference-Loaded Switch Containers
참고: Before version 2022.1 of the Wwise Unreal Integration, this feature was called the "Split Switch Container Media".

By default, when Wwise Event assets are loaded, all resources they might use (SoundBanks and media) are loaded with them. In deep, nested switch container hierarchies, a large number of media resources can be loaded, and the amount of memory required to load these resources increases accordingly. You can use reference-loaded switch containers on a per-event basis to optimize memory usage: when enabled, resources are only loaded if they are referenced, based on Switch or State values.

If the media in your Switch Container is streamed, which is common for large music files, this feature improves performance because the files are only opened for streaming when necessary. Memory usage is also reduced if the media has a prefetch chunk.

This feature is only available for certain Events that use Switch Containers. It provides the most benefits for Events used in several different contexts, and that only use a subset of the container's Switch values in each context.

예시:

  • A main character's footstep Event can contain a deep hierarchy depending on multiple Switches such as footwear, ground material, and weather conditions. However, most maps only contain a subset of materials or weather conditions. Similarly, the character typically only wears one type of footwear at a time, so loading sounds for all other footwear types are unnecessary.
  • Different branches of a dynamic music system based on Switch Containers could depend on Switches or States that are only used in specific maps.

The following image shows a Footstep Event dependency tree:

If the active level references the Human_Surface_Material Switch and only references the Material_Dirt Switch Value (through a SetSwitch node in the Level Blueprint, for example), only the FS_Dirt_[01-04] media files are loaded into memory. When a sublevel that references Material_Grass is loaded, grass_[01-04] media files are automatically loaded with the Switch.

경고: When this option is enabled, Switch or State values are loaded in memory to determine which media to load. Be cautious in the following cases:

  • Setting State or Switch Values with strings. You must ensure that the corresponding Switch or State value asset is loaded, for example by using the Load Asset Blueprint Node.
  • Setting State or Switch Values from C++. You must ensure that the corresponding Switch or State Value asset is loaded, for example by using Unreal Engine Asynchronous Asset Loading.
  • Using RTPC-Controlled Switch Containers. This type of container causes inconsistencies when loading media. Avoid using this option if you are using RTPC-Controlled Switch Containers.

In addition, be careful when loading and setting Switches or States in submaps or menus. When those levels are unloaded, the Switch or State Value assets will probably be unloaded as well if they are not referenced in the persistent level, which causes their associated media to be unloaded. This can produce unexpected behavior if the Switch or State Value is still set on GameObjects in the scene.

Enabling Reference-Loaded Switch Container Media

Each UAkAudioEvent contains a FWwiseEventInfo structure, which identifies the Wwise Event it represents. The WwiseEventInfo structure also contains the SwitchContainerLoading field, which can enable reference-loaded Switch Container media.

.

When set to AlwaysLoad, the default mode for all Events, all media resources are loaded with the Event. When set to LoadOnReference, only the referenced media resources are loaded with the Event.

Technical Details

When this option is activated and a Wwise Event asset is cooked by the WwiseResourceCooker, its cooked data contains a set of SwitchContainerLeaves. These leaves are a flattened map of different sets of Switch (or State) Values to media and SoundBanks to load. As seen in the previous example, the FS_Dirt_[01-04] media are only needed if the Human_Surface_Material and Material_Dirt Switches Values are loaded as well. This is represented by a SwitchContainerLeaf with a "key" formed by the pair of Human_Surface_Material and Material_Dirt switches and a payload of FS_Dirt_[01-04] media to load. When a Wwise Event is loaded by the WwiseResourceLoader, its set of SwitchContainerLeaves is added to a list of leaves that the WwiseResourceLoader tracks for each known Switch and State Value. When Switch and State Values are loaded (or unloaded) by the WwiseResourceLoader, it checks its list of known SwitchContainerLeaves associated with that value to see if any media need to be loaded (or unloaded).

참고: Media dependencies are evaluated only when Event, Switch, and State assets are loaded by the WwiseResourceLoader. Setting and unsetting Switches or States in the Sound Engine does not cause media to be loaded or unloaded.

When a Default Value is set on a Switch Container, the resources that only depend on Default Values are always loaded. The same behavior applies to the Generic Path that can be set in Music Hierarchy Switch Containers. In these cases, resources such as SoundBanks and Media are not put in SwitchContainerLeaves. Instead, they are always loaded with with Events that use those Switch Containers.

This system is easiest to work with when you use Blueprints and Wwise assets to post Events and set Switch and State Values. In this case, the assets are loaded in memory with the level so the WwiseResourceLoader does not miss any information. To optimize memory usage even more, you can also disable the AutoLoad property exposed by UAkAudioType, available in all Wwise assets. When this option is disabled, each asset's LoadData and UnloadData methods (available in Blueprints) must be called for the WwiseResourceLoader to load and unload them.

Finally, it is the game designer's responsibility to ensure that the WwiseResourceLoader has already loaded the necessary resources when attempting to post Events or set Switches and States in the Sound Engine by using strings. This likely requires the relevant Event, Switch Value, and State Value assets to be manually loaded (or referenced in maps or Blueprints). However, it is possible to build Switch or State Value CookedData programmatically, and then load and unload them in the WwiseResourceLoader instead of assets.


Wwise Unreal Integration Documentation: Using the Level Sequencer

Using the Level Sequencer

The Unreal Engine's Sequence Editor is a cinematic editing tool. You can use it to add Tracks that modify certain Actor properties in a level.

Refer to the following topics for background information on the Sequencer:

  • For instructions on how to create a Level Sequence, refer to Sequencer Overview.
  • For instructions on how to add Tracks to a Level Sequence, refer to the Adding Tracks section on the Tracks page.

Setting up Your Wwise Project

To ensure that Event lengths are properly represented in the AkAudioEvent Tracks, you must configure the Wwise project to estimate the duration of its audio Events and generate JSON metadata.

To set up your Wwise project:

  1. Open the project in Wwise Authoring.
  2. From the menu bar, click Project > Project Settings. The Project Settings dialog opens.
  3. On the SoundBanks tab, enable the following options:
    • Estimated Duration
    • Generate JSON Metadata
AkAudioEvent Track에 필요한 프로젝트 설정

Using Wwise Level Sequencer Tracks

The Wwise Integration adds two Tracks to the Sequencer:

  • AkAudioRTPC, which sets Game Parameter values.
  • AkAudioEvent, which posts Wwise Events.

You can add both of these Tracks as Master Tracks or associate them with Actors. When associated with Actors, they perform Wwise-related functions on the UAkComponent attached to the Actor. When created as Master Tracks, the AkAudioRTPC Track sets global RTPC values, and the AkAudioEvent Track posts Events on a dummy game object.

For AkAudioRTPC Tracks, you can modify Game Parameter curves with the built-in curve editor. To add key frames, place the cursor in the desired location and click Add New Key on the right side of the listed Track.

Curve Editor 뷰에 있는 AkAudioRTPC 트랙

For AkAudioEvent Tracks, you can add AkAudioEvent sections. To do so, place the cursor at the desired location and click AkAudioEvent on the right side of the listed Track. Alternatively, you can drag AkAudioEvent assets from the Content Browser directly onto an AkAudioEvent Track.

AkAudioEvent Track에 AkAudioEvent 섹션 추가하기

Displaying Waveforms for Wwise Events

Unreal 통합은 Wwise Authoring API (WAAPI)를 사용하여 Sequencer의 기능을 확장합니다. For more information about WAAPI and its use in the Unreal integration, refer to Wwise 저작 API (WAAPI). When Unreal is connected to the Wwise Authoring tool through WAAPI, AkAudioEvent sections can display waveforms for Wwise events. When Wwise Authoring is not open, or the Unreal integration is not connected to WAAPI, the AkAudioEvent sections only display the Event name.

Viewing AkAudioEvent Section Waveforms

AkAudioEvent 섹션은 Audio Source를 담고 있는 Event의 오디오 파형을 표시합니다. The waveform in an AkAudioEvent section shows the audio data for the longest Audio Source contained in the Wwise Event. In the following example, a Wwise Event called "Play_Sound" contains three Audio Sources: "Layer_1", "Layer_2", and "Layer_3".

세 개의 Audio Source를 가진 Wwise Event의 예시

If an AkAudioEvent section is added and its Event property is set to "Play_Sound", then the longest of the three Audio Sources is displayed within the section. Note that the waveform might be followed by empty space if the Wwise Event lasts longer than the longest Audio Source that it contains. In this example, because the "Play_Sound" Event has two delayed play actions (for "Layer_2" and "Layer_3"), it lasts longer than the "Layer_1" audio source that it contains. The empty space after the waveform indicates the maximum estimated duration of the Wwise event, as calculated during SoundBank generation (see Setting up Your Wwise Project).

시퀀서에서 AkAudioEvent Section의 예

If the length of the AkAudioEvent section exceeds the maximum estimated duration of the Wwise Event, the section contains either a flat white line or repeating diagonal lines. 흰색의 평선은 Retrigger 속성이 비활성화되었음을 의미합니다. 반복적인 빗금선은 Retrigger 속성이 활성화되었음을 의미합니다. The Retrigger property determines whether Wwise events are retriggered in the Sequencer after they finish (refer to AkAudioEvent 섹션 속성).

시퀀서에 있는 두 개의 AkAudioEvent 섹션. Retrigger is enabled in the 'Retrigger' section and disabled in the 'No_Retrigger' section.

Fixing "Out of Sync" Waveforms

If you change an Event's work unit in the Wwise project and those changes are not reflected in the generated SoundBanks, any AkAudioEvent sections for that event are marked as "out of sync". The waveform is displayed in red, and an asterisk is appended to the name of the AkAudioEvent section. Warnings are also printed to the output log when Events are triggered from "out of sync" sections.

'Out of Sync' AkAudioEvent 섹션의 예

To ensure that AkAudioEvent sections remain synchronized with the Wwise project, there are options to save the project and regenerate SoundBanks directly from the Sequencer. To synchronise all of the sections in an AkAudioEvent track, open the track's context menu (right click) and click Save Wwise project and refresh all sections (see AkAudioEvent Track 콘텍스트 메뉴 옵션).

Scrubbing Tracks

The Sequencer integration supports scrubbing forwards and backwards over AkAudioEvent tracks. Drag the Sequencer playhead over AkAudioEvent sections to hear scrub snippets. To change the length of these scrub snippets, right-click the AkAudioEvent section and in the context menu, click Scrub Tail Length Ms. Refer to AkAudioEvent 섹션 속성 for more details.

AkAudioEvent Track 콘텍스트 메뉴 옵션

From the AkAudioEvent track, right-click to open a context menu that includes the following Audiokinetic-specific option:

  • Save Wwise project and refresh all sections: Saves the Wwise project in Wwise Authoring and regenerates SoundBanks for all AkAudioEvent sections in the Sequencer track. The section waveforms are then updated.

AkAudioEvent 섹션 콘텍스트 메뉴 옵션

From the AkAudioEvent section on the track, right-click to open a context menu that includes the following Audiokinetic-specific option:

  • Match section length to Wwise event length: Matches the length of the section in the Sequencer track to the duration of the Wwise Event.

AkAudioEvent 섹션 속성

The property list in the context menu includes the following Wwise-specific section properties:

  • Ak Audio Event: 선택한 섹션의 AkAudioEvent에서 편집할 수 있는 다음의 속성을 열거합니다.
    • Event: Event icon. Hover over the Audiokinetic Event icon to view the path to the Event. 아이콘을 더블 클릭하면 해당 Event가 에디터에서 열립니다.
    • Event: Audiokinetic Event. Open this list to create a new Audiokinetic Event, edit or copy the selected Event, or browse to another Audiokinetic Event.
    • Retrigger Event: When enabled, the Wwise event in the Section is retriggered when the Sequence plays beyond the end of the event. Disabled by default.
    • Scrub Tail Length Ms: Sets the duration in milliseconds of the scrub snippets that are played when scrubbing over the sequence. Default is 100ms.
    • Max Source Duration: Wwise Event에 담긴 가장 긴 Audio Source의 지속 시간을 표시합니다 (읽기 전용).
    • Advanced:
      • Event Name: Type the exact name of the desired Event. 이 입력란은 Audiokinetic Event 목록에서 이미 Event를 선택한 경우 무시됩니다.
  • Movie Scene Ak Audio Event Section:
    • Stop at Section End: Clear this box to keep the Event playing when the end of the section is reached. 이 속성은 기본적으로 활성화되어 있습니다.

Known Issues and Limitations

In general, we recommend that you use very simple AkAudioEvent sections in the Level Sequencer, such as a simple Play action on a Sound SFX. Avoid more complex Wwise Events such as those that contain delayed actions, Seek actions, or which reference Random Containers, Sequence Containers, and other non-deterministic objects. If you do use such Events, divide them into simpler events for optimal use in the Level Sequencer.

Scrubbing and playing from cursor does not work as expected on Events with delayed actions or that contain infinitely looping sounds.

Play In Editor 제약 사항

If a level sequence is played from the Sequencer editor window while Unreal is running in Play in Editor (PIE) mode, any AkAudioEvent tracks that are associated with game objects do not trigger events. To hear AkAudioEvent tracks that are bound to game objects, you must trigger the level sequence from the Game World.

복제 제약 사항

AkAudioEvent와 AkAudioRTPC 트랙은 서버에서만 트리거되며 클라이언트로 복제되지 않습니다.


Wwise Unreal Integration Documentation: Providing Audio Input to Wwise

Providing Audio Input to Wwise

The Unreal integration provides audio input to Wwise through the Wwise Audio Input Source Plug-in. In order to provide audio input to Wwise, classes must inherit from AkAudioInputComponent.

AkAudioInputComponent

AkAudioInputComponent 는 AkComponent 로부터 파생됩니다. It is a specialized AkComponent that you can use to provide audio input to Wwise. To do so, you must implement two key functions:

/* 오디오 호출. 이 함수는 Wwise 사운드 엔진에 의해 계속해서 호출되며
* 사운드 엔진에 오디오 샘플을 제공하는 데에 사용됩니다. */
virtual bool FillSamplesBuffer(uint32 NumChannels, uint32 NumSamples, float** BufferToFill);
/* 이 콜백은 Wwise 사운드 엔진에 필요한 오디오 형식을 제공하는 데에 사용됩니다. */
virtual void GetChannelConfig(AkAudioFormat& AudioFormat);

AkAudioInputComponent also has one Blueprint function, Post Associated Audio Input Event, which posts the component's AkAudioEvent to Wwise along with the associated AudioSamples callback and AudioFormat callback, using this component as the game object source.

Customizing Audio Input Behavior

You can write custom classes that derive from AkAudioInputComponent in order to implement custom audio input behavior. The following UAkVoiceInputComponent.h and UAkVoiceInputComponent.cpp examples show a class that takes microphone input and pipes it to the Wwise Sound Engine.

Before you can use these files in a C++ Unreal project, you must perform some initial setup. First, add the AkAudio and the Unreal Voice modules to the PublicDependencyModuleNames in the project's Build.cs file. 예시:

public class MyModule : ModuleRules
{
public MyModule(ReadOnlyTargetRules Target) : base(Target)
{
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "AkAudio", "Voice" });
// 그 외 설정
}
}

Next, add the following lines to the DefaultEngine.ini file:

[Voice]
bEnabled=true

After these setup steps are complete, add the desired custom behavior. In the following example, a class takes microphone input and sends it to Wwise.

참고:

The sample code in this section is not intended for use in shipped games. It is only a short example of how to implement custom behavior.

Here is an example of a customized AkVoiceInputComponent.h file:

#pragma once
#include "CoreMinimal.h"
#include "AkAudioInputComponent.h"
#include "Voice.h"
#include "AkVoiceInputComponent.generated.h"
/*
*/
UCLASS(ClassGroup = Audiokinetic, BlueprintType, hidecategories = (Transform, Rendering, Mobility, LOD, Component, Activation), meta = (BlueprintSpawnableComponent))
class WWISEDEMOGAME_API UAkVoiceInputComponent : public UAkAudioInputComponent
{
GENERATED_BODY()
UAkVoiceInputComponent(const class FObjectInitializer& ObjectInitializer);
virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
protected:
/* 이 부분은 이 컴포넌트를 소유하는 GameObject가Wwise 사운드 엔진에서 등록 해제된 후에 호출됩니다. */
virtual void PostUnregisterGameObject() override;
/* 오디오 호출. 이 부분은 Wwise 사운드 엔진에 의해 지속적응로 호출되며
사운드 엔진에 오디오 샘플을 제공하는 데에 사용됩니다. */
virtual bool FillSamplesBuffer(uint32 NumChannels, uint32 NumSamples, float** BufferToFill) override;
/* 이 콜백은 Wwise 사운드 엔진에 필요한 오디오 형식을 제공하는 데에 사용됩니다. */
virtual void GetChannelConfig(AkAudioFormat& AudioFormat) override;
/* 마이크 입력에 접근하는 데에 사용되는 Unreal IVoiceCapture입니다. */
TSharedPtr<IVoiceCapture> VoiceCapture;
/* 이 배열은 보이스 캡처로부터 새로운 버퍼가 들어올 때마다 초기화되며 다시 채워집니다. */
TArray<uint8> IncomingRawVoiceData;
/* 이 배열은 보이스 캡처로부터 수집된 이던의 모든 오디오 데이터를 담습니다.
제공되는 마이크 데이터를 처리할 때 제작되며
Wwise 엔진에 데이터를 전달할 때 읽혀집니다 (그리고 축소됩니다).
오디오 콜백에서 버퍼를 축소하는 것은 권장하지 않으며 출시 게임에서는 사용하지 말아야 합니다!*/
TArray<uint8> CollectedRawVoiceData;
/* 이 플래그는 마이크 데이터를 읽는 동안 수집된 데이터 버퍼에 마이크 데이터를 제작하지 않도록 방지해줍니다. */
FThreadSafeBool bIsReadingVoiceData = false;
};

Here is an example of a customized AkVoiceInputComponent.cpp file:

#include "AkVoiceInputComponent.h"
UAkVoiceInputComponent::UAkVoiceInputComponent(const class FObjectInitializer& ObjectInitializer) :
UAkAudioInputComponent(ObjectInitializer)
{
CollectedRawVoiceData.Reset();
VoiceCapture = FVoiceModule::Get().CreateVoiceCapture();
}
void UAkVoiceInputComponent::TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
if (!VoiceCapture.IsValid())
{
return;
}
uint32 NumAvailableVoiceCaptureBytes = 0;
EVoiceCaptureState::Type CaptureState = VoiceCapture->GetCaptureState(NumAvailableVoiceCaptureBytes);
/* IVoiceCapture는 각 틱마다 EVoiceCaptureState를 업데이트합니다.
그렇기 때문에 틱과 틱 사이에 이 명시문이 수집할 새로운 데이터가 실제로 있는지 알려줄 것임을 알 수 있습니다. */
if (CaptureState == EVoiceCaptureState::Ok && NumAvailableVoiceCaptureBytes > 0)
{
uint32 NumVoiceCaptureBytesReturned = 0;
IncomingRawVoiceData.Reset((int32)NumAvailableVoiceCaptureBytes);
IncomingRawVoiceData.AddDefaulted(NumAvailableVoiceCaptureBytes);
uint64 SampleCounter = 0;
VoiceCapture->GetVoiceData(IncomingRawVoiceData.GetData(), NumAvailableVoiceCaptureBytes, NumVoiceCaptureBytesReturned, SampleCounter);
if (NumVoiceCaptureBytesReturned > 0)
{
/* 수집된 버퍼에서 데이터를 읽는 동안 돌아갑니다 */
while (bIsReadingVoiceData) {}
CollectedRawVoiceData.Append(IncomingRawVoiceData);
}
}
}
bool UAkVoiceInputComponent::FillSamplesBuffer(uint32 NumChannels, uint32 NumSamples, float** BufferToFill)
{
if (!VoiceCapture.IsValid())
{
return false;
}
const uint8 NumBytesPerSample = 2;
const uint32 NumRequiredBytesPerChannel = NumSamples * NumBytesPerSample;
const uint32 NumRequiredBytes = NumRequiredBytesPerChannel * NumChannels;
int16 VoiceSample = 0;
uint32 RawChannelIndex = 0;
uint32 RawSampleIndex = 0;
bIsReadingVoiceData = true;
const int32 NumSamplesAvailable = CollectedRawVoiceData.Num() / NumBytesPerSample;
const uint32 BufferSlack = (uint32)FMath::Max(0, (int32)(NumSamples * NumChannels) - NumSamplesAvailable);
for (uint32 c = 0; c < NumChannels; ++c)
{
RawChannelIndex = c * NumRequiredBytesPerChannel;
for (uint32 s = 0; s < NumSamples; ++s)
{
if (s >= (NumSamples - BufferSlack) / NumChannels)
{
/* 보이스 캡처에서 받은 데이터가 Wwise 엔진에서 필요로 하는 데이터보다 적을 경우
누락된 샘플을 0으로 패딩합니다. */
BufferToFill[c][s] = 0.0f;
}
else
{
/* 전송되는 마이크 오디오 데이터를 부호가 있는 부동 소수점으로 변환합니다. */
uint32 RawSampleDataMSBIndex = s * 2 + 1;
uint32 RawSampleDataLSBIndex = s * 2;
VoiceSample = (CollectedRawVoiceData[RawSampleDataMSBIndex] << 8) | CollectedRawVoiceData[RawSampleDataLSBIndex];
BufferToFill[c][s] = VoiceSample / (float)INT16_MAX;
}
}
}
const int32 NumBytesRead = (NumSamples - BufferSlack) * NumBytesPerSample;
/* NOTE: 오디오 콜백에서 버퍼를 축소하는 것은 권장하지 않습니다. 출시 게임에서는 사용하지 마세요! */
CollectedRawVoiceData.RemoveAt(0, NumBytesRead);
bIsReadingVoiceData = false;
return true;
}
void UAkVoiceInputComponent::GetChannelConfig(AkAudioFormat& AudioFormat)
{
const int sampleRate = 16000;
AudioFormat.uSampleRate = sampleRate;
AudioFormat.channelConfig.SetStandard(AK_SPEAKER_SETUP_MONO);
if (VoiceCapture.IsValid())
{
/* 기본 장치에 빈 장치 이름을 전달합니다. */
if (!VoiceCapture->Init(FString(""), AudioFormat.uSampleRate, AudioFormat.channelConfig.uNumChannels))
{
UE_LOG(LogTemp, Error, TEXT("Failed to initialize device for voice input!"));
return;
}
VoiceCapture->Start();
}
}
void UAkVoiceInputComponent::PostUnregisterGameObject()
{
Super::PostUnregisterGameObject();
if (VoiceCapture.IsValid())
{
VoiceCapture->Stop();
VoiceCapture->Shutdown();
}
}

After you add the class to an Unreal project, you can create a custom Blueprint class that has an AkVoiceInputComponent, and can call the Post Associated Audio Input Event Blueprint function (from base class AkAudioInputComponent) to start sending microphone data to Wwise. The following image shows part of the Blueprint for a custom Blueprint class, based on Actor, that has an AkVoiceInputComponent called AkVoiceInput.


Wwise Unreal Integration Documentation: Using the AkAudioMixer Module

Using the AkAudioMixer Module

목차

  • 설명
    • Main Mix (FAkMixerPlatform)
    • Component Submix (UAkSubmixInputComponent)
    • 초기화
    • 폴링 순서
    • 오디오 버퍼링
  • FAkMixerPlatform 구성
    • Setting up the Wwise Project
    • Setting up the Unreal Project
    • FAkMixerPlatform 한계
  • UAkSubmixInputComponent 구성
    • Setting up the Wwise Project
    • Setting up the Unreal Project’s Audio
      • Creating the Master Submix
      • 캡처 Submix 만들기
      • Master 서브믹스에 커스텀 서브믹스 지정하기
    • Assigning Unreal Asset Submixes
    • Setting up Unreal Blueprints
      • Creating an AmbientSound Blueprint 클래스
      • UAkSubmixInputComponent 적용하기
      • Actor를 만들고 Event와 서브믹스 연결하기

설명

The AkAudioMixer module provides a platform-agnostic Unreal Audio Mixer, which you can use to run the Unreal and Wwise audio mixers concurrently.

The Unreal Audio Mixer is platform independent: it works on Windows, Mac, Android, and consoles. A Mixer Platform that handles the interaction between the platform’s hardware and the platform-independent code. Both the Unreal Audio Mixer and the Wwise SDK automatically initialize and handle a platform’s audio. However, most platforms cannot receive audio from multiple sources simultaneously, especially consoles that initialize one unique audio system. Some consoles crash if they are initialized twice, and some allow both systems to interact with the same objects blindly.

One solution to this problem is to disable Unreal’s Audio Mixer when a project uses Wwise (refer to 자주 묻는 질문 for more information). The AkAudioMixer module provides a concurrent, platform-agnostic solution, in which Unreal's Audio Mixer uses Wwise instead of the default platform (XAudio2, SDL Audio, AudioOut, and so on). Wwise can therefore properly initialize the Platform Sound Engine, and Unreal processes audio.

This module provides two different input components, both processed through a basic AkAudioInputComponent. Refer to Providing Audio Input to Wwise for more information.

Main Mix (FAkMixerPlatform)

The Wwise Sound Engine uses FAkMixerPlatform to substitute the platform-specific part of the Unreal Audio Mixer. Through a stereo feed, it is then possible to retrieve the result of the Unreal mixdown as a Wwise Audio Input. When you use FAkMixerPlatform, the Unreal audio subsystem remains fully functional alongside the Wwise audio system.

When you use FAkMixerPlatform, Unreal audio is provided as stereo. This Unreal mixdown is muted in Wwise but is available as a temporary solution because using two different, concurrent spatialization methods can cause audio problems. After you set up the FAkMixerPlatform properly, projects use Unreal submixes only when actual inputs for objects are necessary.

Component Submix (UAkSubmixInputComponent)

You can use UAkSubmixInputComponent to connect any Unreal audio submix to a Wwise Audio Input component. You can then retrieve part of a mix, such as movie audio, and send it to Wwise individually. You can provide the submix in any channel configuration, as required by Wwise. Due to limitations and performance considerations, we recommend that you configure the entire flow in Wwise whenever possible.

Use UAkSubmixInputComponent to retrieve Unreal audio from individual actors. Through the Wwise Unreal Integration, you can link the Audio Input Component with its actor position and then use Wwise integrated spatialization (or the object-based pipeline in 2021.1 or later) to achieve the project’s desired audio properties and quality.

You can use this component independently. It does not require the FAkMixerPlatform. However, be aware that initializing both Unreal’s platform-specific audio and Wwise’s platform-specific sink simultaneously can cause some platforms to crash because they do not support usage of two concurrent audio pipelines.

초기화

Use Wwise "Play" Events to initialize both FAkMixerPlatform and UAkSubmixInputComponent. The Wwise Sound Engine can then poll the Unreal components.

The Event starts the polling process, and the process must never be virtualized: it is either started or stopped, and the FAkMixerPlatform input component must always be playing. Otherwise, the Unreal audio pipeline does not work properly.

폴링 순서

After the initialization is complete, the audio pipeline is executed every few milliseconds to provide the next audio chunk to the hardware.

At the beginning of the pipeline tree, the platform hardware requests an audio buffer from the Wwise Sink. Next, the Wwise Sound Engine polls any playing Audio Input Components for their audio.

At this point, FAkMixerPlatform is polled, and requests the next buffer from the Unreal Master Submix. This, in turn, empties Unreal’s circular audio buffers so that the entire pipeline can continue to work.

오디오 버퍼링

Two sequential, concurrent systems add some latency to the end mix. Unreal assumes that the A/V component plays at its own speed, and uses a circular buffer to provide audio at the same speed at which the Audio Mixer requests it.

The Unreal Master Submix also has a circular buffer in the Audio Mixer’s FOutputBuffer to ensure audio is provided at a valid speed.

Because the individual submixes are pushed by the Master Submix, and Wwise requests its buffers at the same time, both Unreal and Wwise push requests.

Finally, the Wwise Sink also has buffering, which you can customize through code.

FAkMixerPlatform 구성

With the Wwise Audio Input source plug-in, you can use any input from external sources inside Wwise.

In order to capture the Unreal Mix, you must create one Wwise Audio Input as well as an Event that starts the data acquisition process.

We recommend that you create a bus in the Master-Mixer Hierarchy and a Sound SFX object that uses a Wwise Audio Input source plug-in. The connection to the Master Audio Bus is important, even if you plan to discard the audio as provided by this component eventually. If you mute the final result, you must not virtualize the voice, because virtualization effectively removes the audio polling that the Unreal Audio pipeline requires.

Setting up the Wwise Project

This section describes how to create the Unreal input source in your Wwise Project. As part of the process, you must create an Event to play the associated Sound SFX. Unreal also requires the Event to determine which Audio Input to use for the FAkMixerPlatform.

To create an input source:

  1. In Wwise, create an empty Unreal_Input SFX object.
  2. In the Contents Editor, click Add Source > Wwise Audio Input and add the desired source.
  3. Configure a volume offset at the source level or directly on the Sound SFX object.
  4. Route the sound to the appropriate Output Bus, which is the “Unreal Input Bus” in this example.
  5. In the Actor-Mixer Hierarchy, right-click the Sound SFX and click New Event > Play. The event is automatically named Play_[SoundName] but you can rename it if desired.
경고: The FAkMixerPlatform must be “Playing” at all times to ensure that Unreal’s Audio Mixers process audio for its components. If the FAkMixerPlatform is not playing, Unreal’s circular buffers fill up, which can potentially add latency to your audio. To mute the channel, ensure that it is playing and never virtualized or stopped due to lack of audio.

Setting up the Unreal Project

You must configure Unreal to use the Wwise Audio Mixer instead of the platform’s own Audio Mixer. For each platform, add the following lines to <Project>/Config/<Platform>/<Platform>.ini or <UE_ROOT>/Engine/Config/<Platform>/<Platform>Engine.ini. Note that the project settings override the engine settings. If the file does not yet exist, you must create it.

After the desired Wwise Integration is activated, you must use the previously created Play Event in your Project Settings’s Audio Input Event. This binds the FAkMixerPlatform component in your Unreal project to the Wwise Sound Engine.

After you generate SoundBanks, the Event is available in the Unreal Editor through the Wwise Browser. If WAAPI is enabled, it appears in the Wwise Browser.

Generate the SoundBanks in Wwise (or in the Unreal Wwise Browser) and restart the Unreal Editor. A restart is required each time you change the Audio Input Event because it is only initialized once. If you start the Profiler on the Unreal Player in Wwise Authoring, you can see the meters of your Audio Busses moving.

FAkMixerPlatform 한계

Unreal determines how to encode audio through the ITargetPlatform interface. 각 플랫폼에서 어떤 오디오 형식이 지원되는지를 결정하기 위해 GetWaveFormat 과 GetAllWaveFormats 메소드가 Derived Data 시스템에 의해 호출됩니다. The AkAudioMixer system does not override this selection. Ensure that the function provides a supported, generic format: you can override the necessary files yourself, or ensure that you meet the conditions required to use generic encoding, and not any platform-specific encoding.

Otherwise, you can modify the Unreal source code to change the target platform’s audio formats in the following file pattern: Engine/Platforms/<PlatformName>/Source/Developer/<PlatformName>TargetPlatform/Private/<TargetName>TargetPlatform.cpp

Ensure that the platform’s audio format is equivalent to the one provided in the FMixerPlatformWwise CreateCompressedAudioInfo method as found in this file:

Plugins/Wwise/Source/AkAudioMixer/Private/AudioMixerPlatformWwise.cpp

UAkSubmixInputComponent 구성

Setting up the Wwise Project

The Wwise project preparation for any UAkSubmixInputComponent is similar to the one for FAkMixerPlatform: in your project, you must create a new Wwise Audio Input Source, and add an Event to play. This Event will be bound to your Unreal project later in a Blueprint that you must create yourself.

경고: As with the FAkMixerPlatform input, you must ensure that the Wwise object is never virtualized or stopped on its own. Unreal must play or stop the Event. Otherwise, buffers continue to fill on the Unreal side, which causes lags and memory usage spikes.

Setting up the Unreal Project’s Audio

To prepare your Unreal project for a UAkSubmixInputComponent, you must do three things:

  1. Create the Master Submix.
  2. Create capture submixes.
  3. Assign the custom submixes to the Master Submix.

Creating the Master Submix

First, you must set up your Unreal project to override the default Master Submix and customize the Audio Submix flow. If you only create the Master Submix but do not customize it, it does not sound any different than the Default Master Submix. Note that an Unreal project can only use one Master Submix, which is shared by all worlds.

To create a Master Submix:

  1. Create a Sound Submix, as described in Overview of submixes in Unreal Engine. In this example, the name is "MasterSubmix".
  2. In the Project Settings, scroll to the Engine section and click Audio, then open the Mix section.
  3. Set the Master Submix to the newly created Sound Submix. For example:

At this point, you have an empty custom Master Submix without any special routing, and that sounds the same as a copy of the project that uses the Default Master Submix.

캡처 Submix 만들기

To efficiently capture the audio of a group of actors in Unreal, you must create two new submixes for each submix category. Because of the way Unreal handles submixes, there must be a hierarchy of two distinct submixes to ensure that the submix audio is not pre-mixed with anything except its own audio.

In the following section, the example uses the submix name, and the second submix has a “Passthrough” suffix (AmbianceSubmix and AmbianceSubmixPassthrough, respectively).

Master 서브믹스에 커스텀 서브믹스 지정하기

Creating the Master Submix 섹션에서 정의한 커스텀 Master Submix를 여세요. Add a graph where the different Passthroughs are set between the real submix and the Master Submix. You can use more submixes and can define any order for the submixes, as long as you arrange them in the following order:

Submix -> Passthrough -> Next in Tree

For example, the following graph demonstrates two different submixes:

At this point, the submixes are unused and unassigned, and your project sounds the same as it did before because all audio from all objects is still routed to the Master Submix. However, when actors start to send their audio to their own custom submix, such as the DiscussionSubmix and AmbianceSubmix as defined here, audio is sent to both the Discussion UAkSubmixInputComponent and the Master Submix, which causes audio duplication.

To prevent this duplication, set the Output Volume of the multiple Passthrough mixes to -96db (0 in Unreal 4.27). This measure ensures that no audio is sent to the Master Submix during mixdown, and the entire audio of the Discussion and Ambiance submixes are delivered to a custom Wwise Audio Input component.

Assigning Unreal Asset Submixes

After the submixes are created and assigned to the Master Submix, add audio to the submixes. In the Effects section of the audio asset details dialog, expand the Submix tab and set the Base Submix to the submix you want to use.

경고: You assign multiple assets to any Submix, but be aware that those assets will be mixed before they are sent to the Wwise Audio Input component. It is also more difficult to Play and Stop the Event because more actors affect the submix. It is also harder to configure positioning in these cases.

If you want to use multiple assets for one submix, it might be desirable to execute the Play Event at level start and the Stop Event at level end. This approach affects performance because the audio channel is open permanently in that level. If you have more than a few assets, they all push audio to Wwise, which must to be mixed.

Another approach is to have one master component that determines the life cycle of the audio data transmission, and more than one sub-component to provide audio whenever necessary.

In the following example, a WAV file was imported into the Unreal Content Browser, and the submix was changed to define the final destination.

At this point, this asset does not produce any audio because the Passthrough volume is -96db (0 in Unreal 4.27), so the audible track does not go to the Master Submix. The Events to Play and Stop the required audio component are not set up either. The asset is also not yet used in the Unreal world.

Setting up Unreal Blueprints

This section shows an example of how to set up the UAkSubmixInputComponent to bind submixes to the Wwise Audio Input Component. You can configure things differently, depending on your project’s specific requirements.

In the example in this section, an AmbientSound actor provides audio, but you can use any other Audio Component, or even Audio-Video components, to send audio to submixes.

Creating an AmbientSound Blueprint 클래스

First, you must create a new Blueprint class, with the Unreal AmbientSound as the parent class. An AkAmbientSound actor is also accessible. It is used to create Wwise-specific Ambient Sounds, so it is not relevant for this example.

참고: For performance purposes, we strongly recommend that you use AkAmbientSound whenever possible, but it is unnecessary in the case of the AkAudioMixer because the audio is already played and rendered in Wwise.

In this example, the AmbientSound actor component is called “AkSubmixAmbient”.

Link the previously created SoundWave to the AmbientSound object in the Sound section (as seen in the bottom right of the following image). This is a generic component, so it is used as a default value.

UAkSubmixInputComponent 적용하기

To apply UAkSubmixInputComponent, an Unreal component is required to control the Play and Stop Events, and bind the submix to a Wwise Audio Input Component. Use the AkSubmixInput Audio Component.

AkSubmixAmbient Blueprint의 루트 컴포넌트에 AkSubmixInput 컴포넌트를 추가하세요.

In the Event Graph, post the Ak Submix Input component’s event on BeginPlay, and stop the component on EndPlay.

This configuration ensures that audio data transmission is active when BeginPlay starts, and stops it as soon as End Play is reached. To optimize this configuration beyond the default values, follow your own actor’s life cycle: start and stop the Audio Input processing only when necessary.

You can now compile and save the Blueprint.

Actor를 만들고 Event와 서브믹스 연결하기

Drag and drop your new Blueprint into the level to instantiate it.

Details 패널에서 원하는 SoundWave를 Sound 속성에 설정하세요. 이 속성은 기본값이 아닌 실제 값입니다.

AkSubmixInput 컴포넌트를 선택하세요.

Define the Ak Audio Event to start playing the Wwise Audio Input Component, and the Submix to Record on this Component. Submix Input 섹션에서 Record할 알맞은 Submix를 선택하고 Audio Input을 Play할 Ak Event를 선택하세요.

At this point, the submix plays the Ambient sound, the submix is muted (the output volume is set to 0 in the Submix tree), and the Audio Input is used in Wwise to play back the audio for that object.


Wwise Unreal Integration Documentation: Combining Unreal 5 and Wwise Audio with AudioLink

Combining Unreal 5 and Wwise Audio with AudioLink

Starting with version 5.1, Unreal includes a tool called Audio Link. When you are developing audio for Unreal games, you can use Wwise or Unreal exclusively or, through AudioLink, use both systems together. This flexibility gives users the ability to create some sounds in Unreal during game development, but also use Wwise for advanced audio effects such as Spatial Audio.

In the context of the Wwise Unreal Integration, AudioLink can help two types of user:

  • Wwise users who want to route Unreal Audio through Wwise.
  • Unreal users who want to add Wwise features to their projects but also want to keep any Unreal audio work they have already completed.

AudioLink is an alternative to Wwise's AkAudioMixer module and functions differently: AkAudioMixer works with mixes and submixes, while AudioLink works with objects. AudioLink therefore provides more granular control than AkAudioMixer because you can target any single sound, all sounds, or submixes. Through AudioLink, you can assign individual Unreal objects to individual Wwise objects.

In addition, after you enable AudioLink and configure your Unreal and Wwise projects appropriately, you can then listen to audio in Unreal and monitor the audio with the Wwise Profiler simultaneously.

Selecting Audio Routing Options

There are several options for audio routing available in the Unreal Project Settings.

To select an audio routing option:

  1. In Unreal, click Edit > Project Settings. The Project Settings dialog opens.
  2. In the Wwise section, click Integration Settings. The Initialization section contains several audio routing options:
    The Unreal Audio Routing menu contains the following options:
    • Default: Supports custom configurations and projects that were migrated from integration versions lower than 2022.1. If you select this option, you can manually select or clear the three checkboxes that follow. However, there are no limits on your selections or any automatic verification, so it is your responsibility to test your audio and ensure that your custom routing configuration works properly.
    • Both Wwise and Unreal audio: Use the Unreal audio system and the Wwise SoundEngine concurrently.
      참고: This option might not be compatible with all platforms.
    • Route through AudioLink [UE5.1]: Use AudioLink to route all Unreal audio sources to Wwise SoundEnging inputs. This option requires Unreal 5.1 or higher.
    • Route through AkAudioMixer: Use AkAudioMixer to route Unreal submixes to a Wwise SoundEngine input. Refer to Using the AkAudioMixer Module for more information.
    • Enable Wwise SoundEngine only: Use Wwise for audio and disable the Unreal audio system.
    • Enable Unreal Audio only: Use Unreal Audio and disable the Wwise SoundEngine.
  3. Select the desired audio routing option. For AudioLink, select Route through AudioLink [5.1].

Connecting Unreal Audio to Wwise Audio Inputs

As with many aspects of the integration and Wwise in general, there are different ways to achieve the desired results. For example, you can create separate AudioLink assets for individual Wwise Events, which you can then use in Unreal to play sounds and music as required.

To connect Unreal Audio to a Wwise Event:

  1. Enable AudioLink routing, as described in the previous section.
  2. In Wwise, set up an Audio Input Source Plug-in.
  3. Create a Wwise "Play" Event that uses a Sound SFX with Audio Input as the source.
  4. In the Unreal Content Browser, click Add > Sounds > AudioLink > Wwise AudioLink Settings. A Wwise AudioLink Settings asset is added to the Content Browser.
  5. In the asset Details, set the Start Event to the newly created Wwise Event.
  6. Connect a Blueprint to the Wwise AudioLink Settings asset.

At this point, you can connect multiple Events to the same Blueprint, or to others, and test the audio in Wwise through the Wwise Profiler.

There are other ways to work with AudioLink. Refer to the Adventures With AudioLink blog post for some more examples.


Wwise Unreal Integration Documentation: 자주 묻는 질문

자주 묻는 질문

Where are banks located when I generate them from the Unreal editor or when cooking?

By default, they are located in the following location:

UE/[GameName]/Content/WwiseAudio/[Platform]

Some banks containing language assets might be in language-specific folders.

Why does SoundBank generation in Unreal create more banks than SoundBank generation in Wwise?

When importing a SoundBank definition file, Unreal might ask Wwise to generate banks that do not exist in the Wwise project. If you want the Unreal-generated bank to persist in the Wwise project, add the command-line argument -Save when you import the SoundBank definition file.

Can I debug my code using the Wwise SoundEngine debug libraries?

By default, the Unreal Engine does not use the debug C Runtime Libraries, but Wwise uses them. 디버그 모드에서 빌딩할 경우 이 상황이 연결 오류를 일으킬 수 있습니다. This is why the Wwise Unreal integration uses the profile libraries. If you want to link to the debug Wwise libraries, set the bDebugBuildsActuallyUseDebugCRT variable to true in the following file: <UE_ROOT>/Engine/Source/Programs/UnrealBuildTool/Configuration/BuildConfiguration.cs.

Why don't all of my sounds play when I run a packaged game?

If you receive an error such as Event ID not found: <id>, it is likely that a Wwise Unreal asset was excluded from the package due to "tree shaking." Refer to Packaging Requirements for more information.


Wwise Unreal Integration Documentation: 시작 튜토리얼

시작 튜토리얼

The following tutorials demonstrate how to integrate music, play sounds from animations, play sounds from physics-based objects, play sounds from object collisions, and customize listeners in third-person games. These tutorials are intended for anyone who is integrating Wwise into an Unreal project for the first time. We recommended that you follow the tutorials in order.

  • 튜토리얼 준비하기
  • Adding Ambient Sound to a Level
  • Blueprint에서 음악 재생하기
  • 발자국 소리 통합하기
  • Adding Sounds to Physical Impacts
  • Using Distance Probes to Customize Listeners in Third-Person Games


Wwise Unreal Integration Documentation: 튜토리얼 준비하기

튜토리얼 준비하기

These tutorials require the default installations of Wwise and Unreal 5. Although there are no tutorial-specific supplementary materials available, the Integration Demo Wwise sample project contains a variety of sounds and music that you can use for most of the examples. The Integration Demo is included with the Wwise SDK, which you can add to your installation through the Audiokinetic Launcher. For details, see Integration Demo Sample.

Prerequisites

Before you begin the tutorials, review the following prerequisites and ensure that all necessary setup is complete:

  • In Unreal, create a project with the Third Person game template, with a C++ Project Default (the Wwise Unreal Integration does not support Blueprint-only projects). For more information, refer to Creating a New Project and Third Person Template.
  • Install the Wwise Unreal plug-in as described in Installation and Building the plug-in.
  • Enable Auto-Defined SoundBanks in your Wwise project. See Automatically Defining SoundBanks for more information.

Required Unreal Knowledge

Before you begin to integrate audio in Unreal, we strongly recommend that you have a working knowledge of Unreal 5 game development. Review the following sections in the Unreal documentation in particular:

  • Level Editor: The Level Editor is the initial layout that appears when you open Unreal. You use it to manage your assets: place sounds in the level, create new sounds, and so on. It is also the view from which you open other views, such as the Blueprint Editor.
  • Actors, Components, and Blueprints: In Unreal, every object in your level is an Actor. There are different types of Actor, and Actors can have components that define what they do. For example, an Actor can have a Mesh that you can use as a Trigger to define areas in which a certain ambience plays. You can use Blueprints to design systems, and add them to Actors as well. Within these systems, you can reference your Actor’s components so that, for example, an ambience starts to play when something enters your Trigger area.
도움말: When you generate SoundBanks, a notification appears and plays a sound. Depending on the level of your own sound integration, the sound might be quite loud, but you can disable it. To do so, go to Edit > Editor Preferences. Under Level Editor, click Miscellaneous and clear Enable Editor Sounds.


Wwise Unreal Integration Documentation: Adding Ambient Sound to a Level

Adding Ambient Sound to a Level

This tutorial explains how to add an AkAmbientSound asset to an Unreal level to play a looping ambient sound from Wwise.

To prepare for this tutorial:

  1. Integrate Wwise into your Unreal project, as described in Integrating Wwise into an Unreal Project.
  2. Add a looping ambient sound to the Wwise project, and clear the Hold Emitter Position and Orientation option in the sound's Positioning properties. Refer to Managing Media Files in Your Project for more information about adding sounds to Wwise.
  3. Create a Wwise Event that plays the sound. Refer to Creating Events for more information.
  4. Ensure that the Unreal project references the correct SoundBanks folder:
    1. In Unreal, click Edit > Project Settings. The Project Settings dialog opens.
    2. Scroll to the Wwise section and click Integration Settings.
    3. Under Installation, click the ellipses next to Generated Sound Banks Folder. A file explorer opens.
    4. Browse to the Wwise Project's GeneratedSoundBanks folder and click Select Folder.
  5. Ensure that the Wwise Browser is accessible and populated with Wwise project data. If it is not, save your Wwise project or click Refresh Button in the Wwise Browser. For more information, refer to Managing Assets with the Wwise Browser.

Posting a Wwise Event

An easy way to add sounds from Wwise to Unreal is by adding an AkAmbientSound asset to a level. In this case, the AkAmbientSound asset is the emitter, so if you are using Spatial Audio, objects in the level can obstruct the sound. The sound also stops playing when the character exits the level.

To add an ambient sound:

  1. Open your project in the Unreal Editor.
  2. In the menu bar, click Build > Generate SoundBanks, then click Generate. The SoundBanks are generated.
  3. Click Window > Wwise Browser.

  4. From the Wwise Browser, drag the Event that plays the ambient sound into the Level Editor. An AkAmbientSound Actor is created in the level, and a uasset of the Event is created in the Default Asset Creation Path.

  5. Select the newly created AkAmbientSound (1), and in the Details panel, select Auto Post (2).

    When you press Play in the Unreal Editor, you can now hear the ambient sound.

Disabling Occlusion

At this point, you can hear the ambient sound as you move around the level. However, if you move the character behind an obstacle in the level, the sound fades out because of occlusion, which is enabled by default. You can disable occlusion, which might be desirable for sounds like ambience or music.

To disable occlusion:

  1. Select the AkAmbientSound Actor in the level.

  2. In the Details panel, under Ak Component > Occlusion, set the Occlusion Refresh Interval to 0.

    You can now hear the ambient sound anywhere in the level.


Wwise Unreal Integration Documentation: Blueprint에서 음악 재생하기

Blueprint에서 음악 재생하기

This tutorial explains how to use Unreal Blueprints to play music from an integrated Wwise project. A Blueprint is suitable for music, which might play for the entire duration of the game across different levels.

To prepare for this tutorial:

  1. In Wwise Authoring, create a Music Playlist Container.

  2. Add a Music Segment that loops indefinitely. The following image shows the Container configuration:

  3. Create an Event that plays the Music Segment. This tutorial uses an example called Play_Music.
  4. Generate SoundBanks in either Wwise or Unreal.
  5. In the Unreal Editor, drag the music Event from the Wwise Picker into the Level Editor. Just as in Adding Ambient Sound to a Level, the Event is added and a uasset is created.
  6. Select the Event and in the Details panel, select the Auto Post option.

Posting an Event

In this part of the tutorial, you will add sounds to the ThirdPersonExampleMap level. The level already contains various Actors such as Lights, Meshes, and a character.

참고: If you have multiple scenes, you can create a Persistent level so the music survives when a different map is loaded.

This tutorial uses the Blueprint of the playable character, which is available by default in the ThirdPersonCharacter content. To play, or "post", a Wwise Event, you have to do three things:

  1. Call the Unreal Event when you begin to play.
  2. Connect it to the function that plays the Wwise Event.
  3. Specify which Actor plays the Event.

The following procedure explains this process in detail.

To post an event:

  1. In the Content Browser, go to ThirdPerson > Blueprints and double-click BP_ThirdPersonCharacter. The BP_ThirdPersonCharacter Blueprint opens. The Event Graph tab contains three disabled nodes.

  2. Drag a pin from the BeginPlay node, search for the Post Event Audiokinetic function and click it.

    The Post Event function requires a reference to an Actor to place the Wwise Event.

  3. Drag a pin from the Actor Object Reference, search for the Get a reference to self Variable and click it.

  4. In the Post Event function, select the Play_Music Ak Event.

  5. Click Compile and then in the Level Editor, click Play. The music plays.

Using AkComponents

The Blueprint environment is ideal for controlling Actor behavior. However, to efficiently manage and position Actors in levels, you can expose some Blueprint controls in the Details panel and work primarily in the Level Editor instead. To do this, you can add an AkComponent to the Actor, which you can then use to offset the position of the sound from the Level Editor.

To use an AkComponent:

  1. In the Blueprint Editor, on the Components tab, click Add, then search for the Ak Audiokinetic component and click it.
  2. In the Event Graph, delete the Post Event function and the reference to Self.

  3. Drag the Ak component into the Blueprint, then drag a pin from the component, search for Post Ak Event and click it.

  4. Connect BeginPlay to the Post Ak Event.

    You can now retrieve the Wwise Event selected in the AkComponent.

  5. Drag a pin from the AkEvent Object Reference, find and select a Get Ak Audio Event and connect it to the Ak component.

  6. Click Compile.
  7. In the Components panel, select Ak, then in the Details panel, expand the Ak Event section. It is currently empty.

  8. Drag the music Event from the Wwise Picker into the empty Ak Audio Event area.

    You can now change the Event without opening the Blueprint, and you can offset the position of the sound relative to the Actor to which it is attached.

Controlling Music with States

In most cases, you want interactive music in your game to adapt to gameplay conditions and provide variety. This tutorial demonstrates a common implementation strategy, which is to use States to control music.

Before you start, you must create a new music system in Wwise that consists of two distinct types of music: in this case, selection of calm music and a selection of intense music.

Create a Music Switch Container that can switch between "Repeat Calm" and "Repeat Intense" Music Playlists based on a “Music” State, as shown in the following image.

In the example, there are three States: Calm, Intense, and None. With this setup, you can set States from the game to change the music during runtime. You can also choose which State to set when the game starts.

A common approach, which this tutorial uses, is to set States when the player enters a certain area, defined by a Trigger. You create a Trigger Box and use a Blueprint system to set the State when the player crosses the boundaries of the box.

Ensure that you complete the steps in Using AkComponents before you proceed.

To control music with States:

  1. In the Blueprint Editor, drag a SetState Audiokinetic function from BeginPlay.

  2. Initial State를 Music-Calm으로 설정하세요.

    The initial state is now set up.

  3. Drag a Trigger Box into the Level.

  4. Increase the size of the Trigger Box.

  5. In the Details view, click the button with the three boxes (1), then New Subclass (2), type a Blueprint name (3), and then click Select (4), as shown in the following image.

    The Blueprint is created, and contains an ActorBeginOverlap Event, which you can use to detect when something enters the Trigger Box.

  6. ActorBeginOverlap에서 ThirdPersonCharacter로 캐스트하고 Exec을 Set State 함수와 연결하세요.

    To ensure that you can use the Trigger Box for multiple states, you must create a Variable that is accessible outside the Blueprint.

  7. Drag from the State Value and click Promote to variable.

    There is now a variable under My Blueprint > Variables on the left.

  8. Rename the variable to “MusicState” and click the eye icon.

    The variable is now public (accessible outside the Blueprint).

  9. Click Compile, and close the Blueprint.

  10. Select the Trigger, then in the Details view select a State under Default > Music State.

  11. In the level, walk into the new Trigger with the ThirdPersonCharacter and wait for the music to change.

    You can now duplicate the trigger, reuse it somewhere else and set a different state without affecting the original trigger.

참고: If your Music Switch Container's Transition is set to Exit Cue, you might have to wait to hear the music change.


Wwise Unreal Integration Documentation: 발자국 소리 통합하기

발자국 소리 통합하기

A common task in game production is posting footstep sounds. This tutorial uses footsteps as a practical demonstration of how to post sounds from a specific moment in animation. You can use the same approach for other sounds and animations, such as doors opening and closing. In addition, the tutorial demonstrates how to use Unreal Surface Types in combination with Wwise Switch Containers to change the sound of footsteps when the player character moves from one type of surface to another.

This tutorial uses the ThirdPersonCharacter project template, which includes a Mannequin (playable character controller) with input controls and animations. The following sections explain how to integrate footstep sounds by adding Animation Notifications to an animation of the character running. A Blueprint receives the notifications and posts the sound.

The footstep implementation in this tutorial uses Unreal's Physics system extensively. For more information, refer to Physics.

Before you proceed, create or obtain some footstep sounds for at least two different types of surface (such as dirt, gravel, or grass). You must also do some preparatory work in your Wwise project.

To prepare for this tutorial:

  1. In Wwise Authoring, create a Switch Group called "Surface" and add Switches for each surface type you plan to use. You need at least two surface types.
  2. In the Actor-Mixer hierarchy, create a Switch Container called "Footsteps" and add sounds or Containers that correspond to different surface types.
  3. Assign the Surface Switch Group to the Footsteps Container, set a default Switch value, and assign the appropriate footstep Objects to their corresponding Switches. The following image shows a sample configuration:
  4. Create an Event called "Play_Footsteps" to play the Footsteps Switch Container.
  5. Generate SoundBanks in Unreal or Wwise Authoring.
도움말: The Wwise Integration Demo project contains a Footsteps container with sounds for multiple surfaces.

Adding Footstep Anim Notifies

To play footstep sounds that are synchronized with the player character's movements in the game, you must use Anim Notifies. The following procedure explains how to add Anim Notifies to character animation states in Unreal, at the precise moment when the character's foot touches the ground. You can then update the character Blueprint to post Wwise Events based on the Anim Notifies.

To add Anim Notifies for footsteps:

  1. In the Unreal Content Browser, go to Content > Characters > Mannequins > Animations > Quinn and double-click MF_Run_Fwd. The Animation Sequence Editor opens.
  2. Click the Skeletal Mesh button in the upper right of the window. The SK_Mannequin Skeletal Mesh opens.
  3. In the Animation Notifies panel in the lower right, right-click, then click New and type Footsteps in the text field.
  4. Return to the Animation Sequence Editor, and in the Asset Editor next to Notifies, click Track > Add Notify Track. A new numbered track is added to the Animation timeline.

  5. In the timeline, align the Playhead with the first R in the top track, which is the moment the right foot touches the ground.

  6. In the timeline, right-click in the new track and click Add Notify > Skeleton Notifies > Footsteps.

  7. Copy the Footsteps Anim Notify and paste it so that each of the other R and L notifies has a corresponding Footsteps Anim Notify.

Preparing Surfaces in Unreal

To test footstep sounds on different surfaces, your level must contain at least two different sections of floor, to which you can assign different Physical Materials. You can then associate Switches with the different surfaces so that the footstep sounds change when the character moves from one surface to another. Use surfaces and materials that correspond to the sounds in your Wwise Switch Container.

This approach uses Unreal Static Meshes and Physical Materials. For more information, refer to Physical Materials and Static Meshes.

To add a second floor surface to the level:

  1. Click Edit > Project Settings. The Project Settings dialog opens.
  2. In the Engine section, click Physics.
  3. In the Physical Surface section, add separate Surface Type names for each surface in your Wwise project's Switch Container (for example, Dirt, Gravel, Metal, and Wood), then close the Project Settings dialog.
  4. In the Level Editor, duplicate the floor object (SM_Cube) and scale the two objects so that each copy occupies half of the floor area in the level.
  5. In the Content Browser, select a folder and click Add > Physics > Physical Material, and in the dialog select PhysicalMaterial and click Select. A Physical Material asset is added to the folder.
  6. Change the name of the material to something that corresponds to one of the Surface Types you added in the Project Settings. Create additional Physical Materials for the remaining surface types.

  7. Double-click one of the new Physical Materials and in the Details Panel, under Physical Properties, select the corresponding Surface Type.

  8. In the Level Editor, select one of the floor objects and in the Details panel, click StaticMeshComponent to view the mesh properties.

  9. In the Collision section, set the Phys Material Override to the desired Physical Material.

  10. In the Materials section select a Material that resembles the desired Surface Type. Repeat for the second floor object. The following image shows an example of a level with a floor divided into metal and dirt sections.

Using Surface Switches

After you add Footstep Notifies to the character animation and configure the different surfaces in the level, the final step is to configure the Mannequin Blueprint to determine which surface is beneath the player, route that information to the correct Set Switch function, and finally post the Event to Wwise, which then plays the appropriate footstep sound.

This procedure uses the same MF_Run_Fwd animation sequence from Adding Footstep Anim Notifies.

To set a Surface Switch:

  1. Open the MF_Run_Fwd animation in the Animation Sequence Editor.
  2. In the upper right, click the Blueprint icon. The ABP_Manny Blueprint opens.

  3. Configure the first part of the Blueprint with a Line Trace By Channel function to detect the player character's footsteps, as shown in the following image.

  4. Configure the second part of the Blueprint to detect whether the player is on a valid surface type and if so, to route the signal to the correct Set Switch function and then post the Wwise Play_Footsteps Event to play the correct sound.

    Here is a diagram of the entire Blueprint:

  5. Click Compile.
  6. In the Level Editor, click Play and move your character over the different surfaces. The sound of the footsteps changes accordingly.


Wwise Unreal Integration Documentation: Adding Sounds to Physical Impacts

Adding Sounds to Physical Impacts

The previous tutorials described how to play music when the game starts and from a specific time in the animation. This tutorial explains how to use Unreal's Physics system to detect collisions between objects and post Wwise Events to play sounds upon impact. It also demonstrates how to use RTPCs to set minimum velocity thresholds to ensure that impact sounds don't play whenever there is minor contact between objects. Finally, it includes a system for instantiating objects in the game to test the impact sound system.

To prepare for this tutorial:

  1. Obtain a short sound to use for a physical impact and import the sound into Wwise.
  2. Create a Game Parameter called "Collision_Velocity".
  3. Add Voice Low-pass Filter and Voice Volume RTPCs associated with the Collision_Velocity Game Parameter, with curves as shown in the following image:
  4. Create an Event called "Play_Impact" that plays the sound.
  5. Generate SoundBanks in Unreal or Wwise Authoring.

Playing Sounds when Objects Collide

To play a sound when objects collide:

  1. In the Level Editor, select one of the blue boxes.
  2. In the Details panel, click the Blueprint icon. The Create Blueprint From Selection dialog opens.
  3. Select New Subclass, change the Blueprint Name to WwiseObject, and click Select. The Blueprint opens.
  4. In the Components panel, select the Static Mesh Component.
  5. In the Details panel, ensure that the following options are selected:
    • Physics > Simulate Physics
    • Collision > Simulation Generates Hit Events
  6. In the Components panel, right-click Static Mesh Component, then click Add Event > Add OnComponentHit. The Event Graph opens and the On Component Hit Event is added.

  7. Configure the Blueprint as shown in the following diagram.

    This Blueprint does several things:

    • It detects when the object collides with another object.
    • It sets the value of the Collision_Velocity RTPC based on the Vector Length of the Component Velocity, and ensures that the value exceeds a minimum threshold of 40, which ensures that minor contacts do not cause impact sounds.
    • It posts the Event to Wwise with the RTPC value, so that Wwise plays the impact sound at the appropriate volume.
  8. Click Compile and close the Blueprint.
  9. Open the BP_ThirdPersonCharacter Blueprint.

  10. In the Event Graph, add a system that spawns Actors from the Wwise Object class when you press F in the game, as demonstrated in the following image.

  11. Click Compile and close the Blueprint.
  12. In the Level Editor, click Play and then press F to create a block. When you run into it, the impact sound plays.
참고
  • From Audio File to in-game Audio in Unreal (video)


Wwise Unreal Integration Documentation: Using Distance Probes to Customize Listeners in Third-Person Games

Using Distance Probes to Customize Listeners in Third-Person Games

Before you begin this tutorial, refer to Working with Listeners in Third-Person Perspective Games for a general introduction to Distance Probe usage in Wwise.

This tutorial demonstrates how to use a Blueprint to assign a Distance Probe in Wwise. The example uses the Third Person project template, and the ThirdPersonCharacter Actor is used for the Distance Probe. The exact steps might vary depending on your project.

To use a Blueprint to assign a Distance Probe:

  1. In the Content Browser, go to Content > ThirdPerson > Bluprints and double-click BP_ThirdPersonCharacter. The Blueprint opens.
  2. On the Event Graph, right-click an empty area and add a BeginPlay Event.
  3. Right-click to add a second node, Set Distance Probe, and connect it to Event BeginPlay.

  4. Drag a pin from the Listener input parameter of Set Distance Probe, and add a Get Player Camera Manager node.

    참고: The Wwise Unreal integration automatically registers a Game Object as a default listener and attaches it to the PlayerCameraManager actor.

  5. Drag a connection from the Distance Probe input parameter, and add a Get a reference to self variable. In this context, Self refers to the ThirdPersonCharacter Actor.

  6. Use Wwise Authoring to connect to the game and confirm that the Distance Probe is set up correctly. Refer to Profiling the Distance Probe for details.


Wwise Unreal Integration Documentation: Going Further

Going Further

Integrating Wwise into your Unreal Project is only the beginning. You can also tune your integration for maximum performance and efficiency.

The following sections will instruct you on how to get the most out of your Wwise Unreal Integration.

  • Unreal Spatial Audio 튜토리얼
  • Understanding the Wwise Unreal Integration Modules


Wwise Unreal Integration Documentation: Unreal Spatial Audio 튜토리얼

Unreal Spatial Audio 튜토리얼

다음 튜토리얼은 Wwise Unreal 통합에 포함된 다양한 Spatial Audio 기능을 설명해 줍니다. 첫 번째 튜토리얼은 프로젝트 준비를 도와줍니다. 다음의 각 튜토리얼은 Spatial Audio의 서로 다른 방면을 집중적으로 설명해줍니다. 이 섹션은 각각 따로 실행해볼 수 있습니다.

참고: Reflect 플러그인을 사용하는 섹션에서 Soundbank를 생성하기 위해서는 올바른 라이선스가 필요합니다.
  • Spatial Audio 튜토리얼 준비
    Spatial Audio 튜토리얼 준비
  • 반사 (Reflect)
    Reflect 플러그인 개요.
  • 공간(Room)과 포털(Portal)
    Spatial Audio 공간(rool)과 포털(portal) 개요.
  • 회절 (Diffraction)
    회절(diffraction) 사용하기.
  • 차단
    Using occlusion.
  • Transmission (전달)
    전달(transmission) 사용하기.
  • Spatial Audio Blueprint 컴포넌트
    Spatial Audio 컴포넌트로 커스텀 Blueprint 클래스 만들기.
  • Reverb Parameter 예측
    자동 Reverb 매개 변수 예측.
  • Fit to Geometry
    Spatial Audio 포털과 공간을 레벨 지오메트리에 자동으로 맞추어 넣기.
참고
  • Wwise Spatial Audio Objects
  • Spatial Audio 오브젝트 Blueprint 함수
  • Spatial Audio SDK 설명서


Wwise Unreal Integration Documentation: Spatial Audio 튜토리얼 준비

Spatial Audio 튜토리얼 준비
참고: A map with the parameters for all tutorials is available as part of the Unreal Demo Game downloadable from the Audiokinetic Launcher. 이 맵의 이름은 SpatialAudioTutorialMap입니다. If you want to follow along with that map, you can skip the following sections.

새로운 프로젝트 만들기

Follow the steps below in order to build your working environment.

  1. Epic 런처에서 Unreal을 시작하세요.
    1. 새로운 Unreal Project C++ Blank 프로젝트를 생성하세요 (스타터 콘텐츠 없이).
    2. Unreal을 닫으세요.
  2. Audiokinetic 런처를 시작하세요.
    1. Wwise를 설치하세요.
    2. Unreal Engine 탭을 선택하세요.
    3. Click the Integrate Wwise into Project button.
    4. Open in Wwise 버튼을 사용하여 Wwise를 시작하세요.
    5. Open in Unreal 버튼을 사용하여 Unreal을 시작하세요.

Wwise 프로젝트 준비

튜토리얼에서는 재생할 Sound SFX와 이 사운드를 재생할 Event가 필요합니다.

  1. Wwise 프로젝트에서 Actor-Mixer Hierarchy의 Default Work Unit 안에 새로운 Sound SFX를 만들고 사운드를 가져오세요.

    1. General Settings 탭에서 Use game-defined auxiliary sends를 반드시 활성화해주세요.

    2. In the Positioning tab:

      1. Enable Listener Relative Routing
      2. Set 3D Spatialization to Position + Orientation
      3. Add an Attenuation with a Max distance of 5000.
      4. Enable Diffraction and Transmission

  2. Actor-Mixer Hierarchy 안에 있는 Sound SFX를 우클릭한 후 New Event > Play를 선택하세요.

  3. Open the Project Settings

    1. In the Soundbanks tab, make sure Enable Auto-Defined SoudBanks is enabled.

  4. 프로젝트를 저장하세요.
  5. Generate the SoundBanks.

Unreal 프로젝트 준비

  1. 원하는 방식으로 바닥을 만든 후 두 개의 공간이 있는 건물을 세우고 바깥에 장애물을 배치하세요. SpatialAudioTutorialMap에는 이 빌딩에 사용할 커스텀 메시와 밖에 있는 장애물에 사용할 기본 정육면체 스태틱 메시 컴포넌트가 제작되어 있습니다.
  2. 씬에 이미터를 배치하세요.

    1. Drag the Event created in the previous section from the Wwise Browser to the Content Browser.

    2. Drag the Event into the scene to create new AkAmbientSound actors.
      1. 한 액터는 바깥에 배치하고 다른 액터는 각 공간 안에 배치하세요.

      2. For all AkAmbientSound actors, make sure to set Occlusion Refresh Interval to 0.

Here's an image of the Spatial Audio Tutorial Map.

  1. Open the Level Blueprint from the Blueprints menu.
    1. 사용자 입력을 통해 이벤트를 트리거하세요.
      1. Drag a newly created AkAmbientSound from the World Outliner into the Blueprint.
      2. AkAmbientSound 노드에서 'Post Associated Ak Event"' 함수를 찾으세요. -# Right-click the Blueprint background and search for "Left Mouse Button".
      3. Pressed 배출구를 'Post Associated Ak Event' Exec와 연결하세요.

    2. 모든 AkAmbientSound 요소에 동일한 단계를 반복하세요.

    3. Level Blueprint를 저장하고 닫으세요.

셋업 검토하기

  1. 씬을 시작하세요. When pressing the respective buttons, you now hear the sounds play, spatialized in 3D.

  2. Wwise Authoring에 연결하고 Profiler 레이아웃 (단축키 F6)을 여세요.

    1. When playing the sound outside, you see a graph similar to the following one.


Wwise Unreal Integration Documentation: 반사 (Reflect)

반사 (Reflect)

이 튜토리얼에서는 Spatial Audio Geometry를 사용해서 Reflect 플러그인에 반사적 표면을 전송해봅시다. 그렇게 하면 음향 환경에서 소리의 전달을 통해 초기 반사를 시뮬레이션할 수 있습니다.

참고: You need a license for Reflect to generate SoundBanks in this tutorial.
참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다.

Wwise 프로젝트

  1. 기본 Acoustic Texture와 초기 반사 Auxiliary Bus의 프리셋에 접근하려면 먼저 Factory Acoustic Texture와 Reflect Factory Asset을 가져와야 합니다.
    1. Project > Import Factory Assets...로 이동하세요
    2. Choose both Reflect and Acoustic Textures and press Import.
  2. 기본 프리셋을 사용하여 초기 반사 Auxiliary Bus를 만드세요.
    1. Master-Mixer Hierarchy에서 Master Audio Bus를 우클릭하세요

    2. Navigate to New Child > Presets and select Simplified Early Reflection Auxiliary Bus

      1. In the Effects tab, double-click on the effect and set the Speed of Sound to 34,500

  3. Wwise 프로젝트 준비 에서 만든 사운드의 Sound SFX Sound Property Editor로 이동하세요.

    1. General Settings 탭에서 Reflect Effect under Early Reflections를 사용하는 새로운 Auxiliary Bus를 만드세요.
  4. Save the project and generate Soundbanks.

Unreal 프로젝트

이 프로젝트에서 건물, 바닥, 장애물이 소리를 반사시키도록 만들어야 합니다. There are two ways to do that, with an AkSpatialAudioVolume or with the AkGeometryComponent.

The AkGeometryComponent can be added to static mesh actors. 이 컴포넌트는 스태틱 메시 지오메트리를 공간 음향으로 자동 전송합니다. 또한 간단한 충돌 메시를 전송하도록 설정할 수도 있습니다. A sufficiently complex static mesh with an AkGeometryComponent attached can sometimes result in geometry that is too complex. 그 이유는 계산 시간뿐만 아니라 Wwise Spatial Audio에서 사용되는 것과 같은 레이 기반 음향 시뮬레이션 기술이 지오메트리 특징(표면과 모서리)을 음원의 파장보다 훨씬 더 크다고 가정하기 때문입니다. 예를 들어 1000Hz 사운드는 파장이 34cm입니다. Instead of using the static mesh directly, an AkSpatialAudioVolume can be used to create a simple shape around the mesh (when it serves as an obstacle to reflect and obstruct sound), or within the mesh (when it serves as interior walls).

  1. In the tutorial map, the obstacle is a basic static mesh. We can easily add an AkGeometryComponent to it.

    1. 액터를 클릭하고 Add Component를 클릭하세요. Ak Geometry를 선택하세요.

      1. Geometry 섹션에서 Simple Collision을 선택하세요
  2. 바닥에도 동일한 단계를 반복하세요.

  3. SpatialAudioTutorialMap에서 이 건물은 커스텀 메시로 제작되었습니다. The shape is still basic enough to use an AkGeometryComponent, but for the sake of this tutorial, we will use an AkSpatialAudioVolume.

    1. Drag and drop three AkSpatialAudioVolumes into the scene
      1. 한 볼륨은 건물의 외벽 주변에 두세요. 이 볼륨은 메시 바깥 주변에 배치되기 때문에 직접 크기를 조정해야 합니다.
      2. 나머지 두 볼륨을 각 공간의 내부 벽에 설정하세요. We will use Fit To Geometry to place the two rooms.
        1. 각 AkSpatialAudioVolume의 Details 패널에서 Fit To Geometry를 활성화하세요.
        2. 발견된 처음 모양이 맘에 들지 않을 경우 트랜스폼 기즈모를 사용해서 AkSpatialAudioVolume을 새로운 위치로 옮기세요. Notice that a yellow preview outline appears when translating the AkSpatialAudioVolume. 원하는 모양을 찾은 후에 마우스 버튼을 떼면 해당 위치로 AkSpatialAudioVolume이 스냅됩니다.
        3. For more information on placing AkSpatialAudioVolumes using Fit To Geometry, refer to Fit to Geometry.
      3. Make sure that Enable Surface Reflectors is enabled for all three AkSpatialAudioVolumes.
        1. Enable Room과 Enable Late Reverb는 선택하지 않은 채로 놔두세요. 이 부분은 공간(Room)과 포털(Portal) 에서 더 설명해드립니다.

셋업 검토하기

  1. 씬을 시작하고 Wwise Authoring에 연결하세요.
    1. Advanced Profiler의 Voices Graph 뷰에서 Reflect Effect를 사용하는 새로운 보조 센드가 보입니다.
      1. 플레이어의 시작 위치에서 바깥에 배치된 사운드를 재생하세요.
        참고: If you play either of the sounds from the rooms while the player is outside, you do not see any Reflect sends. Also, the sound is attenuated by transmission. 그 이유는 건물과 각 공간 주변에 닫힌 AkSpatialAudioVolume을 만들어두었기 때문입니다. You can create openings in them by modifying the brush object, or by using Spatial Audio Portals, which are covered in 공간(Room)과 포털(Portal).
      2. Before going to the next step, open the Profiler Settings view and make sure Spatial Audio is enabled.

    2. Game Object Profiler 레이아웃 (단축키 F12)으로 이동하세요.

      1. Game Object 3D Viewer에서 서로 다른 반사적 표면이 보입니다.
      2. When playing a sound, early reflection rays will be drawn to show where the sound is be coming from. [fuzzy]
      3. If you can't see rays, make sure to enable Show Reflection Paths in the Game Object 3D Viewer Settings.
참고: Game Object 3D 뷰어에서 지오메트리가 보이지 않을 경우 Monitor Queue Pool Size를 늘여야 할 수 있습니다. 이 설정은 초기화 설정 에 있습니다.
참고
  • Reflect 설명서
  • 지오메트리 API를 사용하여 초기 반사음 시뮬레이션하기


Wwise Unreal Integration Documentation: 공간(Room)과 포털(Portal)

공간(Room)과 포털(Portal)

실제 음향 환경에서는 닫힌 공간에서 나오는 소리가 벽을 통해 전달될 뿐만 아니라 창과 같은 열린 공간으로부터도 전달됩니다. Spatial Audio는 Room(공간)과 Portal(포털)이라는 고수준 지오메트리 추상적 개념을 사용하여 이 효과를 시뮬레이션합니다.

참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다.

Wwise 프로젝트

  1. Wwise 프로젝트에서 각 공간에 새로운 Auxiliary Bus를 만드세요.
    1. 하위 Auxiliary Bus를 추가하려는 곳을 우클릭하세요

    2. Navigate to New Child > Presets and select Room Auxiliary Bus

      1. Effects 탭에서는 RoomVerb Effect를 변경할 수 있습니다.
  2. Save the project and generate SoundBanks.

Unreal 프로젝트

  1. In Unreal, drag and drop the new Auxiliary Busses from the Wwise Browser to the Content Browser.
  2. 다른 튜토리얼에서 이미 하지 않은 경우 건물의 각 공간으로 두 개의 AkSpatialAudioVolume 오브젝트를 드래그하여 놓으세요. We will use Fit To Geometry to place the two rooms.
    1. Enable Fit To Geometry in the Details panel of each AkSpatialAudioVolume.
    2. If the initial shape that is found is not satisfactory, translate the AkSpatialAudioVolume to a new location using the transform gizmo. AkSpatialAudioVolume을 옮길 때 노란색 미리보기 선이 표시되는 것을 보세요. 원하는 모양을 찾은 후에 마우스 버튼을 떼면 해당 위치로 AkSpatialAudioVolume이 스냅됩니다.
    3. For more information on placing AkSpatialAudioVolumes using Fit To Geometry, refer to Fit to Geometry.
      1. Make sure that Enable Room and Enable Late Reverb are enabled for the two AkSpatialAudioVolume objects.
        1. 반사 (Reflect) 튜토리얼을 실행하지 않았을 경우 Enable Surface Reflectors는 선택하지 않은 채로 놔두세요.
        2. In the Late Reverb Section, uncheck Auto Assign Aux Bus and drag and drop the newly imported Auxiliary Bus from the Content Browser to the Aux Bus parameter.
          참고: Auto Assign Aux Bus is discussed in Reverb Parameter 예측

  3. 두 개의 AkAcousticPortal 오브젝트를 추가하세요.

    1. 건물의 열린 부분 주변에 배치하세요.
      1. AkAcousticPortal을 쉽게 배치하기 위해서 Details 패널에 있는 Fit To Geometry 체크 상자를 활성화하세요.
      2. When Fit To Geometry is enabled, the integration will attempt to find a logical placement for the portal using the surrounding geometry. A yellow preview outline will appear when dragging the AkAcousticPortal near an appropriate opening using the transform gizmo. 원하는 위치를 찾은 후에 마우스 버튼을 떼면 AkAcousticPortal이 해당 위치로 스냅됩니다.
      3. For more information on placing AkAcousticPortals using Fit To Geometry, refer to Fit to Geometry.
      4. After an AkAcousticPortal is placed inside each doorway, adjust the depth of each portal using the scale gizmo to achieve the desired crossfade distance. A deeper portal (along its local X-axis) will result in a longer crossfade distance when an AkComponent transitions through the portal. 잔향 전송과 확산 전환에서도 마찬가지입니다.
    2. 포털을 선택하고 Ak Portal Component 섹션에서 초기 상태를 Open 으로 설정하세요.
참고:

AkAcousticPortal은 반드시 이 포털이 서로 연결할 공간이 지역적 Y 축에 배치될 수 있는 방향으로 향해야 합니다. 포털을 선택하면 노란색 리본이 포털 주변에 표시되어 확인하기 쉽도록 해줍니다. 노란색 선은 앞뒤 구역 간의 구분을 표시합니다. 공간이 서로 겹칠 경우 우선 순위가 가장 높은 공간이 선택됩니다. 레벨 에디터에서 공간과 포털을 사용하여 작업할 때 뷰포트를 '실시간(realtime)'으로 설정해서 포털이 이동하면서 시각적으로 올바르게 업데이트되도록 해주세요.

셋업 검토하기

  1. 씬을 시작하고 시작 위치에 머무르세요. 공간 안에 있는 이미터에서 이벤트를 재생할 때 사운드가 들려야 합니다.

  2. Wwise Authoring에 연결하고 Game Object Profiler 레이아웃 (단축키 F12)으로 이동하세요. Game Object 3D Viewer에서 다음 내용을 확인할 수 있습니다:

    1. 공간이 회색으로 표시됩니다 (AkSpatialAudioVolume에서 Surface Reflector가 활성화되지 않았을 경우).
    2. 포털이 초록색으로 표시됩니다.
    3. 포털의 모서리에서 회절하는 소리 전달 경로와, 휘는 각도에 따라 각 모서리에서 표시되는 연관된 회절값.
    4. 공간의 벽을 통과하는 소리 전달 경로와, 연관된 전달 손실 값.
      참고: 이 전달 손실 값은 AkRoomComponent 컴포넌트 안에 있는 공간의 전달 손실 매개 변수를 변경하여 설정할 수 있습니다.
    5. 확산 곡선이 있을 경우 사운드의 회절 및 전달 경로의 확산 원추형.

    [fuzzy][fuzzy]

참고:

Diffraction and transmission loss attenuate the sound using the Diffraction and Transmission curves in the sound's Attenuation ShareSet. When these curves are set to Use Project Obstruction/Occlusion, they use the curves in the Obstruction/Occlusion tab of the Project Settings in the Authoring application.

포털(Portal)과 잔향(Reverb)

Portal을 통해 방사되는 사운드는 현재 리스너가 있는 공간 안으로 울릴 수 있습니다. These steps show how to configure it.

  1. Wwise 프로젝트에서,

    1. 해당 Room Verb에 사용되는 Auxiliary Bus를 찾으세요. 다른 공간 잔향으로 제공하고자 하는 소리가 방사되는 공간에 사용되는 Room Verb를 말합니다.

      1. Auxiliary Bus Property Editor의 General Settings에서 'use game-defined auxiliary sends'가 활성화되었는지 확인하세요.
  2. Generate SoundBanks, start the scene and connect to the Wwise Authoring.

  3. 보조 센드가 활성화된 공간 안에서 사운드를 재생하고 이 보조 센드와 통신하도록 설정된 공간으로 이동하세요.

    1. 방사되는 사운드의 변조된 부분이 리스너가 있는 공간의 잔향도 제공하는 것을 볼 수 있습니다.

공간음 (Room tone)

경우에 따라 공간 안에 웅웅거리는 소리나 에어컨 소리와 같은 특정한 환경음이 있을 수 있습니다. 이 공간음을 재현하려면 Spatial Audio Room 게임 오브젝트에 이벤트를 게시할 수 있습니다. 리스너가 공간 안에 있을 경우 이 사운드는 리스너의 위치에 지정됩니다. When in a different room, the listener will hear the room tone from the connecting portals and through the walls.

  1. Wwise 프로젝트에서,
    1. Create a new Sound SFX for the room tone.
      1. In the General Settings tab, enable Use game-defined aux sends if you want the sound to send to reverb.
      2. In the Positioning tab:
        1. Add an attenuation for distance attenuation, diffraction, and transmission curves.
        2. Enable Diffraction and Transmission
    2. Sound SFX를 우클릭하고 New Event > Play를 선택해서 공간음을 재생하는 재생 이벤트를 만드세요.
    3. Save the project and generate SoundBanks.

  2. Unreal에서,

    1. Drag the Event created in the previous section from the Wwise Browser to the Content Browser.
    2. 이 이벤트를 공간 중 하나의 Ak Event 섹션 아래 있는 Ak Audio Event 매개 변수에 추가하세요.
      1. Aux Send Level을 조정하여 사운드의 일부가 공간의 잔향으로 제공되도록 하세요.
      2. You can choose to check the Auto Post box to post the room tone event on BeginPlay, or you can call the same Blueprint functions usually used to post events on game objects.

    1. In the Spatial Audio Tutorial map, we used Blueprint functions in the Level Blueprint to activate and deactivate the room tone.

      1. 공간음이 있는 AkSpatialAudioVolume을 World Outliner에서 선택한 후 Level Blueprint를 우클릭하여 레퍼런스를 생성하세요.
      2. 레퍼런스에서 연결을 드래그하고 'Post Associated Ak Event'를 검색하세요.
      3. 동일한 방식으로 Stop 함수도 검색하세요.
      4. 키 누름을 입력 노드로 추가하세요.
  3. 씬을 시작하고 Wwise Authoring에 연결하세요.

  4. 공간음이 있는 공간으로 이동한 후 키를 눌러서 공간음을 시작하세요. 소리가 들리는지 확인해보세요.

    1. Advanced Profiler 뷰에서 해당 이벤트가 재생되는 것이 보입니다.
    공간음이 재생될 경우를 나타내는 Advanced Profiler 뷰

    1. 3D Game Object Viewer에서 리스너가 움직임에 따라 공간 게임 오브젝트를 확인할 수 있습니다.

      1. 리스너가 공간 안에 있으면 리스너의 위치에서 공간음이 재생됩니다. 공간 게임 오브젝트가 리스너 게임 오브젝트를 따르는 것이 보입니다.
      2. 리스너가 다른 공간에 있을 경우,
        1. 포털에 공간 게임 오브젝트가 배치되어 회절된 소리의 위치를 표시해주며 이 오브젝트와 리스너 게임 오브젝트 간에 경로가 표시됩니다.
        2. 직접 경로 위에 공간의 한계에 따라 공간 게임 오브젝트가 배치되어 전달된 소리의 위치를 표시해줍니다.
        3. 두 위치에 모두 확산 원추형이 표시됩니다.

      [fuzzy][fuzzy]

참고
  • Spatial Audio Rooms and Portals (공간 음향 공간과 포털) 설명서


Wwise Unreal Integration Documentation: 회절 (Diffraction)

회절 (Diffraction)

이미터와 리스너 간의 시선이 오브젝트에 의해 방해될 경우 Spatial Audio는 오브젝트를 피해가는 회절 경로를 생성하여 현실적인 작동 방식을 시뮬레이션합니다. 모서리 사이 경로의 각도에 따라 해당 사운드는 방해에 의해 감쇠됩니다.

참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다. Most importantly, these two steps must be done.
  • In Wwise, enable Diffraction and Transmission in the Positioning tab of sounds to be diffracted.
  • In Unreal, set the Occlusion Refresh Interval of AkAmbientSound to 0. This ensures that the game-side occlusion system, part of the Wwise Unreal Integration, does not compete with the Spatial Audio diffraction system.

Follow these steps to set up Spatial Audio diffraction in your map.

  1. In Unreal, if not done already,
    1. Add an AkSpatialAudioVolume object around the building.
      1. Enable Surface Reflectors가 활성화되었는지 확인하세요.
      2. Geometry Settings 섹션에서 Diffraction이 활성화되었는지 확인하세요.
    2. Add an AkGeometryComponent component to the obstacle static mesh outside.
      1. Geometry 섹션의 Diffraction 아래 Diffraction이 활성화되었는지 확인하세요.
  2. 게임 재생을 시작하고 Wwise에 연결하세요.
    1. 회절이 활성화된 사운드가 리스너로부터 방해될 경우 회절이 활성화된 지오메트리와 회ㄹ절 경로에서 회절 모서리를 확인할 수 있습니다.

Demo Game과 함께 제공되는 SpatialAudioTutorialMap에서 외부 이미터가 재생되면 밖에 있는 장애물에 의해 회절 경로가 생성되는 것을 볼 수 있습니다.

Diffraction attenuates the sound using the Diffraction curves in the sound's Attenuation ShareSet. When the curves are set to Use Project Obstruction, they use the Obstruction curves in the Obstruction/Occlusion tab of the Project Settings in the Authoring application.

참고
  • 공간 음향 회절
  • 지오메트리 API를 사용하여 회절 시뮬레이션하기


Wwise Unreal Integration Documentation: 차단

차단

기본적인 차단은 UAkComponent::SetOcclusion() 에서 사용할 수 있습니다. Actor에서 차단을 활성화하려면 Blueprint Editor에서 Set Occlusion Refresh Interval 함수를 사용하세요. A UAkComponent version is also available. If the refresh interval is set to 0, occlusion is disabled.

To determine whether a listener is occluded from a source, a simple line-of-sight check is sufficient. Use the line trace channel set in the AkComponent's properties (OcclusionCollisionChannel). If the line of sight is blocked, the occlusion level calculation starts. This calculation maps the hit point on the obstacle to its bounding box and creates twelve points around the obstacle. Do additional line-of-sight checks to see if these secondary paths are also blocked. The occlusion sent to the SoundEngine is modulated by the number of secondary paths that are blocked.

A temporal fade method is also available for smooth transitions between occlusion levels. To change the fade speed, change the OCCLUSION_FADE_RATE constant.

참고
  • Set Occlusion Refresh Interval
  • AkComponent


Wwise Unreal Integration Documentation: Transmission (전달)

Transmission (전달)

이미터와 리스너 사이에 오브젝트가 나타날 경우 사운드가 이 오브젝트를 통과할 수 있습니다. Spatial Audio는 이 현상을 사운드의 직접 경로를 필터링하여 모델링합니다. 0~1 범위의 전달 손실 값은 AkSurfaceReflectorSetComponent, AkGeometryComponent 혹은 AkRoomComponent 컴포넌트에 적용될 수 있습니다. The transmission loss value is then sent to Wwise where the associated filter is applied according to the transmission curves of the sound's Attenuation ShareSet. 보통 값이 1.0일 경우 완전히 손실되며 값이 0.0일 경우 아무 손실 없이 사운드가 전달될 수 있음을 나타냅니다.

참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다. Most importantly, these two steps must be done.
  • In Wwise, enable Diffraction and Transmission in the Positioning tab of sounds to be diffracted.
  • In Unreal, set the Occlusion Refresh Interval of AkAmbientSound to 0. This ensures that the game-side occlusion system, part of the Wwise Unreal Integration, does not compete with the Spatial Audio diffraction system.

경로의 전달 손실 값은 이미터에서 리스너에 도달할 때까지 직접 경로에서 사운드가 당면하는 최대 손실 값입니다. 전달 손실 값은 지오미트리나 공간으로부터 선택될 수 있습니다.

  1. On AkSpatialAudioVolume actors,
    1. 표면 반사기(surface reflector)가 활성화되었을 경우 전달 손실 값이 각 음향 표면(acoustic surface)과 연결될 수 있습니다
    2. 공간이 활성화되었을 경우 전달 손실 값은 공간의 벽과 연결될 수 있습니다.
  2. On an AkGeometryComponent,
    1. 전달 손실 값은 Acoustic Properties Override 섹션에서 덮어 써질 수 있습니다.
      1. 충돌 메시의 경우:
      2. 혹은 스태틱 메시의 각 표면의 경우:
      3. 또한 Integration Settings 의 AkGeometry Surface Properties Map에서 각 Physical Material(물리적 재질)마다 차단 값을 설정할 수 있습니다.

Transmission loss attenuates the sound using the Transmission curves in the sound's Attenuation ShareSet. When the curves are set to Use Project Occlusion, they use the Occlusion curves in the Obstruction/Occlusion tab of the Project Settings in the Authoring application.

참고
  • Spatial Audio Transmission (공간 음향 전달)
  • Rooms and Portal Transmission (공간과 포털 전달)


Wwise Unreal Integration Documentation: Spatial Audio Blueprint 컴포넌트

Spatial Audio Blueprint 컴포넌트

이제까지 저희는 미리 제작된 액터를 사용하거나 각 액터 인스턴스에 컴포넌트를 추가함으로써 모든 내용을 레벨 안에서 직접 제작했습니다. 또한 다양한 공간 음향 컴포넌트를 사용하면 레벨 전체에 복제할 수 있는 Blueprint 액터를 구성할 수 있습니다. 이 섹션에서는 Blueprint 클래스를 사용하여 Unreal 프로젝트 준비 섹션에서 구성한 구조의 복제본을 제작해서 세계 안에 쉽게 추가하고 스폰할 수 있도록 해봅시다.

참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다.

Blueprint 클래스 구성하기

AkLateReverbComponent 와 AkRoomComponent 는 오염 시험을 통해 주어진 게임 오브젝트의 위치가 해당 상위 PrimitiveComponent 안에 있는지의 여부를 확인합니다. 이 시험에는 단순 충돌이 사용됩니다. 그렇기 때문에 단순 충돌이 있는 상위 PrimitiveComponent 를 사용해야 합니다. 예를 들어 상자 충돌, 구형 충돌, 캡슐 충돌 컴포넌트를 사용할 수 있습니다. PrimitiveComponent 에 단순 충돌이 었을 경우 오염 시험이 컴포넌트 경계선을 사용하는데, 이 경우 결과가 보다 덜 정확할 수 있습니다.

또한 Unreal에서 메시 에셋에 단순 충돌을 추가할 수도 있습니다 (스태틱 메시에 콜리전 구성(Setting Up Collision With Static Meshes 참조). 하지만 출입구와 열린 공간과 같은 컴플렉스 메시의 경우 경우에 따라 메시의 충돌 설정에서 'use complex collision as simple(복합 충돌을 단순 충돌로 사용)'을 사용해야 할 수도 있습니다 (단순 vs 복합 콜리전 (Simple Vs Complex Collision) 참조). 예를 들어 이 설정은 캐릭터가 출입구를 통해 공간 안으로 들어갈 수 있지만 여전히 벽과 충돌하도록 하기 위해 필요할 수 있습니다. 이 설정을 사용할 경우 단순 충돌이 무시되며 메시의 전체 트라이메시(trimesh)가 사용되기 때문에 AkLateReverbComponent 와 AkRoomComponent 에 대한 오염 시험이 실패하게 됩니다. AkLateReverbComponent 와 AkRoomComponent 에 의해 사용되는 단순 충돌은 트라이메시를 지원하지 않습니다. 따라서 Blueprint 클래스에서는 AkLateReverbComponent 컴포넌트와 and AkRoomComponent 를 사용할 경우 단순 충돌 컴포넌트를 상위 계층으로 사용하는 것을 권장합니다. 단순 충돌 컴포넌트의 예시는 상자, 구형, 캡슐이 있습니다. 공간이나 건물에 특정한 메시가 있을 경우 단순 충돌 컴포넌트를 해당 메시의 하위 컴포넌트로 추가할 수 있습니다.

참고: It is possible to combine complex collision with simple collision by using two versions of the mesh. See Combining Simple and Complex Collision for an explanation on how this can be achieved.
참고: We will use assets from the Unreal Demo Game available from the Wwise Launcher. To use these assets in your project, download the Unreal Demo Game and locate the wanted assets in the explorer under $<YourWwiseProjectsFolder>/WwiseDemoGame/Content. Then copy and paste the desired assets to the Content folder of your working project.
  1. 콘텐츠 브라우저에서 우클릭하여 Blueprint Class를 선택하세요.
  2. Actor를 기반 베이스로 선택하고 새로운 클래스의 이름을 'SpatialAudioBP'로 지정하세요.
  3. SpatialAudioBP를 더블 클릭해서 클래스를 열고 Viewport 탭을 클릭하세요.
  4. 루트 컴포넌트가 선택되었는지 확인한 후 Add Component > Static Mesh를 클릭하세요.

  5. 새로운 스태틱 메시 컴포넌트를 클릭하고 Details 패널에서 해당 메시를 선택하세요.

    • 이 예시에서는 Unreal 프로젝트 준비 섹션에서 사용한 SpatialAudioDemoMesh를 선택했습니다.
    • SpatialAudioDemoMesh를 사용할 경우 Materials 섹션에서 SpatialAudioDemoMeshMaterial을 선택해야 합니다.
    스태틱 메시 컴포넌트에서 메시와 물질 설정하기
    참고: 포털으로의 자동 자동 지정은 볼록한 메시(convex mesh)에서만 작동합니다. 오목한 메시(concave mesh) (예: L- 모양 공간)은 정확한 포털 공간 교차를 만들어낼 수 없습니다.

  6. 메시의 각 공간 및 출입구에 상자 충돌 컴포넌트를 추가하세요.

    • 이 튜토리얼에서 상자 충돌 컴포넌트의 이름은 BoxRoomLarge, BoxRoomSmall, BoxPortalInner, BoxPortalOuter로 지정했습니다.
    메시의 공간과 포털에 상자 충돌 컴포넌트를 추가하세요

Repositioning 상자 충돌 컴포넌트

이제 모든 상자 충돌 컴포넌트가 동일한 위치에 서로 겹쳐 있습니다. 이 컴포넌트의 위치, 규모, 방향을 조정해서 공간과 출입구와 정렬되도록 해봅시다. Orthographic 뷰를 사용하면 가장 쉽게 작업할 수 있습니다. (다음 단계는 SpatialAudioDemoMesh에 특정하지만 다른 메시에서도 유사한 단계를 실행할 수 있습니다.)

참고: 이 튜토리얼에서 공간과 포털을 메시에 정렬할 때에는 완벽하게 정렬되거나 중심에 있지 않더라도 괜찮습니다. 올바른 영역을 대략 덮어주기만 하면 됩니다. 실제 환경을 설계할 떄에는 Details 패널의 Transform 섹션을 사용해서 정확한 값을 입력할 수 있습니다.

  1. Viewport 탭에서 Perspective를 클릭하고 뷰를 Top으로 변경하세요.

    • 이제 씬을 위에서 아래로 바라보게 되며 씬이 와이어 프레임으로 렌더링됩니다.
    직교 평면 뷰
  2. BoxRoomLarge를 선택하고 메시의 큰 공간의 중앙까지 y축을 따라 아래로 움직이세요.

  3. BoxRoomLarge의 크기가 큰 공간의 크기와 맞춰질 때까지 x와 y축을 따라 크기를 변경하세요. (R을 누르거나 Viewport 탭에서 Scale 위젯을 선택해서 크기 변경 모드로 전환할 수 있습니다).

    X와 Y축에서 큰 공간의 위치와 크기를 조정하세요

  4. BoxRoomSmall을 선택하고 작은 공간의 크기와 맞춰질 때까지 x와 y축을 따라 크기를 변경하세요.

    X와 Y축에서 공간 위치와 크기를 조정하세요

  5. BoxPortalInner 를 선택하고 메시에서 내부 출입구 범위가 보이 때까지 와이어 프레임에서 줌 인하세요.

    와이어 프레임 메시에서 출입구의 범위를 찾으세요

  6. BoxPortalInner를 출입구의 중앙으로 옮긴 후 출입구의 범위를 덮도록 x축을 따라 크기를 조정하세요.

    내부 포털 상자가 출입구를 덮도록 위치와 크기를 조정하세요

  7. BoxPortalOuter를 선택하고 해당 y 차원이 출입구를 가리키도록 회전시키세요.

    참고: 포털에는 포털의 y 차원을 따라 가장 가까운 교차 공간을 감지함으로써 자동 지정되는 앞 공간과 뒷 공간이 있기 때문에 이 작업을 반드시 해주어야 합니다. BoxPortalOuter의 경우 '뒤'(해당 좌표 공간에서)는 메시에서 작은 공간과 연결되며 '앞'은 어떤 공간으로도 연결되지 않습니다.

  8. z축을 중심으로 BoxPortalOuter를 90도 회전시키세요. Details 패널의 Transform 섹션에 있는 z축 Rotation 텍스트 상자에 '90'을 입력하면 됩니다.

    외부 포털 상자가 해당 문 밖에 있는 Y축을 가리키도록 회전시키세요
  9. BoxPortalOuter를 외부 출입구로 옮긴 후 출입구의 범위를 덮도록 크기를 조정하세요.

  10. 상면 뷰에서 모든 공간과 포털이 아래와 같이 메시와 정렬되었는지 확인하세요:

    상면 뷰에서 공간과 포털이 알맞게 정렬되었습니다
  11. 이제 z축에서 상자 충돌 컴포넌트의 위치와 크기를 조정해야 합니다. Viewport 탭에서 Top을 클릭하고 뷰를 Back으로 변경하세요.

  12. BoxRoomLarge와 BoxRoomSmall을 선택하고 공간의 크기와 맞춰질 때까지 z축을 따라 크기를 변경하세요.

    Z축에서 공간 상자 크기를 조정하세요

  13. BoxPortalOuter와 BoxPortalInner를 선택하고 출입구의 중앙에 오도록 아래로 옮긴 다음 문의 크기와 맞춰질 때까지 z축을 따라 크기를 조정하세요.

    Z축에서 포털 상자의 위치와 크기를 조정하세요

공간과 포털 설정하기

이제 AkRoom 컴포넌트를 공간에, AkPortal 컴포넌트를 포털에 추가해봅시다.

  1. 상자 충돌 컴포넌트를 하나씩 선택한 다음 Add Component를 선택하세요.

  2. 각 상자 충돌 컴포넌트에서 공간이나 포털 컴포넌트(알맞은대로)를 생성하고 상위 계층과 비슷한 이름으로 지정하세요. 결과가 다음과 같아야 합니다:

    AkRoom 컴포넌트를 공간 상자에 추가하고 AkPortal 컴포넌트를 포털 상자에 추가하세요
    참고:

    컴포넌트를 올바른 상위 계층으로 추가했는지 확인하세요. 예를 들어 AkRoomLarge를 큰 공간에 추가할 경우 Add Component를 클릭하기 전에 먼저 BoxRoomLarge가 선택되었는지 확인하세요.

    AkRoomComponent와 AkPortalComponent는 어떤 기본 컴포넌트로든 추가할 수 있는 일반 컴포넌트입니다. 더 많은 정보는 AkRoomComponent 와 AkPortalComponent 를 참고하세요.

  3. 포털이 올바르게 배치되었는지 확인하기 위해 Integration Settings에서 Visualize Rooms and Portals 옵션을 선택하세요.

    Integration Settings에서 있는 Visualize Rooms and Portals 옵션

  4. 이제 연결된 공간과 포털 사이에 선이 그려집니다. 포털의 위치가 유효하지 않을 경우 빨간색으로 표시됩니다.

    포털 공간 연결을 뷰포트에서 시각적으로 확인할 수 있음
    참고: 포털에 연결된 공간이 없거나 동일한 공간이 양 면으로 연결되었을 경우 유효하지 않습니다. 더 많은 정보는 AkPortalComponent 를 참고하세요.
  5. Integration Settings에서 Visualize Rooms and Portals 옵션을 선택 해제하세요.

지오메트리와 후기 잔향 추가하기

Blueprint 클래스에 추가해야 할 마지막 두 가지 항목은 바로 AkGeometry와 AkLateReverb 컴포넌트입니다.

  1. AkGeometry 컴포넌트를 스태틱 메시 컴포넌트로 추가하세요.

  2. AkLateReverb 컴포넌트를 BoxRoomLarge 상자 충돌 컴포넌트로 추가하세요.

    AkGeometry와 AkLateReverb가 Blueprint 클래스로 추가됨
  3. AkLateReverb 컴포넌트를 클릭하세요.
  4. Details 패널에서 보조 버스를 LargeRoom으로 설정하세요.

셋업 검토하기

이제 Blueprint 클래스를 사용할 준비가 되었습니다. 클래스의 인스턴스를 세계 안으로 드래그하세요.

  1. 콘텐츠 브라우저에서 공간 음향 데모 맵으로 SpatialAudioBP의 인스턴스를 드래그하세요.

  2. 기존의 빌딩 안에 배치하세요.

    Blueprint 클래스의 인스턴스를 세계 안에 추가함
  3. Wwise로 원격 연결하고 에디터에서 재생을 시작하세요.
  4. 마우스를 클릭해서 외부 사운드를 재생하세요.
  5. Wwise의 Game Object Profiler 레이아웃에서 새로운 Blueprint 클래스의 지오메트리가 올바르게 등록되었으며 이 지오메트리에서 레이가 올바르게 반사되는지를 확인하세요.

  6. 새로운 Blueprint 구조에서 레이가 포털을 올바르게 통과하는지 확인하세요.

    공간 음향 경로가 새로운 Blueprint 클래스 인스턴스와 올바르게 상호작용함

  7. 후기 잔향 컴포넌트를 시험하기 위해서는 반드시 SpatialAudioBP 인스턴스 안에 있는 큰 공간 안에 사운드를 추가 및 배치해야 합니다. 세계 안에 있는 기존의 Play_Outside AkAmbientSound 액터를 우클릭하고 복제하세요.

    기존의 Play_Outside Sound를 복제하세요
  8. 복제한 액터의 이름을 'Play_LargeRoom_BP'로 변경하세요. (또한 Play_LargeRoom_BP를 Button_Outside 위로 드래그하면 Play_LargeRoom_BP를 World Outliner 계층 구조 안의 Button_Outside로부터 떼어낼 수 있습니다.)

  9. Play_LargeRoom_BP를 SpatilAudioBP 인스턴스 안에 있는 큰 공간 안으로 옮기세요.

    사운드를 큰 공간 안에 배치하세요

  10. Level Blueprint를 열고 B 키를 누르면 Play_LargeRoom_BP 사운드가 재생되도록 논리를 추가하세요 (Unreal 프로젝트 준비 3 단계 참고).

    Level Blueprint에서 B 키를 사용하여 새로운 사운드를 재생하는 논리
  11. Level Blueprint를 컴파일 및 저장하세요.
  12. 에디터에서 재생을 시작하세요.
  13. B를 눌러서 새로운 사운드를 재생하세요.
  14. SpatialAudioBP 빌딩 안에 있는 큰 공간 안으로 들어가세요.
    • 잔향이 적용되는 것이 들립니다.

Combining Simple and Complex Collision

참고: This section is based on the 'SpatialAudioTutorialMap' and the assets found in the ComplexRoomDemo directory in the WwiseDemoGame project, which is available from the Audiokinetic Launcher. The pre-made mesh assets and a custom Blueprint class are used to combine simple collision and complex collision.

This section shows how simple collision and complex collision can be combined for the same mesh, such that Spatial Audio containment tests are performed using the simple collision, and Unreal queries make use of the complex collision.

For complex meshes, such as those with doorways and openings, it is sometimes necessary to 'use complex collision as simple' in the collision settings for the mesh (refer to Simple Vs Complex Collision). 예를 들어 이 설정은 캐릭터가 출입구를 통해 공간 안으로 들어갈 수 있지만 여전히 벽과 충돌하도록 하기 위해 필요할 수 있습니다. 이 설정을 사용할 경우 단순 충돌이 무시되며 메시의 전체 트라이메시(trimesh)가 사용되기 때문에 AkLateReverbComponent 와 AkRoomComponent 에 대한 오염 시험이 실패하게 됩니다. AkLateReverbComponent 와 AkRoomComponent 에 의해 사용되는 단순 충돌은 트라이메시를 지원하지 않습니다.

One solution to this is to create two duplicates of the same mesh asset, using simple collision for one, and complex collision for the other. In the SpatialAudioTutorialMap, there is a complex room structure for which this technique has been used.

To begin, test out the complex room structure by playing in editor and walking around the building:

  • Open the SpatialAudioTutorialMap in Unreal.
  • Activate the 'Play in Editor' option.
  • Press 'C' to trigger the sound in the non-box-shaped building.
    The Non-Box-Shaped Room in the SpatialAudioTutorialMap
    • You can walk around the outside of the building and the sound will be occluded.

Follow along with the remainder of this tutorial to see how the building structure is set up to handle both simple collision, for Wwise Spatial Audio containment tests, and complex collision, for Unreal physics containment tests.

  • In the context browser, browse to WwiseAssets/SpatialAudioDemo/ComplexRoomDemo.

    The ComplexRoomDemo Assets in the SpatialAudioTutorialMap

This folder contains two Static Mesh assets - 'Building_Complex' and 'Building_Simple'.

  • Open each of these assets and scroll to the collision settings in the Details Panel.

You will notice that they have different values assigned to the Collision Complexity property.

The Building_Complex mesh asset
The Building_Simple mesh asset

Building_Complex has Collision Complexity set to 'Use Complex Collision As Simple' which means Unreal will not generate any simplified geometry for this mesh, and will instead use the entire trimesh. This is what allows the character to walk through the doorway opening. Building_Simple has Collision Complexity set to 'Use Simple Collision As Complex' which means Unreal will generate simplified geometry and ignore the trimesh. This is what allows Spatial Audio to perform containment tests for room containment.

참고: It is possible to set Collision Complexity to 'Simple And Complex'. However, this causes Unreal to use the simplified geometry for collision queries, which means the character cannot enter through the doorway opening. Instead, two identical meshes can be used - one with complex geometry and one with simple geometry.

The next step is to combine both meshes inside a custom Blueprint class.

  • Open the BuildingBP Blueprint.

This Blueprint uses two Static Mesh Components that are positioned right on top of one another.

Static Mesh Components in the BuildingBP Blueprint
For the StaticMesh_Complex component, the Building_Complex mesh is used
For the StaticMesh_Simple component, the Building_Simple mesh is used
StaticMesh_Simple Rendering Settings

For the StaticMesh_Simple component, 'Visible' is disabled and 'Hidden in Game' is enabled in the Rendering section. This is because this mesh is only used for its simplified geometry, so that containment tests can be made for Spatial Audio.

StaticMesh_Simple Collision Presets Settings

Also for the StaticMesh_Simple component, the Collision Presets property is set to 'Trigger'. The simplified geometry creates a barrier at the doorway opening. Using the 'Trigger' collision preset ensures the character and other game objects can freely move through the simplified geometry.

The StaticMesh_Simple Component has an AkRoom component and an AkLateReverb Component attached. This way, the simple collision of the Building_Simple mesh is used for room containment tests.

To allow for sounds to reflect and diffract on the BuildingBP's mesh, an AkGeometry Component needs to be added to one of the Static Mesh Components. In this solution, since we are also using Reverb Parameter 예측, it is best to add it to the StaticMesh_Simple component. The AkLateReverb Component uses the Acoustic Textures of its sibling AkGeometry Component to calculate HF Damping. Setting the AkGeometry Component to Static Mesh sends the full complex geometry to Wwise Spatial Audio instead of its simple collision mesh.

Finally, a Box Collision Component with an AkPortal Component attached is used to add an acoustic portal to the doorway.

Portal in the BuildingBP Blueprint

A Point Light is also added to make the interior of the building visible.

참고: When sending geometry to Wwise, there is a limitation that each edge can have no more than two triangles connected. This should be taken into account when designing meshes to be used with Spatial Audio.
참고: When using the Game Object Profiler in Wwise, Room Extents will always be visualized as green cuboids, regardless of the geometry assigned to the room.
참고: Adding simple collision to meshes in Unreal will only work correctly when the mesh is convex. For more complex mesh structures, it is best to try to approximate the mesh using simple collision geometry. Simple collision primitives can be added to the mesh from the Collision menu in the Static Mesh editor.
Adding Collision Primitives to a Mesh Asset
Refer to Setting Up Collision With Static Meshes for further information.


Wwise Unreal Integration Documentation: Reverb Parameter 예측

Reverb Parameter 예측

UPrimitiveComponent 에 연결된 AkLateReverbComponent 를 사용할 경우 Wwise Unreal 통합이 UPrimitiveComponent 의 크기와 모양에 따라 잔향 Aux Bus를 자동으로 지정하는 것을 볼 수 있습니다.

마찬가지로 Wwise Unreal 통합은 UPrimitiveComponent 를 사용하여 특정 잔향 매개 변수를 예측하고 Driving Global Reverb RTPCs 를 통해 이 매개 변수를 조정할 수 있습니다. 이 튜토리얼은 Global Reverb RTPC를 사용한 Aux Bus 자동 지정과 잔향 효과 매개 변수 예측을 설명해줍니다.

참고: UPrimitiveComponent 는 크기와 모양을 가진 Unreal Component 입니다. 충돌 Component, 브러쉬 Component, 메시 Component 등 UPrimitiveComponent 를 기반으로 한 다양한 Component 종류가 있습니다. 더 자세한 정보는 Unreal Engine 설명서를 참고하세요.
참고: Reverb Parameter Estimation은 AkLateReverbComponent 의 기능이지만 AkSpatialAudioVolume 은 AkLateReverbComponent 를 담고 있기 때문에 이 컴포넌트도 해당 기능을 사용할 수 있습니다.
참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다.

Automatic Aux Bus Assignment

Automatic Aux Bus Assignment(자동 보조 버스 지정)은 사운드 잔향이 특정량으로 쇠퇴하는 데에 걸리는 시간을 측정함으로써 작동합니다. 저희는 이것을 Decay라고 부릅니다. You can use the Automatically Assigning the Aux Bus in the Integration Settings to determine which Decay values map to which Aux Busses.

Integration Settings에 있는 Aux Bus Assignment Map
참고: Integration Settings는 Edit > Project Settings...를 클릭하여 Unreal Project Settings를 열어서 접근할 수 있습니다. 그런 다음 Unreal Project Settings의 왼쪽 패널에서 Wwise 섹션으로 스크롤하고 Integration Settings를 클릭하세요.

맵에서 Decay 키를 설정하기 전에 레벨에 있는 기존 잔향의 예상 Decay 값을 관찰해볼 수 있습니다.

  1. 이미 열지 않은 경우 SpatialAudioTutorialMap을 여세요.
  2. World Outliner에서 Interior_SmallRoom AkSpatialAudioVolume 을 클릭하세요.
  3. Interior_SmallRoom의 Details 패널에서 Auto Assign Aux Bus를 활성화하세요.
  4. Interior_LargeRoom AkSpatialAudioVolume 에 2와 3단계를 반복해주세요.
Interior_SmallRoom과 Interior_LargeRoom에 Auto Assign Aux Bus 활성화하기
참고: Auto Assign Aux Bus를 활성화하면 Aux Bus가 None으로 설정됩니다. 그 이유는 아직 Aux Bus Assignment Map을 설정하지 않았기 때문입니다.

Auto Assign Aux Bus를 활성화하면 뷰포트에서 각 AkSpatialAudioVolume 이 선택될 때 일부 텍스트 정보가 위에 표시됩니다. Interior_SmallRoom은 예상 Decay가 0.37초입니다. Interior_LargeRoom은 예상 Decay가 0.45초입니다. 또한 이 정보는 Reverb Parameter Estimation 아래의 Details 패널에서도 확인할 수 있습니다. 이 값을 사용해서 Aux Bus Assignment Map을 설정할 수 있습니다.

잔향 매개 변수 정보는 뷰포트의 기본 컴포넌트 위에 표시됩니다
잔향 매개 변수 정보는 Details 패널의 Reverb Parameter Estimation 섹션에도 표시됩니다
  1. Integration Settings를 여세요.
  2. 이미 펼치지 않았을 경우 Reverb Assignment Map 섹션을 펼치세요.
    Integration Settings에 있는 Aux Bus Assignment Map
  3. Insert Decay Key 버튼을 클릭하세요.
  4. 값을 0.4로 정하고 Insert를 클릭하세요.
    Decay Key 값을 0.4로 삽입하세요
  5. Insert Decay Key 버튼을 클릭하세요.
  6. 값을 0.5로 설정하고 Insert를 클릭하세요.
  7. Decay 키 0.4 옆에 있는 SmallRoom Aux Bus를 선택하세요.
  8. Decay 키 0.5 옆에 있는 LargeRoom Aux Bus를 선택하세요.
The Aux Bus Assignment Map with Two New Decay Keys and Corresponding Aux Busses

Aux Bus Assignment Map을 이렇게 구성하면 0.0~0.4의 Decay 값이 SmallRoom Aux Bus를 생성하게 됩니다. 0.4~0.5의 Decay 값은 LargeRoom Aux Bus를 생성하게 됩니다. 0.5를 초과하는 Decay 값은 Default Reverb Aux Bus를 생성하게 됩니다.

다시 레벨로 돌아가면 Interior_SmallRoom과 Interior_LargeRoom에 올바른 Aux Bus 값이 지정된 것이 보입니다.

Aux Bus가 자동으로 지정됨

Global Reverb RTPC

Aux Bus 자동 지정과 마찬가지로 Global Reverb RTPC(전역적 잔향 RTPC)를 사용하면 Wwise를 통해 잔향 효과의 특정 매개 변수를 자동으로 설정할 수 있습니다. 이 방법으로 Decay, Predelay, HFDamping이라는 세 가지 매개 변수를 설정할 수 있습니다. Integration Settings에서 이 매개 변수를 제어할 RTPC를 설정할 수 있습니다.

Integration Settings에 있는 Global Reverb RTPC

RTPC 구성하기

Global Reverb RTPC를 사용하기 위해서는 Wwise 프로젝트에 세 개의 RTPC를 추가해야 합니다.

  1. Wwise 프로젝트를 여세요.
  2. Layouts > Designer를 클릭하거나 F5 키를 눌러서 Designer 레이아웃을 여세요.
  3. Project Explorer에서 Game Syncs 탭을 클릭하세요.
    Game Syncs 탭을 여세요
  4. Decay, Predelay, HFDamping이라는 세 개의 새로운 Game Parameter를 추가하세요.
  5. 세 개의 새로운 Game Parameter의 Min, Max, Default 값을 다음과 같이 설정하세요:
    1. Decay - Min: 0, Max: 10, Default: 0
    2. Predelay - Min: 0, Max: 1000, Default: 0
    3. HFDamping - Min: -1, Max: 1, Default: 0
      Wwise 프로젝트에서 세 개의 새로운 RTPC를 추가하세요
  6. Project Explorer에서 Audio 탭을 클릭하세요.
  7. Master-Mixer Hierarchy 아래 SmallRoom을 더블 클릭하세요.
    1. Property Editor에서 SmallRoom Aux Bus가 열립니다
  8. Property Editor의 Effects 탭을 클릭하세요.
    SmallRoom Aux Bus의 Effects 탭을 여세요
  9. Edit 버튼을 클릭해서 WwiseRoomVerb Effect를 여세요.
  10. Effect Editor에서 RTPC 탭을 클릭하세요.
  11. RTPC 목록에서 Decay Time, Predelay, HF Damping에 대한 입력란을 추가하세요.
  12. 각 매개 변수를 다음과 같이 매핑하세요:
    1. Decay Time: Decay
    2. Pre delay: Predelay
    3. HF Damping: HFDamping
  13. Decay 매핑을 선택하고 곡선에서 기준점을 추가하세요.
  14. 기준점의 X와 Y 값을 0.2로 설정하세요.
    Decay RTPC 매핑
  15. HFDamping 매핑을 선택하고 곡선에서 기준점을 추가하세요.
  16. X 값을 0.0으로, Y 값을 1.0으로 설정하세요.
    HFDamping 매핑
    세 RTPC의 매핑
  17. 목록에서 모든 매핑을 선택하세요.
  18. 매핑 중 하나를 우클릭하고 Copy를 선택하세요.
  19. Property Editor에서 LargeRoom Aux Bus를 여세요.
    LargeRoom Wwise RoomVerb Effect의 Effect Editor를 여세요
  20. Effects 탭을 클릭하세요.
  21. Edit 버튼을 클릭해서 WwiseRoomVerb 효과를 여세요.
  22. Effect Editor에서 RTPC 탭을 클릭하세요.
  23. 비어 있는 RTPC 목록을 우클릭하고 Paste를 선택하세요.

이제 Wwise 프로젝트에서 잔향 매개 변수를 제어할 세 가지 RTPC가 구성되었습니다. 다시 Unreal 프로젝트로 돌아가서 이 RTPC를 Global Reverb RTPC로 사용할 수 있습니다.

  1. Integration Settings를 여세요.
  2. 이미 펼치지 않았을 경우 Reverb Assignment Map 섹션을 펼치세요.
  3. 이미 펼치지 않은 경우 RTPC 하위 섹션을 펼쳐주세요.
    Integration Settings에 있는 Global Reverb RTPC
  4. 새로운 각 RTPC를 해당하는 Global Reverb RTPC로 지정하세요
새로운 세 개의 RTPC가 Global Reverb RTPC로 지정되었습니다

이제 Wwise에 원격 연결하고 Play In Editor(에디터에서 재생)할 수 있습니다. 작은 공간과 큰 공간에서 사운드를 트리거할 때 Wwise에서 RTPC 곡선을 보면 잔향 매개 변수가 어떻게 변경되는지 확인할 수 있습니다.

게임에 의해 구동되는 RTPC

서로 다른 공간 종류에 하나의 잔향 보조 버스 사용하기

Global Reverb RTPC를 사용하면 전체 레벨에서 한 개의 잔향 효과를 사용하고 레벨에 있는 서로 다른 공간에서 이 매개 변수를 동적으로 구동할 수 있습니다.

  1. Wwise 프로젝트에서 DynamicReverb라는 새로운 Aux Bus를 만드세요.
  2. Default 효과 프리셋을 사용해서 이 Aux Bus에 Wwise RoomVerb 효과를 추가하세요.
    Wwise RoomVerb Effect가 있는 DynamicReverb라는 새로운 Aux Bus를 추가하세요
  3. SmallRoom Aux Bus 잔향 효과로부터 DynamicReverb Aux Bus 잔향 효과로 RTPC 매핑을 복사하세요.
  4. Unreal 프로젝트에서 Aux Bus Assignment Map의 모든 입력란을 제거하세요
    1. Environment Decay Aux Bus Map 옆에 있는 작은 삭제 아이콘을 클릭하면 제거됩니다.
  5. Default Reverb Aux Bus를 새로운 DynamicReverb Aux Bus로 설정하세요.

이제 Wwise에 원격 연결하고 Play In Editor(에디터에서 재생)하면 Interior_SmallRoom과 Interior_LargeRoom이 모두 DynamicReverb Aux Bus를 사용하지만 Global Reverb RTPC를 통해 각 공간에서 매개 변수가 자동으로 변경됩니다.

커스텀 Blueprint Class로 Reverb Estimation 사용하기

단일 Aux Bus 작업 과정을 더 설명하기 위해서 단일 공간을 나타내는 Blueprint Class를 제작해봅시다. 이 데모에서는 안으로 걸어다닐 수 있는 간단한 정육면체의 공간을 사용해봅시다. 먼저 공간 안을 볼 수 있는 양면의 재질을 생성해야 합니다.

  1. Content Browser에서 WwiseAssets/SpatialAudioDemo 폴더로 이동하세요.
  2. SpatialAudioDemoMeshMaterial을 우클릭하고 Duplicate를 선택하세요.
    SpatialAudioDemoMeshMaterial을 복제하세요
  3. 새로운 Material Instance를 'patialAudioDoubleSidedMaterial'이라고 하세요.
    새로운 Material Instance의 이름을 SpatialAudioDoubleSidedMaterial로 변경하세요
  4. 새로운 Material Instance를 여세요.
  5. Material Property Overrides 아래 Two Sided를 활성화하세요.
  6. Material Instance를 저장하세요.

이제 데모 재질이 준비되었으니 Blueprint Class를 만들어봅시다.

  1. Content Browser에서 Blueprints 폴더로 이동하세요.
  2. 폴더 안을 우클릭하고 Blueprint Class를 선택하세요.
    새로운 Blueprint Class를 만드세요
  3. Actor를 Parent Class로 선택하세요.
  4. 새로운 Blueprint의 이름을 'BPRoom'으로 지정하세요.
  5. 새로운 BPRoom Blueprint Class를 여세요.
  6. Components 패널에서 Add Component 버튼을 클릭하세요.
    Blueprint Editor에서 Add Component 버튼을 사용하여 컴포넌트를 추가하세요
  7. 검색란에 cube를 입력하고 Cube Component를 선택하세요.
    1. 그러면 정육면체 메시가 Static Mesh로 선택된 Static Mesh Component가 생성됩니다.
  8. Details 패널의 Materials 아래에서 Element 0을 SpatialAudioDoubleSidedMaterial로 설정하세요.
    정육면체의 재질을 SpatialAudioDoubleSidedMaterial로 설정하세요
  9. Components 패널에서 Cube Component를 선택하세요.
  10. Add Component 버튼을 클릭하고 Box Collision Component를 추가하세요.
  11. Box Component를 선택하세요.
  12. Add Component 버튼을 클릭하고 Ak Room Component를 추가하세요.
  13. Box Component를 선택하세요.
  14. Add Component 버튼을 클릭하고 Ak Late Reverb Component를 추가하세요.
  15. Box Component를 선택하세요.
  16. Add Component 버튼을 클릭하고 Ak Geometry Component를 추가하세요.

Blueprint Class의 Component 계층 구조가 다음과 같아야 합니다:

Cube, Box, Spatial Audio Component를 구성하세요
  1. AkGeometry Component를 선택하세요.
  2. Details 패널의 Geometry 아래에서 Mesh Type을 Simple Collision으로 설정하세요.
  3. Acoustic Properties Override 하위 섹션을 펼치고 Acoustic Texture를 Concrete로 설정하세요.
    AkGeometry 매개 변수를 구성하세요
  4. Components 패널에서 Cube Component를 선택하세요.
  5. Add Component 버튼을 클릭하고 Point Light Component를 추가하세요.
    1. 이렇게 하면 공간 안을 걸어다닐 때 시야가 가려지지 않습니다.
      Cube Component에 Point Light를 추가하세요
  6. Cube Component를 선택하세요.
  7. Collision 아래 Collision Preset을 No Collision으로 설정하세요.
  8. Box Component를 선택하세요.
  9. Collision 아래 Collision Preset을 No Collision으로 설정하세요.
    1. 이렇게 하면 벽을 통과하여 걸어다닐 수 있습니다.
  10. Blueprint를 컴파일 및 저장하세요.
  11. Level Editor에서 Content Browser로부터 BPRoom의 여러 인스턴스를 드래그하세요.
  12. 이 공간을 서로 다른 크기로 만드세요.

새로운 공간 Blueprint를 시험하기 전에 먼저 공간 사이를 변경할 때 재생할 사운드를 추가해야 합니다.

  1. Content Browser의 Blueprints 폴더에서 MyCharacter Blueprint를 여세요.
    Content Browser에 있는 MyCharacter Blueprint
  2. Components 패널에서 Capsule Component를 선택하세요.
  3. Add Component 버튼을 클릭하고 Ak Component를 추가하세요.
    1. 이 컴포넌트는 간단히 'Ak'라고 표시됩니다.
  4. Ak Component의 이름을 SpatialSound로 변경하세요.
  5. SpatialSound Component를 선택하세요.
  6. Details 패널에서 Ak Audio Event를 Play_SpatialSound로 설정하세요.
    MyCharacter Blueprint에 Ak Component를 추가하세요
  7. MyCharacter Blueprint의 Event Graph를 여세요.
  8. Event Graph의 오른쪽 아래 있는 Event BeginPlay 노드를 찾으세요.
  9. 가장 마지막에 있는 Set Switch 노드를 드래그하고 'post associated'를 입력하기 시작하세요.
    Set Switch 노드를 PostAssociatedAkEvent 노드와 연결하세요
  10. Post Associated Ak Event (SpatialSound)를 선택하세요.
BeginPlay에서 Spatial Sound를 게시할 논리를 구성하세요

이제 레벨에서 공간을 배치할 수 있게 되었습니다.

  1. BPRoom Blueprint의 여러 인스턴스를 레벨 안으로 드래그하세요.
  2. 공간의 크기를 서로 다르게 조정하세요.
  3. 각 공간의 AkGeometry Component에 있는 Acoustic Texture를 변경하세요.
    1. 레벨에서 공간을 선택하세요.
    2. Details 패널에서 AkGeometry Component를 선택하세요.
    3. Acoustic Texture를 변경하세요.
    4. 레벨의 모든 BPRoom 인스턴스에 이 작업을 실행하세요.
      BPRoom 액터의 서로 다른 인스턴스에서 Acoustic Texture를 변경하세요

이제 Wwise에 원격 연결하고 Play In Editor(에디터에서 재생)할 수 있습니다. 공간 음향이 즉시 트리거됩니다. 다른 공간으로 걸어가면서 알맞은 잔향 매개 변수가 사운드에 적용됩니다.

HFDamping 계산과 Acoustic Texture

HFDamping 값을 예측할 때 AkLateReverbComponent 는 AkGeometryComponent 를 사용하여 어떤 Acoustic Texture가 있는지를 쿼리합니다. 이전 하위 섹션에서는 AkLateReverbComponent 와 AkGeometryComponent 가 동일한 UPrimitiveComponent 상위 계층에 연결되어 있었습니다. UPrimitiveComponent 상위 계층은 Box Component였습니다. 이 구성의 경우 AkLateReverbComponent 에 자매 AkGeometryComponent 가 있을 경우 이 자매 AkGeometryComponent 를 사용하여 HFDamping을 계산하게 됩니다. 하지만 AkGeometryComponent 에 다른 상위 계층이 있을 경우 AssociateAkTextureSetComponent 함수를 사용해서 AkGeometryComponent 를 AkLateReverbComponent 와 명시적으로 연결해야 합니다. 이 마지막 섹션은 이 구성을 설명합니다.

  1. BPRoom Blueprint를 여세요.
  2. Components 패널에서 AkGeometry Component를 Cube Component 위로 드래그하고 마우스 버튼을 떼세요.
    1. 이렇게 하면 AkGeometry Component가 Box Component 대신 Cube Component에 연결됩니다.
  3. AkGeometry Component를 선택하세요.
  4. Details 패널의 Geometry 아래에서 Mesh Type을 Static Mesh로 설정하세요.
  5. 더하기 버튼을 사용해서 Acoustic Properties Override에 입력란을 추가하세요.
    Acoustic Properties Overrides 목록에서 Material을 추가하세요
  6. Material을 SpatialAudioDoubleSidedMaterial로 설정하세요.
  7. Material 옆에 있는 드롭다운 화살표를 클릭해서 Acoustic Texture를 Concrete로 설정하세요.
    AkGeometry 매개 변수를 구성하세요
  8. Blueprint의 Event Graph를 여세요.
  9. Even BeginPlay 노드의 실행 핀을 클릭하고 드래그해 오세요.
  10. 검색란에 'associate'를 입력하세요.
  11. Associate Ak Texture Set Component (AkLateReverb)를 선택하세요.
  12. Texture Set Component 핀 위에 있는 Components 패널로부터 AkGeometry Component를 드래그하고 마우스 버튼을 떼세요.
BeginPlay 함수를 구성하세요

이제 Wwise에 원격 연결하고 Play In Editor(에디터에서 재생)하여 HFDamping 값이 올바르게 업데이트되는지 시험해볼 수 있습니다. 이 구성에서는 Static Mesh가 여러 재질을 가질 수 있으며 이러한 재질을 Acoustic Texture에 매핑하는 AkGeometryComponent 를 가질 수 있습니다. 그런 다음 이 AkGeometryComponent 를 AkLateReverbComponent 와 연결하여 재질이 HFDamping 값을 구동하도록 할 수 있습니다.


Wwise Unreal Integration Documentation: Fit to Geometry

Fit to Geometry

AkAcousticPortal과 AkSpatialAudioVolume을 빠르고 정확하게 배치하기 위해서 Wwise Unreal 통합이 씬에 있는 스태틱 메시 지오메트리를 감지하고 씬 안에서 포털과 볼륨의 알맞은 크기와 위치를 결정할 수 있습니다. Fit to Geometry(지오메트리에 맞추기)는 다양한 일반적 공간, 창, 문의 모양에서 작동할 수 있습니다. 이 섹션은 AkAcousticPortal과 AkSpatialAudioVolume에 Fit To Geometry를 사용하는 방법을 설명해줍니다.

참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다.
참고:

Fit To Geometry가 올바르게 작동하려면 뷰포트 옵션에서 Realtime이 반드시 활성화되어 있어야 합니다.

뷰포트 옵션에서 Realtime 활성화하기

Fit To Geometry 전제 조건

  • Wwise Integration 설정에서 원하는 기본 충돌 채널을 선택하세요. Fit To Geometry 기능은 Unreal Engine을 사용하여 레이 트레이싱을 실행합니다. 이 레이는 반드시 주변의 스태틱 메시 지오메트리와 교차할 수 있어야 합니다. 그렇기 때문에 충돌 채널이 반드시 AkAcousticPortal과 AkSpatialAudioVolume이 배치된 스태틱 메시의 충돌 매개 변수와 상응해야 합니다.
  • 원하는 경우 AkAcousticPortal과 AkSpatialAudioVolume이 기본 충돌 채널을 덮어써서 다른 채널을 사용하도록 선택할 수 있습니다. 이 설정은 AkAcousticPortal과 AkSpatialAudioVolume에 있는 Details 패널에서 찾을 수 있습니다.
  • AkSurfaceReflectorSet의 초기 반사에 음향 재질을 사용할 경우 Wwise 통합 설정에서 원하는 매핑이 설정되었는지 확인해 주세요. 더 많은 정보는 음향 텍스처를 AkSpatialAudioVolume으로 자동 지정하기 을 참고하세요.
참고: Fit To Geometry 기능은 레벨 에디터 뷰포트 안에 있는 AkAcousticPortal과 AkSpatialAudioVolume 액터와만 사용할 수 있습니다. Blueprint 에디터 뷰포트 안이나 이전에 언급한 AkPortalComponent, AkSurfaceReflectorSet, AkRoomComponent, AkLateReverb 액터를 구성하는 각 컴포넌트에서는 사용할 수 없습니다.

Fit To Geometry를 사용하여 AkSpatialAudioVolume 배치하기

  • Fit To Geometry 작업은 AkSpatialAudioVolume의 Details 패널에서 해당 옵션을 활성화한 후에 처음 실행됩니다. 옵션이 활성화되고 나면 트랜스폼(transform) 기즈모를 사용하여 볼륨이 새로운 위치로 옮겨질 때마다 Fit To Geometry 작업이 실행됩니다.
  • 이동(translation) 기즈모를 드래그하는 도중 AkSpatialAudioVolume이 세계 안의 특정 위치에서 어떻게 배치될지를 노란색 미리 보기 선으로 보여줍니다. 원하는 위치를 찾을 때까지 볼륨을 드래그한 다음 마우스를 떼서 AkSpatialAudioVolume의 브러쉬 볼륨을 업데이트하세요. Fit To Geometry 작업을 실행한 후에 AkSpatialAudioVolume 액터의 트랜스폼은 변경되지 않으며 하위 브러쉬 컴포넌트만 변경됩니다.
  • Fit To Geometry 작업은 액터의 원점으로부터 벽을 조사하기 위해 여러 개의 레이 트레이싱을 구형의 모양으로 방출함으로써 실행됩니다. 이 레이가 부딪히는 지점은 초록색으로 표시됩니다 (이 지점이 무시될 경우에는 빨간색으로 표시됩니다). 결과 모양을 알아보기 위해 레이가 부딪히는 지점을 메모해두고, 올바른 충돌 채널이 사용되는지 확인하고, 결과 표면에 올바른 음향 텍스처가 지정되는지 확인하는 것이 좋습니다.
  • 지원되는 모양은 세 가지 입니다. 모양의 종류는 AkSpatialAudioVolume의 Details 패널에서 선택됩니다.
    1. Oriented Box - 임의의 방향이 있는 상자 모양 공간. 상자의 방향은 Fit To Geometry 작업 도중 자동으로 결정됩니다. 이 상자의 모양은 모든 초록색 충돌 지점이 안에 들어맞을 수 있는 가장 작은 상자(부피 기준)를 찾음으로써 계산됩니다.
    2. Aligned Box - 고정된 방향이 있는 상자 모양 공간. 상자의 방향은 사용자에 의해 지정됩니다. 트랜스폼 기즈모를 사용하여 AkSpatialAudioVolume 액터를 회전해서 방향을 변경하세요. 정렬된 상자(aligned box) 모양은 방향이 지정된 상자(box-shaped) 모양을 사용할 경우 잘못 정렬될 수 있는 다양한 장애물이 있는 상자 모양 영역에 볼륨을 맞추거나 벽 사이에 있는 실외 공간이나 좁은 통로에 상자를 맞출 때 유용할 수 있습니다.
      • 경우에 따라 주어진 레이 트레이싱으로 인해 AkSpatialAudioVolume이 0이 될 수 있습니다 (예: 모든 충돌 지점이 동일한 평면에 있을 경우). 그럴 경우 상자의 윤곽선이 빨간색으로 깜빡이며 모양이 업데이트되지 않습니다. 그리고 스크린의 왼쪽 하단에 오류 메시지가 뜹니다. 이 문제를 해결하려면 AkSpatialAudioVolume을 새로운 위치로 옮기고 다시 시도해보세요.
    3. Convex Polyhedron - 완전히 닫힌 볼록한 다면체 모양의 공간. 이 공간은 가장 복잡한 모양입니다. 배치 오류가 더 많이 생길 수도 있지만 평행한 벽이 없거나 상자 모양이 아닌 공간에 볼륨을 맞출 때에 시간을 절약할 수 있습니다. 이 공간 모양은 반드시 볼록해야 하며 완전히 밀폐되어야 합니다. 다시 말해 열린 벽이나 천장이 있어서는 안됩니다.
      • 경우에 따라 특정 위치에서부터의 레이 트레이싱이 밀폐된 볼록한 모양을 찾을 수 없기도 합니다. 이 경우 모양의 윤곽선이 빨간색으로 깜빡이며 모양이 업데이트되지 않습니다. 그리고 스크린의 왼쪽 하단에 오류 메시지가 뜹니다. 이 문제를 해결하려면 AkSpatialAudioVolume을 새로운 위치로 옮기고 다시 시도해보세요.
  • 레이 캐스트 충돌 지점은 AkSpatialAudioVolume의 Details 패널에서 슬라이더를 사용하여 필터링할 수 있습니다.
    • 레이는 길이에 의해 내부적으로 분류되며, 그 후에 슬라이더가 고려되는 가장 짧은 레이 충돌의 백분율을 결정합니다.
      • 예를 들어 슬라이더가 0.75로 설정되면 가장 짧은 75의 레이가 사용되어 크기 맞추기 작업을 실행하며 가장 긴 25의 레이는 무시됩니다.
    • 필터링된 레이 충돌은 초록색으로 표시되며 필터링되어 걸러지는 레이 충돌은 빨간색으로 표시됩니다.
    • 충돌 지점 필터링은 일부 레이가 창문이나 문을 통해 빠져나가서 이 레이의 충돌 지점으로 인해 결과에 오류가 생길 경우에 유용합니다.
    • 충돌 지점 필터링은 정렬된 상자 (aligned box) 모양을 사용할 때 가장 유용합니다. 왜냐하면 레이 충돌 지점의 개수를 낮추는 것이 방향 결정에 오류를 발생시킬 수는 없지만 (정렬된 상자에는 고정된 방향이 있기 때문에) 레이 필터링은 모든 모양과 사용할 수 있기 때문입니다.

음향 텍스처를 AkSpatialAudioVolume으로 자동 지정하기

  • 음향 텍스처는 Fit To Geometry에 의해 실행되는 레이 트레이싱의 결과에 따라 AkSpatialAudioVolume으로 자동 지정됩니다. 그리고 음향 재질 매핑은 Wwise 통합 설정에서 정의됩니다.
    • Unreal Engine에서 레이 트레이싱의 결과가 물리적 재질을 생성하기 때문에 각 물리적 물질을 음향 텍스처에 매핑하는 데에 프로젝트 설정에서 설정된 매핑이 사용됩니다.
    • 두 개 이상의 레이 충돌이 AkSpatialAudioVolume의 결과적 표면으로 투영될 가능성이 높으며 다양한 레이 충돌이 각각 서로 다른 물리적 재질을 반환할 수 있습니다. 가장 많이 충돌한 물리적 재질로 음향 텍스처가 매핑됩니다.
    • 일부 레이는 결과적 AkSpatialAudioVolume 표면의 음향 속성을 나타내지 않는 잘못된 표면에 충돌할 수 있습니다. 예를 들어 건식 벽체(drywall) 표면의 일부 영역이 나무 재질일 수 있지만 음향 표현에 '건식 벽체'를 사용하는 것이 '나무'를 사용하는 것보다 벽 전체에 더 알맞습니다. 대부분의 경우 면적이 넓은 텍스처를 충돌하는 지점이 충분하기 때문에 해당 텍스처로 지정됩니다. 그렇지 않을 경우 AkSpatialAudioVolume을 약간 옮겨서 충돌 지점을 살짝 옮기거나, 원하는 결과가 나오지 않을 경우 AkSurfaceReflectorSet의 Details 패널을 통해 음향 텍스처를 직접 지정할 수 있습니다.
  • AkSpatialAudioVolume에 Fit To Geometry를 사용하기 전에 먼저 Wwise 통합 설정에 있는 물리적 재질과 음향 텍스처 사이를 원하는 방식으로 매핑해야 합니다. AkSpatialAudioVolume의 크기를 맞춘 다음에 재질 매핑을 변경할 경우 음향 재질이 업데이트되지 않습니다.
참고: Fit To Geometry는 반드시 Unreal Engine의 복합 충돌(complex collision)을 사용하여 스태틱 메시의 각 삼각형을 찾아야 하기 때문에 스태틱 메시 액터의 'Phys Material Override' 속성에 지정된 물리적 재질을 가져올 수가 없습니다. 이 속성은 단순 충돌에만 적용되며 음향 재질에 매핑되지 않습니다.

Fit To Geometry를 사용하여 AkAcousticPortal 배치하기

  • AkSpatialAudioVolume와 마찬가지로 Fit To Geometry 작업은 AkAcousticPortal의 Details 패널에서 해당 옵션을 활성화한 후에 처음 실행됩니다. 이 옵션이 활성화된 후에는 트랜스폼 기즈모를 사용하여 볼륨이 새로운 위치로 옮겨질 때마다 Fit To Geometry 작업이 실행됩니다.
  • 이동(translation) 기즈모를 드래그하는 도중 AkAcousticPortal이 세계 안의 특정 위치에 어떻게 배치될지를 노란색 미리 보기 선으로 보여줍니다. 원하는 위치를 찾을 때까지 액터를 드래그한 후 마우스를 떼서 AkAcousticPortal을 업데이트하세요.
  • Fit To Geometry 작업은 액터의 원점으로부터 창문과 출입구를 조사하기 위해 여러 개의 레이 트레이싱을 구형의 모양으로 방출함으로써 작동합니다. 잠재적 창문이나 출입구를 찾으면 보조 레이가 표면 법선 방향으로 발사되어 창문이나 출입구의 다른 면을 감지합니다.
  • 포털은 열린 부분이 안쪽을 향하는 수직 표면의 뚜렷한 '틀'이 있는 경우에만 감지됩니다.
왼쪽은 AkAcousticPortal에 의해 감지되는 열린 부분의 예시를 보여주며, 오른쪽은 메시가 너무 얇아서 감지되지 않는 열린 부분을 보여줍니다.
  • Details 패널 안에 있는Detection Radius 속성을 사용해서 감지되는 열린 부분의 크기를 제한하세요. 이 값은 보통 감지하려는 열린 공간보다는 더 크지만 전체 공간 면적보다는 작은 값으로 설정하는 것이 좋습니다.
    • 기본값인 500은 센티미터 단위를 사용하며 창과 문에 평균 크기의 열린 공간을 사용하는 대부분의 Unreal 프로젝트에서 작동합니다. 스태틱 메시의 크기에 잘 맞아들어가도록 필요한대로 이 값을 조정하세요.
    • Detection Radius가 열린 공간보다 더 작을 경우 포털이 감지되지 않습니다.
    • Detection Radius가 너무 클 경우 방 전체 너비에 걸쳐 잘못된 포털이 감지될 수 있습니다.
  • 포털에는 Collision Channel 속성에서 결정한 대로 Fit To Geometry 레이 트레이싱과 충돌하는 단단한 문이나 창이 없어야 합니다. 이런 문이나 창이 있을 경우 열린 부분이 감지되지 않게 됩니다. 열린 부분에 창이나 문이 있을 경우 다른 충돌 프로파일을 사용하거나 H를 눌러 창/문을 숨겨서 메시가 무시되도록 해주세요.

Fit To Geometry 사용하기에 대한 팁

  • 수많은 AkAcousticPortal 혹은 AkSpatialAudioVolume 액터는 먼저 액터에서 Fit To Geometry를 활성화하고 액터의 이동 기즈모를 Alt를 누른 채 드래그해서 해당 레벨의 새로운 위치에 맞는 복제 액터를 생성함으로써 레벨 안에서 빠르게 구성할 수 있습니다.
  • 가구, 소품, 전등과 같이 특정 스태틱 메시 액터가 Fit To Geometry에 의해 실행되는 레이 트레이싱을 차단하고 결과에 오류를 일으킬 경우 이러한 액터를 숨겨서 (H를 눌러서) Fit To Geometry 레이 트레이싱이 이 메시를 무시하도록 할 수 있습니다.


Wwise Unreal Integration Documentation: Understanding the Wwise Unreal Integration Modules

Understanding the Wwise Unreal Integration Modules

The following modules are available for you to customize the Wwise Unreal Integration to suit your workflow.

Wwise Sound Engine Runtime Modules:

  • AkAudio Module
    The root module for most of the Integration’s user-facing features. Unless you want to customize your integration, there is generally no need to look beyond this module.
  • Wwise Module
    A simple module that links to all of the other optional modules.
  • WwiseSoundEngine Module
    At the lowest level, provides the bridging between the Wwise Sound Engine libraries and the Unreal project.
  • WwiseFileHandler Module
    Provides the Wwise Sound Engine with the media, SoundBanks, and external sources it needs, including handling requests from the Wwise Location Resolver and I/O Hook.
  • WwiseResourceLoader Module
    At a higher level, handles all Wwise object types and makes sure to properly interface with the WwiseFileHandler Module to load and unload the files for these Wwise objects. Uncooked Project and Editor Modules:
  • WwiseProjectDatabase Module
    Provides a memory-based database view of the current state of the Wwise project’s generated SoundBanks.
  • WwiseResourceCooker Module
    Converts Wwise Object Info structures to Cooked structures for the WwiseResourceLoader and copies a requested object’s files from the GeneratedSoundBanks to the Staging directory of the packaging process. Optional Modules:
  • WwiseSimpleExternalSourceManager Module
    A minimal External Source Manager implementation used in our internal testing, as well as in some of our projects, such as the Wwise Demo Game.
  • AkAudioMixer Module
    Allows a project to pipe the audio output, as well as audio submixes, from Unreal audio components to a Wwise project’s mixer.


Wwise Unreal Integration Documentation: Wwise Module

Wwise Module

The Wwise module is a simple module that contains links to all of the other permanent modules. It is therefore easy to add a reference to the Wwise module in the project's Build.cs file, instead of references to each of the other modules.

The Wwise module also contains the compiled code of the optional modules and handles their initialization as well. For example, the AudioLink Runtime module is actually compiled and embedded within the Wwise module. Because of this module structure, the Wwise plug-in and its optional modules can be properly embedded as an Engine plug-in.

WwiseHelper Build Object

To add module dependencies, we recommend that you set them up individually in the project's module if possible. It is possible to add direct access to one of Wwise plug-in's related modules, but doing so adds complexity and potential difficulty during upgrades, for example.

Instead of adding dependencies individually, we recommend that the project's module call:

WwiseHelper.AddDependencies(this, Target);

This call adds all dependencies from the other modules.

WwiseHelper as an Engine Plug-In

It is not possible to include the WwiseHelper when it is part of the Engine plug-in. However, because it is a standalone file, you can copy it to the final project along with the other Build.cs files and use its contents. It is your responsibility to update its contents whenever a new version of the Wwise plug-in is released.


Wwise Unreal Integration Documentation: WwiseSoundEngine Module

WwiseSoundEngine Module

Static Sound Engine Bridging

The WwiseSoundEngine Module contains the Wwise Sound Engine API interface, as well as various bundled plug-ins.

Most of the functions in the Wwise Sound Engine are bridged at the lowest level possible. In order to call any Wwise Sound Engine API, you must call them through the bridge:

auto* SoundEngine = IWwiseSoundEngineAPI::Get();
if (UNLIKELY(!SoundEngine)) return;
주의: Do not use any AK:: or ak:: functions directly. It can cause linker errors, instability, or a crash.

Prior to Wwise 2022.1, it was necessary to make all AK::SoundEngine calls from AkAudioDevice from within the AkAudio module. While this is no longer necessary, that legacy approach remains possible. It might be preferable in some cases because it provides more functionality to user code, including converting from Unreal classes to Wwise native types, alongside Blueprintable operations.

There is a second module, WwiseSoundEngine_2022_1, that contains the bridging code from the WwiseSoundEngine interface to the actual Wwise 2022.1 Sound Engine API.

Global Callbacks

The Integration includes a Global Callbacks singleton feature. This allows games and tools to leverage the Sound Engine’s AkGlobalCallback. For a description of the callbacks, refer to AkCallbackType in the Wwise SDK documentation.

For each callback, the following functions are available:

  • <Location>Async: The least expensive method, where the callback is executed as soon as a Task Graph thread is available. You must make sure the callback follows the best practices for multithreaded code.
  • <Location>Sync: The fastest, most reactive method, but also the most risky. It executes the callback in the Sound Engine threads, potentially causing slowdowns and audio glitching. You also need to be mindful of the limitations of threads created external to the Unreal thread pools. They don’t have the same Unreal thread-local data, the stack size is different, and the priority might be different. In other words, use at your own risk!
  • <Location>Game: The preferred method for user interface tasks, where the callback must be executed on the Game Thread.

Each function has its own uses; none is perfect for all scenarios.


Wwise Unreal Integration Documentation: WwiseFileHandler Module

WwiseFileHandler Module

The WwiseFileHandler module prepares and handles all external sources, media, and SoundBank files. It preloads, loads, and streams files, but the module itself doesn't check for any dependencies in the relevant files.

Each file is handled as an individual object that is only opened once, and its usage is tracked independently through a File State. After a File State is made available to one of the three managers described below, the corresponding file is optionally made available to the Sound Engine I/O Hook and Sound Engine File Location Resolver.

The WwiseFileHandler requires the WwiseResourceLoader to register the file first alongside its options as a File State. Then, the file becomes accessible to the Sound Engine’s File Location Resolver.

Because of the metadata stored in the GeneratedSoundBanks folder and cooked with assets as packaging information, the WwiseResourceLoader Module can determine which resources are required, and the WwiseFileHandler provides all the File States prior to loading a resource that might require it.

File States

A File State declares a known file to the WwiseFileHandler module. Using the Load and Unload operations, a file is presented to the WwiseFileHandler, which determines whether it was already loaded and will be ref-counted. As long as there is a user for the file, its File State is kept alive.

Every new operation related to each File State is run in its respective Execution Queue, where the queued operations are run asynchronously, but sequentially. Due to the asynchronous nature of the File State, there are two levels for each File State: the public asynchronous methods and the protected synchronous methods. Each public method is merely a wrapper that pushes an operation to its Execution Queue.

Three main states are available: Closed, Opened, and Loaded. Although the definition of each state is somewhat arbitrary, they can be loosely defined as follows:

  • Closed: The file can be safely deleted. It doesn’t have any resources in use by the system other than a small amount of memory.
  • Opened: The defining file operation is done. The file was opened and potentially read in memory, either partially or fully. In the case of streamed media, the file is open and the required amount of preloaded data is cached. In the case of media residing in memory, the file was opened, fully read, and closed; the available pointer is its Opened state.
  • Loaded: The defining Sound Engine operation is done. The Sound Engine is either aware of the file, or it has been made available. For example, in the case of streamed media, the file is available for the I/O Hook to read its contents. In the case of a media file loaded in memory, its data was sent to the Sound Engine through a SetMedia operation. Similarly, in the case of a SoundBank, its data was processed through the LoadBank method family.

There are also intermediate File States that indicate a transition towards one of the main File States.

Since the operations are asynchronous and can be lengthy, multiple operations might be waiting for the same file to load, in which case only one will make the forward trip, and all of the others will wait for the operation to be completed before returning the status. For example, in a User-Defined SoundBank containing 12 different Events, all 12 Events might request the same SoundBank to be loaded, in which case the Events only proceed when that SoundBank is loaded.

When Unloading, special care is taken in the case of lengthy audio operations. For example, an AK Convolution Reverb file with a long reverberation tail cannot be unloaded until the resonation is finished. Or an unstopped looped media might never stop. These operations might remain in a transient state for multiple seconds.

Additionally, while the reverb’s tail is being processed, there's a chance the same file is requested, for example, while gathering resources for a new map that coincidentally requires the same media. Instead of being stuck in the Unloading state, the state is changed to Reloading, the unloading operation is canceled as soon as possible, and then the state is returned to Loaded.

Sound Engine I/O Hook and Sound Engine File Location Resolver

The Sound Engine I/O Hook and Sound Engine File Location Resolver work together to handle the lifetime of a streamed asset. First, the File Location Resolver asks the WwiseFileHandler to open a file. Then, once it’s open, the I/O Hook requests that the WwiseFileHandler fulfills its asynchronous Read requests for the open file as needed.

Opening a file through the Resolver involves the following steps:

  1. Look up the File State map based on the passed Short ID.
  2. Ask the File State to acknowledge a new streaming request, which might change its state depending on the File State algorithm.
  3. Return the result to the Sound Engine.

In a typical game, this can all be done in less than a millisecond, but it can be considered lengthy nonetheless. However, since the File States are already open and ready for use, additional system I/O operations might not be necessary.

After the file is opened for streaming, the I/O Hook’s asynchronous Read operations are processed through another dedicated Execution Queue, which handles those Read operations exclusively. The goal of that queue is to be efficient and reactive, and eventually batch the Read operations in an optimized manner. It also provides the Close operation for the streamed media, ensuring the Close operation is performed after any pending Read operations.

Like every Sound Engine callback, these are called in a thread that’s not owned by Unreal. They don’t have the same Unreal thread-local data, the stack size is different, and the priority might be different. Because of this, many Unreal operations will fail, such as Stats gathering.

Filename-Based Location Resolver

Most Open operations in the Location Resolver are performed based on a Short ID stored in the various maps.

Opening files based on a file pathname is not supported by the Integration. The Integration only opens files based on Short IDs. However, there are cases when a file could be opened by the Sound Engine based on a file pathname. For example, some algorithms, such as the XML Error Translator, ask for the "SoundBanks.xml" file. Another case is when the Sound Engine is writing files. This is usually done for logging purposes in debug and profile builds.

SoundBank and Media Managers

The SoundBank Manager provides the LoadSoundBank and UnloadSoundBank operations, while the Media Manager provides the LoadMedia and UnloadMedia operations. These two managers track which File States are created and send the information to the Location Resolver when a File State is requested for streaming purposes.

Both work asynchronously through the same Execution Queue pattern. Since the File State creation process is relatively efficient, there is generally little delay when executing several operations simultaneously. However, the callback might take more time to execute since the file must be in a state adequate for its usage, including its Sound Engine loading or unloading.

External Sources Manager

The External Sources Manager manages File States for external sources. It is designed to be overridden by a user-developed module implementing a data model to track external source media dependencies, for which the Wwise Simple External Source Manager is an example.

The manager provides a supplemental, editor-only operation for cooking meant to be overridden by the user in order to properly stage external source files. This saves users from having to override the WwiseResourceCooker Module only to support their External Source Manager implementation.

Since the posted Events must include the external sources they use when they are posted, the Integration is designed to automatically query the External Source Manager for this information at the appropriate time. Refer to Using the Wwise Simple External Source Manager for details.


Wwise Unreal Integration Documentation: WwiseResourceLoader Module

WwiseResourceLoader Module

One level above the WwiseFileHandler Module, the WwiseResourceLoader module handles Wwise project assets and their dependencies. Similar to the WwiseFileHandler, the two primary operations performed by the WwiseResourceLoader are loading and unloading various resources. However, the WwiseResourceLoader preforms these operations for all asset types.

For example, an Aux Bus can be associated with one SoundBank. It might also be dependent on another Aux Bus that's associated with a different SoundBank. Furthermore, it can be associated with media files as required by various Effect plug-ins. All of these SoundBanks and media files must be loaded before you can use the Aux Bus. When the WwiseResourceLoader receives a request to load the Aux Bus, the WwiseFileHandler will load all of these resources.

Events and Switch Container Resources

The most complex Wwise object to load is the foundation of Wwise actions: Events. A Wwise Event can contain all sorts of other types of Wwise objects. It can require external sources to be prepared and multiple mandatory SoundBanks and media files to be loaded. It might also have all these dependencies nested inside a Switch Container hierarchy. Moreover, AkAudioEvent assets have the LoadOnReference option, which only loads Switch Container resources when the combination of associated Switches and States is currently loaded in the map. This optimization is disabled by default but can save memory when used with large Switch Container hierarchies.

For example, a Play Footsteps Event using a Switch Container dependent on a ground material Switch, only loads sounds for the Switches in the currently loaded map. In addition, multiple layers of Switch Containers can exist, such as a high-quality version available only through a DLC, or dynamically selected conditions, such as the kind of footwear, the weight of the character, or their speed. Depending on these conditions, it’s possible to have a very complex hierarchy of Switch Containers, all of which can be loaded or not at any given time.

In the Integration, Switch Container Leaves help to organize these conditions, where each leaf represents a set of potential conditions (Switches and States) and the associated SoundBanks, media, and external sources that must be loaded when the conditions are met.

Although Group Values, such as Switches and States, can be included in a project as assets and packaged in deployed games, it is still possible to set them programmatically by directly calling methods exposed in the Sound Engine. In this case, when using the LoadOnReference option, it's important to send that information to the WwiseResourceLoader before setting a Group Value, so it can prepare to load the potential files. For example, code that sets the entire application to High Quality would need to inform the WwiseResourceLoader to consider that Group Value as set. It is possible to provide this data programmatically for Switches, States, and Game Parameters structures even when cooked.

참고
  • Optimizing Memory Usage with Reference-Loaded Switch Containers

Changing Language

If the application language changes, the WwiseResourceLoader reloads localized assets. This lengthy process unloads all localized SoundBanks and media and then loads the equivalent resources for the new language. During this operation, the affected assets are temporarily unavailable and could cause errors if posted.


Wwise Unreal Integration Documentation: WwiseProjectDatabase Module

WwiseProjectDatabase Module

The WwiseProjectDatabase module is available to uncooked projects, including in the Editor. This module provides a memory-based database view of the current state of the Wwise project’s generated SoundBanks. Every value and piece of information available in the JSON metadata files produced when generating SoundBanks is accessible in the Project Database. This view is purely informative and only changes when the generated files are updated. References to structures in the database are thread-safe, even when a new database version is loaded asynchronously.

There are two representations of information in the database:

  • The Metadata structures provide the raw information from the JSON files.
  • The Ref classes allow access to the neighboring information related to the metadata.

Metadata Structures

The Metadata structures are defined exactly like the JSON files that describe the generated SoundBanks metadata. No context is provided and there are few convenience tools. With very few exceptions, the member names in these structures are identical to those in the JSON files.

For the file definition itself, you start from a WwiseMetadataRootFile object that defines the kind of optional root objects the file can declare. Then, the structures expose the different inner objects and values that can occur.

After they are loaded in memory, these structures present a clear image of the generated SoundBanks in a compact and efficient form.

Only one copy of this information is kept in memory in FWwiseRootDataStructure and FWwisePlatformDataStructure JSON files.

Ref Classes

The Ref classes define each metadata object again but through a description of how to locate the necessary metadata. This class is helpful because the metadata in the generated SoundBanks is written with very little information duplication and instead uses references to various data structures. Therefore, Events have a media list referencing them by ID, but the metadata for that media, such as the file location, is defined in the higher-level SoundBank metadata.

For example, to point towards an Event’s Switch Container value, a Ref class keeps a shared pointer copy to the file’s root and contains directions to locate the Switch Container. The directions would be something like: this file, in the SoundBanks structure, the 1st SoundBank, the 4th declared Event, the 3rd declared Switch Container.

This is illustrated by the following code samples:

struct WWISEPROJECTDATABASE_API FWwiseMetadataMediaAttributes : public FWwiseMetadataMediaReference
{
FName Language;
bool bStreaming;
EWwiseMetadataMediaLocation Location;
bool bUsingReferenceLanguage;
uint32 Align;
bool bDeviceMemory;
FWwiseMetadataMediaAttributes(FWwiseMetadataLoader& Loader);
private:
static EWwiseMetadataMediaLocation LocationFromString(const FName& LocationString);
};
struct WWISEPROJECTDATABASE_API FWwiseMetadataMedia : public FWwiseMetadataMediaAttributes
{
FName ShortName;
FName Path;
FName CachePath;
uint32 PrefetchSize;
FWwiseMetadataMedia(FWwiseMetadataLoader& Loader);
};

and this example media:

"Media": [
{
"Id": "274591330",
"Language": "English(US)",
"Streaming": "false",
"Location": "Loose",
"ShortName": "Hello.wav",
"Path": "Media/English(US)/27/274591330.wem",
"CachePath": "Voices/English(US)/Hello_10C4C929.wem"
}

In essence, the Ref classes provide context. Hence, you can get the Switch Container information, and you can also get information about the class parents: the Event, the SoundBank, and the file.

Some referred types mandate supplemental information. For example, the Platform Information has its information split into two complementary files: the ProjectInfo.json and the PlatformInfo.json, so the platform Ref naturally contains two different structures. Similarly, some other referred types might reside in multiple locations, and the Ref class attempts to accommodate these particularities.

Finally, the Ref classes provide additional utilities. If you pass the necessary global maps, you can get supplemental information alongside the Ref classes that are included inside that particular Wwise object. For example, you can ask for the media requested in a particular Event’s definition, and it will return the media as Refs.

Because the Ref information is declared as the base and derived structs, in a Switch Container, you can request all of the Event’s Switch Container values and get the siblings simultaneously. The same is true for other types of information contained in Events.

AnyRef Class

At a higher level, the AnyRef class holds a pointer towards any kind of Ref structure. It contains the type and a shared pointer. There are limited operations available at the AnyRef level, such as retrieving the object’s Short ID, its GUID, and its name. For everything else, you can ask to cast the boxed Ref object to its type. It can point toward a Null object, so the AnyRef type is not a reference but a pointer to a Ref object.

Accessing Information: WwiseProjectDatabase and WwiseDataStructure

The WwiseProjectDatabase module handles queries through its accessing methods. You can, for example, ask for all known SoundBanks or one particular SoundBank. The data itself is kept in its DataStructure member.

Inside the Data structure, there are two structures:

  • The Root structure contains basic information for each platform for a particular project’s structure:
    • The Platform list, which includes all available platforms for a project, even if they aren’t loaded.
    • The Language list
  • The Platforms structure map contains all of the project’s information per platform.

Typically, only one platform is loaded in the WwiseProjectDatabase at one time for cooking and packaging purposes; however, it is possible to load more than one platform.

참고: While working with your project’s Unreal Editor on a Mac, only the Mac platform must be loaded.

The Data structure’s structs contain:

  • A list of all loaded file names in the GeneratedPlatformFiles property.
  • One unique copy of each parsed JSON file in the JsonFiles property.
  • Refs for each accessible piece of data.

In addition, the Data structure allows templated accesses through functions such as GetRef.


Wwise Unreal Integration Documentation: WwiseResourceCooker Module

WwiseResourceCooker Module

The WwiseResourceCooker module provides the following functionalities:

  • Converts WwiseObjectInfo structures to cooked structures for the WwiseResourceLoader Module.
  • Copies requested objects’ files from the GeneratedSoundBanks to the Staging directory used by the packaging process.
참고
  • Content Cooking in Unreal Engine Documentation

Preparing Cooked Data for Wwise Objects

Starting with a WwiseObjectInfo structure that identifies a specific Wwise object, the WwiseResourceCooker gathers all the information from the Project Database related to that Wwise object and returns a "cooked" data structure containing that information.

For a SoundBank or media file, this is a simple operation since these are the building blocks, and they each represent an individual file. External sources are also relatively simple, but since they are expected to be user-defined, their complexity is unknown. That said, the default resulting cooked data only has the cookie as non-debugging information.

Some cooked data only contains a Short ID. Much like external sources with their cookie, the Short ID is the only required information in the cooked data of Triggers, Game Parameters (RTPCs), and Acoustic Textures. Similarly, Switches and States only require the identifier of the group they are a part of and the value they represent.

Other objects, such as Auxiliary Busses and Effect ShareSets, can be a little more complicated. The most complex is the Event, which can have multiple required media, SoundBanks, external sources, Aux Busses, and many optional Switch Container elements.

Default Instantiation versus Platform Instantiations

The WwiseResourceCooker has a default instantiation used in the Editor and uncooked projects. This instantiation is used for Play in Editor mode and provides cooked data on demand when the Wwise assets are loaded in the Editor. This data is similar to the cooked data that is serialized in Wwise assets in the packaged game. The only difference is that Editor cooked data uses resource files (.bnk and .wem) directly in the GeneratedSoundBanks folder. In contrast, packaged cooked data uses resource files that were packaged with the game.

When packaging, an external cooking process is usually spawned and is only responsible for cooking a specific platform. For example, on a Mac computer, where the default instantiation would be for the Mac platform, it is possible to instantiate an Android WwiseResourceCooker to package an Android game.

Since loading the Project Database for a platform can be time-consuming, only required platforms are loaded for each cooking process. Generally, this means only one platform is loaded in the Project Database. However, there can be multiple loaded platforms if the same process is cooking multiple platforms or if cooking is being run directly within the editor process.

From Cooking Wwise Resources to Staging

Based on internally cached cooked data, all required files are copied from the GeneratedSoundBanks to the Staging directory. Media and SoundBanks represent individual files. External sources are user-defined since the cookie doesn't represent a file. Other objects represent more than one file. For example, the Init Bank, which is technically a SoundBank, can also require external media files, so cooking the Init Bank also copies its media files.

Cooking Options

The following cooking options are available for packaged games.

ExportDebugNameRule

When cooking for the default instance (in Editor), each cooked asset has a debug name that contains the complete Wwise Object Path, making it easy to identify assets while debugging.

When you build a packaged game, the ExportDebugNameRule determines whether the debug name field of each asset is populated or left empty. Leaving these fields empty reduces the file size and makes it easier to reverse engineer; however, it also makes it harder to debug since only the assets' Short IDs can be used to identify the corresponding Wwise objects in the cooked data.

LoadOnReference

You can enable the LoadOnReference option on AkAudioEvent assets. When enabled, based on the current set of loaded Switches and States, only the required SoundBanks and media are loaded. Loading and unloading Switches or States, in turn, dynamically loads and unloads the associated resources. With the option disabled, when an Event that contains Switch Containers is loaded, all SoundBanks and media used by those Switch Containers are loaded.

When this option is enabled, the cooking process prepares an Event’s cooked data to support this dynamic loading of resources. When disabled, the cooked data loads all the resources with the Event.

You can enable this option on a per-asset basis.

참고: Enabling this option adds a lot of complexity and requires a clear understanding of the feature, especially if the project sets Switches and States programmatically. In most cases, the optimization provided by the option is not sufficient to outweigh these disadvantages.
참고
  • Optimizing Memory Usage with Reference-Loaded Switch Containers


Wwise Unreal Integration Documentation: 릴리즈 노트 2022.1.5.8242.2714

릴리즈 노트 2022.1.5.8242.2714

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2022.1.5.8242.2714 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27, 5.1 및 5.2에서 컴파일되었습니다. Unreal Engine 버전 5.2에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 성능 개선 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정
  • 문서 개선 사항

새로운 기능

  • WG-64213 Replaced Wwise Picker with the Wwise Browser. Refer to Managing Assets with the Wwise Browser for details.
  • WG-64582 Wwise 통합의 단위 테스트 추가.
  • WG-64691 Unreal Engine 5.2에 대한 지원 추가.
  • WG-64935 Unreal Insights Timers에 대한 기본 Stat Named Events 추가.
  • WG-65062 AkAudioDevice 및 Blueprint에 AddOutput과 RemoveOutput SDK 함수를 표시함.

API 개선 사항

  • WG-63778 Wwise 스트리밍 후크를 위한 API 레벨 브리지 제공.

성능 개선 사항

  • WG-65252 스트레스 상황에서 스트리밍 성능 개선 및 Unreal Engine Task Graph에 대한 의존도 감소.
  • WG-65412 런타임 Future/Promises가 요청시 Event를 생성해 제한된 플랫폼에서 동기화 리소스 경합을 제거.
  • WG-65520 Refactored the default open streaming I/O Hook to prepare for true asynchronous operation.

버그 수정

  • WG-64112 수정됨: 뱅크를 생성할 때, 변경된 음향 텍스처 흡수 값이 Unreal에서 업데이트되지 않음.
  • WG-64646 수정됨: 부분 일치만 발생하는 경우 네스팅된 Switch Container 간에 불필요한 Event 미디어가 로드됨.
  • WG-65314 수정됨: ExecutionQueue가 Task Graph 없이 삭제될 경우 크래시 발생.
  • WG-65414 수정됨: Spatial Audio 없이 PostEventAtLocation를 사용할 때 로그의 메시지 수가 줄어듬.
  • WG-65468 수정됨: BeginDestroy가 동기적 작업임.
  • WG-65606 수정됨: FWwisePlatformAPI의 GetWindowsDeviceCount 함수에 대한 AK 네임스페이스 누락.
  • WG-65915 수정됨: Mac Editor에서 Wwise 플러그인을 핫-리로드(hot-reload)할 때 크래시 발생.

커뮤니티에 보고된 버그 수정

  • WG-51967 수정됨: Linux에서 Unreal Editor의 Wwise 플러그인이 컴파일 되지 않음.
  • WG-55294 수정됨: 빈 맵에서 Play in Editor 세션을 시작할 때 크래시 발생.
  • WG-63309 수정됨: Play in Editor 세션을 준비할 때 UAkLateReverb 컴포넌트에서 크래시 발생.
  • WG-64233 수정됨: Wwise를 엔진 플러그인으로 빌드할 때 발생하는 GTE 연결 오류.
  • WG-64723 수정됨: UAkPortalComponent DestroyTextVisualizers의 잠재적인 문제.
  • WG-64845 수정됨: SoundBank 및 Media가 언로드되는 동안 WwiseFileHandler 모듈이 삭제되면 크래시 발생.
  • WG-65322 AkGameObjectsList::Term() is not called in GetActiveGameObjects.
  • WG-65363 수정됨: AkAudio 모듈이 실행되기 전에 Event와 같은 AkAudioTypes 를 로드할 때 "StagePath not set" 오류 발생.
  • WG-65671 수정됨: 아직 재생 중인 음악 미디어를 언로드할 때 크래시 발생.
  • WG-65682 수정됨: 아직 로드중인 스트리밍 에셋을 종료하면 로그 대신 오류 발생.

문서 개선 사항

  • WG-62447 Unreal Engine C++ Projects 에 패키징 요구 사항에 대한 섹션 추가.
  • WG-64544 Wwise Unreal 통합 시작 튜토리얼 업데이트 및 확장.
  • WG-65256 Unreal용 Wwise Demo Game의 위치에 대한 세부 정보 추가. Using the Wwise Demo Game 을 참고하세요.


Wwise Unreal Integration Documentation: 이전 버전 릴리즈 노트

이전 버전 릴리즈 노트

다음 페이지에서는 이전 릴리즈에서 만들어진 통합의 변경 사항에 대한 정보를 제공합니다.

  • 릴리즈 노트 2022.1.4.8200.2650
  • 릴리즈 노트 2022.1.3.8179.2621
  • 릴리즈 노트 2022.1.2.8150.2588
  • 릴리즈 노트 2022.1.1.8100.2529
  • 릴리즈 노트 2022.1.0.8070.2495
  • 릴리즈 노트 2021.1.11.7933.2437
  • 릴리즈 노트 2021.1.10.7883.2350
  • 릴리즈 노트 2021.1.9.7847.2311
  • 릴리즈 노트 2021.1.8.7831.2285
  • 릴리즈 노트 2021.1.7.7796.2228
  • 릴리즈 노트 2021.1.6.7774.2201
  • 릴리즈 노트 2021.1.5.7749.2171
  • 릴리즈 노트 2021.1.4.7707.2130
  • 릴리즈 노트 2021.1.3.7665.2079
  • 릴리즈 노트 2021.1.2.7629.2025
  • 릴리즈 노트 2021.1.1.7601.1995
  • 릴리즈 노트 2021.1.0.7575.1956
  • 릴리즈 노트 2019.2.15.7667.2164
  • 릴리즈 노트 2019.2.14.7616.2082
  • 릴리즈 노트 2019.2.13.7577.2037
  • 릴리즈 노트 2019.2.12.7544.1988
  • 릴리즈 노트 2019.2.11.7512.1949
  • 릴리즈 노트 2019.2.10.7490.1917
  • 릴리즈 노트 2019.2.9.7459.1876
  • 릴리즈 노트 2019.2.8.7432.1840
  • 릴리즈 노트 2019.2.7.7402.1803
  • 릴리즈 노트 2019.2.6.7381.1779
  • 릴리즈 노트 2019.2.5.7349.1747
  • 릴리즈 노트 2019.2.4.7329.1721
  • 릴리즈 노트 2019.2.3.7304.1690
  • 릴리즈 노트 2019.2.2.7275.1661
  • 릴리즈 노트 2019.2.1.7250.1621
  • 릴리즈 노트 2019.2.0.7216.1583
  • 릴리즈 노트 2019.1.11.7296.1702
  • 릴리즈 노트 2019.1.10.7250.1643
  • 릴리즈 노트 2019.1.9.7221.1609
  • 릴리즈 노트 2019.1.8.7173.1554
  • Release Notes 2019.1.7.7135.1513
  • 릴리즈 노트 2019.1.6.7110.1478
  • 릴리즈 노트 2019.1.5.7093.1459
  • 릴리즈 노트 2019.1.4.7065.1430
  • 릴리즈 노트 2019.1.3.7048.1409
  • 릴리즈 노트 2019.1.2.7018.1378
  • 릴리즈 노트 2019.1.1.6977.1336
  • 릴리즈 노트 2019.1.0.6947.1305
  • 릴리즈 노트 2019.1.0.6947.1299
  • Release Notes 2018.1.7.6880.1266
  • 릴리즈 노트 2018.1.6.6858.1242
  • 릴리즈 노트 2018.1.5.6835.1218
  • 릴리즈 노트 2018.1.4.6807.1189
  • 릴리즈 노트 2018.1.3.6784.1177
  • 릴리즈 노트 2018.1.3.6784.1153
  • 릴리즈 노트 2018.1.2.6762.1124
  • 릴리즈 노트 2018.1.1.6727.1082
  • 릴리즈 노트 2018.1.0.6714.1065
  • 릴리즈 노트 2017.2.9.6726.1089
  • 릴리즈 노트 2017.2.8.6698.1053
  • 릴리즈 노트 2017.2.7.6667.1010
  • 릴리즈 노트 2017.2.6.6636.979
  • 릴리즈 노트 2017.2.5.6619.962
  • 릴리즈 노트 2017.2.4.6590.933
  • 릴리즈 노트 2017.2.3.6575.917
  • 릴리즈 노트 2017.2.2.6553.895
  • 릴리즈 노트 2017.2.1.6524.866
  • 릴리즈 노트 2017.2.0.6500.836
  • 릴리즈 노트 2017.1.9.6501.856
  • 릴리즈 노트 2017.1.8.6488.843
  • 릴리즈 노트 2017.1.7.6467.822
  • 릴리즈 노트 2017.1.6.6446.801
  • 릴리즈 노트 2017.1.5.6429.783
  • 릴리즈 노트 2017.1.4.6407.760
  • 릴리즈 노트 2017.1.3.6377.732
  • 릴리즈 노트 2017.1.3.6377.715
  • 릴리즈 노트 2017.1.2.6361.696
  • 릴리즈 노트 2017.1.1.6340.673
  • 릴리즈 노트 2017.1.0.6302.628
  • 릴리즈 노트 2016.2.6.6153.513
  • 릴리즈 노트 2016.2.5.6121.484
  • 릴리즈 노트 2016.2.5.6121.471
  • 릴리즈 노트 2016.2.4.6098.451
  • 릴리즈 노트 2016.2.3.6077.435
  • 릴리즈 노트 2016.2.3.6077.422
  • 릴리즈 노트 2016.2.2.6022.371
  • 릴리즈 노트 2016.2.2.6022.359
  • 릴리즈 노트 2016.2.1.5995.317
  • 릴리즈 노트 2016.2.0.5972.301
  • 릴리즈 노트 2016.2.0.5972.274
  • 릴리즈 노트 2016.1.6
  • 릴리즈 노트 2016.1.5
  • 릴리즈 노트 2016.1.4
  • 릴리즈 노트 2016.1.3
  • 릴리즈 노트 2016.1.2
  • 릴리즈 노트 2016.1.1
  • 릴리즈 노트 2016.1.0 (UE4.12로 업데이트)
  • 릴리즈 노트 2016.1.0
  • Release Notes 2015.1.7
  • Unreal Engine 4.11 - Wwise 2015.1.6
  • Unreal Engine 4.10 - Wwise 2015.1.4
  • Unreal Engine 4.9 - Wwise 2015.1.2
  • Unreal Engine 4.8 - Wwise 2015.1.0
  • Unreal Engine 4.8 - Wwise 2014.1.5
  • Unreal Engine 4.7 - Wwise 2014.1.3
  • Unreal Engine 4.6 - Wwise 2014.1.1
  • Unreal Engine 4.5 - Wwise 2014.1
  • 2014년 8월 - Wwise v2014.1
  • 2014년 8월 - Wwise v2013.2.9
  • 2014년 7월 - Wwise v2013.2.9
  • 2014년 6월 - Wwise v2013.2.8
  • 2014년 4월 - Wwise v2013.2.7
  • 2014년 3월 - Wwise v2013.2.6
  • 2014년 1월 - Wwise v2013.2.5
  • 2013년 12월 - Wwise v2013.2.4
  • 2013년 10월 - Wwise v2013.2.1
  • 2013년 9월 - Wwise v2013.2.1
  • 2013년 8월 - Wwise v2013.2
  • 2013년 7월 - Wwise v2013.1.1
  • 2013년 6월 - Wwise v2013.1.1
  • 2013년 5월 - Wwise v2013.1.1
  • 2013년 3월 - Wwise v2013.1


Wwise Unreal Integration Documentation: 릴리즈 노트 2022.1.4.8200.2650

릴리즈 노트 2022.1.4.8200.2650

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2022.1.4.8200.2650 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27, 5.0 및 5.1에서 컴파일되었습니다. Unreal Engine 버전 5.1에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • API 개선 사항
  • 커뮤니티에 보고된 버그 수정

API 개선 사항

  • WG-64604 IWwiseSoundEngineAPI::IQuery::GetMaxRadius와 GetActiveGameObjects 메소드가 이제 AkArray 대신 Unreal 배열을 매개 변수로 사용함. 이를 통해 메모리 크래시가 해결되었습니다.

커뮤니티에 보고된 버그 수정

  • WG-64146 수정됨: Level Sequence의 AkEvent 섹션과 연결된 Event가 없을 때 크래시 발생.
  • WG-64699 Fixed: No audio in Cook on the Fly mode.
  • WG-64704 수정됨: 메인 스레드에서 Garbage Collector를 실행할 때 발생하는 멈춤 현상.
  • WG-64730 수정됨: Server 플랫폼을 패키징할 때 생성된 SoundBank를 필요로 함.
  • WG-64834 수정됨: 에셋 로딩, 언로딩 및 스트리밍시 너무 많은 Thread Event가 사용됨.
  • WG-64835 수정됨: 누락된 스트리밍 에셋을 로딩할 때 멈춤 현상 발생.
  • WG-64950 수정됨: 자동 정의 Zero Latency 프리페치 미디어가 Music에서 Source Starvation을 피할 수 있을 만큼 빠르게 SoundEngine으로 제공되지 않음.


Wwise Unreal Integration Documentation: 릴리즈 노트 2022.1.3.8179.2621

릴리즈 노트 2022.1.3.8179.2621

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2022.1.3.8179.2621 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27, 5.0 및 5.1에서 컴파일되었습니다. Unreal Engine 버전 5.1에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정

새로운 기능

  • WG-63815 UE5.2 초기 브랜치(early branch)를 위한 컴파일 지원 추가.

버그 수정

  • WG-63526 수정됨: Unreal 4.27에서 Audio Link를 요청할 때 종료시 충돌이 발생함.
  • WG-63964 수정됨: 한 스트리밍 미디어가 이미 재생 중일 때 또 다른 스트리밍 미디어를 재생하면 가끔 두 번째 미디어가 실패함.
  • WG-64013 수정됨: HF Damping 값을 계산하는 데 비활성화된 표면(surface)이 사용됨.
  • WG-64104 수정됨: Reverb Estimation 서비스 RTPC 값은 RTPC가 Unreal Project Settings에서 사용되지 않음에도 Wwise Authoring으로 전송됨.
  • WG-64137 수정됨: Switch Container Plug-in Media가 선택적으로 로드된 것으로 감지되지 않음.
  • WG-64138 수정됨: Audio Link나 AudioMixer 없이 Input Submix를 초기화하면 크래시가 발생함.
  • WG-64374 수정됨: 종료시 잘못된 Global Callback 등록 로그(Verbose에서 LogWwiseConcurrency로 표시됨).
  • WG-64678 수정됨: Unreal을 종료하는 도중 Wwise 모듈을 시작할 때 경고 로그를 출력하지 않음.

커뮤니티에 보고된 버그 수정

  • WG-63368 수정됨: Spatial Audio Volume의 Geometry Transmission Loss Value를 편집하면 Unreal 5.1에서 크래시 발생.
  • WG-63510 수정됨: UE5.2의 GetTypeHash 컴파일 문제.
  • WG-64257 수정됨: 프리페치(prefetch)가 있는 이미 삭제된 스트리밍 파일이 열릴 때 assert가 발생하지 않음.
  • WG-64317 수정됨: WwiseExecutionQueue 초기화 해제시 애플리케이션 종료시 멈추는 문제.
  • WG-64523 수정됨: FWwiseExecutionQueue::ProcessWork에서 간헐적으로 크래시가 발생함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2022.1.2.8150.2588

릴리즈 노트 2022.1.2.8150.2588

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2022.1.2.8150.2588 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27, 5.0 및 5.1에서 컴파일되었습니다. Unreal Engine 버전 5.1에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 성능 개선 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정

새로운 기능

  • WG-62790 Unreal Engine 5.1에 대한 정식 지원 추가.
  • WG-63373 Global Callback에 대한 멀티캐스트 델리게이트(delegate) 추가.
  • WG-63770 Wwise SDK에서 제공하는 새로운 기능을 기반으로 Advanced Initialization Settings(고급 초기화 설정)에 uMaxSystemAudioObjects 추가.
  • WG-63771 Wwise SDK에서 제공하는 새로운 기능을 기반으로 Advanced Initialization Settings(고급 초기화 설정)에 bPlotQueueLevel 추가. 이 기능에 대한 더 자세한 내용은 Wwise SDK의 PS4 관련 정보 페이지를 참고하세요.

성능 개선 사항

  • WG-62583 파일 스트리밍이 이제 Unreal 기본 클래스가 아닌 커스텀 클래스를 통해 제공됨. UDN IFileCacheHandle checks if file is present 참고.
  • WG-63624 AK::MemoryMgr::TrimForThread 가 이제 멀티 코어 모드에서 실행시 Wwise 작업자 함수가 완료될 때 호출되어 특히 시스템에서 많은 수의 스레드로 Unreal을 실행할 때 Wwise가 예약해놓고 사용하지 않은 메모리의 양을 줄임.

기타 수정 사항

  • WG-63709 LogWwiseResourceLoader의 Verbose와 VeryVerbose 로그 정보 개선.
  • WG-63832 Windows에서 Unreal Project에 Wwise를 통합할 때 더 이상 macOS용 Wwise SDK를 설치하지 않아도 됨.

버그 수정

  • WG-60708 수정됨: 포털 앞과 뒤 공간의 이름 텍스트가 읽기 어려운 문제.
  • WG-61802 수정됨: Unreal Editor에서의 잘못된 Reverb Parameter Estimations.
  • WG-62695 수정됨: HF Damping 값이 Auto Assign Aux Bux를 토글할 때만 새로 고쳐짐.
  • WG-62962 수정됨: WwiseDemoGame을 빌드할 때 뜨는 'IniKeyBlacklist' 사용 중단 경고.
  • WG-63008 수정됨: FAkGeometryComponentDetailsCustomization 에서 발생하는 Unreal Editor 크래시.
  • WG-63286 수정됨: Only use Unreal audio(Unreal 오디오만 사용) 오디오 라우팅 옵션이 Wwise 사운드 엔진을 비활성화하지 않음.
  • WG-63365 수정됨: UE5.1에서 Spatial Audio Volume의 지오메트리 볼륨 계산이 두 배가 됨.
  • WG-63366 수정됨: 맵에 새로운 Spatial Audio Volume을 추가한 후 Undo(Ctrl+Z)를 하면 Unreal Editor에서 크래시 발생.
  • WG-63710 수정됨: Reference-Loaded Switch Container Media가 필수 플러그인 미디어로 잘못 간주됨.
  • WG-63720 수정됨: Ak Submix Input 컴포넌트가 5.1나 7.1 음원를 수신할 때 Audio Link에서 크래시가 발생함.
  • WG-63723 수정됨: Audio Link를 사용하는 프로젝트에서 가비지 수집 도중 발생하는 크래시.
  • WG-63945 수정됨: 스트리밍된 미디어를 언로드할 때 크래시가 발생함.

커뮤니티에 보고된 버그 수정

  • WG-62961 수정됨: 일부 장치의 스피커에서 Wwise에서 나오는 사운드가 다른 사운드보다 작게 들림. 이 기기들에서 낮은 레이턴시 오디오 재생을 비활성화하는 새로운 플랫폼 옵션이 추가되었습니다.
  • WG-63417 수정됨: Spatial Audio Geometry와 Portal을 스트리밍할 때 발생하는 성능 문제.
  • WG-63433 수정됨: Wwise를 Engine 플러그인으로 통합할 때 발생하는 빌드 실패.
  • WG-63445 수정됨: 맵에 에셋의 수가 많은 WaitForFutures에서 발생하는 스택 오버플로우.
  • WG-63466 수정됨: Reference-Loaded Switch Container Media가 있는 Event를 언로드할 때 발생하는 크래시.
  • WG-63483 수정됨: SpawnAkComponentAtLocation의 AutoDestroy 옵션이 컴포넌트를 파기하지 않음.
  • WG-63547 수정됨: AkAudio 모듈의 필수 모듈에서 WwiseProjectDatabase 가 누락되었음.
  • WG-63605 수정됨: 소스 코드 전반에 걸쳐 undef LOCTEXT_NAMESPACE 가 누락되었음.
  • WG-63745 수정됨: SN-DBS로 빌드할 때 발생하는 오류.
  • WG-63790 수정됨: FWwiseResourceLoaderImpl::SetLanguage의 언어 전달 로직 오류.
  • WG-63824 수정됨: FAkReverbDescriptor::CalculateHFDamping에서 크래시가 발생함.
  • WG-63829 수정됨: 프로젝트 데이터베이스 로딩에 커스텀 스레드 풀을 사용하지 않음.
  • WG-63938 수정됨: FWwiseExecutionQueue::StopWorkerIfDone()에서 크래시가 발생함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2022.1.1.8100.2529

릴리즈 노트 2022.1.1.8100.2529

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2022.1.1.8100.2529 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27 및 5.0 에서 컴파일되었습니다. Unreal Engine 버전 5.0에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 성능 개선 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-62176 설정에서 Unreal 오디오 라우팅을 변경할 수 있습니다.
  • WG-63237 프로젝트 모듈 내에서 Wwise 플러그인 모듈을 연결할때 옵션을 단순화했습니다.
  • WG-63284 사전에 컴파일된 헤더가 없는 배포 빌드에 대한 기본적 지원

API 개선 사항

  • WG-63175 WwiseSoundEngine에서 비동기 작업을 수행하는 대신 재정의(overridable) 가능한 WwiseConcurrency 모듈을 만들었습니다.
  • WG-63176 이제 Game 스레드에서 지연된 동시 작업(recurring deferred concurrent)을 반복적으로 수행하고 호출자(caller)와 동기화할 수 있습니다.

성능 개선 사항

  • WG-62668 이제 WwiseResourceLoader 작업이 완전히 비동기화되어 멈춤을 발생시킬 수 있는 높은 Task Graph 사용량을 수정했습니다.

기타 수정 사항

  • WG-63238 Build 파일에서 Sound Engine 버전 감지 코드를 업데이트했습니다.

버그 수정

  • WG-58074 수정됨: AkAudioMixer가 Unreal 5.0와 Unreal 5.1에서 사운드 재생을 방해함.
  • WG-62497 수정됨: HFDamping에 대해 SetRTPCValue()를 호출할 때 잘못된 부동 소수점 값 경고.
  • WG-62693 수정됨: (Spatial Audio) Ak Geometry가 Simple Collision이 없는 액터에서 Simple Collision로 설정된 경우 경고나 오류 메시지가 표시되지 않음.
  • WG-62699 수정됨: (Spatial Audio) Complex Edge Topology가 있는 지오메트리에서 크래시가 발생함.
  • WG-62902 수정됨: Wwise Demo Game의 Spatial Audio Tutorial 맵에서 Play_ComplexRoom에 Transmission 손실이 있음.
  • WG-62944 수정됨: (공간 오디오) Room 컴포넌트가 있는 일부 오브젝트에 할당되지 않은 Late 리버브 경고.
  • WG-63177 수정됨: 전역 콜백(Global callback)이 플러그인 콘텍스트(plug-in context)를 제공하지 않음.
  • WG-63178 수정됨: WwiseExecutionQueue가 맞춤 스레드 풀(thread pool)을 사용하지 않음.
  • WG-63324 Dedicated Server 빌드에 대해 전체 Wwise 모듈 추가.

커뮤니티가 보고한 버그 수정

  • WG-52856 수정됨: Stomp Allocator를 사용할 때 Editor 종료 시 크래시가 발생함.
  • WG-61296 수정됨: SoundBank는 활성화된 Unreal Editor에서 지원하는 플랫폼에서만 생성될 수 있음.
  • WG-62558 수정됨: SignedVolumeOfTriangle과 BodySetup의 정의 사이에 충돌이 있음.
  • WG-62796 수정됨: "More than one ref per language" 오류 메시지의 세부 정보가 충분하지 않음.
  • WG-62797 수정됨: Event 내에서 Set Switch와 Set State이 "More than one ref per language" 경고로 이어짐. Switch Container 로딩과 함께 AkAudioEvent에서 사용하는 것을 실패함.
  • WG-62801 수정됨: Editor에서 각 Aux Bus를 로드하는 동안 "More than one ref per language found" 메시지가 기록됨.
  • WG-63059 수정됨: 쿠킹된 데이터가 Wwise 에셋에서 불필요하게 직렬화(serialized)되기 때문에 서버 빌드에서 Serial 크기가 같지 않던 문제.


Wwise Unreal Integration Documentation: 릴리즈 노트 2022.1.0.8070.2495

릴리즈 노트 2022.1.0.8070.2495

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2022.1.0.8070.2495 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에). 마이그레이션에 대한 자세한 설명은 Wwise 2022.1로 프로젝트 업그레이드하기 를 참고하세요.

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27 및 5.0 에서 컴파일되었습니다. Unreal Engine 버전 5.0에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 작동 방식 변경 사항
  • 성능 개선 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-49047 Unreal Level Editor Viewport에 VisualizeRoomsAndFeatures 상태를 토글하는 옵션을 추가함.
  • WG-54310 자동 정의 SoundBank 옵션을 추가함. 활성화하면 Wwise가 가능한 경우 각 Event와 Aux Bus에 대해 SoundBank를 자동으로 정의합니다. 자세한 내용은 SoundBank 자동 정의하기를 참고하세요.

자동 정의 SoundBank는 SoundBank 설정을 통해 활성화됩니다. 자세한 내용은 SoundBank Settings를 참고하세요.

  • WG-54325 AkSettings에 ShowReverbInfo 속성을 추가함. 새 속성을 사용하여 뷰포트에서 AkLateReverbComponent에 대한 정보를 표시하거나 숨길 수 있습니다.
  • WG-54368 Event-Based Packaging 및 Asset Synchronization이 이제 Generated SoundBanks 폴더를 통해서만 수행됨. 이를 SSOT(Single Source Of Truth, 단일 진실 공급원) 작업 과정이라고도 합니다.
  • WG-56798 Unreal Level Editor에서 연결된 Room의 이름을 보여주는 텍스트를 Portal에 추가함.
  • WG-57544 AkEffectShareSet 에셋을 추가함.

Bus, Output Device 및 Actor Mixer에서 Effect ShareSet를 설정하는 블루프린트 기능을 추가함.

  • WG-57973 이제 AkMigration 커맨드렛을 통해 프로젝트 마이그레이션을 할 수 있음.
  • WG-59194 새로운 오류 메시지 변환기와 관련하여 XML 및 WAAPI의 시간 초과 값을 조정하기 위해 두 개의 새로운 Wwise User Settings를 추가함. 이 설정은 Error Message Translator라는 새 섹션에서 찾을 수 있습니다.
  • WG-60953 Wwise에서 실행되는 세그먼트를 보여주는 타이머의 범위가 이제 Unreal의 CPU 프로파일러에 기록되고 Timing Insights의 일부로 표시되어 Wwise CPU 시간을 소비하는 원인을 더 잘 이해할 수 있게됨. Voice Starvation과 관련된 Event의 로그도 Timing Insights에 즐겨찾기로 기록됩니다.
  • WG-61215 완전한 비동기 에셋(fully asynchronous asset) 로드 및 언로드가 추가됨.

API 개선 사항

  • WG-55810 외부 음원 처리가 이제 WwiseExternalSourceManager 인터페이스를 통해 관리됨. 이 인터페이스는 미디어 로드를 위한 기본 기능과 클래스를 제공하지만 완전히 작동하려면 사용자 코드에 의해 확장되어야 합니다.
  • WG-55811 Wwise Demo Game에서 사용되는 WwiseSimpleExternalSourceManager라는 WwiseExternalSourceManager의 최소 구현을 추가함.
  • WG-56507 TryUnsetMedia가 이제 비동기 중지 명령을 실행하고 미디어를 사용할 수 없는 것으로 표시하여 TryUnsetMedia에 대한 반복 호출이 결국 성공할 수 있도록 보장함.
  • WG-57220 FAkAudioDevice 클래스에 Obstruction과 Occlusion 호출을 추가함.
  • WG-59008 Low level sound engine이 이제 WwiseSoundEngine 모듈에 있음.
  • WG-60672 AkAudioDevice의 PostEvent 함수가 이제 더 명확한 이름을 가지며 UAkAudioEvent 오브젝트나 ShortId만 허용하여 Event를 지정함.
  • WG-61185 Wwise SDK API와 대응하도록 FAkAudioDevice::SetOcclusionAndObstruction의 이름이 FAkAudioDevice::SetObjectObstructionAndOcclusion로 변경됨.
  • WG-61754 Blueprint의 PostEvent 호출은 더 이상 External Source를 지원하지 않음. Event ShortID나 Event Name이 있는 PostEvent 호출은 더 이상 사용되지 않습니다. Async PostEvent 호출은 더 이상 사용되지 않습니다.

작동 방식 변경 사항

  • WG-56246 이제 Blueprint나 C++를 사용하여 런타임에 Mastering Suite ShareSet를 변경할 수 있음.
  • WG-57541 자동 에셋 동기화가 제거됨.
  • WG-57543 Unreal 에셋의 자동 WAAPI 동기화를 비활성화함.
  • WG-57545 Wwise와 WAAPI Picker에서 Wwise 에셋을 가져오는 메뉴 옵션을 추가함.
  • WG-57546 이제 Wwise 및 WAAPI Picker에서 에셋을 블루프린트, 오브젝트 속성, Content Browser로 직접 드래그할 수 있음.
  • WG-58218 Wwise Picker와 WAAPI Picker를 동시에 사용할 수 있음.
  • WG-60762 (Spatial Audio) AK::SpatialAudio::SetEarlyReflectionsVolume을 사용하여 설정한 초기 리플렉션 볼륨이 이제 AK::SpatialAudio::SetImageSource를 사용하여 설정한 허음원과 지오메트리에서 계산된 리플렉션에 적용됨.
  • WG-60907 모든 플랫폼에서 'Samples Per Frame' 초기화 설정의 기본값을 512로 변경함. 이렇게 하면 Wwise의 기본 CPU 사용량이 약간 증가하지만 사운드 엔진의 총 오디오 대기 시간은 크게 줄어듭니다. 게임의 총 오디오 레이턴시와 사용 가능한 컴퓨팅 리소스의 균형을 맞추기 위해 'Samples Per Frame' 및 'Number of Refills In Voice'를 조정하는 것이 좋습니다.
  • WG-60985 Time To First Reflection 변수의 단위가 초에서 밀리초로 변경됨. 이미 매핑된 Game Parameter 변수의 범위는 이제 초 단위가 아닌 밀리초 단위여야 합니다.
  • WG-61088 WwiseAudioMixer가 더 이상 기본적으로 로드되지 않음.
  • WG-61630 DefaultGame.ini 설정에서 정의된 모든 플랫폼 전용(platform-specific) AkAudio.AkInitializationSettings가 이제 해당 플랫폼별 Game.ini 파일에 저장됨. DefaultGame.ini의 기존 설정은 여전히 로드되지만 이제 수정 사항은 플랫폼 정용 Game.ini에 자동으로 저장됩니다.
  • WG-61703 이제 Wwise Sound Engine 모니터 메시지가 LogWwiseMonitor 카테고리에 기록됨.
  • WG-61968 Clear Wwise Cache 옵션이 제거됨. 필요한 경우 Wwise Authoring을 사용하여 캐시를 삭제하세요.

성능 개선 사항

  • WG-60585 이제 스트리밍 미디어에 비동기 파일 작업(asynchronous file operation)을 사용함.

기타 수정 사항

  • WG-49994 AkAcousticPortal 및 AkSpatialAudioVolume 액터의 CollisionChannel 속성과 AkComponent의 OcclusionCollisionChannel 속성을 업데이트함. 이제 이 속성에 Wwise Integration Settings에 정의된 값을 사용하는 Use Integration Settings Default 옵션이 있습니다.
  • WG-57979 OpenPortal과 ClosePortal에 대한 호출이 더 이상 쌓이지 않도록 AkAcousticPortal Component를 업데이트함.
  • WG-58066 사용되지 않는 AkFolder 에셋을 제거함.
  • WG-60370: Visual Studio 2022 지원 추가
  • WG-60852 Wwise Demo Game의 Wwise 프로젝트가 'UnrealWwiseDemo' 폴더에서 'Wwise Project' 폴더로 옮겨짐.
  • WG-61144 포털의 앞과 뒤의 공간이 동일하다는 AkAcousticPortal 메시지의 심각성 레벨을 낮췄음. 이제 경고 메시지 대신 로그로 표시됩니다.
  • WG-61216 Wwise 모듈에 대한 Subsystem 사용이 제거됨..
  • WG-61500 Havok 및 기타 물리 엔진이 Wwise Unreal Integration을 사용할 수 있도록 함.

버그 수정

  • WG-54552 수정됨: (Spatial Audio) 포털을 통한 경로가 정확하지 않음. 직선 경로에서 0이 아닌 회절이 있거나 경로가 포털을 완전히 놓치는 경우가 있었음.
  • WG-57304 수정됨: Surface Reflector 구성 요소가 큰 값을 사용하여 배치될 때 Brush Editing 모드에서 단일 면을 선택하면 편집할 수 없음.
  • WG-57354 수정됨: Plane 지오메트리를 Wwise로 보낼 때 잘못 변환되어 Game Object 3D Viewer에서 잘못된 지오메트리가 발생함.
  • WG-60315 수정됨: 에셋이 이미 존재하는 경우 Wwise Picker에서 Content Browser로 에셋을 드래그할 때 크래시가 발생함.
  • WG-61042 수정됨: SetOcclusionScalingFactor 및 GetOcclusionScalingFactor 블루프린트 함수가 아무 작업도 하지 않음.
  • WG-61121 수정됨: Clear Sound Data 대화 상자에 사용되지 않는 옵션과 잘못된 네이밍이 있음. 이 대화 상자의 이름은 이제 Clear Wwise Cache입니다.
  • WG-61125 수정됨: Server 및 Client Unreal 빌드가 올바른 플랫폼을 찾을 수 없음.
  • WG-61129 수정됨: Standalone Game 모드에서 소리가 나지 않음.
  • WG-61242 수정됨: 외부 음원과 관련된 변경 사항이 동시에 이루어짐.
  • WG-61266 수정됨: Wwise Picker에서 에셋을 드래그하여 생성할 때 발생할 수 있는 크래시.
  • WG-61518 수정됨: Spatial Audio Tutorial의 Blueprint Building에 Geometry보다 더 큰 Room이 있으며 HF Damping을 측정하기 위해 Geometry 컴포넌트를 연결하지 않음.
  • WG-61525 수정됨: FAkSurfaceReflectorSetDetailsCustomization의 소멸자(destructor)에서 크래시가 발생함.
  • WG-61658 수정됨: Switch Container의 플러그인 미디어와 외부 음원이 WwiseProjectDatabase에서 제대로 파싱되지 않음.

커뮤니티가 보고한 버그 수정

  • WG-60332 수정됨: Wwise Project Path를 설정하기 위한 대화 상자가 GeneratedSoundBanks 폴더 대신 Wwise 프로젝트 폴더를 고려함.
  • WG-60969 수정됨: (Spatial Audio) 리스너 위치가 포털과 겹치면 회절을 사용하는 이미터가 들리지 않음.
  • WG-61202 수정됨: Editor 세션에서 Play를 중지하면 AkAudioMixer가 중지됨.
  • WG-61226 수정됨: Editor 세션에서 Play를 일시 중지해도 사운드가 중지되지 않음.
  • WG-61291 수정됨: DefaultGame.ini가 Editor 시작 시 업데이트됨.
  • WG-61334 수정됨: 얼굴이 움직일 때 AkSpatialAudioVolumes의 얼굴별 음향 정보가 재설정됨.
  • WG-61790 수정됨: 컴플렉스 메시에 AkGeometry를 추가하면 스태틱 메시를 계산하는 동안 Unreal이 정지됨.
  • WG-61953 수정됨: 빈 Asset이 쿠킹(cooking)중 경고(warning) 대신 오류(error)를 발생시킴.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.11.7933.2437

릴리즈 노트 2021.1.11.7933.2437

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2021.1.11.7933.2437 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에). 중요한 마이그레이션 참고 사항 2021.1.11.7933.2437

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.26, 4.27 및 5.0 에서 컴파일되었습니다. Unreal Engine 버전 4.27.2 및 5.0.2에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정

새로운 기능

  • WG-62395 Unreal Engine 5.1에 대한 예비 지원 추가.

기타 수정 사항

  • WG-60370: Visual Studio 2022 지원 추가
  • WG-61144 포털의 앞과 뒤의 공간이 동일하다는 AkAcousticPortal 메시지의 심각성 레벨을 낮췄음. 이제 경고 메시지 대신 로그로 표시됩니다.
  • WG-61500 Havok 및 기타 물리 엔진이 Wwise Unreal Integration을 사용할 수 있도록 함.

버그 수정

  • WG-61803 수정됨: AkAudioDevice::TryUnsetMedia 에서 발생하는 크래시.

커뮤니티에 보고된 버그 수정

  • WG-53480 수정됨: Unreal 패키징에 빌드된 플랫폼 외에 다른 플랫폼의 SoundBank가 포함됨.
  • WG-59395 수정됨: PostEventAsync 블루프린트는 가비지 수집기의 Event에 핀을 연결하고 추가시간을 더해 메모리 누수를 일으킴.
  • WG-59779 수정됨: 게임에서 나갈 때 AkAudioDevice::CleanPinnedObjects에서 발생할 수 있는 크래시.
  • WG-60234 수정됨: 프리패치 부분이 없는 스트리밍된 사운드가 Unreal IO 훅으로 등록되지 않아 "Failed creating source" 오류를 야기함.
  • WG-60969 수정됨: (Spatial Audio) 리스너 위치가 포털과 겹치면 회절을 사용하는 이미터가 들리지 않음.
  • WG-60974 수정됨: 표면을 움직일 때 AkSpatialAudioVolumes 에 대한 해당 표면별 음향 정보가 재설정됨.
  • WG-61026 수정됨: Wwise에서 오디오 소스 데이터를 대체하고 사운드 데이터를 재생성한 후 Unreal Editor의 메모리에 있는 미디어가 업데이트되지 않음.
  • WG-61050 수정됨: Switch Container 안에서 두 개의 서로 다른 Switch 값이 한 미디어를 공유할 경우 "Media not loaded" 오류 발생.
  • WG-61202 수정됨: Editor 세션에서 Play를 중지하면 AkAudioMixer가 중지됨.
  • WG-61226 수정됨: Editor 세션에서 Play를 일시 중지해도 사운드가 중지되지 않음.
  • WG-61291 수정됨: DefaultGame.ini가 Editor 시작 시 업데이트됨.
  • WG-61296 수정됨: SoundBank는 활성화된 Unreal Editor에서 지원하는 플랫폼에서만 생성될 수 있음.
  • WG-61297 수정됨: Blueprint Clustering을 사용할 때 발생하는 잘못된 경고.
  • WG-61323 수정됨: HF Damping을 RTPC와 함께 사용하면 항상 0을 나타냄.
  • WG-61597 수정됨: 잘못된 시간에 가비지 수집기가 검사할 경우 스트리밍 미디어가 멈출 수 있음. AkUnrealIOHook에 더 자세한 로그가 추가돼있습니다.
  • WG-61790 수정됨: 컴플렉스 메시에 AkGeometry를 추가하면 스태틱 메시를 계산하는 동안 Unreal이 정지됨.
  • WG-61850 수정됨: (Spatial Audio) 리스너와 포털의 위치가 겹칠 경우 회절을 사용하는 모든 이미터의 소리가 들리지 않을 수 있음.
  • WG-61910 수정됨: Wwise Project 파일을 찾지 못하면 빌드가 실패할 수 있는 오류를 로그함.
  • WG-62182 수정됨: 맵을 변경할 때 AkOcclusionObstructionService 에서 발생할 수 있는 크래시.
  • WG-62514 수정됨: 숫자로 시작하는 Work Unit과 Folder를 나타내는 Unreal Asset이 에셋 동기화를 실행할 때 움직이지 않음.
  • WG-62722 수정됨: 커맨드렛을 실행할 때 Wwise Settings 대화 상자가 열림.


Wwise Unreal Integration Documentation: 중요한 마이그레이션 참고 사항 2021.1.11.7933.2437

중요한 마이그레이션 참고 사항 2021.1.11.7933.2437

Spatial Audio AkGeometry 컴포넌트

AkGeometryComponent 의 기본 Mesh Type이 Simple Collision으로 변경되어 이러한 컨포넌트가 맵에 추가되는 것을 최적화했습니다. 21.1.11로 업데이트 후 AkGeometryComponent 를 Static Mesh로 설정했다면 Simple Collision으로 변경되기 때문에 이를 다시 설정해야 합니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.10.7883.2350

릴리즈 노트 2021.1.10.7883.2350

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2021.1.10.7883.2350 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.26, 4.27 및 5.0 에서 컴파일되었습니다. Unreal Engine 버전 4.27.2 및 5.0.2에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 성능 개선 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정

성능 개선 사항

  • WG-57180 AkComponent.h 코드를 최적화하여 Unreal 통합 API의 성능을 개선함.

기타 수정 사항

  • WG-59977 Static Mesh 컴포넌트의 Simple Collision 메쉬를 Spatial Audio Geometry로 변환하도록 코드를 최적화함.

버그 수정

  • WG-60030 수정됨: UE5에서 새로 생성된 Ak Actor가 에디터에서 프로파일링할 때 일반적인 이름을 사용함.
  • WG-60291 수정됨: Brush Editing 모드에서 Spatial Audio Volume의 꼭지점을 결합할 때 Unreal이 강제 종료됨.
  • WG-60292 수정됨: Spatial Audio Tutorial Map의 모든 SAV에 음향 텍스처가 None으로 설정됨.
  • WG-60331 수정됨: Ak Late Reverb 컴포넌트를 Static Mesh 컴포넌트에 추가한 후 쓰레기 수집 중 Unreal이 강제 종료됨.
  • WG-60348 수정됨: SetGameObjectRadius API 호출이 해당 Game Object ID를 리턴하지 않음.
  • WG-60351 수정됨: SetPosition 및 SetGameObjectInRoom이 Unreal 게임이 비활성 상태인 동안 모든 프레임에서 호출됨.
  • WG-60626 수정: Unreal Editor를 종료할 때 로그에 불필요한 "Could not unload media" 오류가 표시됨.
  • WG-60744 수정됨: 레벨을 전환하고 게임을 닫을 때 강제 종료될 수 있음.

커뮤니티에 보고된 버그 수정

  • WG-55309 수정됨: Unreal 에디터를 닫은 상태에서 Wwise 에셋을 생성한 후 에디터를 열면 Unreal이 에셋을 생성하지만 소스 컨트롤에 자동으로 추가하지 않음.
  • WG-56694 수정됨: Wwise를 업그레이드한 후 프로젝트를 처음 열 때 강제 종료됨.
  • WG-57295 수정됨: WAAPI로 SoundBank를 생성할 때 Unreal Editor가 강제 종료됨.
  • WG-57514 수정됨: AddressSanitizer를 실행할 때 문자열이 올바르게 변환되지 않음.
  • WG-58812 수정됨: Portal이 씬에서 등록 취소될 때 모든 Spatial Audio Room이 업데이트됨.
  • WG-60364 수정됨: 로딩이 완료되지 않은 미디어 에셋을 파괴할 경우 게임이나 렌더링 스레드가 차단될 수 있음.
  • WG-60527 수정됨: 미디어 메모리를 할당할 수 없을 경우 강제 종료됨.
  • WG-60592 수정됨: 기본 속성에 연결된 RTPC를 사용하는 Modulator를 사용할 때 강제 종료됨.
  • WG-60619 수정됨: UE 4.27에서 Chaos 물리가 활성화되었을 때 컴파일 문제.
  • WG-60820 수정됨: Wwise Project 정보를 찾을 수 없을 때 Wwise 설정에서 Unreal Culture와 Wwise Culture 매핑이 제거됨.
  • WG-60864 수정됨: Sequencer를 일시 중지해도 사운드가 일시 중지되지 않음
  • WG-61029 수정됨: 전용 서버 모드에서 에디터를 실행할 때 'Skipping media load' 로그가 스팸됨.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.9.7847.2311

릴리즈 노트 2021.1.9.7847.2311

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2021.1.9.7847.2311 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.26, 4.27 및 5.0 에서 컴파일되었습니다. Unreal Engine 버전 4.27.2 및 5.0.1에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

기타 수정 사항

  • WG-60187 Geometric Tools Engine 라이브러리 코드 파일에 잘못 추가된 저작권 표시가 제거됨.

버그 수정

  • WG-55708 수정됨: Wwise Unreal Engine 통합 플러그인 이름과 설명에 Unreal Engine 4가 언급되어 있음.
  • WG-58756 수정됨: Set Inner/Outer Radius 및 SetGameObjectRadius 블루프린트 기능의 혼동.
  • WG-58918 수정됨: UE5에서 Spatial Audio Volumes의 Volume 값이 잘못되었음.
  • WG-59253 수정됨: Ak Geometry 구성요소가 Static Mesh 유형으로 설정된 Static Mesh 구성요소의 컴포넌트를 변경할 때 크래시가 발생함.
  • WG-59951 수정됨: 상자 모양이 아닌(non-box-shaped) Spatial Audio Volumes의 표면적이 잘못되었음.
  • WG-59965 수정됨: Spectator 모드에서 AkAcousticPortals를 회전하면 업데이트되지 않음.
  • WG-60023 수정됨: 기하학의 자동 텍스처 할당에 대한 맞춤이 깨졌습니다.
  • WG-60059 수정됨: 대상 언어에 대한 에셋 데이터가 포함되지 않은 AkAudioBank 에셋의 언어를 전환할 때 크래시가 발생함. AkAudiobank "현지화된 데이터를 찾을 수 없음" 로그를 오류에서 경고로 다운그레이드함.
  • WG-60069 수정됨: Ak Geometry 컴포넌트에서 Acoustic Textures가 None 대신 Unknown으로 보고됨.
  • WG-60074 수정됨: XB1 플랫폼에서 플러그인을 찾을 수 없음
  • WG-60086 수정됨: Ak Geometry 컴포넌트는 블루프린트의 충돌 컴포넌트에서 스태틱 메시 유형으로 설정할 수 있음.
  • WG-60394 수정됨: Unity 빌드가 꺼진 상태에서 빌드가 실패함.
  • WG-59600 수정됨: FakAudioModule이 에디터가 아닌 빌드에서 아이콘을 로드하고 WAAPI를 초기화하려고 시도함.

커뮤니티가 보고한 버그 수정

  • WG-58518 수정됨: GenerateSoundBanks 커맨드렛을 실행할 때 새로 사용된 미디어 에셋이 생성되지 않음. 새 forceAssetSync 스위치를 사용하여 새 에셋 생성을 강제 실행함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.8.7831.2285

릴리즈 노트 2021.1.8.7831.2285

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.8.7831.2285 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에). 중요한 마이그레이션 참고 사항 2021.1.8.7831.2285

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.26, 4.27 및 5.0 에서 컴파일되었습니다. Unreal Engine 버전 4.27.2 및 5.0.1에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 작동 방식 변경 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-54828 개별 Wwise 에셋의 사운드 데이터를 지우는 새로운 옵션을 이제 Unreal Content Browser에서 사용할 수 있음. Sound Voice를 Soun SFX로 또는 그 반대로 변경한 후 Sound Data를 지우는 데 필요한 단계를 용이하게 합니다.
  • WG-59571 Unreal Engine 5.0.1 지원 추가.

작동 방식 변경 사항

  • WG-58889 Play in Editor 세션을 종료하면 이제 모든 사운드가 중지됨.
  • WG-59966 통합이 더 이상 에셋이 로드될 때 에셋에서 발견된 ShortID를 자동으로 수정하지 않음. Output 로그에 잘못된 ShortID 경고가 표시되는 경우 Sound Data를 재생성하고 수정된 모든 에셋을 저장함.

기타 수정 사항

  • WG-53953 Wwise 초기화 오류는 로컬 출력의 초기에 보고됨.
  • WG-56843 UPROPERTY는 이제 기본적으로 초기화됨.

버그 수정

  • WG-54251 수정됨: 현지화된 Unreal 에셋 데이터가 "Clear Sound Data" 유틸리티로 제거되지 않음.
  • WG-59502 수정됨: 동일한 미디어가 SetMedia를 여러 번 호출할 수 있어 메모리 누수가 발생함.
  • WG-59589 수정됨: Unreal의 뱅크 에셋을 참조하는 에셋이 없는 경우 모든 Event가 연결된 Event 목록에 추가됨. (이 버그는 뱅크 동작에 영향을 미치지 않지만 편집기(editor) 성능에 부정적인 영향을 줄 수 있습니다).
  • WG-60163 수정됨: Wwise에서 오디오 소스를 다시 가져오고 사운드 데이터를 재생성한 후 Unreal Editor의 메모리에 있는 미디어가 업데이트되지 않음.
  • WG-60218 수정됨: Event-Based Packaging을 사용하지 않을 때 패키징 오류.
  • WG-60252 수정됨: 사운드 보이스에 Convolution Reverb를 추가할 때 자동 로드 오류를 설정할 수 없음.
  • WG-60254 수정됨: AkMediaMemoryManager::ReleaseMediaMemory: 현지화된 미디어에 대한 Negative RefCount 오류.
  • WG-60263 수정됨: 게임 시작 시 RecursionNotAllowed 어서트.

커뮤니티가 보고한 버그 수정

  • WG-50111 수정됨: 현지화된 Event가 SoundBank에서 그룹화될 때 언어를 변경하면 오류가 발생함.
  • WG-50220 수정됨: 현재 Set Current Audio Culture 블루프린트으로 Cultures를 변경할 때 크래시가 발생함.
  • WG-51577 수정됨: 레벨을 로드한 직후 현지화를 변경할 때 크래시가 발생함.
  • WG-53151 수정됨: 현지화된 미디어 데이터가 레벨 로드 시 즉시 게시된 Event에 대해 너무 늦게 로드됨(예시: Level Sequence 타임라인).
  • WG-55967 수정됨: Content Browser에서 미리보기할 때 현지화된 Event가 재생되지 않음.
  • WG-56459 수정됨: 동일한 미디어를 참조하는 Event를 재생하는 두 맵 간에 전환할 때 크래시가 발생함.
  • WG-56793 수정됨: Switch Container에서 현지화된 보이스 스트리밍이 때때로 재생되지 않음.
  • WG-56935 수정됨: Eve가 재생되는 동안 맵을 전환하면 크래시가 발생함.
  • WG-57378 수정됨: Unreal DirectoryWatcher API에 잘못된 플래그가 전달됨.
  • WG-57751 수정됨: S Switch Container Media가 활성화된 Switch Container의 현지화된 미디어가 제대로 로드되지 않음. 또한 Sound Data 생성 중에 미디어가 스트리밍된 것과 스트리밍되지 않은 것으로 모두 구문 분석될 때의 리포트로 인해 재생 문제가 발생함.
  • WG-58000 수정됨: UAkSettings::OnAssetAdded가 최적화되지 않음.
  • WG-58616 수정됨: 현지화된 미디어가 없으면 새 로케일로 전환할 수 없음.
  • WG-58659 수정됨: 레거시 SoundBank를 사용할 때 긴 맵 로드 시간.
  • WG-59006 수정됨: Unreal Spatial Audio 포털은 모양이 변경될 때 업데이트되지 않음.
  • WG-59266 수정됨: 2021.1.4에서 AkPoly 및 AkEdgeInfo의 마이그레이션이 누락되어 각각 AkSurfacePoly 및 AkSurfaceEdgeInfo로 이름이 변경됨.
  • WG-59294 수정됨: 이후에 로드된 두 레벨에 게시할 때 스트리밍 사운드가 재생되지 않음.
  • WG-59295 수정됨: Unreal 통합의 AkRoomComponent.cpp에서 사용되지 않는 변수
  • WG-59440 수정됨: GenerateSoundBanks 커맨드렛에서 존재하지 않는 플랫폼을 인수로 지정할 때 경고가 기록되지 않음.
  • WG-60111 수정됨: Wwise Convolution Reverb Effect가 프로젝트에 있는 경우 WAAPI를 통해 사운드 데이터를 생성할 때 크래시가 발생함.
  • WG-60162 수정됨: 상위 미디어 에셋이 로드를 시작하기 전에 Media Asset Data가 자동 로드가 필요한지 확인할 때 중단됨.
  • WG-60165 수정됨: 커맨드렛에서 사운드 데이터를 Cooking 할 때 멈추던 문제.
  • WG-60208 수정됨: UAkAssetDataSwitchContainer 기본 오브젝트를 직렬화할 때 로그에 'Event data not up to date' 경고가 표시됨.
  • WG-60233 수정됨: Linux 서버 빌드에서 Cook이 실패함.


Wwise Unreal Integration Documentation: 중요한 마이그레이션 참고 사항 2021.1.8.7831.2285

중요한 마이그레이션 참고 사항 2021.1.8.7831.2285

현지화

미디어 및 플랫폼 데이터 로드에 관한 수정 사항으로 인해 21.1.8로 마이그레이션한 후 Sound Data를 다시 생성해야 합니다. 대부분의 Wwise Unreal 에셋은 다음 프로세스를 통해 업데이트됩니다. Sound Data를 생성한 후에도 "Media data [...]가 최신 상태가 아닙니다. 사운드 데이터를 재생성하세요."라는 메시지가 표시되면 Wwise Unreal 에셋의 데이터를 지우고 Sound Data를 생성해야 합니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.7.7796.2228

릴리즈 노트 2021.1.7.7796.2228

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.7.7796.2228 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 작동 방식 변경 사항
  • 커뮤니티가 보고한 버그 수정

작동 방식 변경 사항

  • WG-57995 Sound Data 생성 도중 에셋 로딩 성능 개선.

커뮤니티가 보고한 버그 수정

  • WG-57987 수정됨: Legacy (EBP가 아닌) 모드에서 Sound Data를 생성할 때 게임 스레드에 있지 않은 상태에서 에셋을 로딩할 경우 크래시가 발생함.
  • WG-58133 수정됨: AkAudio 모듈이 로드되기 전에 Wwise 에셋이 로드될 경우 크래시가 발생함.
  • WG-58160 수정됨: AkSurfaceReflectorSetComponent에서 지오메트리를 전송할 때 크래시가 발생함.
  • WG-58882 수정됨: Unreal 5의 Linux 컴파일 오류.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.6.7774.2201

릴리즈 노트 2021.1.6.7774.2201

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.6.7774.2201 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에). 중요한 마이그레이션 참고 사항 2021.1.6.7774.2201

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-55555 GenerateSoundBanks 커맨드렛에 두 개의 새로운 인자를 추가함. autosubmit은 생성된 에셋을 소스 컨트롤에 자동으로 제출하며 clnum은 커밋 숫자를 지정합니다.
  • WG-57694 Unreal Engine Release_5.0 브랜치 호환성을 개선함. 통합은 #18425151 변경 목록에 대해 시험되었습니다.
  • WG-58002 AkRoomComponent에 SetGeometryComponent 함수를 추가함. 어떤 AkGeometryComponent를 사용하여 공간의 지오메트리를 Wwise로 전송할 것인지 선택할 수 있습니다.

기타 수정 사항

  • WG-54479 OpenPortal과 ClosePortal로의 호출이 쌓이지 않도록 AkAcousticPortal Component를 업데이트함.

버그 수정

  • WG-51015 수정됨: Event 콜백에서 마커 라벨과 음악 큐의 이름이 올바르게 복사되지 않음.
  • WG-54245 수정됨: ASCII 문자가 모두 WAAPI 메시지에서 올바르게 전송되지 않음.
  • WG-55387 수정됨: Unreal Asset Registry가 에셋 찾기를 끝내기 전에 레벨 시퀀스를 열 경우 Sequencer에서 크래시가 발생함.
  • WG-57433 수정됨: 구성 입력란이 누락됨으로 인해 Unreal 4.27.1에서 Unreal Demo Game이 XDK로 Xbox One 플랫폼용으로 패키징되는 것에 실패함.

커뮤니티가 보고한 버그 수정

  • WG-53110 수정됨: Content Browser의 맥락형 메뉴에서 재생되는 Event가 Play In Editor (PIE) 모드를 끝낸 후에 무음 처리됨.
  • WG-54864 수정됨: 일반 경로로 매핑된 Music Switch Container에 중첩된 미디어가 올바르게 로드되지 않음.
  • WG-56245 수정됨: AkAudioBank에서 LinkedAkEvent를 추적할 때 뱅크 에셋이 변경되었다고 잘못 표시됨.
  • WG-57271 수정됨: AkBankManager가 SoundBank가 레거시 모드로 업로드되지 못하도록 막음.
  • WG-57276 수정됨: AkAudioMixer에서 FAkMixerPlatform::GetPlatformSettings() 함수가 FPlatformProperties에서 지정된 커스텀 플랫폼 설정을 리턴하지 않음.
  • WG-57789 수정됨: Blueprint 콜백을 사용할 때 크래시와 메모리 누출이 발생함.
  • WG-57791 수정됨: AkLateReverbComponent에 있는 Boolean 논리 연산자에 오타가 있음.
  • WG-57812 수정됨: Blueprint 노드에서 PostAndWaitEndOfEvent를 사용할 때 크래시가 발생함.
  • WG-57933 수정됨: Unreal legacy I/O 연결을 사용하는 도중 Authoring을 게임 세션과 연결할 때 크래시나 멈추는 문제가 발생함.


Wwise Unreal Integration Documentation: 중요한 마이그레이션 참고 사항 2021.1.6.7774.2201

중요한 마이그레이션 참고 사항 2021.1.6.7774.2201

Spatial Audio 포털

  • OpenPortal and ClosePortal로의 호출이 더 이상 '쌓이지' 않도록 AkPortalComponent 기능이 업데이트됨. 띠리사 OpenPortal로의 호출이 즉시 포털을 열게 되며 ClosePortal로의 호출이 즉시 포털을 닫게 됩니다. 오래된 기능의 경우 OpenPortal로의 호출이 여러 개가 될 경우 포털을 닫기 위해 동일한 수의 ClosePortal 호출이 필요했습니다. 이 기능을 사용하는 코드가 있을 경우 업데이트해주세요.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.5.7749.2171

릴리즈 노트 2021.1.5.7749.2171

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.5.7749.2171 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 기타 수정 사항
  • 커뮤니티가 보고한 버그 수정

기타 수정 사항

  • WG-57402 다음 Wwise Unreal 통합 버전에서는 Matinee 지원이 제거됨. 이 Wwise Unreal 버전은 Matinee에서 Level Sequence로 마이그레이션 할 수 있는 최종 버전입니다.

커뮤니티가 보고한 버그 수정

  • WG-56161 수정됨: 미디어가 잘못된 시기에 언로드될 경우 CreateStreamingRequest가 스트리밍 미디어에서 어서트를 일으킬 수 있음. 이제 새로운 스트리밍 데이터를 요청하기 전에 미디어 에셋 유효성을 확인하게 됩니다.
  • WG-56267 수정됨: Split Switch Container Media를 사용할 때 랜덤 직렬화 순서로 인해 "Media not loaded" 오류가 생김.
  • WG-56455 수정됨: Switch Container 안에 있는 서로 다른 Switch가 동일한 Media를 참조할 경우 XML/JSON 뱅크 파일에 있는 일부 Media ID가 누락됨.
  • WG-56716 수정됨: Split Switch Container Media와 중첩된 Switch Container를 사용할 때 "Media not loaded" 오류가 일어남.
  • WG-56795 수정됨: 지오메트리 브러쉬 편집 모드를 사용하여 변경된 AkSurfaceReflectorSet에서 구성된 Spatial Audio 공간(Room)의 크기가 정확하지 않음.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.4.7707.2130

릴리즈 노트 2021.1.4.7707.2130

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.4.7707.2130 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-29814 오프라인 렌더링 지원을 추가함.
  • WG-55847 Unreal 플러그인에 Unreal Audio Mixer 출력을 Wwise Audio Input 음원으로 출력하도록 해주는 AkAudioMixer라는 새로운 모듈을 추가함. Unreal 플러그인에 Unreal 서브믹스를 Wwise Audio Input 음원으로서 사용하도록 해주는 AkSubmixInputComponent라는 새로운 입력 컴포넌트를 추가함.
  • WG-56104 AkGeometry Details Panel에 표면 속성 덮어쓰기를 제어할 수 있는 커스텀 섹션을 추가함.
  • WG-56197 AkAudioDevice에서 오프라인 렌더링 SDK 함수를 표시함.

API 개선 사항

  • WG-55479 AkAudioDevice에서 오프라인 렌더링 SDK 함수를 표시함.

버그 수정

  • WG-52933 수정됨: Automatic Asset Synchronization을 끈 채로 이름이 변경된 Wwise UAsset을 교체할 경우 크래시가 발생할 수 있음.
  • WG-54119 수정됨: 브러쉬 지오메트리를 편집한 후 Spatial Audio Volumes에서 음향 텍스처가 올바르지 않은 면으로 지정됨.
  • WG-54524 수정됨: Sound Data 생성 도중 'Ensure condition failed' 오류.
  • WG-55714 수정됨: 어드레스 새니타이저(address sanitizer) 아래에서 UE4를 사용할 경우 Spatial Audio에서 잘못된 메모리를 읽음.
  • WG-55920 수정됨: AkPortalComponent, AkRoomComponent, AkLateReverbComponent, AkGeometryComponent의 Transform 속성에서 0이 아닌 값이 나타남.
  • WG-55941 수정됨: AkRoomComponent에서 공간의 방향이 잘못됨.

커뮤니티가 보고한 버그 수정

  • WG-51494 수정됨: AutoSaves가 Sound Data 생성 도중 트리거될 경우 크래시가 발생할 수 있음. 이제 생성 과정 도중에는 AutoSave 토글이 비활성화됩니다.
  • WG-54995 수정됨: FAkMixerPlatform::GetOutputDeviceInfo가 요청된 채널 정보를 올바르게 초기화하지 않음.
  • WG-55312 수정됨: AkAudio 모듈이 초기화되기 전에 미디어가 로드되어 RecursionNotAllowed 오류가 생김.
  • WG-55548 수정됨: AkGeometryComponent에서 충돌 지오메트리가 올바르게 배열되지 않음.
  • WG-55715 수정됨: 레벨 전환 도중 생성 후 미디어 에셋이 파괴될 경우 엣지 케이스(edge case)의 Sound Engine에서 미디어가 설정 해제될 수 있음.
  • WG-55966 수정됨: 언로드 도중 컨볼루션 리버브 미디어가 너무 빨리 해지되어 크래시가 발생함.
  • WG-56058 수정됨: UAkLateReverbComponent UPROPERTY에서 누락된 카테고리로 인해 엔진 플러그인을 빌드하지 못함.
  • WG-56139 수정됨: SoundBank 에셋 데이터를 파싱할 때 사운드 데이터 생성 도중 데드락이 일어날 수 있음.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.3.7665.2079

릴리즈 노트 2021.1.3.7665.2079

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.3.7665.2079 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 작동 방식 변경 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-52844 {{AK::SoundEngine::RegisterOutputDeviceMeteringCallback}}을 Unreal에 표시하여 Audio Device 미터를 모니터링할 수 있도록 함.
  • WG-52873 새로운 Blueprint 함수가 이제 SetPortalObstructionAndOcclusion, SetGameObjectToPortalObstruction, SetPortalToPortalObstruction Spatial Audio API 함수를 사용함.
  • WG-53713 이제 Unreal IO Store 패키징 옵션이 지원됨.

API 개선 사항

  • WG-53512 SetRTPCValueByPlayingID to AkAudioDevice를 표시함.
  • WG-53543 GetRTPCValue, SetRTPCValue, SetState, SetSwitch를 FAkAudioDevice에 Short ID로 표시함.

작동 방식 변경 사항

  • WG-54766 미디어 에셋을 언로드하면 미디어가 먼저 재생을 멈추며, 강제로 언로드하는 대신 에셋이 사용되지 않을 때까지 기다림.
  • WG-55592 SoundEngine을 중단할 때 StopAll 으로의 호출 추가.

기타 수정 사항

  • WG-55062 수정됨: Wwise Demo Game에서 이글루 Reverb Volume에서의 RoomVerb 참조가 누락됨.

버그 수정

  • WG-54232 수정됨: Clear Sound Data에서 옵션이 선택되었을 때 연결되지 않은 미디어가 올바르게 제거되지 않음.
  • WG-54273 수정됨 : External Source에서 비동기적 PostEvent 호출을 사용할 경우 이벤트가 게시되기 전에 메모리에서 External Source 파일 이름이 제거됨.
  • WG-54493 수정: Clear Sound Data가 항상 해당 항목이 변경되었다고 표시함.
  • WG-54950 수정됨: Event-Based Packaging과 SoundBank로 묶여진 Event를 사용할 경우 사운드 데이터를 생성할 때 Unreal Editor에서 크래시가 발생함.
  • WG-54998 수정됨: GenerateSoundbanksCommandlet이 체크아웃할 수 없었던 파일을 체크인하려고 함.
  • WG-55086 수정됨: Music Container의 일반 경로와 연관된 미디어를 파싱할 경우 SoundBank 생성 도중 크래시가 발생함.
  • WG-55097 InitBank 에셋이 올바른 폴더로 옮겨지도록 Event-Based Packaging으로의 마이그레이션을 수정함.
  • WG-55201 수정됨: Split Switch Container Media가 활성화되었을 경우 Music Switch Container의 Generic Path와 연결된 미디어가 로드되지 않음. 이제 이를 참조하는 Event와 함께 자동으로 로드됨.
  • WG-55229 수정됨: Unreal Editor에서 Switch Container에 의해 참조되는 미디어 에셋을 삭제할 경우 에디터에서 크래시가 발생함.
  • WG-55318 수정됨: 빌드를 패키징할 때 WAAPI Picker에 의해 크래시가 발생할 수 있음.
  • WG-55336 수정됨: Undo 이후 AkSpatialAudioVolume Actor에서 Volume과 Area 값이 잘못 표시됨.
  • WG-55460 수정됨: 콜백이 파괴된 후 쓰레기 수집된 잠재적 동작과 상호작용하여 크래시가 발생할 수 있음.
  • WG-55591 이제 Switch Value 에셋을 언로드하면 연관된 미디어가 올바르게 언로드됨.

커뮤니티가 보고한 버그 수정

  • WG-51927 수정됨: DirectoriesToAlwaysCook이 루트 폴더 항목을 포함할 경우 DirectoriesToAlwaysCook을 검토할 때 크래시가 발생함.
  • WG-53436 수정됨: 일정 시간 이후 (몇 초에서부터 몇 분까지) UAkInputComponent가 예기치 않게 중단됨.
  • WG-54287 수정됨: 파서(parser)의 문제로 인해 Init Bank 에셋에 있는 DefaultLanguage가 올바르지 않게 설정됨.
  • WG-54729 수정됨: Event Based Packaging을 사용하지 않은 작업 과정에서 Sound Data를 생성하는 도중 SoundBank 정보를 파싱할 때 Wwise Unreal 에셋이 변경되었다고 표시며 불필요하게 로드됨.
  • WG-54843 수정됨: 레벨을 너무 일찍 언로드할 경우 비동기적 로드 요청이 올바르지 않게 취소됨.
  • WG-54947 수정됨: 과정 도중 Asset이 너무 빨리 저장되었을 경우 Asset이 GenerateSoundBanksCommandlet 변경 목록에 추가되지 않음.
  • WG-55002 수정됨: Auto Destroy가 활성화된 AkComponent가 비동기적으로 게시되었을 경우 자동으로 제거되지 않음.
  • WG-55006 수정됨: 레벨을 언로드하여 FWaitEndOfEventAction 잠재적 동작이 파괴된 이후 여전히 호출될 경우 크래시가 발생함.
  • WG-55081 수정됨: 'Clear data in assets'에 의해 제거되는 Wwise UAsset Short ID가 State 값을 위해 항상 재생성되지 않음. 이제 Unreal에서 올바르지 않은 Short ID를 보고하여 경고해줍니다.
  • WG-55107 수정됨: 반환된 Playing Id가 AkComponent's PostAkEventAndWaitForEnd Blueprint 함수에서 올바르게 설정되지 않으며 AkComponent의 PostAkEventAndWaitForEndAsync Blueprint 함수에서 잠재적 동작이 생성되지 않고 Event가 게시되지 않음.
  • WG-55464 수정됨: AkAcousticPortal이 올바르게 배치되었더라도 유효하지 않은 공간 ID를 반환함.
  • WG-55578 Wwise 초기화 설정에서 MONITOR_QUEUE_DEFAULT_SIZE의 기본값을 1MB로 업데이트함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.2.7629.2025

릴리즈 노트 2021.1.2.7629.2025

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.2.7629.2025 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 성능 개선 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

성능 개선 사항

  • WG-54411 Editor 로드 시간 개선.

기타 수정 사항

  • WG-53918 AkRoomComponent에서 AkEvent 속성이 Details 패널에 있는 다른 속성과 더 가깝게 표시되도록 우선 순위를 변경함.
  • WG-54267 Unreal Demo Game Monitor Queue Pool Size(언리얼 데모 게임 모니터 대기 풀 크기) 증가.

버그 수정

  • WG-54115 수정됨: Spatial Audio 컴포넌트가 Add Component 버튼으로부터 레벨 안에서 Blueprint Actor 인스턴스에 추가될 경우 크래시가 발생함.
  • WG-54151 수정됨: AkRoomComponent의 Details 패널에서 안에 있는 속성을 편집한 후에 AkEvent 섹션이 접혀짐.
  • WG-54171 수정됨: AkLateReverbComponent에 자매 AkRoomComponent가 없을 경우 속성 변경이 올바르지 않게 처리됨.
  • WG-54264 수정됨: (Spatial Audio) Room Game Object 자동 등록 도중 공간이 필요할 때 가끔 등록되지 않아서 'Unknown listener game object ID.' 메시지가 Capture Log에 출력됨.
  • WG-54417 수정됨: Event가 여러 Actor-Mixer를 참조하는 스위치 값이 담긴 Switch Container를 참조할 경우 Sound Data 생성 후에 Event가 항상 수정되었다고 표시됨.
  • WG-54494 수정됨: Content Browser에서 AkEvent UAsset에 삭제나 유효하지 않은 이동 작업을 실행할 경우 크래시가 발생할 수 있음.
  • WG-54517 수정됨: Spatial Audio Volume Details 패널에서 Fit To Geometry 섹션이 관련 섹션으로부터 너무 많이 떨어져 있음.
  • WG-54536 Unreal Acoustic Portal: 포털이 그 자리에서 회전할 경우 포털의 유효성이 업데이트되지 않음.
  • WG-54597 수정됨: Late Reverb Component가 Level Editor로부터 유효하지 않은 상위 계층으로 추가된 후 다시 상위 계층이 주어질 경우 계속해서 비활성화된 채로 유지됨.
  • WG-54662 수정됨: 텍스트 시각화 속성을 저장할 경우 Unreal 맵이 수정되었다고 불필요하게 표시됨.
  • WG-54750 수정됨: AkAcousticPortal Details 패널에서 Fit To Geometry 섹션이 관련 섹션으로부터 너무 멀리 떨어져 있음.
  • WG-54751 수정됨: Fit To Geometry 속성을 작업 취소/작업 재실행할 경우 Spatial Audio Volume 지오메트리가 정확하지 않음.
  • WG-54780 수정됨: Late Reverb Component를 유효하지 않은 Component 종류에 추가할 경우 크래시가 발생함.
  • WG-54791 수정됨: Room Component 속성을 편집할 경우 Play in Editor 세션 도중 크래시가 발생함.

커뮤니티가 보고한 버그 수정

  • WG-54498 수정됨: Split Switch Container Media가 활성화된 채로 Sound Data를 생성할 경우 크래시가 발생할 수 있음.
  • WG-54558 수정됨: 'Zero-Latency'가 활성화되지 않은 스트리밍 사운드가 다시 로드될 경우 크래시가 발생할 수 있으며 재생 문제가 생길 수 있음.
  • WG-54581 수정됨: 공간(room)이 아닌 SpatialAudioVolume이 담긴 스트리밍 레벨을 언로드하고 다시 로드할 경우 크래시가 발생함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.1.7601.1995

릴리즈 노트 2021.1.1.7601.1995

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.1.7601.1995 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

기타 수정 사항

  • WG-53145 Spatial Audio Volume 상세 정보 패널에서 'Geometry Settings'를 'Geometry Surfaces'로부터 구분함.

버그 수정

  • WG-50934 수정됨: AkBankManager에서 뱅크를 로드할 때 크래시가 발생할 수 있음.
  • WG-51387 수정됨: InitBank 에셋이 다시 로드된 후에 Sound Data를 생성할 경우 크래시가 발생함.
  • WG-53164 수정됨: IsEnabled가 false로 설정된 AkRoomComponent가 런타임 때 활성화될 수 없음.
  • WG-53257 수정됨: 통합에서 CPU Limit 값이 고정되지 않음
  • WG-53440 수정됨: Enable Surface Reflectors 체크 상자가 Play in Editor 도중 아무 효과를 내지 않음.
  • WG-53456 수정됨: Wwise에서 담겨 있는 폴더나 Work Unit과 동일한 이름을 가진 에셋을 생성할 경우 Unreal 오류가 발생함. 이 오류 수정은 기존의 숨겨진 폴더 메타데이터 uasset의 이름에 '_FOLDER' 접미어가 추가되도록 변경합니다.
  • WG-53589 수정됨: 에디터 속성 변경 알림 메시지에서 AkLateReverbComponent와 AkGeometryComponent가 누락됨.
  • WG-53604 수정됨: Blueprint가 생성한 Component에서의 UPROPERTY 변경 처리.
  • WG-53645 수정됨: Wwise.app으로의 상대적 경로가 Wwise User Settings에서 유효하지 않다고 보고됨.
  • WG-53803 수정됨: Split Switch Container Media 기능이 작동하지 않음.
  • WG-53984 수정됨: 레벨 에디터에서 액터에 AkRoomComponent를 추가할 경우 크래시가 발생함.
  • WG-54031 수정됨: Blueprint with Auto-Assign Aux Bus(레벨 에디터의 상세 정보 패널에서 변경됨)가 true로 기본 설정된 커스텀 Blueprint에 추가된 AkLateReverbComponent에서 Aux Bus를 편집할 수 없음.
  • WG-54088 수정됨: Blueprint가 추가한 컴포넌트에서 자동 지정 보조 버스가 비활성화되어 있을 경우 AkLateReverbComponent 사용자 지정 보조 버스가 저장되지 않음.
  • WG-54244 수정됨: 컨테이너를 전환할 때 패키징된 게임에서 미디어가 누락됨. 이 버그 수정은 모든 미디어 에셋을 변경하게 됩니다.

커뮤니티가 보고한 버그 수정

  • WG-51186 수정됨: 사용 중인 SoundBank를 비동기적으로 언로드하고 즉시 다시 로드할 경우 크래시가 발생함.
  • WG-53031 수정됨: Event-Based Packaging에서 Convolution Reverb가 여전히 꼬리 모드에 있을 때 레벨을 언로드할 경우 크래시가 발생할 수 있음.
  • WG-53340 수정됨: Event-Based Packaging을 사용하지 않을 경우 이벤트의 메타데이터가 변경되더라도 해당 이벤트가 변경되었다고 표시되지 않음.
  • WG-53585 수정됨: SoundBank 생성 도중 모든 파싱 작업이 끝날 때까지 기다리지 않고 미디어 쿠킹으로 넘어가버림.
  • WG-53707 수정됨: Event 에셋이 삭제될 때 필요한 뱅크에서 Linked Ak Event의 목록이 입력값을 제거하지 않음.
  • WG-53789 - 수정됨: AkAudioEvent가 파괴되는 도중 UAkAudioEvent::IsReadyForFinishDestroy() 프레임이 하락됨.
  • WG-53850 수정됨: FAkAudioStyle::TextMaterial 이 Unreal Editor의 쓰레기 수집기에 의해 삭제될 수 있으며 이로 인해 크래시가 발생함.
  • WG-53947 수정됨: Event-Based Packaging을 사용하지 않는 경우 AuxBus만 담은 SoundBank가 생성되지 않음.
  • WG-54076 수정됨: 비동기적인 작업으로 게임 스레드 코드가 실행될 경우 Sound Data 생성 도중 크래시가 발생함.
  • WG-54116 수정됨: Sound Data를 생성하는 도중 Editor를 디버그 모드로 사용할 경우 크래시가 발생함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.0.7575.1956

릴리즈 노트 2021.1.0.7575.1956

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2021.1.0.7575.1956 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에). 중요한 마이그레이선 참고 사항 2021.1.0.7575.1956

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 작동 방식 변경 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-35740 Blueprint에서의 Spatial Audio: UPrimitiveParent 컴포넌트에 연결할 수 있는 UAkPortalComponent 추가. UAkRoomComponent, UAkLateReverbComponent, UAkGeometryComponent가 어떤 UPrimitiveComponent로든 연결될 수 있도록 일반화함. 통합 설정 안에 포털과 공간 배치에 도움을 주는 Visualize Rooms and Portals 옵션을 추가함.
  • WG-46375 이제 Ak Portal 컴포넌트를 Blueprint 클래스에 추가할 수 있음.
  • WG-48244 이제 System Audio Device가 Microsoft Spatial Sound를 통해 3D Audio를 지원함.
  • WG-48270 AkLateReverbComponent에 버스 할당과 잔향 매개 변수 예측을 추가함.
  • WG-48507 Volumetric Emitter Component를 추가함.
  • WG-48703 Unreal Editor 뷰포트에 공간과 포털 시각화를 추가했으며, Unreal 프로젝트 설정 메뉴의 Wwise Integration 설정에서 활성화/비활성화할 수 있음.
  • WG-50210 Game Object 3D Viewer의 사용자가 지정한 모든 크기를 조정하기 위해 게임에 의해 전송되는 새로운 설정에 대한 지원 추가.
  • WG-51976 이제 음향 텍스처 (acoustic texture)의 색깔이 이제 Wwise 프로젝트와 Unreal 프로젝트 사이에 동기화됨.
  • WG-52051 Ak Surface Reflector Set Component (그리고 Spatial Audio Volume) 에서 음향 표면 속성의 UI를 업데이트함. 이제 Unreal Editor에서 Brush Editing 모드를 사용하여 텍스처를 한 개 이상의 면으로 할당할 수 있습니다.
  • WG-52685 물리적 폴더 계층 구조가 이제 프로젝트 파일로부터 직접 파싱됨.

API 개선 사항

  • WG-47085 AK::IAkPluginMemAlloc for reallocation: AK::IAkPluginMemAlloc::Realloc과 AK::IAkPluginMemAlloc::ReallocAligned에 새로운 메소드를 추가함.
  • WG-50742 Spatial Audio의 매개 변수의 이름이 '차단(occlusion)' 대신 '전달 손실(transmission loss)'을 사용하도록 변경함.

작동 방식 변경 사항

  • WG-47039 Virtual Folder (가상 폴더)가 이제 Wwise와 Unreal Content Browser 사이에 자동적으로 동기화됨.
  • WG-48155 Ak Room과 Ak Late Reverb 컴포넌트가 이제 AVolume이 아닌 액터에도 추가될 수 있음. Ak Room과 Ak Late Reverb 컴포넌트 Blueprint 함수를 이제 액터 Blueprint에서 호출할 수 있음.
  • WG-49551 에디터를 열거나 에셋을 동기화할 때 AkAssetDatabase가 에셋을 더 이상 로드하지 않아서 전반적으로 로드 시간을 감소함.
  • WG-52785 이제 커멘드렛을 실행할 때 WAAPI가 비활성화됨.

기타 수정 사항

  • WG-47980 플러그인에 스태틱 라이브러리의 이름을 지정할 수 있는 새로운 선택적 XML 속성을 추가함.
  • WG-49988 이제 포털이 X축을 '앞면'으로 사용하여 Unreal 좌표 시스템과 대응할 수 있음.
  • WG-53093 에셋을 이동하고 에셋 동기화를 실행할 때 불필요한 대화 메시지를 제거함.

버그 수정

  • WG-48689 수정됨: Blueprint 클래스에서 AkGeometry 컴포넌트를 인스턴스화할 때 nullptr 예외가 일어남.
  • WG-50804 수정됨: MaxSimultaneousReverbVolumes의 이름과 툴팁에 컴포넌트가 누락됨.
  • WG-50861 수정됨: 모든 UAkRoomComponent와 UAkLateReverbComponent에 대한 선형적 검색으로 인해 AkComponent의 위치 업데이트가 차선적임. 이 선형적 검색은 컴포넌트의 개수와 대수적으로 비례하는 공간적 색인 데이터 구조로의 쿼리로 교체됨.
  • WG-52242 수정됨: 특수 문자가 포함된 이름을 가진 폴더를 이동하기 위해 Unreal Editor에 의해 전송된 WAAPI 명령어가 실패함.
  • WG-52305 수정됨: 에셋 동기화에 관한 다양한 문제.
  • WG-52824 수정됨: 대량의 에셋을 삭제할 경우 크래시가 발생함.
  • WG-53335 수정됨: WEM Opus 형식을 AkExternalSourceInfo의 Codec ID 드롭다운에서 사용할 수 없음.

커뮤니티가 보고한 버그 수정

  • WG-52245 Unreal Editor에서 Wwise 오브젝트를 변경한 내용이 Wwise Authoring에 항상 적용되지 않음.
  • WG-52893 수정됨: 네스트된 Work Unit을 변경할 경우 Wwise Picker에 반영되지 않음.
  • WG-53195 수정됨: AkGeometry의 ConvertConvexMeshToGeometryData()가 볼록한 메시(convex mesh)를 페치하지 않으며 항상 경계 상자에 의존함.
  • WG-53444 수정됨: AkLowLevelMemory::Alloc이 페이지와 정렬된 메모리를 리턴하지 않을 수 있음.


Wwise Unreal Integration Documentation: 중요한 마이그레이선 참고 사항 2021.1.0.7575.1956

중요한 마이그레이선 참고 사항 2021.1.0.7575.1956

2021.1에서 Spatial Audio Initialization Settings가 업데이트 및 개선되었습니다. 프로젝트를 2021.1로 업데이트할 경우 Spatial Audio Initialization Settings가 원하는대로 모두 설정되었는지 확인해주세요. 새로운 설정에 대한 더 자세한 설명은 AkSpatialAudioInitSettings 구조체 참조를 참고해주세요.

Spatial Audio Portal

  • AkPortalComponent 가 연결된 공간을 감지할 때 자체적인 X 축을 '앞'으로 사용해서 Unreal의 좌표 시스템과 정렬됨. 기존 레벨에 있는 포털의 경우 올바른 방향으로 전환됩니다.
  • AkAcousticPortal 의 Initial State 속성이 추후 버전에서 사용 중단됩니다. 초기 상태는 이제 AkPortalComponent 에 의해 처리됩니다. 기존의 AkAcousticPortal 액터는 초기 상태를 해당 AkPortalComponent 로 전달하게 됩니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.15.7667.2164

릴리즈 노트 2019.2.15.7667.2164

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.15.7667.2164 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

  • 중요한 마이그레이션 참고 사항 2019.2.15.7667.2164
참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.26과 4.27에서 컴파일되었습니다. Unreal Engine 버전 4.27.2에 대해 테스트되었습니다. 앞서 언급한 것보다 최신의 모든 메이저 Unreal Engine 버전은 현재 지원되지 않습니다. Unreal Engine 5는 Wwise 2019.2에서 지원되지 않습니다. Unreal Engine 5 지원이 필요할 경우 Wwise 2021.1로 업데이트하세요.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 작동 방식 변경 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-54828 개별 Wwise 에셋의 사운드 데이터를 지우는 새로운 옵션을 이제 Unreal Content Browser에서 사용할 수 있음. Sound Voice를 Soun SFX로 또는 그 반대로 변경한 후 Sound Data를 지우는 데 필요한 단계를 용이하게 합니다.
  • WG-55555 GenerateSoundBanks 커맨드렛에 두 개의 새로운 인자를 추가함. autosubmit은 생성된 에셋을 소스 컨트롤에 자동으로 제출하며 clnum은 커밋 숫자를 지정합니다.

작동 방식 변경 사항

  • WG-57995 Sound Data 생성 도중 에셋 로딩 성능 개선.
  • WG-58889 Play in Editor 세션을 종료하면 이제 모든 사운드가 중지됨.
  • WG-59966 통합이 더 이상 에셋이 로드될 때 에셋에서 발견된 ShortID를 자동으로 수정하지 않음. Output 로그에 잘못된 ShortID 경고가 표시되는 경우 Sound Data를 재생성하고 수정된 모든 에셋을 저장함.

기타 수정 사항

  • WG-56843 UPROPERTY는 이제 기본적으로 초기화됨.

버그 수정

  • WG-54251 수정됨: 현지화된 Unreal 에셋 데이터가 "Clear Sound Data" 유틸리티로 제거되지 않음.
  • WG-55387 수정됨: Unreal Asset Registry가 에셋 찾기를 끝내기 전에 레벨 시퀀스를 열 경우 Sequencer에서 크래시가 발생함.
  • WG-59502 수정됨: 동일한 미디어가 SetMedia를 여러 번 호출할 수 있어 메모리 누수가 발생함.
  • WG-59600 수정됨: FakAudioModule이 에디터가 아닌 빌드에서 아이콘을 로드하고 WAAPI를 초기화하려고 시도함.
  • WG-60059 수정됨: 대상 언어에 대한 에셋 데이터가 포함되지 않은 AkAudioBank 에셋의 언어를 전환할 때 크래시가 발생함. AkAudiobank "현지화된 데이터를 찾을 수 없음" 로그를 오류에서 경고로 다운그레이드함.
  • WG-60163 수정됨: Wwise에서 오디오 소스를 다시 가져오고 사운드 데이터를 재생성한 후 Unreal Editor의 메모리에 있는 미디어가 업데이트되지 않음.
  • WG-60218 수정됨: Event-Based Packaging을 사용하지 않을 때 패키징 오류.
  • WG-60252 수정됨: 사운드 보이스에 Convolution Reverb를 추가할 때 자동 로드 오류를 설정할 수 없음.
  • WG-60254 수정됨: AkMediaMemoryManager::ReleaseMediaMemory: 현지화된 미디어에 대한 Negative RefCount 오류.
  • WG-60263 수정됨: 게임 시작 시 RecursionNotAllowed 어서트.
  • WG-60394 수정됨: Unity 빌드가 꺼진 상태에서 빌드가 실패함.

커뮤니티가 보고한 버그 수정

  • WG-50111 수정됨: 현지화된 Event가 SoundBank에서 그룹화될 때 언어를 변경하면 오류가 발생함.
  • WG-50220 수정됨: 현재 Set Current Audio Culture 블루프린트으로 Cultures를 변경할 때 크래시가 발생함.
  • WG-51577 수정됨: 레벨을 로드한 직후 현지화를 변경할 때 크래시가 발생함.
  • WG-53110 수정됨: Content Browser의 맥락형 메뉴에서 재생되는 Event가 Play In Editor (PIE) 모드를 끝낸 후에 무음 처리됨.
  • WG-53151 수정됨: 현지화된 미디어 데이터가 레벨 로드 시 즉시 게시된 Event에 대해 너무 늦게 로드됨(예시: Level Sequence 타임라인).
  • WG-55967 수정됨: Content Browser에서 미리보기할 때 현지화된 Event가 재생되지 않음.
  • WG-56793 수정됨: Switch Container에서 현지화된 보이스 스트리밍이 때때로 재생되지 않음.
  • WG-56935 수정됨: Eve가 재생되는 동안 맵을 전환하면 크래시가 발생함.
  • WG-57271 수정됨: AkBankManager가 SoundBank가 레거시 모드로 업로드되지 못하도록 막음.
  • WG-57378 수정됨: Unreal DirectoryWatcher API에 잘못된 플래그가 전달됨.
  • WG-57751 수정됨: S Switch Container Media가 활성화된 Switch Container의 현지화된 미디어가 제대로 로드되지 않음. 또한 Sound Data 생성 중에 미디어가 스트리밍된 것과 스트리밍되지 않은 것으로 모두 구문 분석될 때의 리포트로 인해 재생 문제가 발생함.
  • WG-57789 수정됨: Blueprint 콜백을 사용할 때 크래시와 메모리 누출이 발생함.
  • WG-57791 수정됨: AkLateReverbComponent에 있는 Boolean 논리 연산자에 오타가 있음.
  • WG-57812 수정됨: Blueprint 노드에서 PostAndWaitEndOfEvent를 사용할 때 크래시가 발생함.
  • WG-57933 수정됨: Unreal legacy I/O 연결을 사용하는 도중 Authoring을 게임 세션과 연결할 때 크래시나 멈추는 문제가 발생함.
  • WG-57987 수정됨: Legacy (EBP가 아닌) 모드에서 Sound Data를 생성할 때 게임 스레드에 있지 않은 상태에서 에셋을 로딩할 경우 크래시가 발생함.
  • WG-58133 수정됨: AkAudio 모듈이 로드되기 전에 Wwise 에셋이 로드될 경우 크래시가 발생함.
  • WG-58518 수정됨: GenerateSoundBanks 커맨드렛을 실행할 때 새로 사용된 미디어 에셋이 생성되지 않음. 새 forceAssetSync 스위치를 사용하여 새 에셋 생성을 강제 실행함.
  • WG-58616 수정됨: 현지화된 미디어가 없으면 새 로케일로 전환할 수 없음.
  • WG-59294 수정됨: 이후에 로드된 두 레벨에 게시할 때 스트리밍 사운드가 재생되지 않음.
  • WG-60035 수정됨: 현지화된 미디어 및 뱅크 데이터를 로드할 때 다양한 문제가 발생함.
  • WG-60111 수정됨: Wwise Convolution Reverb Effect가 프로젝트에 있는 경우 WAAPI를 통해 사운드 데이터를 생성할 때 크래시가 발생함.
  • WG-60162 수정됨: 상위 미디어 에셋이 로드를 시작하기 전에 Media Asset Data가 자동 로드가 필요한지 확인할 때 중단됨.
  • WG-60165 수정됨: 커맨드렛에서 사운드 데이터를 Cooking 할 때 멈추던 문제.
  • WG-60233 수정됨: Linux 서버 빌드에서 Cook이 실패함.


Wwise Unreal Integration Documentation: 중요한 마이그레이션 참고 사항 2019.2.15.7667.2164

중요한 마이그레이션 참고 사항 2019.2.15.7667.2164

현지화

미디어 및 플랫폼 데이터 로드에 대한 수정 사항으로 인해 2019.2.15로 마이그레이션한 후 Sound Data를 다시 생성해야 합니다. 대부분의 Wwise Unreal 에셋은 다음 프로세스를 통해 업데이트됩니다. Sound Data를 생성한 후에도 "Media data [...]가 최신 상태가 아닙니다. 사운드 데이터를 재생성하세요."라는 메시지가 표시되면 Wwise Unreal 에셋의 데이터를 지우고 Sound Data를 생성해야 합니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.14.7616.2082

릴리즈 노트 2019.2.14.7616.2082

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.14.7616.2082 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 기타 수정 사항
  • 버그 수정
  • Fixes for Community-Reported Bugs

기타 수정 사항

  • WG-57433 수정됨: 구성 입력란이 누락됨으로 인해 Unreal 4.27.1에서 Unreal Demo Game이 XDK로 Xbox One 플랫폼용으로 패키징되는 것에 실패함.

버그 수정

  • WG-51015 수정됨: Event 콜백에서 마커 라벨과 음악 큐의 이름이 올바르게 복사되지 않음.
  • WG-54245 수정됨: ASCII 문자가 모두 WAAPI 메시지에서 올바르게 전송되지 않음.

Fixes for Community-Reported Bugs

  • WG-54864 수정됨: 일반 경로로 매핑된 Music Switch Container에 중첩된 미디어가 올바르게 로드되지 않음.
  • WG-55312 수정됨: AkAudio 모듈이 초기화되기 전에 미디어가 로드되어 RecursionNotAllowed 오류가 생김.
  • WG-55715 수정됨: 레벨 전환 도중 생성 후 미디어 에셋이 파괴될 경우 엣지 케이스(edge case)의 Sound Engine에서 미디어가 설정 해제될 수 있음.
  • WG-56139 수정됨: SoundBank 에셋 데이터를 파싱할 때 사운드 데이터 생성 도중 데드락이 일어날 수 있음.
  • WG-56161 수정됨: 미디어가 잘못된 시기에 언로드될 경우 CreateStreamingRequest가 스트리밍 미디어에서 어서트를 일으킬 수 있음. 이제 새로운 스트리밍 데이터를 요청하기 전에 미디어 에셋 유효성을 확인하게 됩니다.
  • WG-56245 수정됨: AkAudioBank에서 LinkedAkEvent를 추적할 때 뱅크 에셋이 변경되었다고 잘못 표시됨.
  • WG-56455 수정됨: Switch Container 안에 있는 서로 다른 Switch가 동일한 Media를 참조할 경우 XML/JSON 뱅크 파일에 있는 일부 Media ID가 누락됨.
  • WG-56716 수정됨: Split Switch Container Media와 중첩된 Switch Container를 사용할 때 "Media not loaded" 오류가 일어남.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.13.7577.2037

릴리즈 노트 2019.2.13.7577.2037

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.13.7577.2037 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 작동 방식 변경 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-52794 Unreal Engine 5 얼리 엑세스 호환성 추가.
  • WG-53713 이제 Unreal IO Store 패키징 옵션이 지원됨.
  • WG-55316 Unreal Engine UE4.27 지원 추가.

API 개선 사항

  • WG-55748 수정됨: AK::SoundEngine::ResetRTPCValue()를 Unreal 정적 함수에 표시하여 Game Parameter의 값을 기본값으로 재설정할 수 있도록 함.
  • WG-56084 AkUtilities.GetWwiseSoundBankDestinationFolder 함수 서명을 업데이트함.

작동 방식 변경 사항

  • WG-55592 SoundEngine을 중단할 때 StopAll 으로의 호출 추가.

버그 수정

  • WG-48540 수정됨: Picker를 닫고 다시 열거나 WAAPI 기능을 토글할 때 WAAPI Picker 구독이 초기화되지 않음.
  • WG-52933 수정됨: Automatic Asset Synchronization을 끈 채로 이름이 변경된 Wwise UAsset을 교체할 경우 크래시가 발생할 수 있음.
  • WG-54273 수정됨: External Source가 있는 비동기적 PostEvent 호출을 사용할 경우 Event가 게시되기 전에 External Source 파일 이름이 메모리에서 제거됨.
  • WG-55097 수정됨: InitBank 에셋이 올바른 폴더로 옮겨지도록 Event-Based Packaging으로 마이그레이션함.
  • WG-55318 수정됨: 빌드를 패키징할 때 WAAPI Picker에 의해 크래시가 발생할 수 있음.
  • WG-55460 수정됨: 콜백이 파괴된 후 쓰레기 수집된 잠재적 동작과 상호작용하여 크래시가 발생할 수 있음.
  • WG-55591 수정됨: Switch Value 에셋을 언로드하더라도 관련 미디어가 언로드되지 않음.
  • WG-55891 수정됨: Automatic Asset Synchronization이 비활성화된 채로 Wwise 에셋의 이름을 변경할 때 작동 방식이 일정하지 않음.
  • WG-55939 수정됨: PIE 도중 프로파일링할 때 WAAPI Picker 선택 동기화에서 크래시가 발생함.

커뮤니티가 보고한 버그 수정

  • WG-51494 수정됨: AutoSaves가 Sound Data 생성 도중 트리거될 경우 크래시가 발생할 수 있음. 이제 생성 과정 도중에는 AutoSave 토글이 비활성화됩니다.
  • WG-54995 수정됨: FAkMixerPlatform::GetOutputDeviceInfo가 요청된 채널 정보를 올바르게 초기화하지 않음.
  • WG-55006 수정됨: 레벨을 언로드하여 FWaitEndOfEventAction 잠재적 동작이 파괴된 이후 여전히 호출될 경우 크래시가 발생함.
  • WG-55081 수정됨: 'Clear data in assets'에 의해 제거되는 Wwise UAsset Short ID가 State 값을 위해 항상 재생성되지 않음. 이제 Unreal에서 올바르지 않은 Short ID를 보고하여 경고해줍니다.
  • WG-55107 수정됨: 반환된 Playing Id가 AkComponent's PostAkEventAndWaitForEnd Blueprint 함수에서 올바르게 설정되지 않으며 AkComponent의 PostAkEventAndWaitForEndAsync Blueprint 함수에서 잠재적 동작이 생성되지 않고 Event가 게시되지 않음.
  • WG-55548 수정됨: AkGeometryComponent에서 충돌 지오메트리가 올바르게 배열되지 않음.
  • WG-55881 수정됨: 대소문자 오타로 인해 Linux에서 통합을 빌드하지 못함.
  • WG-55966 수정됨: 언로드 도중 컨볼루션 리버브 미디어가 너무 빨리 해지되어 크래시가 발생함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.12.7544.1988

릴리즈 노트 2019.2.12.7544.1988

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.12.7544.1988 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • API 개선 사항
  • 작동 방식 변경 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

API 개선 사항

  • WG-53512 SetRTPCValueByPlayingID to AkAudioDevice를 표시함.
  • WG-53543 GetRTPCValue, SetRTPCValue, SetState, SetSwitch를 FAkAudioDevice에 Short ID로 표시함.

작동 방식 변경 사항

  • WG-54766 미디어 에셋을 언로드하면 미디어가 먼저 재생을 멈추며, 강제로 언로드하는 대신 에셋이 사용되지 않을 때까지 기다림.

버그 수정

  • WG-54232 수정됨: Clear Sound Data에서 옵션이 선택되었을 때 연결되지 않은 미디어가 올바르게 제거되지 않음.
  • WG-54493 수정: Clear Sound Data가 항상 해당 항목이 변경되었다고 표시함.
  • WG-54524 수정됨: Sound Data 생성 도중 'Ensure condition failed' 오류.
  • WG-54950 수정됨: Event-Based Packaging과 SoundBank로 묶여진 Event를 사용할 경우 사운드 데이터를 생성할 때 Unreal Editor에서 크래시가 발생함.
  • WG-54998 수정됨: GenerateSoundbanksCommandlet이 체크아웃할 수 없었던 파일을 체크인하려고 함.
  • WG-55086 수정됨: Music Container의 일반 경로와 연관된 미디어를 파싱할 경우 SoundBank 생성 도중 크래시가 발생함.
  • WG-55201 수정됨: Split Switch Container Media가 활성화되었을 경우 Music Switch Container의 Generic Path와 연결된 미디어가 로드되지 않음. 이제 이를 참조하는 Event와 함께 자동으로 로드됨.
  • WG-55229 수정됨: Unreal Editor에서 스위치 컨테이너에 의해 참조되는 미디어를 삭제할 경우 Editor에서 크래시가 발생함.

커뮤니티가 보고한 버그 수정

  • WG-53436 수정됨: 일정 시간 이후 (몇 초에서부터 몇 분까지) UAkInputComponent가 예기치 않게 중단됨.
  • WG-54287 수정됨: 파서(parser)의 문제로 인해 Init Bank 에셋에 있는 DefaultLanguage가 올바르지 않게 설정됨.
  • WG-54558 수정됨: 'Zero-Latency'가 활성화되지 않은 스트리밍 사운드가 다시 로드될 경우 크래시가 발생할 수 있으며 재생 문제가 생길 수 있음.
  • WG-54729 수정됨: Event Based Packaging을 사용하지 않은 작업 과정에서 Sound Data를 생성하는 도중 SoundBank 정보를 파싱할 때 Wwise Unreal 에셋이 변경되었다고 표시며 불필요하게 로드됨.
  • WG-54843 수정됨: 레벨을 너무 일찍 언로드할 경우 비동기적 로드 요청이 올바르지 않게 취소됨.
  • WG-54947 수정됨: 과정 도중 Asset이 너무 빨리 저장되었을 경우 Asset이 GenerateSoundBanksCommandlet 변경 목록에 추가되지 않음.
  • WG-55002 수정됨: Auto Destroy가 활성화된 AkComponent가 비동기적으로 게시되었을 경우 자동으로 제거되지 않음.
  • WG-55128 수정됨: 'Clear data in assets'에 의해 제거되는 Wwise UAsset Short ID가 State 값을 항상 재생성하지 않음. 이제 Unreal에서 올바르지 않은 Short ID를 보고하여 경고해줍니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.11.7512.1949

릴리즈 노트 2019.2.11.7512.1949

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.11.7512.1949 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 성능 개선 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

성능 개선 사항

  • WG-54411 Editor 로드 시간 개선.

버그 수정

  • WG-51387 수정됨: InitBank 에셋이 다시 로드된 후에 Sound Data를 생성할 경우 크래시가 발생함.
  • WG-53456 수정됨: Wwise에서 담겨 있는 폴더나 Work Unit과 동일한 이름을 가진 에셋을 생성할 경우 Unreal 오류가 발생함. 이 오류 수정은 기존의 숨겨진 폴더 메타데이터 uasset의 이름에 '_FOLDER' 접미어가 추가되도록 변경합니다.
  • WG-53645 수정됨: Wwise.app으로의 상대적 경로가 Wwise User Settings에서 유효하지 않다고 보고됨.
  • WG-54244 수정됨: 컨테이너를 전환할 때 패키징된 게임에서 미디어가 누락됨. 이 버그 수정은 모든 미디어 에셋을 변경하게 됩니다.
  • WG-54417 수정됨: 여러 액터 믹서를 참조하는 스위치 값이 담긴 Switch Container를 참조할 경우 Sound Data 생성 이후 Events가 항상 수정되었다고 표시됨.
  • WG-54494 수정됨 : AkEvent UAsset에서 삭제나 유효하지 않은 이동 작업을 실행할 경우 크래시가 발생할 수 있음.
  • WG-54498 수정됨 : Split Switch Container Media가 활성화된 채로 사운드 데이터를 생성할 경우 크래시가 발생할 수 있음.

커뮤니티가 보고한 버그 수정

  • WG-51186 수정됨: 사용 중인 SoundBank를 비동기적으로 언로드하고 즉시 다시 로드할 경우 크래시가 발생함.
  • WG-53340 수정됨: Event-Based Packaging을 사용하지 않을 경우 이벤트의 메타데이터가 변경되더라도 해당 이벤트가 변경되었다고 표시되지 않음.
  • WG-53789 수정됨: AkAudioEvent가 파괴되는 도중 UAkAudioEvent::IsReadyForFinishDestroy()에서 프레임레이트가 하락됨.
  • WG-53947 수정됨: Event-Based Packaging을 사용하지 않는 경우 AuxBus만 담은 SoundBank가 생성되지 않음.
  • WG-54076 수정됨: 비동기적인 작업으로 게임 스레드 코드가 실행될 경우 Sound Data 생성 도중 크래시가 발생함.
  • WG-54116 수정됨: Sound Data를 생성하는 도중 Editor를 디버그 모드로 사용할 경우 크래시가 발생함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.10.7490.1917

릴리즈 노트 2019.2.10.7490.1917

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.10.7490.1917 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

경고: 참조 시스템의 변경으로 인해 프로젝트를 Wwise 2019.2.10으로 마이그레이션한 후에는 모든 Wwise Asset을 반드시 업데이트해야 합니다. 'Clear Sound Data' 작업을 실행한 다음 'Generate Sound Data' 작업을 실행할 것을 권장해드립니다. 그렇지 않을 경우 패키징된 게임에서 다음 줄이 포함된 Unreal Assert이 나타날 수 있습니다: Error: Assertion failed: Offset + BytesToRead <= UncompressedFileSize && Offset >= 0
참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 작동 방식 변경 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-52685 물리적 폴더 계층 구조가 이제 프로젝트 파일로부터 직접 파싱됨.

작동 방식 변경 사항

  • WG-47039 Virtual Folder (가상 폴더)가 이제 Wwise와 Unreal Content Browser 사이에 자동적으로 동기화됨.
  • WG-49551 에디터를 열거나 에셋을 동기화할 때 AkAssetDatabase가 에셋을 더 이상 로드하지 않아서 전반적으로 로드 시간을 감소함.
  • WG-50863 Event에서의 미디어 참조가 이제 하드 참조이며 Bulk Data Async IO API를 사용하여 미디어 데이터를 로드함. 대부분 Audio Event를 사용하려는 경우 에셋이 로드되면 관련된 모든 미디어를 사용할 수 있게 됩니다.
  • WG-52785 이제 커멘드렛을 실행할 때 WAAPI가 비활성화됨.

기타 수정 사항

  • WG-53093 에셋을 이동하고 에셋 동기화를 실행할 때 불필요한 대화 메시지를 제거함.

버그 수정

  • WG-50934 수정됨: AkBankManager에서 뱅크를 로드할 때 크래시가 발생할 수 있음.
  • WG-52242 수정됨: 특수 문자가 포함된 이름을 가진 폴더를 이동하기 위해 Unreal Editor에 의해 전송된 WAAPI 명령어가 실패함.
  • WG-52305 수정됨: 에셋 동기화에 관한 다양한 문제.
  • WG-52824 수정됨: 대량의 에셋을 삭제할 경우 크래시가 발생함.
  • WG-53335 수정됨: WEM Opus 형식을 AkExternalSourceInfo의 Codec ID 드롭다운에서 사용할 수 없음.

커뮤니티가 보고한 버그 수정

  • WG-50334 수정됨: GIsInitialLoad가 true인 도중 Event를 로드할 경우 패키징된 빌드에서 시작 시 어서트가 일어남.
  • WG-51258 수정됨: 미디어 메모리가 너무 일찍 해제되어서 SoundEngine에서 크래시가 발생함.
  • WG-52893 수정됨: 네스트된 Work Unit을 변경할 경우 Wwise Picker에 반영되지 않음.
  • WG-52991 수정됨: Load() 함수가 직접 호출될 때마다 그룹 값에 저장된 패키지 경로가 커짐.
  • WG-53031 수정됨: Event-Based Packaging에서 Convolution Reverb가 여전히 꼬리 모드에 있을 때 레벨을 언로드할 경우 크래시가 발생할 수 있음.
  • WG-53195 수정됨: AkGeometry의 ConvertConvexMeshToGeometryData()가 볼록한 메시(convex mesh)를 페치하지 않으며 항상 경계 상자에 의존함.
  • WG-53444 수정됨: AkLowLevelMemory::Alloc이 페이지와 정렬된 메모리를 리턴하지 않을 수 있음.
  • WG-53585 수정됨: SoundBank 생성 도중 모든 파싱 작업이 끝날 때까지 기다리지 않고 미디어 쿠킹으로 넘어가버림.
  • WG-53707 수정됨: Event 에셋이 삭제될 때 필요한 뱅크에서 Linked Ak Event의 목록이 입력값을 제거하지 않음.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.9.7459.1876

릴리즈 노트 2019.2.9.7459.1876

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.9.7459.1876 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.25에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 작동 방식 변경 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

작동 방식 변경 사항

  • WG-51199 Auto Connnect to WAAPI와 Auto Enable Automatic Asset Synchronization을 사용자 전용 Wwise 설정으로 옮김.

버그 수정

  • WG-47326 수정됨: Spatial Audio 튜토리얼에서 대사음의 거리 감쇠에 적용되는 저대역 통과 필터가 너무 지나침.
  • WG-51371 수정됨: UE4 Editor에서 SoundBank 에셋의 이름을 재지정할 수 없음.
  • WG-52226 수정됨: AkGeometry가 메시에서 유효하지 않은 데이터를 가져올 경우 Spatial Audio에서 크래시가 발생함.
  • WG-52494 수정됨: Editor를 시작할 때 Wwise 프로젝트를 변경할 경우 XML가 잘못 파싱됨.
  • WG-52529 수정됨: 장치 전용으로 압축된 오디오를 재생할 수 없음.
  • WG-52595 수정됨: 연관된 대리자 콜백이 게임 스레드에서 실행되기 전에 AkComponent가 삭제될 경우 크래시가 발생함.
  • WG-52611 수정됨: GenerateSoundBanks 커맨드렛을 통해 새로운 Wwise Object가 발견될 경우 Unreal 쪽에서 이 Wwise Object가 생성되지 않음.
  • WG-52624 수정됨: WwiseConsole Sound Data 생성 도중 오류가 보고되지만 생성된 데이터가 여전히 파싱되고 에셋으로 저장됨.
  • WG-52762 수정됨: 올바르지 않은 AkMemFreeVM 구현으로 인해 일부 가상 메모리가 누출됨.
  • WG-52877 수정됨: Work Unit을 파싱하는 오류가 보고되지 않으며 유효한 에셋을 삭제하도록 예약함.

커뮤니티가 보고한 버그 수정

  • WG-51695 수정됨: 네스트된 Work Unit에서의 변경 사항이 Wwise Picker에서 나타나지 않음.
  • WG-52245 수정됨: Unreal Editor에서 Wwise 프로젝트 구조를 변경한 내용이 항상 Wwise Authoring에 반영되지 않음.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.8.7432.1840

릴리즈 노트 2019.2.8.7432.1840

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.8.7432.1840 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

  • 중요한 마이그레이선 참고 사항 2019.2.8.7432.1840
참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.25에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 작동 방식 변경 사항
  • 버그 수정

새로운 기능

  • WG-49536 Integration Settings에 미디어를 폴더로 분할하여 폴더 안에 파일 개수를 감소하는 옵션을 추가함.
  • WG-51110 Unreal 4.26 지원 추가.

작동 방식 변경 사항

  • WG-51592 Event-Based Packaging이 기본적으로 비활성화되며 기존의 프로젝트를 마이그레이션할 때 마이그레이션하라는 알림 메시지를 제거함.

버그 수정

  • WG-50752 수정됨: SoundBanksInfo.xml에 대해 Interactive Music 계층 구조에서 네스트 된 State 값 파싱에 오류가 생김.
  • WG-51495 수정됨: 한 Sequencer 트랙에서 다른 Sequence 트랙으로 이벤트 섹션을 복사할 때 크래시가 발생함.
  • WG-51670 수정됨: AkGeometry가 메시에서 유효하지 않은 데이터를 가져올 경우 Spatial Audio에서 크래시가 발생함.
  • WG-51886 수정됨: State와 Switch 값 에셋에서 Group Short ID가 유효하지 않음.


Wwise Unreal Integration Documentation: 중요한 마이그레이선 참고 사항 2019.2.8.7432.1840

중요한 마이그레이선 참고 사항 2019.2.8.7432.1840

iOS에서 Bitcode 사용하기

2019.2.8부터 iOS용 Wwise SDK가 XCode 12를 사용하여 빌드됩니다. 여전히 XCode 11을 사용하고 있을 경우 출시 구성에서 Bitcode를 반드시 비활성화해야 합니다. iOS 플랫폼의 Unreal Project Settings에서 비활성화할 수 있습니다. Edit > Project Settings 메뉴를 사용해서 'Platforms' 섹션이 보일 때까지 왼쪽 창을 스크롤하세요. 'iOS'를 클릭하세요. 'Build' 섹션에서 'Support bitcode in Shippin'을 비활성화하세요.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.7.7402.1803

릴리즈 노트 2019.2.7.7402.1803

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.7.7402.1803 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.25에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 성능 개선 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-49997 SoundBank가 이제 Unreal 속성 인스펙터에서 볼 수 있는 Linked AkEvent의 목록을 담고 있음.

API 개선 사항

  • WG-51158 이벤트 목록을 사용하여 C++에서 Sound Data를 생성할 수 있는 가능성을 추가함.

성능 개선 사항

  • WG-50843 FAkAudioDevice::Get()의 성능 최적화.

버그 수정

  • WG-49667 수정됨: External Source Factory가 상대적 경로를 지원하지 않음.
  • WG-49678 수정됨: Reverb Volume과 Spatial Audio Volume이 레이캐스트와 입자 시스템과 크래시가 발생함.
  • WG-50785 수정됨: Sound Data Generation이 WwiseConsole을 사용하여 진행되었을 경우 Event를 SoundBank로 묶어 넣을 때 SoundBank 이름이 복제됨.
  • WG-50888 수정됨: Sound Data 생성 도중 문자열 파싱 오류가 생겨 일부 미디어 파일이 생성되지 않을 수 있음.
  • WG-50936 수정됨: 사운드 데이터를 쿠킹할 때, 현지화된 데이터에 사운드 데이터 생성을 방지하는 복제된 미디어 에셋이 생김.
  • WG-50995 수정됨: UAkAssetDataWithMedia::Load에서 Access Violation.
  • WG-51157 수정됨: GenerateSoundBanks 커멘드렛에서 잘못된 전달인자 파싱.
  • WG-51190 수정됨: FAkAudioDevice::EventToPlayingIDMap이 스레드에 안전하지 않음.
  • WG-51307 수정됨: SoundData 생성 후에 Wwise에서 미디어를 변경하더라도 Unreal에서 반영되지 않음.
  • WG-51379 수정됨: 로딩이 끝나지 않은 에셋을 언로드할 경우 크래시가 발생함.
  • WG-51392 수정됨: InitBank 에셋에서 기본 언어가 비어 있음.
  • WG-51470 수정됨: Event-Based Packaging을 사용하지 않을 경우 GenerateSoundBanks 커맨드렛이 자동으로 에셋을 동기화함.

커뮤니티가 보고한 버그 수정

  • WG-50921 수정됨: Unreal Editor를 종료할 때 SoundBank 언로드에 관하여 오류 메시지가 뜸.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.6.7381.1779

릴리즈 노트 2019.2.6.7381.1779

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.6.7381.1779 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.25에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 작동 방식 변경 사항
  • 버그 수정
  • 커뮤니티가 보고한 버그 수정

새로운 기능

  • WG-50055 에디터에서 선택되었을 때 닫힌 포털이 다르게 표시됨.
  • WG-50993 AkGeometry 컴포넌트에 Welding Threshold라는 새로운 매개 변수가 생김. 스태틱 메시 타입이 선택되었을 경우 Welding Threshold를 조정하여 용접될 정점 간의 거리를 지정할 수 있음.

API 개선 사항

  • WG-50332 ak.wwise.core.soundbank.generate WAAPI 구독이 이제 심각성에 따라 모든 로그 메시지를 표시함.

작동 방식 변경 사항

  • WG-50108 Unreal에서 미디어 에셋이 이제 저장을 위해 수정 표시 플래그에 콘텐츠의 해시를 사용함. 이 기능은 버전 컨트롤을 통해 공유되는 프로젝트에서 더 안정적입니다.
  • WG-50675 Event-Based Packaging에서 누락되거나 최신이 아닌 에셋을 다시 빌딩하기 위한 확인을 개선함.

버그 수정

  • WG-47325 수정됨: Spatial Audio 튜토리얼에서 사용되는 잔향에 Early Reflection가 활성화되어있음.
  • WG-47374 수정됨: Spatial Audio Room이 옮겨질 때 공간음이 연결되지 않게 됨.
  • WG-48701 수정됨: Surface Reflector 컴포넌트에서 회절이 기본적으로 활성화되지 않음.
  • WG-49620 수정됨: Editor 초기화 시 'Master bus structure not loaded' 오류가 발생함.
  • WG-49910 수정됨: 프로젝트를 Event-Based Packaging으로 마이그레이션하는 데에 여러 번의 시도가 필요함.
  • WG-49936 수정됨: 튜토리얼에서 Spatial Audio 메시가 Spatial Audio Geometry로 사용될 경우 오류가 표시됨.
  • WG-50109 수정됨: (Windows) AkComponentCallbackManager EndOfEvent 콜백에서 크래시가 발생함.
  • WG-50116 수정됨: 미디어 참조가 손상될 수 있는 WAAPI Sound Data 생성 경쟁 조건.
  • WG-50283 수정됨: 로딩이 끝나지 않은 Event나 SoundBank를 언로드할 경우 크래시가 발생함.
  • WG-50439 수정됨: 외부 음원에 관련된 패키지 경고 메시지.
  • WG-50580 수정됨: 미디어가 재생성되었을 때에만 Event가 수정되었다고 표시됨.
  • WG-50619 수정됨: Init Bank에서 가끔씩 Default Language가 올바르게 설정되지 않음.
  • WG-50683 수정됨: 런처 통합 처리가 XboxOne_vc150 and XboxOne_vc160 폴더를 ThirdParty 폴더로 복사하지 않음.
  • WG-50730 수정됨: AkGeometry가 큰 메시로 추가될 때 UE4에 크래시를 발생시킴.
  • WG-50796 수정됨: 이름을 사용하여 Event를 게시할 경우 크래시가 발생함.
  • WG-50835 수정됨: SoundBank에서 Event를 묶고 Event-Based Packaging을 사용할 때, 필요한 뱅크를 사용하지 않는 Event에서 오디오가 없음.
  • WG-50895 수정됨: Unity가 아닌 빌드가 실패함.

커뮤니티가 보고한 버그 수정

  • WG-49209 수정됨: 패키지 이름에서 괄호를 사용할 경우 문제가 생김. 이제 Wwise 에셋을 자동으로 가져올 경우 괄호가 교체됩니다. SanitizeWwiseObjectPath 커맨드렛을 사용하여 유효하지 않은 글자가 있는 오래된 에셋을 마이그레이션하세요.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.5.7349.1747

릴리즈 노트 2019.2.5.7349.1747

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.5.7349.1747 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.25에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 버그 수정

버그 수정

  • WG-49849 수정됨: AkGeometry 컴포넌트의 트랜스폼이 Blueprint Editor에서 표시되지 않음.
  • WG-49611 수정됨: 로딩이 끝나지 않은 미디어를 언로드할 경우 크래시가 발생함.
  • WG-49758 수정됨: 사운드 엔진에서 미디어가 재생되고 있을 때 미디어를 언로드할 경우 크래시가 발생함.
  • WG-49438 수정됨: Post Event Blueprint가 완전히 로드되지 않은 미디어를 재생하려고 할 때 로그에 경고 메시지가 뜨지 않음.
  • WG-49411 수정됨: Post Event 노드의 "Stop when attached to Destroyed" input 핀이 작동하지 않음.
  • WG-49634 수정됨: Ak Geometry 컴포넌트가 있는 레벨을 에디터 빌드에서 로드할 경우 직렬화에서 멈추는 문제.
  • WG-49991 수정됨: AkGeometry 컴포넌트의 상위 계층이 해당 컴포넌트의 권한이 등록 해제되기 전에 삭제될 경우 크래시가 발생함.
  • WG-50327 수정됨: 이벤트가 Switch Container 참조를 중단할 경우 Sound Data 생성 도중 크래시가 발생함.
  • WG-50228 수정됨: Spatial Audio: 'Outdoors'로 연결되는 포털이 없을 경우 기본 'Outdoors' 공간이 생성되지 않아서, 'Outdoors'를 재생하는 사운드로부터 소리가 전달되지 않음.
  • WG-49786 수정됨: 덮어 쓴 위치를 사용하는 리스너가 공간과 잔향 볼륨 방지를 시험할 때 올바르지 않은 위치를 사용함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.4.7329.1721

릴리즈 노트 2019.2.4.7329.1721

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.4.7329.1721 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.25에서만 시험되었습니다.

작동 방식 변경 사항

  • WG-49413 Event-Based 패키징으로의 마이그레이션에 리디렉터(redirector)의 수정을 건너뛰는 옵션 추가.

기타 수정 사항

  • WG-49857 SoundBanksInfo 파일에 Event에 있는 스위치 컨테이너의 기본 스위치 값에 대한 새로운 정보를 추가함.

버그 수정

  • WG-47623 수정됨: 이미 차단된 위치에서 게시된 이벤트가 차단값을 페이드 인함.
  • WG-48631 수정됨: 프로젝트에서 찾은 SoundBank의 하위세트를 생성할 경우 필요한 플러그인의 목록이 변경됨.
  • WG-48803 수정됨: Event에서 특정 동작 (Post Event, Post Trigger, Set State, Set Switch)이 있는 미디어 로드 실패 오류.
  • WG-48806 수정됨: Wwise에서 모달 창이 열려있을 때 WAAPI Picker에서 Populate를 클릭할 경우 크래시가 발생함.
  • WG-49105 수정됨: 설정 파일이 Perforce 소스 컨트롤 아래 있을 경우, 에디터를 시작할 때 Migration to Event-Based Packaging 대화창이 항상 뜸.
  • WG-49266 수정됨: 'Re-set Wwise Path' 대화창에서 'Don't show this again' 옵션이 항상 저장되지 않음.
  • WG-49366 수정됨: Integration Settings에서 'Use Event-Based Packaging' 체크 상자가 올바르게 처리되지 않음.
  • WG-49384 수정됨: 프로젝트를 Event-Based Packaging으로 마이그레이션 한 후, 'Additional non-asset directory to package' (DirectoriesToAlwaysStageAsUFS)에서 Sound Data가 여전히 설정되어 있음.
  • WG-49390 수정됨: 플러그인 미디어가 사용자가 정의한 보조 센드에서 사용될 경우 패키징되지 않음.
  • WG-49435 수정됨: Sound Data를 생성할 때 발생하는 어서트 문제.
  • WG-49442 수정됨: 패키징된 게임에서 발생하는 LogStreaming 오류.
  • WG-49730 수정됨: AkAudioEvent 메타데이터 게터 (MinimumDuration, MaximumDuration, IsInfinite, and MaxAttenuationRadius)가 망가짐.
  • WG-49735 수정됨: Sound Data 생성 후 에셋이 수정되었다고 불필요하게 표시됨.

커뮤니티가 보고한 버그 수정

  • WG-49432 수정됨: Wwise와 관련되지 않은 Drag & Drop Events의 올바르지 않은 처리.
  • WG-49604 수정됨: 쓰레기 수집 도중 스트리밍 미디어를 언로드할 때 멈추는 문제.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.3.7304.1690

릴리즈 노트 2019.2.3.7304.1690

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.3.7304.1690 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.25에서만 시험되었습니다.

새로운 기능

  • WG-49104 다양한 PostEvent 블루프린트 노드와 AkAudioDevice 함수의 비동기적 버전 추가. 비동기적 버전은 이벤트를 게시하기 전에 미디어가 로드될 때까지 기다립니다.

작동 방식 변경 사항

  • WG-48918 런타임에서 에셋이 누락되는 문제를 해결하기 위해 Wwise Sound Data 폴더가 Packaging 설정의 Directories to Always Cook에 자동으로 추가됨.
  • WG-49019 AkPluginActivator 커맨드렛 제거.

버그 수정

  • WG-47563 수정됨: IO Hook이 파일 패키지를 올바르게 닫지 않음.
  • WG-48787 수정됨: 미디어를 로드할 때 'Attempt to sync load bulk data' 오류가 일어남.
  • WG-48801 수정됨: Client와 Server 수정에서 플러그인 활성화 도중 빌드가 실패함.
  • WG-48914 수정됨: Generate SoundBank Commandlet에서의 작은 문제: Work Unit이 AssetRegistry가 로딩을 끝내기 전에 파싱되며, 소스 컨트롤 모듈이 올바르지 않게 초기화되고, 변경된 패키지를 저장할 때 불필요한 대화상자가 뜸.
  • WG-48919 수정됨: Wwise 프로젝트를 찾을 수 없을 경우 일반 Editor 사용 중 오류가 출력됨.
  • WG-48936 수정됨: AkRoomComponent에서 활성화된 공간음을 재생되고 있을 때 재생을 끝낼 경우 크래시가 발생함.
  • WG-49032 수정됨: Init 뱅크 로드 중 크래시.
  • WG-49045 수정됨: AkBankManager로 인해 게임을 종료할 때 발생하는 크래시.
  • WG-49060 수정됨: 현지화된 이벤트가 재생 중일 때 언어를 변경할 경우 크래시가 발생함.
  • WG-49132 수정됨: Unreal에서 레거시 모드를 사용할 경우 Sound Data 폴더에서의 WEM 문제가 SoundBank 생성을 방지함.
  • WG-49307 Hololens 빌드 수정


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.2.7275.1661

릴리즈 노트 2019.2.2.7275.1661

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.2.7275.1661 릴리즈에서 변경된 내용입니다.

중요한 마이그레이선 참고 사항 2019.2.2.7275.1661

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.24에서만 시험되었습니다.

Unreal Engine 4.23/4.24/4.25 - Wwise 2019.2.2.7275.1661

  • WG-42472 HoloLens 2 플랫폼이 이제 지원됨.
  • WG-45207 WAAPI Picker와 Wwise Project Explorer 간의 선택이 이제 동기화됨.
  • WG-48046 Unreal 4.25 지원 추가.
  • WG-48212 수정됨: (Xbox One) .Build.cs 파일 안에서 Visual Studio 버전이 올바르게 감지되지 않음.
  • WG-48229 수정됨: Wwise에서 이름에 밑줄 표시 '_'가 있는 WorkUnit을 옮길 경우 오류 발생.
  • WG-48251 수정됨: 게임을 패키징하거나 빌딩할 때 Paper2D 에디터에서 크래시 발생.
  • WG-48403 수정됨: Commandlet에서 SoundBank를 생성하려고 할 때 'ReadFile beyond EOF' 오류 메시지가 뜸.
  • WG-48682 수정됨: Blueprint에서 새로운 에셋 타입을 변수로 사용할 수 없음.
  • WG-48745 수정됨: 패키지된 게임에서 'Assertion failed: AsyncLoadingThread.RecursionNotAllowed'로 인한 크래시.
  • WG-48762 수정됨: AkMeter 플러그인을 사용할 경우 패키징 오류가 일어남.


Wwise Unreal Integration Documentation: 중요한 마이그레이선 참고 사항 2019.2.2.7275.1661

중요한 마이그레이선 참고 사항 2019.2.2.7275.1661

Unreal Engine 4.25

  • Unreal Engine 4.25에서 Android 툴체인 변경으로 인해 ThirdParty 폴더 안에서 Android SDK 폴더를 변경해야 합니다. 다음 폴더를 Android 폴더 안으로 옮기고 이름을 알맞게 변경해야 합니다.:
    • Android_armeabi-v7a 폴더를 옮기고 이름을 Android/armeabi-v7a로 변경하세요
    • Android_arm64-v8a 폴더를 옮기고 이름을 Android/arm64-v8a로 변경하세요
    • Android_x86 을 옮기고 이름을 Android/x86으로 변경하세요
    • Android_x86_64 를 옮기고 이름을 Android/x86_64로 변경하세요.
  • Visual Studio 2019를 사용하여 Windows용으로 컴파일할 경우 x64_vc150/∗/bin 폴더에서 x64_vc160/∗/bin 폴더로 플러그인을 복사해야 합니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.1.7250.1621

릴리즈 노트 2019.2.1.7250.1621

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.1.7250.1621 릴리즈에서 변경된 내용입니다.

중요한 마이그레이선 참고 사항 2019.2.1.7250.1621

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.24에서만 시험되었습니다.

Unreal Engine 4.23/4.24 - Wwise 2019.2.1.7250.1621

  • WG-29995 현지화 지원 추가.
  • WG-33506 SoundBank 관리 재작업
  • WG-44463 Wwise가 열려 있지 않은 채로 SoundBank를 생성할 경우 Unreal 통합이 이제 WwiseCLI.exe 대신 WwiseConsole.exe를 사용함.
  • WG-47524 수정됨: 쓰레기 수집 단계에서 Blueprint로부터 Event Callback을 사용할 경우 일어나는 데드락 문제.
  • WG-47698 (Switch) Wwise Communication 설정에서 프로파일링을 위해 직접 HTCS를 통해 연결할 수 있도록 허용하는 새로운 통신 설정 노출.
  • WG-47809 tvOS 플랫폼 지원 추가
  • WG-47981 수정됨 (PS4): 공용 헤더 파일에서 모듈 의존성 제거.


Wwise Unreal Integration Documentation: 중요한 마이그레이선 참고 사항 2019.2.1.7250.1621

중요한 마이그레이선 참고 사항 2019.2.1.7250.1621

새로운 기능: Event-Based Packaging

Unreal 통합 2019.2에서부터 Event-based Packaging(이벤트 기반 패키징)이라는 새로운 작업 과정을 포함한 중요한 변경 사항이 에셋 관리와 함께 제공됩니다. 이제 Wwise Event를 직접 Content Browser로 가져오고 직접 생성한 SoundBank Unreal 에셋으로 참조를 관리하는 일은 옛날 일입니다.

이 새로운 작업 과정은 Event, Auxiliary Bus, Media, Init Bank, RTPC (Game Parameter), Switch Value, State Value, Trigger, Acoustic Texture와 같이 프로젝트에 필요한 모든 에셋을 자동으로 생성합니다. 사운드 데이터를 빌드하면 Event와 Auxiliary Bus 에셋이 미디어가 없는 사운드뱅크를 담게 됩니다. 미디어 에셋은 이제 각자의 Unreal 에셋 안에 담기며 각 이벤트는 필요한 미디어의 목록을 가지게 됩니다. 더 이상 수동으로 SoundBank를 로드하지 않아도 됩니다. 맵에서 Event나 Aux Bus가 참조되면 필요한 SoundBank 데이터와 관련 미디어가 자동으로 메모리에 로드됩니다.

Audiokinetic 런처를 사용해서 Unreal 프로젝트에 Wwise 프로젝트를 통합하면 새로운 작업 과정이 기본적으로 활성화되며 Wwise 프로젝트에서 필요한 내용이 자동으로 변경됩니다. 또한 사운드 데이터 생성 성능을 급격히 향상시켜주며 통합 안에서 추가 기능을 활성화시켜주는 WAAPI로의 연결도 활성화됩니다. 더 자세한 내용은 Changes to your Wwise Project 를 참고하세요.

참고: Event-Based Packaging 작업 과정에서 IO 훅을 최대한 최적화하기 위해 Wwise를 에디터나 게임에 연결할 때 Advanced Profiler의 Loaded Media 탭에서 MediaID (파일 이름 대신)가 표시됩니다.

기존의 Wwise 통합을 사용하는 프로젝트의 경우 기존의 Unreal 에셋을 새로운 작업 과정으로 마이그레이션해야 합니다. 대규모 프로젝트의 경우 Audiokinetic 런처에서 Wwise Unreal 통합을 업데이트한 후 -Migration 스위치를 사용하여 GenerateSoundBanks 커멘드렛(commandlet)을 통해 마이그레이션을 실행할 것을 강력히 권장합니다 (더 자세한 정보는 Generating SoundBanks with the GenerateSoundBanks Commandlet 을 참고하세요). 이 마이그레이션은 시간이 꽤 걸리는 작업입니다. 소규모 프로젝트의 경우 Audiokinetic 런처에서 Wwise Unreal 통합을 업데이트한 후 Unreal 에디터에서 Unreal 프로젝트를 처음 열 때 마이그레이션을 트리거할 수 있습니다. 새로운 작업 과정을 실행할지의 여부를 묻는 대화창이 뜹니다. Yes를 클릭하면 마이그레이션 과정이 시작됩니다..

마이그레이션 과정은 Unreal 프로젝트에서 다음 내용을 변경합니다:

  • Wwise 프로젝트에 있는 각 Wwise 오브젝트 (Event, State, Switch, Trigger, Auxiliary Bus, Acoustic Texture)를 나타내는 필요한 모든 Unreal Asset이 Content/WwiseAudio 폴더 안에 자동으로 기본 생성됩니다.
    • Wwise Unreal 통합의 이전 버전을 사용하여 직접 생성한 기존의 에셋은 새로 생성된 에셋으로 합쳐집니다.
  • Sound Data가 생성됩니다.
    • Wwise에 의해 SoundBank가 생성되며 해당 Unreal 에셋에서 직렬화됩니다.
    • 미디어 파일이 해당 Wwise Media Unreal 에셋 안에 들어갑니다.
    • Event/Auxiliary Bus와 Media 간의 의존성이 생성됩니다.
    • 필요할 경우 변경 내용이 소스 컨트롤(Source Control)에 제출됩니다.

Event-based Packaging을 사용하지 않을 경우 Unreal과 Wwise 프로젝트에서 다음 내용이 변경됩니다.

  • 플러그인 목록을 저장하는 데에만 사용되는 InitBank 에셋이 생성됩니다.
  • Wwise Project Settings에서 Generate Metadata File, Generate XML Metadata, Generate JSON Metadata, Generate Per Bank Metadata File, Include GUID, Max Attenuation, **Estimated Duration**이 활성화됩니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.2.0.7216.1583

릴리즈 노트 2019.2.0.7216.1583

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.2.0.7216.1583 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

중요한 마이그레이선 참고 사항 2019.2.0.7216.1583

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.24에서만 시험되었습니다.

Unreal Engine 4.23/4.24 - Wwise 2019.2.0.7216.1583

  • WG-34431 이제 지원되는 모든 Unreal 플랫폼에서 공유 라이브러리를 사용할 수 있음.
  • WG-34896 (WAAPI) SoundFrame 의존성 제거.
  • WG-42515 API 변경 사항에 따라 Unreal Spatial Audio 통합 업데이트.

  • WG-42760 (Spatial Audio) Unreal AkRoomComponent가 이제 공간음을 지원함.

    이제 Spatial Audio Geometry를 위한 Unreal 컴포넌트인 AkGeometryComponent라는 새로운 컴포넌트가 생겼습니다. 이 컴포넌트는 StaticMeshComponent에 적용할 수 있습니다. AkGeometryComponent는 StaticMeshComponent의 메시를 Spatial Audio로 전송합니다.

  • WG-44742 Unreal과 Unity에서 Spatial Audio 설정의 범위 제한을 업데이트함.
  • WG-45586 Spatial Audio에 bEnableDirectPathDiffraction 매개 변수를 추가하여 회절을 전역적으로 활성화/비활성화할 수 있도록 함.
  • WG-46105 이 통합은 Unreal Engine 4.21 버전 이상에서 컴파일되지만 Unreal Engine 4.23에서만 시험됨.
  • WG-47309 수정됨: macOS Editor를 사용해서 Sequencer 섹션에 연관된 AkAudioEvent를 변경할 경우 크래시가 발생할 수 있음.


Wwise Unreal Integration Documentation: 중요한 마이그레이선 참고 사항 2019.2.0.7216.1583

중요한 마이그레이선 참고 사항 2019.2.0.7216.1583

Wwise Unreal 통합에 Spatial Audio 기능 마이그레이션하기

Spatial Audio 설정을 Wwise 저작 도구에서 직접 설정할 수 있기 때문에 parameters in the AkComponent에 있는 일부 Spatial Audio 매개 변수는 추후 버전에서 사용 중단됩니다.

  • Early Reflection Order: 이 매개 변수는 이제 전역적입니다. 초기화 설정에서 찾을 수 있습니다.
  • Early Reflection Max Path Length: 이 매개 변수는 더 이상 사용되지 않습니다. 이 GameObject가 방사하는 사운드의 Attenuation Max Distance와 같게 만들어 주세요.
  • Room Reverb Aux Bus Gain:: 이제 이 매개 변수는 Authoring에서 Sound Property Editor의 Game-Defined Auxiliary Sends Volume로 교체됩니다.
  • Diffraction Max Edges, Diffraction Max Paths and Diffraction Max Path Length: 이 매개 변수는 더 이상 존재하지 않습니다. 대신 Sound Property Editor의 Positioning 탭에 있는 Enable Diffraction 하나의 체크 상자로 교체되었습니다.

블루프린트 함수

UseEarlyReflections** 블루프린트 함수는 추후 버전에서 사용 중단됩니다. 이 함수를 완전히 제거하고 Authoring 도구를 통해 매개 변수를 설정할 수 있습니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.11.7296.1702

릴리즈 노트 2019.1.11.7296.1702

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.11.7296.1702 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고:

이 통합은 Unreal Engine 4.25 이상 버전에 대해 컴파일되지만 Unreal Engine 4.26에서만 시험되었습니다.

UE4.26은 XCode 12를 필요로 하기 때문에 이 Wwise 통합은 macOS에서 지원되지 않습니다. macOS에서 UE4.26을 사용하는 프로젝트의 경우 최신 Wwise 2019.2.x Unreal 통합으로 업그레이드해야 합니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 작동 방식 변경 사항

새로운 기능

  • WG-52934 Unreal 4.26 지원 추가.

작동 방식 변경 사항

  • WG-52861 Unreal Engine 4.24과 그 이하 버전의 Android 빌드는 더 이상 공식적으로 지원되지 않습니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.10.7250.1643

릴리즈 노트 2019.1.10.7250.1643

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.10.7250.1643 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 4.23 버전 이상에서 컴파일되지만 Unreal Engine 4.25에서만 시험되었습니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 버그 수정

버그 수정

  • WG-47623 수정됨: 이미 차단된 위치에서 게시된 이벤트가 차단값을 페이드 인함.
  • WG-47563 수정됨: IO Hook이 파일 패키지를 올바르게 닫지 않음.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.9.7221.1609

릴리즈 노트 2019.1.9.7221.1609

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.9.7221.1609 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

중요한 마이그레이선 참고 사항 2019.1.9.7221.1609

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22/4.23/4.24/4.25 - Wwise 2019.1.9.7221.1609

  • WG-47524 수정됨: 쓰레기 수집 단계에서 Blueprint로부터 Event Callback을 사용할 경우 멈추는 문제.
  • WG-48046 Unreal 4.25 지원 추가.
  • WG-48877 Windows Wwise 사운드 엔진과 플러그인 스태틱 라이브러리에 대해 vc_160 라이브러리를 추가함. (Unreal 4.25에서 반드시 필요함) Crankcase 플러그인에서 of vc_120 라이브러리의 특정 배포를 제거함.


Wwise Unreal Integration Documentation: 중요한 마이그레이선 참고 사항 2019.1.9.7221.1609

중요한 마이그레이선 참고 사항 2019.1.9.7221.1609

Unreal Engine 4.25

  • Unreal Engine 4.25에서 Android 툴체인 변경으로 인해 ThirdParty 폴더 안에서 Android SDK 폴더를 변경해야 합니다. 다음 폴더를 Android 폴더 안으로 옮기고 이름을 알맞게 변경해야 합니다.:
    • Android_armeabi-v7a 폴더를 옮기고 이름을 Android/armeabi-v7a로 변경하세요
    • Android_arm64-v8a 폴더를 옮기고 이름을 Android/arm64-v8a로 변경하세요
    • Android_x86 을 옮기고 이름을 Android/x86으로 변경하세요
    • Android_x86_64 를 옮기고 이름을 Android/x86_64로 변경하세요.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.8.7173.1554

릴리즈 노트 2019.1.8.7173.1554

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.8.7173.1554 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22/4.23/4.24 - Wwise 2019.1.8.7173.1554

  • WG-47309 수정됨: macOS Editor를 사용해서 Sequencer 섹션에 연관된 AkAudioEvent를 변경할 경우 크래시가 발생할 수 있음.


Wwise Unreal Integration Documentation: Release Notes 2019.1.7.7135.1513

Release Notes 2019.1.7.7135.1513

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.7.7135.1513 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22/4.23/4.24 - Wwise 2019.1.7.7135.1513

  • WG-45876 수정됨: Blueprint의 WAAPI URI 목록에서 누락된 URI 추가.
  • WG-46047 UE4.24 지원 추가.
  • WG-46662 수정됨: init 뱅크 로딩이 이제 초기화 과정 중 더 일찍 실행됨.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.6.7110.1478

릴리즈 노트 2019.1.6.7110.1478

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.6.7110.1478 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22/4.23 - Wwise 2019.1.6.7110.1478

Wwise 2019.1.6을 위한 Unreal 통합에는 업데이트가 없습니다다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.5.7093.1459

릴리즈 노트 2019.1.5.7093.1459

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.5.7093.1459 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22/4.23 - Wwise 2019.1.5.7093.1459

  • WG-44704 (Switch) 멀티 코어 렌더링을 활성화할 경우 일어나는 크래시 문제 해결.
  • WG-44792 DefaultGame.ini의 불필요한 변경 방지.
  • WG-44937 엔진을 끌 때 애플리케이션이 멈추는 문제 해결.
  • WG-45030 PostAndWaitForEndOfEvent에서 재생 아이디를 올바르게 리턴함.
  • WG-45095 쿠킹할 때 표시되는 Python 경고 메시지 제거.
  • WG-45549 (PS4) ACP Batch Buffer Size의 기본값 변경.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.4.7065.1430

릴리즈 노트 2019.1.4.7065.1430

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.4.7065.1430 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22/4.23 - Wwise 2019.1.4.7065.1430

  • WG-43178 Stadia 예비 지원 추가 (접근하려면 Audiokinetic 지원에 연락해주세요).
  • WG-44197 Unreal 4.23 지원 추가.
  • WG-44645 수정됨: 공간과 포털이 있는 사운드를 재생할 경우 listener ID를 알 수 없다는 오류 메시지가 출력됨.
  • WG-44675 WAAPI를 사용할 수 없을 경우 로그 메시지 스팸 감소.
  • WG-44783 Wwise 설치 경로 마이그레이션을 프로젝트 설정에서 유저별 설정으로 수정함.
  • WG-44830 AK::SoundEngine::RegisterPluginDLL으로의 과부하를 추가하여 특정 경로에서 플러그인을 등록할 수 있도록 함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.3.7048.1409

릴리즈 노트 2019.1.3.7048.1409

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.3.7048.1409 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22 - Wwise 2019.1.3.7048.1409

  • WG-43403 이제 드래그 기능을 사용하여 AkAudioEvent를 Niagara 타임라인에 추가할 수 없음.
  • WG-43602 SoundBank에 이벤트가 담겨있지 않을 경우 표시되는 로그 메시지 제거.
  • WG-44056 Magic Leap에서는 mabu 파일을 사용해서만 공유 라이브러리를 로드할 수 있기 때문에 getPluginDLLPath() 구현이 이를 설명하는 오류 메시지로 교체됨.
  • WG-44118 문자열 인자를 사용할 경우 Load Bank와 Unload Bank 블루프린트 노드가 올바르게 해결되지 않는 문제 해결.
  • WG-43178 Stadia 예비 지원 추가.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.2.7018.1378

릴리즈 노트 2019.1.2.7018.1378

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.2.7018.1378 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22 - Wwise 2019.1.2.7018.1378

  • WG-42524 AK Event와 RTPC 시퀀서 트랙을 Niagara 에디터에서 사용할 수 없음.
  • WG-42885 External Sources API를 Blueprint에 표시함.
  • WG-43007 WAAPI IP 주소와 포트를 Wwise User Settings 창에 표시함.
  • WG-43682 활성화된 스트리밍 사운드가 있을 때 게임을 닫을 경우 일어나는 크래시 문제 수정.
  • WG-43725 지속 시간을 알 수 없는 Wwise 이벤트 재생이 반복되는 문제 수정.
  • WG-43878 연결된 AkEvent가 없는 AkEvent Sequencer 섹션 생성 활성화.
  • WG-39214 Suspend와 WakeupFromSuspend를 FAkAudioDevice에 표시함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.1.6977.1336

릴리즈 노트 2019.1.1.6977.1336

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.1.6977.1336 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22 - Wwise 2019.1.1.6977.1336

  • WG-42262 차단 Raycast가 PlayerController를 무시하도록 함.
  • WG-42728 수정됨: 플러그인이 엔진 플러그인으로 설치될 경우 일어나는 빌드 문제.
  • WG-42747 AkComponent 속성에서 Spatial Audio 옵션이 보이도록 함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.0.6947.1305

릴리즈 노트 2019.1.0.6947.1305

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.0.6947.1305 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21/4.22 - Wwise 2019.1.0.6947.1305

  • Unreal Engine 4.22 지원 추가


Wwise Unreal Integration Documentation: 릴리즈 노트 2019.1.0.6947.1299

릴리즈 노트 2019.1.0.6947.1299

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2019.1.0.6947.1299 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.21 - Wwise 2019.1.0.6947.1299

  • WG-31477 생성된 SoundBank 폴더를 설정할 수 있는 Project Settings 옵션 추가.
  • WG-36379 UI를 통해 초기화 설정 표시.
  • WG-36438 AnimNotify_AkEvent 가 AkComponent를 생성할 경우 로그에 경고 메시지를 표시하도록 변경함. 더 자세한 정보는 Triggering Wwise Events in Animation Sequences 을 참고하세요.
  • WG-37825 Blueprint에 GetRTPCValue 를 표시함.
  • WG-38260 UI에 초기화 설정을 표시함.
  • WG-38693 수정됨: (WAAPI) AkAutobahn이 다양한 통합과 샘플에서 사용되어 일어나는 경쟁 조건.
  • WG-40368 수정됨: AK::SoundEngine::SetSpeakerAngles 매개 변수 in_pfSpeakerAngles. 이제 AkReal32* 대신 const AkReal32*가 사용됨.
  • WG-40554 SoundBank 생성 과정이 차단되지 않도록 만듬.
  • WG-40869 SetMultipleSpeakerEmitterPositions라는 새로운 Blueprint 함수를 추가함. 이 함수는 SetMultipleChannelEmittePositions와 비슷하게 작동하지만 채널 설정이 아니라 스피커 마스크를 직접 수락함.


Wwise Unreal Integration Documentation: Release Notes 2018.1.7.6880.1266

Release Notes 2018.1.7.6880.1266

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2018.1.6.6858.1242와 2018.1.7.6880.1266 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.19/4.20/4.21/4.22 - Wwise 2018.1.7.6880.1266

  • WG-41693 Unreal Engine 4.22 지원 추가.
  • WG-42262 차단 Raycast가 PlayerController를 무시하도록 함.
  • WG-42728 수정됨: 플러그인이 엔진 플러그인으로 설치될 경우 일어나는 빌드 문제.
  • WG-42747 AkComponent 속성에서 Spatial Audio 옵션이 보이도록 함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2018.1.6.6858.1242

릴리즈 노트 2018.1.6.6858.1242

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2018.1.5.6835.1218과 2018.1.6.6858.1242 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.19/4.20/4.21 - Wwise 2018.1.6.6858.1242

  • WG-40782 Blueprint의 AkCallbackInfo 를 필요에 따라 풀로 만들거나 생성할 수 있도록 변경함.
  • WG-41003 "Structure member is not initialized properly" 경고 메시지 제거.
  • WG-41101 모놀리식 헤더 사용을 중단하여 컴파일 시간을 줄임.
  • WG-41204 수정됨: 헤드가 없는 모드를 사용하고 Wwise Project 경로가 비어있을 경우 Unreal 창이 멈추는 문제.
  • WG-41245 수정됨: Wwise Demo Game에서 불리언 호출로의 WAAPI 구독이 호출 실패 메시지를 리턴하지 않음.
  • WG-41259 Integration Demo에서 Wwise Motion 제거.
  • WG-41339 수정됨: 클립의 길이가 Event의 지속 시간보다 길 경우 Sequencer Event 클립이 계속해서 다시 트리거됨.


Wwise Unreal Integration Documentation: 릴리즈 노트 2018.1.5.6835.1218

릴리즈 노트 2018.1.5.6835.1218

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2018.1.4.6807.1189와 2018.1.5.6835.1218 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine 4의 실험 기능을 지원하지 않습니다.

Unreal Engine 4.19/4.20/4.21 - Wwise 2018.1.5.6835.1218

  • WG-38420 수정됨: Sequencer AkAudioEvent 섹션이 재생되는 도중 쓰레기 수집될 때 일어나는 크래시 문제.
  • WG-39056 WAAPI 위젯에서 사용 가능한 속성의 목록이 업데이트됨.
  • WG-40197 차단이나 방해값이 SpatialAudio 공간의 사용에 따라 올바르게 설정되도록 함.
  • WG-40318 수정됨: WAAPI Picker가 새로 고침되지 않음.
  • WG-40420 수정됨: AkRoom과 AkLateReveb 컴포넌트로 새로운 액터를 생성할 경우 일어나는 크래시 문제.
  • WG-40542 참조되는 Event가 없는 채로 SoundBank를 처음 생성하려고 할 경우 오류 메시지를 표시함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2018.1.4.6807.1189

릴리즈 노트 2018.1.4.6807.1189

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2018.1.3.6784.1177과 2018.1.4.6807.1189 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.19/4.20/4.21 - Wwise 2018.1.4.6807.1189

  • WG-39671: Blueprint에서 ExecuteActionOnEvent 를 표시함.
  • WG-40333: 모든 PostEvent 호출이 Callback Manager를 통과하도록 함.
  • WG-40344: Blueprint에서 GetSpeakerAngles와 SetSpeakerAngles를 표시함.
  • WG-40365: SoundBank 생성 메시지를 변경하여 SoundBank가 생성되더라도 여전히 오류가 있을 수 있음을 분명히 표시함.
  • WG-40380: 유효하지 않은 AkEvent로 PostAkEventAndWaitForEnd 를 호출할 경우 일어나는 크래시 방지.


Wwise Unreal Integration Documentation: 릴리즈 노트 2018.1.3.6784.1177

릴리즈 노트 2018.1.3.6784.1177

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 .2018.1.3.6784.115과 2018.1.3.6784.1177 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.19/4.20/4.21 - Wwise 2018.1.3.6784.1177

  • Unreal 4.21 지원 추가.
  • WG-38379: Ak Component에 의해 사용되는 기본 Occlusion Collision Channel 값에 새로운 Wwise 설정 추가.
  • WG-38497: AkAudioEvent를 재생하거나 옮기는 도중 Sequencer의 안정화 개선.
  • WG-38746: Multi-core 렌더링을 사용할 수 있는 설정 추가.
  • WG-39181: 수정됨: 시퀀서에서 AkAudioEvent 섹션의 크기를 최소 너비로 조정할 경우 일어나는 크래시 문제.
  • WG-39408: 이제 사용자마다 Wwise Installation Path를 설정할 수 있음. Project Settings의 Wwise User Settings를 사용해서 Wwise 설치 경로를 편집하세요.
  • WG-39669: Ak Room 컴포넌트에 있는 Wall Occlusion과 Ak Late Reverb Component에 있는 Send Level에 매개 변수 제한 추가.
  • WG-39713: UAkAuxBus가 더 이상 FAkAudioDevice를 조기 초기화하지 않음.
  • WG-40128: 수정됨: IO 훅에서 파일 핸들이 새어나가는 문제.


Wwise Unreal Integration Documentation: 릴리즈 노트 2018.1.3.6784.1153

릴리즈 노트 2018.1.3.6784.1153

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2018.1.2.6762.1124와 2018.1.3.6784.1153 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.19/4.20 - Wwise 2018.1.3.6784.6784.1153

  • WG-36728 명령줄에서 SoundBank를 생성할 수 있도록 허용하는 Commandlet을 추가함.
  • WG-39113 수정됨: (iOS, Linux, macOS) Shipping 설정에 오디오가 없음.
  • WG-39715 AkComponent에서 Spatial Audio를 비활성화할 수 있는 체크 상자 추가. 이로 인해 컴포넌트에서 SetMultiplePositions 를 사용할 수 있습니다.
  • WG-39833 수정됨: 불필요할 경우 SetAuxSends 로의 호출 개수를 줄임.


Wwise Unreal Integration Documentation: 릴리즈 노트 2018.1.2.6762.1124

릴리즈 노트 2018.1.2.6762.1124

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2018.1.1.6727.1082와 2018.1.2.6762.1124 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.19/4.20 - Wwise 2018.1.2.6762.1124

  • WG-37990 수정됨: (Xbox One) PAK 파일을 사용하지 않고 패키징된 게임에서 큰 SoundBank를 로드할 경우 일어나는 크래시 문제.
  • WG-38420 수정됨: Sequencer AkAudioEvent 섹션이 재생되는 도중 쓰레기 수집될 때 일어나는 크래시 문제.
  • WG-38693 수정됨: (WAAPI) AkAutobahn이 다양한 통합과 샘플에서 사용되어 일어나는 경쟁 조건.
  • WG-39055 수정됨: Sequencer 섹션에서 파형이 텍스트 위로 렌더링되지 않는 문제.
  • WG-39091 수정됨: RoomComponent 와 LateReverbComponent 가 레벨 스트리밍과 호환되도록 함.
  • WG-39097 수정됨: 누락된 샘플 폴더에 대한 경고 메시지 제거.
  • WG-39115 수정됨: Portal에서의 방해 새로 고침 문제.
  • WG-39170 수정됨: UnloadBank로 유효하지 않은 인자가 전달됨.
  • WG-39219 수정됨: Wwise Authoring이 재빨리 재실행될 때 일어나는 WAAPI 재연결 문제.
  • WG-39301 수정됨: CancelEventCallbackCookie 가 사용자가 제공하는 쿠키를 올바르게 사용하여 취소하지 않음. cancel.
  • WG-39334 Android와 Mac에서 Opus 코덱을 다시 활성화함.
  • WG-39393 수정됨: (Switch) State Group ID가 유효하지 않음.
  • WG-39604 수정됨: PostAndWaitForEndOfEvent에 설명 추가.


Wwise Unreal Integration Documentation: 릴리즈 노트 2018.1.1.6727.1082

릴리즈 노트 2018.1.1.6727.1082

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2018.1.0.6714.1065와 2018.1.1.6727.1082 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.19/4.20 - Wwise 2018.1.1.6727.1082

  • WG-32970 (Xbox One) 빌드할 때 경고 메시지 제거.
  • WG-38486 수정됨: AkRoomComponents나 AkLateReverbComponent를 사용하는 항상 로드된 레벨을 제거할 경우 발생하는 크래시.
  • WG-38741 수정됨: AK::SoundEngine::Init 전에 중요한 섹션이 초기화되어 초기화가 중단되는 문제.
  • WG-38805 사운드 엔진을 제거한 후 전역적 콜백을 모두 등록 해제하도록 통합을 수정함.
  • WG-39228 수정됨: Wwise Authoring과 Unreal 에디터를 동시에 닫을 경우 WAAPI에서 크래시 발생.


Wwise Unreal Integration Documentation: 릴리즈 노트 2018.1.0.6714.1065

릴리즈 노트 2018.1.0.6714.1065

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2018.1.0.6714.1065 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.19/4.20 - Wwise 2018.1.0.6714.1065

Unreal Engine 4.20 지원 추가.

  • WG-30002 Wwise Audio Input 플러그인을 사용하는 오디오 입력 지원 추가. Providing Audio Input to Wwise 을 참고하세요.
  • WG-33507 Blueprint에서 Event와 SoundBank 콜백을 표시함. 더 자세한 정보는 Using Callbacks in Blueprints 을 참고하세요.
  • WG-34570 대리자를 통해 전역적 콜백을 등록할 수 있는 기능 추가.
  • WG-35615 사운드 엔진 초기화 시간 때에 AkInitSettings에서 새로운 값을 사용하여 바닥 면을 설정할 수 있음. Audiokinetic Unreal 통합은 X-Y를 바닥 면으로 사용하기 위해 이 값을 AkAudioDevice.cpp에서 설정합니다.
  • WG-38608 Lumin 실험적 지원 추가.
  • WG-38676 수정됨: Spatial Audio Volume 모양을 변경할 경우 Unreal Editor가 멈추는 문제.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.9.6726.1089

릴리즈 노트 2017.2.9.6726.1089

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.8.6698.1053과 2017.2.9.6726.1089 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18/4.19/4.20/4.21 - Wwise 2017.2.9.6726.1089

  • Unreal 4.21 지원 추가.
  • WG-38420 수정됨: Sequencer AkAudioEvent 섹션이 재생되는 도중 쓰레기 수집될 때 일어나는 크래시 문제.
  • WG-39408 이제 사용자마다 Wwise Installation Path를 설정할 수 있음. Project Settings의 Wwise User Settings를 사용해서 Wwise 설치 경로를 편집하세요.
  • WG-40128 수정됨: IO 훅에서 파일 핸들이 새어나가는 문제.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.8.6698.1053

릴리즈 노트 2017.2.8.6698.1053

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.7.6667.1010과 2017.2.8.6698.1053 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18/4.19/4.20 - Wwise 2017.2.8.6698.1053

  • WG-36728 명령줄에서 SoundBank를 생성할 수 있도록 허용하는 Commandlet을 추가함.
  • WG-37990 수정됨: (Xbox One) PAK 파일을 사용하지 않고 패키징된 게임에서 큰 SoundBank를 로드할 경우 일어나는 크래시 문제.
  • WG-38420 수정됨: Sequencer AkAudioEvent 섹션이 재생되는 도중 쓰레기 수집될 때 일어나는 크래시 문제.
  • WG-39091 RoomComponent 와 LateReverbComponent 가 레벨 스트리밍과 호환되도록 함.
  • WG-39097 누락된 샘플 폴더에 대한 빌드 경고 메시지 제거.
  • WG-39113 수정됨: (iOS, Linux, macOS) Shipping 설정에 오디오가 없음.
  • WG-39115 수정됨: Portal에서의 방해 새로 고침 문제.
  • WG-39170 수정됨: UnloadBank로 유효하지 않은 인자가 전달됨.
  • WG-39301 수정됨: CancelEventCallbackCookie가 사용자가 제공하는 쿠키를 올바르게 사용해서 취소하지 않음.
  • WG-39393 수정됨: (Switch) State Group ID가 유효하지 않음.
  • WG-39833 수정됨: 불필요할 경우 SetAuxSends로의 호출 개수를 줄임.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.7.6667.1010

릴리즈 노트 2017.2.7.6667.1010

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.6.6636.979과 2017.2.6.6636.979 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18/4.19 - Wwise 2017.2.7.6667.1010

Unreal Engine 4.20 지원 추가.

  • WG-38486: 수정됨: AkRoomComponent나 AkLateReverbComponent를 사용하는 항상 로드된 레벨을 제거할 경우 크래시 발생.
  • WG-38608: Lumin 실험적 지원 추가.
  • WG-38676: 수정됨: Spatial Audio Volume 모양을 변경할 경우 Unreal Editor가 멈추는 문제.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.6.6636.979

릴리즈 노트 2017.2.6.6636.979

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.5.6619.962과 017.2.6.6636.979 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18/4.19 - Wwise 2017.2.6.6636.979

  • WG-37921 분해할 때 애플리케이션이 멈추는 문제 해결.
  • WG-38187 OcclusionRefreshInterval을 사용한 차단 활성화/비활성화 수정.
  • WG-38282 Switch 플랫폼에서 스택 크기를 1MB로 늘림.
  • WG-38418 게임을 종료할 때 뱅크 언로드 실패 문제 해결.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.5.6619.962

릴리즈 노트 2017.2.5.6619.962

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.4.6590.933과 2017.2.5.6619.962 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18/4.19 - Wwise 2017.2.5.6619.962

  • WG-37624 Wwise .uasset 파일에서 에셋 디프(diff) 실행을 허용함.
  • WG-37736 'Audiokinetic' 카테고리 아래 있는 일부 WAAPI Blueprint 노드 재구성.
  • WG-37790 에디터에서 Spatial Audio가 실패하도록 만드는 리스너 불량 처리 수정.
  • WG-37808 Visual Studio 2017에서 WAAPI 빌드 오류 수정.
  • WG-37917 게임이 미리 컴파일된 헤더를 사용하지 않을 경우 플러그인이 컴파일될 수 있도록 함.
  • WG-38041 차단 계산 실행 시 크래시 문제 해결.
  • WG-38142 새로 고침 간격이 0일 경우 AkOcclusionObstructionService 를 초기화할 때 SetOcclusionObstructionFcn 이 바인딩되지 않아 일어나는 크래시 수정.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.4.6590.933

릴리즈 노트 2017.2.4.6590.933

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.3.6575.917과 2017.2.4.6590.933 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18/4.19 - Wwise 2017.2.4.6590.933

  • WG-37256 Editor에서 게임을 시작할 때 AK::SpatialAudio::SetPortal 오류가 잘못 보고됨.
  • WG-37453 전용 서버에서 실행할 경우 PIE 세션에서 Auxiliary Bus가 작동하지 않는 문제 해결.
  • WG-37561 Room과 LateReverb 컴포넌트가 쓰레기 수집기와 올바르게 작동하도록 함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.3.6575.917

릴리즈 노트 2017.2.3.6575.917

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.2.6553.895와 2017.2.3.6575.917 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18/4.19 - Wwise 2017.2.3.6575.917

  • Unreal Engine 4.19 지원 추가.
  • WG-36727 Visual Studio 2017 빌드에서 WAAPI를 제외시킴.
  • WG-36883 차단 레이캐스트를 비동기 업무로 옮김.
  • WG-37088 UWorld->GetFirstPlayerController() 대신 GEngine->GetFirstLocalPlayerController()를 사용하도록 변경함.
  • WG-37246 -nosound 플래그가 있는 채로 시작할 때 에디터 크래시 문제 해결.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.2.6553.895

릴리즈 노트 2017.2.2.6553.895

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.1.6524.866과 2017.2.2.6553.895 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18 - Wwise 2017.2.2.6553.895

  • WG-35044 동일한 Auxiliary Bus를 사용하며 서로 겹치는 잔향 볼륨의 작동 방식을 더욱 결정론적으로 만듬.
  • WG-36335 불필요한 로그 제거.
  • WG-36369 AkAudioDevice.h에서 누락된 포함 파일 추가.
  • WG-36429 FAkAudioDevice::Init()에서 LoadModuleChecked 를 GetModulePtr 로 교체.
  • WG-36494 에디터가 아닌 크래시 문제를 방지하기 위해 FAkAudioStyle 을 싱글톤(singleton)으로 만듬.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.1.6524.866

릴리즈 노트 2017.2.1.6524.866

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.0.6500.836과 2017.2.1.6524.866 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.17/4.18 - Wwise 2017.2.1.6524.866

  • WG-34960 이제 min과 max 속성이 WAAPI를 통해 자동으로 설정되며 AkSlider 위젯에서 이 속성을 제거함.
  • WG-35238 수정됨: 해당하는 Work Unit에서 변경 사항이 감지되었을 경우 열려있는 모든 AkEvent Sequencer 세그먼트가 더티(dirty)로 업데이트됨.
  • WG-35773 UAkComponent::UseEarlyReflections order 매개 변수에 바운드 추가.
  • WG-35949 Auxiliary Bus만 담겨있는 단일한 SoundBank를 생성할 수 있는 기능 추가.
  • WG-36083 Sequencer 창이 열려있는 상태로 SoundBank를 생성할 경우 WAAPI 로그 스팸 제거.
  • WG-36200 -game 플래그를 사용하여 에디터를 실행할 때 발생하는 크래시 수정.
  • WG-36357 이제 런처가 Visual Studio 2017 의존성을 ThirdParty 폴더로 복사할 수 있도록 변경함.
  • WG-36415 UMG에서 새로운 AkSlider를 추가할 경우 Unreal 크래시 문제 해결.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.2.0.6500.836

릴리즈 노트 2017.2.0.6500.836

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.2.0.6500.836 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

마이그레이션 노트 2017.2.0.6500.836

Unreal Engine 4.17/4.18 - Wwise 2017.2.0.6500.836

  • Editor에 있을 때 리스너 처리 개선. 더 자세한 정보는 Using the Editor Listener 를 참고하세요.
  • WAAPI로 활성화되는 새로운 Wwise 피커 추가. 더 자세한 정보는 Using Waapi Features 를 참고하세요.
  • 스크러빙과 'play from anywhere' 지원을 추가하여 통합 개선. 더 자세한 정보는 Using the Level Sequencer 를 참고하세요.
  • WAAPI로 활성화되는 파형을 AkAudioEventSection Sequencer 섹션에 추가. 더 자세한 정보는 Using the Level Sequencer 를 참고하세요.
  • WAAPI를 Blueprint에 추가함. 더 자세한 정보는 WAAPI 블루프린트 함수 를 참고하세요.
  • WAAPI로 활성화된 위젯을 UMG에서 사용하도록 추가. 더 자세한 정보는 WAAPI 위젯 를 참고하세요.
  • WG-30009 수정됨: Blueprint를 통해 여러 리스너 지원 추가.
  • WG-30010 수정됨: SetMultiplePositions가 이제 Blueprint에 표시됨.
  • WG-33932 수정됨: 시험용 대안 차단 기능 제거.
  • WG-34745 수정됨: 모바일 플랫폼에서 Lower Engine 메모리 풀의 크기 감소.
  • WG-34879 수정됨: AkComponent의 속성에서 차단 줄 트레이싱에 사용되는 충돌 채널을 표시함.
  • WG-35104 수정됨: 멀티 플레이어 게임에서 리스너가 올바르게 처리되도록 수정함.
  • WG-35307 수정됨: Set Bus Config Blueprint 노드에 더 많은 설정 추가.
  • WG-35614 수정됨: 좌표 변환 제거. 더 자세한 정보는 새로운 좌표 시스템으로 마이그레이션하기. 을 참고하세요.


Wwise Unreal Integration Documentation: 마이그레이션 노트 2017.2.0.6500.836

마이그레이션 노트 2017.2.0.6500.836

새로운 좌표 시스템으로 마이그레이션하기.

좌표 시스템 변환이 2017.2.0 통합에서 제거되었습니다. 이 변환은 Unreal Engine 4에서 사용되는 왼손잡이 좌표 시스템 (X와 Y축이 바닥이 됨)을 Wwise Game Object 3D Viewer에서 사용되는 기본 왼손 잡이 시스템 (X와 Z축이 바닥이 됨)으로 변환하게 위해 추가되었습니다. Wwise Game Object 3D Viewer가 Unreal에서 Game Object를 올바르게 표시하도록 하려면 Game Object 3D Viewer 설정으로 가서 Floor Plane을 X-Y로 설정하세요.

Ak Acoustic Portal 오브젝트 마이그레이션하기

Wwise 2017.2.0에서는 Spatial Audio Portal이 별도의 방향을 가집니다. Portal 내부의 Y축은 인접한 두 Room이 연결된 축입니다. Y축에 따라 Room을 연결하려면 기존의 모든 Portal을 확인하여 알맞게 정렬되지 않은 Portal을 회전해야 합니다 (Z축을 따라 90도). Portal의 방향을 사용자가 확인할 수 있도록 Portal에 새로운 시각적 컴포넌트가 추가되었습니다. 올바르게 정렬되지 않은 Portal이 Wwise Spatial Audio로 전송될 경우 잘못 작동하거나 오류를 리턴할 수 있습니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.9.6501.856

릴리즈 노트 2017.1.9.6501.856

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.8.6488.843과 2017.1.9.6501.856 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17/4.18/4.19 - Wwise 2017.1.9.6501.856

  • Wwise 2017.1.9를 위한 Unreal 통합에는 업데이트가 없습니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.8.6488.843

릴리즈 노트 2017.1.8.6488.843

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.7.6467.822와 2017.1.8.6488.843 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17/4.18/4.19 - Wwise 2017.1.8.6488.843

  • LAUN-858 수정됨: Unreal 프로젝트에 Visual Studio 2015와 2017 Wwise SDK를 모두 설치함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.7.6467.822

릴리즈 노트 2017.1.7.6467.822

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.6.6446.801과 2017.1.7.6467.822 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17/4.18 - Wwise 2017.1.7.6467.822

  • Unreal Engine 4.19 지원 추가.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.6.6446.801

릴리즈 노트 2017.1.6.6446.801

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.5.6429.783과 2017.1.6.6446.801 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17/4.18 - Wwise 2017.1.6.6446.801

  • WG-35044 동일한 Auxiliary Bus를 사용하며 서로 겹치는 잔향 볼륨의 작동 방식을 더욱 결정론적으로 만듬.
  • WG-36446 수정됨: SpatialAudioVolume가 있는 맵에서 SpatialAudioVolume이 없는 맵으로 전환할 경우 발생하는 크래시.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.5.6429.783

릴리즈 노트 2017.1.5.6429.783

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.4.6407.760과 2017.1.5.6429.783 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17/4.18 - Wwise 2017.1.5.6429.783

  • WG-36016 빈 맵을 로딩할 경우 알 수 없는 게임 오브젝트 ID에 대한 오류 메시지 수정.
  • WG-36200 -game 플래그를 사용하여 에디터를 실행할 때 발생하는 크래시 수정.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.4.6407.760

릴리즈 노트 2017.1.4.6407.760

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.3.6377.732와 2017.1.4.6407.760 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17/4.18 - Wwise 2017.1.4.6407.760

  • WG-33333 전역적 포커스를 처리하려고 했던 사용되지 않는 코드 제거.
  • WG-34745 모바일 플랫폼에서 Lower Engine 메모리 플랫폼 감소.
  • WG-34879 AkComponent의 속성에서 차단 줄 트레이싱에 사용되는 충돌 채널을 표시함.
  • WG-35035 Blueprint에서 차단 새로 고침 간격을 0으로 설정할 경우 기능이 올바르게 비활성화되도록 함.
  • WG-35104 멀티플레이어 게임에서 리스너가 올바르게 처리됨.
  • WG-35463 수정됨: 32비트 플랫폼에서 포털이 작동하지 않음.
  • WG-35473 이제 세계가 유효할 때에만 게임 오브젝트를 등록함.
  • WG-35614 좌표 변환 제거. 더 자세한 정보는 새로운 좌표 시스템으로 마이그레이션하기. 을 참고하세요.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.3.6377.732

릴리즈 노트 2017.1.3.6377.732

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.3.6377.715와 2017.1.3.6377.732 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17/4.18 - Wwise 2017.1.3.6377.732

  • Unreal 4.18 지원 추가.
  • WG-35104 수정됨: 전용 서버에서 리스너가 생성되지 않음.
  • WG-35272 수정됨: Android 64비트 빌드 지원 추가.
  • WG-35286 수정됨: Add Surface Reflector Set Component Blueprint 노드가 아무 것에도 연결되지 않았을 경우 일어나는 크래시 방지.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.3.6377.715

릴리즈 노트 2017.1.3.6377.715

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.2.6361.696과 2017.1.3.6377.715 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17 - Wwise 2017.1.3.6377.715

  • WG-34797 Spatial Audio Volume 속성에서 표면 삭제를 작업 취소하면 상세 정보 패널이 올바르게 새로 고쳐짐.
  • WG-34810 Late Reverb Component 속성이 이제 올바르게 직렬화됨.
  • WG-34878, WG-34906 이제 Editor 세션의 Play에서 사운드가 올바르게 공간화됨.
  • WG-34907 FAkAudioDevice::Get() 성능 개선.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.2.6361.696

릴리즈 노트 2017.1.2.6361.696

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.1.6340.673과 2017.1.2.6361.696 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17 - Wwise 2017.1.2.6361.696

  • WG-32413 수정됨: Content Browser와 Animation Editor에서 사운드가 들리지 않음.
  • WG-33970 수정됨: (Mac) PAK 파일로 게임을 실행할 때 발생하는 크래시.
  • WG-34030 수정됨: AkSpatialAudioVolume에서 표면이 제거되었을 경우 상세 정보 패널을 올바르게 업데이트함.
  • WG-34083 수정됨: Spatial Audio Volume의 지오메트리 속성을 변경할 때 발생하는 새로 고침 문제.
  • WG-34213 수정됨: 이제 Content Browser와 Animation Editor에서 사운드가 들림.
  • WG-34222 이제 Virtual Acoustics factory ShareSet가 Wwise Picker에 나타남.
  • WG-34276 게시된 Events가 Level Sequence 안에서 연관된 섹션을 지나고 난 후에도 계속 재생될 수 있는 기능 추가.
  • WG-34605 수정됨: 일부 상황에서 Wwise Spatial Audio로 포털이 푸시되지 않음.
  • WG-34630 수정됨: -nosound 옵션이 활성화되었을 경우 크래시 발생.
  • WG-34703 수정됨: 여러 SpatialAudioVolume을 동시에 변경할 경우 발생하는 크래시 방지.
  • WG-34704 수정됨: 기본 리스너인 AkComponent를 등록 해제할 경우 발생하는 크래시 방지.
  • WG-34745 수정됨: 엔진 내부 메모리 풀 크기 감소.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.1.6340.673

릴리즈 노트 2017.1.1.6340.673

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.0.6302.628과 2017.1.1.6340.673 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17 - Wwise 2017.1.1.6340.673

  • Unreal Engine 4.17 지원 추가
  • Unreal 4.17부터는 Xbox One과 Switch 플랫폼에서 Unreal 오디오 시스템이 비활성화되어야 합니다. 더 자세한 정보는 자주 묻는 질문 를 참고하세요.
  • WG-34098 (Mac) An located at exactly the same position as a volume with an AkRoomComponent 가 있는 볼륨과 완전히 동일한 위치에 있는 AkComponent 가 해당 공간으로 올바르게 지정됨.
  • WG-34119 수정됨: SetEmitterAuxSendValues를 통해 초기화되지 않은 리스너 ID 값이 SpatialAudio API로 전송됨.
  • WG-34368 Fixed: FAkAudioDevice::PostEventAtLocation이 게임 오브젝트를 등록하지 않음.
  • WG-34388 수정됨: Level Sequencer에서 RTPC 시퀀서의 이름을 기본 이름으로 변경할 때 Editor에서 크래시가 발생함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2017.1.0.6302.628

릴리즈 노트 2017.1.0.6302.628

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2017.1.0.6302.628 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16 - Wwise 2017.1.0.6302.628

  • Spatial Audio 컴포넌트 추가. 더 자세한 정보는 Wwise Spatial Audio Objects 를 참고하세요.
  • WG-32095: Visual Studio 2017 지원 추가
  • WG-32388 수정됨: SoundBank를 생성할 때 Max 감쇠 반경을 올바르게 파싱함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.6.6153.513

릴리즈 노트 2016.2.6.6153.513

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.5.6121.484와 2016.2.6.6153.513 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17/4.18 - Wwise 2016.2.6.6153.513

  • Unreal 4.18 지원 추가
  • WG-33970 수정됨: Mac에서 PAK 파일로 게임을 실행할 때 발생하는 크래시.
  • WG-34907 수정됨: FAkAudioDevice::Get() 성능 개선.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.5.6121.484

릴리즈 노트 2016.2.5.6121.484

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.5.6121.471과 2016.2.5.6121.484 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.15/4.16/4.17 - Wwise 2016.2.5.6121.484

  • UE 4.12, 4.13, 4.14 지원 제거
  • UE 4.17 지원 추가
  • Unreal 4.17부터는 Xbox One과 Switch 플랫폼에서 Unreal 오디오 시스템이 비활성화되어야 합니다. 더 자세한 정보는 자주 묻는 질문 를 참고하세요.
  • WG-34388 수정됨: Level Sequencer에서 RTPC 시퀀서의 이름을 기본 이름으로 변경할 때 Editor에서 크래시가 발생함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.5.6121.471

릴리즈 노트 2016.2.5.6121.471

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.4.6098.451과 2016.2.5.6121.471 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14/4.15/4.16 - Wwise 2016.2.5.6121.471

  • WG-32388 수정됨: Max Attenuation이 Switch를 호출하는 Event를 업데이트하지 않음.
  • WG-32554 수정됨: Unreal 프로젝트를 쿠킹할 때 AkComponent::UpdateGameObjectPosition 크래시.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.4.6098.451

릴리즈 노트 2016.2.4.6098.451

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.3.6077.435와 2016.2.4.6098.451 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14/4.15/4.16 - Wwise 2016.2.4.6098.451

  • Unreal Engine 4.16 지원 추가
  • WG-31942 수정됨: Wwise 파일 패키지 지원 추가.
  • WG-33251 수정됨: Unity가 아닌 게임을 빌드할 때 들어가야 할 누락된 파일 추가.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.3.6077.435

릴리즈 노트 2016.2.3.6077.435

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.3.6077.422와 2016.2.3.6077.435 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14/4.15 - Wwise 2016.2.3.6077.435

  • WG-32914 수정됨: 패키징된 게임에서의 AK Unreal IO에서 잠재적인 데드락과 크래시를 방지함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.3.6077.422

릴리즈 노트 2016.2.3.6077.422

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.2.6022.371와 2016.2.3.6077.422 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14/4.15 - Wwise 2016.2.3.6077.422

  • WG-30020 수정됨: 에디터를 시작할 때 Wwise 프로젝트가 누락될 경우 경고 메시지를 닫을 수 있도록 함.
  • WG-30695 Switch 플랫폼 지원 추가.
  • WG-31076 수정됨: 모든 Wwise Blueprint 노드를 BlueprintCosmetic 으로 표시하여 전용 서버에서 실행되지 않도록 함.
  • WG-31455 AkComponentCallbackManager 추가. 이로 인해 AkComponent에 필요한 콜백 처리를 개선하여 동시 실행 문제를 감소함.
  • WG-32046 수정됨: BeginPlay에서 AkAmbientSound를 자동 시작할 수 있는 기능 추가.
  • WG-32490 수정됨: 레벨 시퀀서 코드가 추후 버전에서 사용 중단됨.
  • WG-32763 수정됨: 'Engine.h'와 같은 모놀리식 엔진 헤더 파일 사용을 중단함.
  • WG-32768 수정됨: EDL을 사용하여 큰 뱅크를 로드할 경우 크래시 발생.
  • WG-32799 수정됨: 에디터에서 동시 실행 IO 전송의 개수를 늘여 SoundBank 로딩의 속도 개선.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.2.6022.371

릴리즈 노트 2016.2.2.6022.371

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.2.6022.359와 2016.2.2.6022.371 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14/4.15 - Wwise 2016.2.2.6022.371

  • WG-32464 Mac 플랫폼에서의 UE4.15에서 기존의 프로젝트를 열 수 있도록 함.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.2.6022.359

릴리즈 노트 2016.2.2.6022.359

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.1.5995.317과 2016.2.2.6022.359 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14/4.15 - Wwise 2016.2.2.6022.359

  • WG-31087 Level Sequence 지원 추가.
  • WG-31687 Event Driven Loader 지원 추가.
  • WG-31816 Sequencer 트랙에 Matinee 트랙 마이그레이션 추가.
  • WG-31924 수정됨: 자동 파괴되는 AkComponent에 Event를 게시하려고 할 때 Editor에서 크래시가 발생함.
  • WG-32259 수정됨: AkComponent를 Blueprintable 컴포넌트로 만듬. 이제 컴포넌트가 AkComponent를 기반 클래스로 사용할 수 있음.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.1.5995.317

릴리즈 노트 2016.2.1.5995.317

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.0.5972.301와 2016.2.1.5995.317 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14 - Wwise 2016.2.1.5995.317

  • WG-31588 수정됨: 없어질 액터에서 사운드가 재생되지 않도록 함.
  • WG-31590 콜백에 관련된 메모리 부족 조건 개선.
  • WG-31860 수정됨: 클랭 스태틱 코드 분석에 의해 발견된 경고 제거.
  • WG-31876 수정됨: Wwise 설치 경로의 상대적 경로 허용.
  • WG-31888 수정됨: 삭제된 FString으로 인해 종료시 일어나는 잠재적 크래시.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.0.5972.301

릴리즈 노트 2016.2.0.5972.301

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.0.5972.274와 2016.2.0.5972.301 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14 - Wwise 2016.2.0.5972.301

  • WG-31589 수정됨: 자동 파괴되도록 설정되지 않았으며 이벤트를 게시하지 못하고 있는 스폰된 컴포넌트를 파괴하지 않음.
  • WG-31678 수정됨: 스트리밍 파일이 이제 올바르게 열려질 수 있음.
  • WG-31771 수정됨: 애니메이션을 재생하기 위해 AnimNotify_AkEvent를 추가할 때 일어나는 크래시 방지.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.2.0.5972.274

릴리즈 노트 2016.2.0.5972.274

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.2.0.5972.274 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13 - Wwise 2016.2.0.5972.274

  • WG-29980 언어별 폴더가 이제 Event의 최대 감쇠값을 가져오도록 파싱(parsing)됨.
  • WG-30448 유효하지 않은 AkEvent를 게시하려고 할 때 AkComponent 로그 개선.
  • WG-30491 수정됨: PIE 세션을 종료할 떄 사운드가 중단되도록 함.
  • WG-31030 수정됨: FAkAudioDevice::Get() 최적화.
  • WG-31040 수정됨: 유효하지 않은 AkEvent를 게시하려고 할 떄 AkComponent에서 메모리가 새어나감.
  • WG-31075 수정됨: 뱅크 로드 콜백에서 FAkAudioDevice::Get()으로의 호출을 제거하여 모듈 매니저에서 크래시가 발생하지 않도록 함.
  • WG-31186 수정됨: AkComponent가 파괴될 때 Event 콜백을 취소하여 AkComponentCallback 크래시를 방지함.
  • WG-31204 수정됨: 스폰된 AkComponent가 관련 Event를 게시하지 못했을 때 메모리가 새어나가는 문제.
  • WG-31277 수정됨: 파괴된 액터에서 Event를 게시하려고 할 때 에디터에서 발생하는 크래시.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.1.6

릴리즈 노트 2016.1.6

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.1.6 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12/4.13/4.14 - Wwise 2016.1.6

  • UE 4.11 지원 제거.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.1.5

릴리즈 노트 2016.1.5

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.1.5 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.11/4.12/4.13/4.14 - Wwise 2016.1.5

  • WG-31588 수정됨: 없어질 액터에서 사운드가 재생되지 않도록 함.
  • WG-31860 수정됨: 클랭 스태틱 코드 분석에 의해 발견된 경고 제거.
  • WG-31876 수정됨: Wwise 설치 경로의 상대적 경로 허용.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.1.4

릴리즈 노트 2016.1.4

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.1.4 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.11/4.12/4.13/4.14 - Wwise 2016.1.4

  • WG-29980 언어별 폴더가 이제 Event의 최대 감쇠값을 가져오도록 파싱(parsing)됨.
  • WG-31030 FAkAudioDevice::Get() 최적화.
  • WG-31075 뱅크 로드 콜백에서 FAkAudioDevice::Get()으로의 호출을 제거하여 모듈 매니저에서 크래시가 발생하지 않도록 함.
  • WG-31186 수정됨: AkComponent가 파괴되어 Event 콜백을 취소할 때 AkComponentCallback 에서 발생하는 크래시.
  • WG-31204 수정됨: 스폰된 AkComponent가 관련 Event를 게시하지 못했을 때 메모리가 새어나가는 문제.
  • WG-31277 수정됨: 파괴된 액터에서 Event를 게시하려고 할 때 에디터에서 발생하는 크래시.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.1.3

릴리즈 노트 2016.1.3

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.1.3 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.11/4.12/4.13 - Wwise 2016.1.3

  • WG-30993 수정됨: XAudio 2.7에서 명시적 LoadLibrary 제거.
  • WG-31015 수정됨: Recorder 플러그인과의 연결.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.1.2

릴리즈 노트 2016.1.2

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.1.2 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.11/4.12 - Wwise 2016.1.2

  • WG-30304 수정됨: "Unload stream level"이 SoundEngine으로 전역적 'Stop All을 더 이상 게시하지 않음. '- WG-30754 수정됨: FAkAudioDevice::PostEvent가 이제 재생 ID를 항상 리턴함.
  • WG-30804 수정됨: Wwise SDK 샘플에서 의존성 제거. 새로운 IO 시스템은 이제 Unreal IO 유틸리티만 사용합니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.1.1

릴리즈 노트 2016.1.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.1.1 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

UE4.11/4.12 Wwise 2016.1.1 통합으로 마이그레이션 하기

Unreal Engine 4.11/4.12 - Wwise 2016.1.1

  • WG-29972 수정됨: AkComponent의 자동 파괴 작동 방식에 일어나는 여러 가지 잠재적 스레드 문제.
  • WG-29979 수정됨: 이제 EndOfEvent 콜백이 항상 호출됨.
  • WG-30004 수정됨: 이제 SetGameObjectOutputBusVolume이 Blueprint와 AkAudioDevice에서 표시됨.
  • WG-30404 수정됨: 감쇠 비율이 이제 AkComponent 에서 올바르게 작동됨.
  • WG-30409 수정됨: 이제 Vorbis로 인코딩된 파일을 디코딩할 수 있음.


Wwise Unreal Integration Documentation: UE4.11/4.12 Wwise 2016.1.1 통합으로 마이그레이션 하기

UE4.11/4.12 Wwise 2016.1.1 통합으로 마이그레이션 하기

WG-30404 수정의 일부로 AkComponent 의 AttenuationScalingFactor UPROPERTY 가 Blueprint에서 읽기 전용으로 변경되었습니다. 이 값을 설정하려면 이제 AkComponent 에서 SetAttenuationScalingFactor 메소드를 호출해야 합니다.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.1.0 (UE4.12로 업데이트)

릴리즈 노트 2016.1.0 (UE4.12로 업데이트)

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.1.0 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.11.2 - Wwise 2016.1

  • UE4.12 지원 추가
  • WG-29917 수정됨: AkAmbientSounds 의 감쇠 반경이 Editor 창에서 표시되지 않은 오류 수정.
  • WG-30000 수정됨: StartAllAmbientSounds 와 StopAllAmbientSounds의 메타 속성 변경.
  • WG-30012 수정됨: GitHub 풀 리퀘스트 (pull request) #5 통합. 프로젝트에서 지원하는 플랫폼을 'Generate Sound Banks' 창에서 'Available Platforms'로 표시함.
  • WG-30014 수정됨: 전용 서버를 사용하는 Play in Editor 세션을 시작할 때 발생하는 크래시.
  • WG-30031 수정됨: World global 포인터 사용 제거.
  • WG-30205 수정됨: Mac 플랫폼에서 Wwise.app 경로에 이제 여백이 들어갈 수 있음.


Wwise Unreal Integration Documentation: 릴리즈 노트 2016.1.0

릴리즈 노트 2016.1.0

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2016.1.0 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.11.2 - Wwise 2016.1

  • WG-29917 수정됨: AkAmbientSounds 의 감쇠 반경이 Editor 창에서 표시되지 않은 오류 수정.
  • WG-30000 수정됨: StartAllAmbientSounds 와 StopAllAmbientSounds의 메타 속성 변경.
  • WG-30012 수정됨: GitHub 풀 리퀘스트 (pull request) #5 통합. 프로젝트에서 지원하는 플랫폼을 'Generate Sound Banks' 창에서 'Available Platforms'로 표시함.
  • WG-30014 수정됨: 전용 서버를 사용하는 Play in Editor 세션을 시작할 때 발생하는 크래시.
  • WG-30031 수정됨: World global 포인터 사용 제거.
  • WG-30205 수정됨: Mac 플랫폼에서 Wwise.app 경로에 이제 여백이 들어갈 수 있음.


Wwise Unreal Integration Documentation: Release Notes 2015.1.7

Release Notes 2015.1.7

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 2015.1.7 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.12 - Wwise 2015.1.7

  • WG-29917 수정됨: AkAmbientSounds 의 감쇠 반경이 Editor 창에서 표시되지 않은 오류 수정.
  • WG-29991 AkEvent String Input Field를 AkAmbientSound 에 추가함.
  • WG-29997 출력 로그에서 'LogAkAudio: StopAll API called' 항목이 복제되지 않도록 함.
  • WG-30000 수정됨: StartAllAmbientSounds 와 StopAllAmbientSounds의 메타 속성 변경.
  • WG-30012 수정됨: GitHub 풀 리퀘스트 (pull request) #5 통합. SoundBank 생성에 사용 가능한 플랫폼의 목록을 Unreal 프로젝트 설정 아래 있는 Supported Platforms와 맞춤.
  • WG-30014 수정됨: 전용 서버를 사용하는 Play in Editor 세션을 시작할 때 발생하는 크래시.
  • WG-30031 수정됨: World global 포인터 사용 제거.
  • WG-30218 수정됨: Wwise Profiler를 Android 플랫폼과 연결할 때 발생하는 크래시.
  • WG-30255 수정됨: Matinee에 있는 Ak Event Track에 키를 추가할 때 발생하는 UE4 크래시.


Wwise Unreal Integration Documentation: Unreal Engine 4.11 - Wwise 2015.1.6

Unreal Engine 4.11 - Wwise 2015.1.6

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 4.11 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

마이그레이션 노트

Unreal Engine 4.11 - Wwise 2015.1.6

  • Wwise Unreal 통합이 이제 플러그인이 되었음. 마이그레이션 노트는 UE4 Wwise 통합 소스 코드에서 플러그인 버전으로 마이그레이션하기 을 참고하세요.
  • UI-273 수정됨: Auxiliary Bus에 사용할 새로운 uasset 타입 생성. 이렇게 해서 SoundBank에 AuxBus를 지정할 수 있습니다. 더 자세한 정보는 UAkAuxBus 를 참고하세요.
  • UI-280 수정됨: '...by name' 메소드가 추후 버전에서 더 이상 지원되지 않으며 관련된 메소드에서 문자열 입력란으로 교체됨. 더 많은 정보는 '...by name' 메소드를 사용하여 마이그레이션하기 을 참고하세요.
  • UI-309 수정됨: Wwise 프로젝트의 경로를 UE4Editor.exe 파일과 상대적인 대신 게임 폴더와 상대적인 경로로 만듬. 더 자세한 정보는 Wwise 프로젝트 경로 마이그레이션하기 를 참고하세요.


Wwise Unreal Integration Documentation: 마이그레이션 노트

마이그레이션 노트

UE4 Wwise 통합 소스 코드에서 플러그인 버전으로 마이그레이션하기

Unreal Engine 4.11부터 Wwise UE4 통합이 플러그인으로 배포됩니다.

참고: 더 이상 Wwise에서 Unreal Content Browser로 Event를 드래그하여 해당 AkAudioEvent 오브젝트를 만들 수 없습니다. 이제 Wwise Picker에서 Unreal Content Browser로 Event를 드래그하여 해당 오브젝트를 생성할 수 있습니다.

UE4 ㅍ 로젝트를 UE 4.10 (혹은 그 이전)에서 UE 4.11 (혹은 그 이상)으로 업데이트하기:

  1. 게임 프로젝트를 백업하세요.
  2. Epic Games Launcher에서 Unreal Engine을 설치하거나 소스 코드에서 Unreal Engine을 컴파일하세요.
  3. 설치 에서 설명한대로 Wwise Unreal 플러그인을 Engine이나 Game 플러그인으로 설치하세요. 이때 반드시 여러분이 빌드한 SDK 파일을 사용하세요.
  4. Unreal Editor에서 게임 프로젝트를 로드하세요.
  5. Wwise Unreal 플러그인을 Engine 플러그인으로 설치했을 경우 Edit > Plugins > Audio로 가서 Wwise Unreal Engine 4 Integration 섹션에 있는 'enable' 옵션을 눌러서 Wwise 플러그인을 활성화하세요. 플러그인을 활성화하려면 프로젝트를 다시 로드해야 합니다.
  6. 프로젝트가 AkEvent나 AkEventByName AnimNotify를 사용할 경우 일부 에셋이 새로운 플러그인 모델을 지원하기 위해 변경되기 때문에 프로젝트를 다시 로드하라는 메시지가 뜹니다.

플러그인과 함께 제공되는 AnimNotifies가 Engine 콘텐츠 폴더에서 플러그인 자체의 콘텐츠 폴더로 옮겨져야 하기 때문에 마지막 단계를 반드시 실행해야 합니다. 참조를 옮기려면 프로젝트를 다시 로드해야 합니다.

모든 단계를 완료하고 나면 Wwise Unreal 플러그인을 사용할 수 있습니다.

'...by name' 메소드를 사용하여 마이그레이션하기

Wwise Unreal 플러그인의 4.11 버전부터 모든 "...by Name" 메소드 (예: PostEventByName이나 LoadBankByName)가 추후 버전에서 지원되지 않습니다.. Blueprint 노드의 고급 입력란을 사용하면 여전히 문자여릉ㄹ 사용하여 Event를 게시하거나 SoundBank를 로드할 수 있습니다. 예를 들어 Event를 이름에 의해 게시하고자 할 경우 이제 'PostEvent' Blueprint 노드의 'Event Name' 입력란을 상둉해야 합니다.

Wwise 프로젝트 경로 마이그레이션하기

Wwise Unreal 플러그인의 4.11 버전부터 Wwise 설정에 있는 Wwise 경로가 이제 UE4Editor.exe 파일이 아닌 게임 폴더와 상대적이게 됩니다. 이 변경 사항은 4.11 Wwise Unreal 플러그인을 처음 실행할 때 자동으로 실행됩니다.


Wwise Unreal Integration Documentation: Unreal Engine 4.10 - Wwise 2015.1.4

Unreal Engine 4.10 - Wwise 2015.1.4

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 4.10 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.10 - Wwise v2015.1.4

  • UI-265 수정됨: AnimNotifies에서 AkComponent를 사용하기 전에 유효성을 시험함. 이렇게 해서 -nosound 옵션으로 UE를 사용할 경우 로그 스팸이 감소됨.
  • UI-270 수정됨: 이제 Unity가 아닌 모드로 빌드할 수 있음.


Wwise Unreal Integration Documentation: Unreal Engine 4.9 - Wwise 2015.1.2

Unreal Engine 4.9 - Wwise 2015.1.2

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 4.9 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.9 - Wwise v2015.1.2

  • UI-249 수정됨: Windows에서 사용 가능한 Audio Playback 장치가 없을 때 일어나는 크래시 방지.
  • 'Spawn AkComponent at location' Blueprint 노드 추가. 더 자세한 정보는 Spawn Ak Component at Location 를 참고하세요.
  • Mac Editor 지원 추가.
  • Mac 플랫폼 지원 추가.
  • iOS 플랫폼 지원 추가.
  • Linux 플랫폼 지원 추가.


Wwise Unreal Integration Documentation: Unreal Engine 4.8 - Wwise 2015.1.0

Unreal Engine 4.8 - Wwise 2015.1.0

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 4.8 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.8 - Wwise v2015.1

  • Wwise 2015.1에 UE4.8 통합을 마이그레이션함
  • 앱 매니페스트가 Wwise 통신 포트의 정의를 담고 있지 않을 경우 Xbox One에서 발생하는 크래시 문제 해결.


Wwise Unreal Integration Documentation: Unreal Engine 4.8 - Wwise 2014.1.5

Unreal Engine 4.8 - Wwise 2014.1.5

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 4.8 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.8 - Wwise v2014.1.5

  • UI-206 수정됨: 애니메이션 창이 열렸을 때에도 감쇠가 있는 사운드를 들을 수 있음.
  • UI-212 수정됨: 'Load Init Bank' Blueprint 노드를 추가함.
  • UI-213 수정됨: Blueprint 노드에서 null 확인을 추가하여 크래시를 방지함.
  • UI-214 수정됨: 디스크에 출력 캡처를 저장할 때 크래시가 발생하지 않음.
  • UI-215 수정: AkComponent가 액터에 연결되었을 때 Attenuation Scaling Factor가 설정되지 않는 문제 해결.
  • UI-217 수정됨: AkReverbVolume의 충돌 설정을 상세 정보 패널에서 확인할 수 있도록 함.
  • UI-220 수정됨: 스폰이 차단한 사운드의 차단 페이드 작동 방식 수정.
  • UI-223 수정됨: 한 SoundBank의 파싱(parsing)에 실패할 때 AkEvent의 최대 감쇠 수집이 중단되지 않음.
  • UI-226 수정됨: 64비트 WwiseCLI.exe가 누락될 경우 SoundBank 생성이 이제 32비트 WwiseCLI.exe에 의해 실행됨.
  • UI-230 수정됨: 이제 Wwise Game Object를 등록 해제할 때 FinishDestroy 가 아닌 OnComponentDestroyed 를 사용하여 일부 Game Object가 등록되는 데에 시간이 오래 걸리는 문제를 해결함.
  • UI-233 수정됨: GetGameObjectID 함수 안에 있는 액터에서 유효성 검토를 추가함.
  • UI-234 수정됨: SetListener 함수에서 여러 뷰포트가 올바르게 처리됨. 이로 인해 AkAudioDevice.cpp 크래시 문제가 해결됩니다.
  • UI-236 수정됨: GetAkComponent Blueprint 노드에 주어진 Location Type이 올바르게 처리됨.
  • UI-239 수정됨: 엔진을 닫을 때에 Bank Manager가 이미 파괴된 SoundBank를 언로드하려고 하여 일어나는 크래시 문제 해결.
  • AnimNotify_AkEvent에 'Follow' 체크 상자 추가. 이 체크 상자를 선택하지 않은 상태로 두면 AkEvent를 상위 오브젝트에 연결하지 않고 특정 위치에서 게시하게 됨.
  • 새로운 AnimNotify: AnimNotify_AkEventByName을 추가하여 Event의 이름을 문자열로 사용하여 Event를 게시할 수 있도록 함.
  • Blueprint에 Debugging 도구 추가. 더 자세한 정보는 디버그 블루프린트 함수 를 참고하세요.


Wwise Unreal Integration Documentation: Unreal Engine 4.7 - Wwise 2014.1.3

Unreal Engine 4.7 - Wwise 2014.1.3

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 4.7 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.7 - Wwise v2014.1.3

  • Android 플랫폼 지원 추가.
  • 이제 Epic의 First Person Template에 따라 새로운 데모 게임을 포함함. 더 자세한 정보는 Using the Wwise Demo Game 을 참고하세요.
  • 모든 Wwise 통합 설정이 이제 Unreal Project Settings 창에서 자체적인 페이지를 가짐. 더 이상 INI 파일을 직접 편집할 필요가 없습니다!
  • UI-157 수정됨: SoundBank를 생성할 때 AkEvent에 Max Attenuation 정보를 추가함. Blueprint를 통해 이 정보를 가져올 수 있습니다.
  • UI-187 수정됨: Content Browser에서 스페이스 바를 눌러 AkEvent 미리 보기를 허용함.
  • UI-188 수정됨: AkAmbientSound가 파괴되려고 할 때 해당하는 Event 콜백을 취소하여 콜백 도중 파괴된 오브젝트가 사용되지 않도록 방지함.
  • UI-189 수정됨: AkComponent에 감쇠 비율을 추가하여 각 액터의 감쇠 반경을 서로 다르게 설정할 수 있도록 함.
  • UI-190 수정됨: 로드된 SoundBank의 정확한 목록을 설정하게 해주는 새로운 Blueprint 노드를 추가함. 더 자세한 정보는 Removed and Deprecated Functions 를 참고하세요.
  • UI-193 수정됨: 드래그하여 UAkAudioEvents 를 생성할 경우 UAkAudioEventFactory 를 직접 가져옴.
  • UI-194 수정됨: 위치에서 AkReverbVolumes 찾기를 최적화함.
  • UI-195 수정됨: blueprint_actor_posteventbyname, features_blueprintsoundbanks_removed, Removed and Deprecated Functions Blueprint 노드를 추가함.
  • UI-196 수정됨: 사운드에 적용되는 동시다발적 Reverb Volume의 최대 개수에 설정 매개 변수를 추가함.
  • UI-201 수정됨: AkComponent에 UAkAudioEvent를 추가하여 Unreal의 AudioComponent와 동기화함. Blueprint에서 UAkAudioEvent를 드래그하여 AkComponent를 추가할 수 있습니다. 연결된 AkComponent가 있는 액터도 Editor에서 감쇠 반경을 보여줍니다.
  • UI-204 수정됨: 자동으로 로드된 SoundBank를 언로드할 수 있는 코드 추가.
  • UI-205 수정됨: 오디오 재생을 허용하지 않는 세계에서 Event를 게시하지 않음.
  • UI-208 수정됨: SoundBank를 생성할 떄 일어날 수 있는 크래시 문제 수정.


Wwise Unreal Integration Documentation: Unreal Engine 4.6 - Wwise 2014.1.1

Unreal Engine 4.6 - Wwise 2014.1.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 4.6 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.6 - Wwise v2014.1.1

  • UI-183 수정됨: CRT 라이브러리 디버깅에 사용하기 위해 UnrealBuildTool이 설정되었을 때 디버그 SoundEngine 라이브러리를 사용함 (bDebugBuildsActuallyUseDebugCRT = true).
  • UI-184 수정됨: AkComponent가 Editor에서 보이도록 AkComponent에 빌보드 컴포넌트를 추가함.
  • UI-186 수정됨: Content Browser 안으로 .bnk 파일을 드래그하여 UAkAudioBank 에셋을 생성할 수 있도록 허용함.


Wwise Unreal Integration Documentation: Unreal Engine 4.5 - Wwise 2014.1

Unreal Engine 4.5 - Wwise 2014.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 4.5 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

Unreal Engine 4.5 - Wwise v2014.1

  • UI-172 수정됨: AkReverbVolumeChannel 충돌 채널에 의해 생성된 어서트 해결.
  • UI-174 수정됨: 'Generate SoundBanks' 창 최적화.
  • UI-175 수정됨: 이 통합에서 지원하지 않는 플랫폼에서 일어나는 종합적 오류를 제거하기 위해 전처리기 가드를 추가함.


Wwise Unreal Integration Documentation: 2014년 8월 - Wwise v2014.1

2014년 8월 - Wwise v2014.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2014년 8월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2014년 8월 - Wwise v2014.1

  • UI-166 수정됨: Auxiliary Bus 속성이 이제 Reverb Volume 안에 담긴 Ambient Sound에서 적용됨.
  • Wwise 버전을 2014.1로 업데이트함. 계속해서 2013.2.x를 사용하고 싶을 경우 자주 묻는 질문 를 참고하세요.


Wwise Unreal Integration Documentation: 2014년 8월 - Wwise v2013.2.9

2014년 8월 - Wwise v2013.2.9

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2014년 8월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2014년 8월 - Wwise v2013.2.9

  • 일본어 설명서 추가.


Wwise Unreal Integration Documentation: 2014년 7월 - Wwise v2013.2.9

2014년 7월 - Wwise v2013.2.9

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2014년 7월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2014년 7월 - Wwise v2013.2.9

  • UnrealWwiseDemo 샘플 게임에 스위치 사용을 설명해주는 SwitchDemo 맵 추가.
  • UI-161 수정됨: 환경음을 시작할 때 복제되어 생기는 AkComponent 제거. 이로 인해 Stop Ambient Sound 메소드가 작동하지 않는 문제가 방지됩니다.


Wwise Unreal Integration Documentation: 2014년 6월 - Wwise v2013.2.8

2014년 6월 - Wwise v2013.2.8

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2014년 6월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2014년 6월 - Wwise v2013.2.8

  • UI-152 수정됨: 패키징 과정에 SoundBank와 스트리밍 파일 추가.


Wwise Unreal Integration Documentation: 2014년 4월 - Wwise v2013.2.7

2014년 4월 - Wwise v2013.2.7

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2014년 4월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2014년 4월 - Wwise v2013.2.7

  • UI-149 수정됨: AkReverbVolumes에 올바른 기본값을 설정함.


Wwise Unreal Integration Documentation: 2014년 3월 - Wwise v2013.2.6

2014년 3월 - Wwise v2013.2.6

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2014년 3월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2014년 3월 - Wwise v2013.2.6

  • 이제 Visual Studio 2013가 기본적으로 사용됩니다. 더 자세한 내용은 요구 사항 페이지를 참고하세요.
  • UI-146 수정됨: Unity가 아닌 빌드에서 종합적 오류 수정.
  • UI-147 수정됨:
    • AkComponent 틱 함수에서 SoundEngine가 초기화되는지 검토함.
    • AkReverbVolumes에 충돌 채널 이름을 올바르게 설정함.
    • 커맨드렛에서 뱅크를 로드하지 않도록 함.
    • 자동 뱅크 생성 장치를 제거함.
  • UI-148 수정됨: RTPCDemo Blueprint에서 Get Player Controller를 사용하여 Editor에서 Simulate과 Possess ㄷ사이를 전환할 때 소리가 계속 재생되도록 함.


Wwise Unreal Integration Documentation: 2014년 1월 - Wwise v2013.2.5

2014년 1월 - Wwise v2013.2.5

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2014년 1월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2014년 1월 - Wwise v2013.2.5

  • ShooterGame에 AkAnimNotify의 예시 추가. 이 예시는 FPP_RifleReload 애니메이션 안에 있습니다.
  • UI-131 수정됨: 이제 Animation Editor에서 공간화된 사운드를 들을 수 있음. Animation Editor 창에 두 번째 리스너를 추가하고 이 창에서 생성된 게임 오브젝트를 새로운 리스너로 라우팅함.
    경고: 이 수정으로 인해 AnimNotify_AkEvent Blueprint가 변경됩니다. AnimNotify_AkEvent Blueprint를 변경했을 경우 통합을 합치기 전에 백업을 만들어두세요.
  • UI-134 수정됨: GetAkComponent에 StopWhenOwnerDestroyed 입력 플래그 제거. 이 플래그는 사용되지 않았으며 혼란을 일으킬 수 있습니다. AkComponent에 SetStopWhenOwnerDestroyed 메소드 추가.
  • UI-136 수정됨: Wwise Authoring이 Xbox One 애플리케이션과 통신하도록 허용함.
  • UI-137 수정됨: 일시적 게임 오브젝트 ('Post Event at Location'로 인해 생성됨)가 AAkReverbVolumes의 적용을 받도록 함.
  • UI-138 수정됨: 커맨드렛에서 Unreal을 실행할 경우 Sound Engine이 UE 오류를 만들지 않도록 함. 이 부분은 문제를 피해 작업을 진행할 수 있도록 해줍니다. Sound Engine이 아예 초기화되지 않아야 할 수 있습니다.
  • UI-139 수정됨: SoundEngine에서 리스너 위치를 설정할 때 Z 투영에서 dFMath::Abs 제거 (Unreal 코드는 변경되지 않았습니다). 이렇게 해서 리스너를 거꾸로 배치할 수 있습니다.
  • UI-145 수정됨: AkComponent::SetRTPCValue 메소드에서 RTPC가 올바르게 적용되지 못하게 만들었던 오류 수정.


Wwise Unreal Integration Documentation: 2013년 12월 - Wwise v2013.2.4

2013년 12월 - Wwise v2013.2.4

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2013년 12월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2013년 12월 - Wwise v2013.2.4

  • Unreal Wwise 통합이 이제 PS4와 Xbox One 플랫폼을 공식으로 지원함!
  • 뱅크 생성 대화 상자에 플랫폼 선택 추가.
  • 빌드 메뉴에 뱅크 생성 대화 상자 추가.
  • LinkedProject configuration 매개 변수가 Engine/Config/BaseEditor.ini에서 <Your Game>/Config/DefaultGame.ini로 옮겨짐.
  • 간단한 차단 지원 추가.
  • 소유자가 없는 다른 컴포넌트에서 UAkComponent를 가져올 경우 크래시가 발생하는 문제 해결.
  • UI-130 수정됨: UAkComponent::UpdateAkReverbVolumeList 메소드의 성능 문제 수정.
  • UI-130 수정됨: UAkComponent에 이 컴포넌트가 잔향 볼륨의 영향을 받는다는 것을 표시하는 플래그를 추가함.
  • UI-132 수정됨: 서버 설정에서 UAkComponent의 틱킹(ticking) 방지.
  • UI-135 수정됨: RTPC 보간 시간 표시.


Wwise Unreal Integration Documentation: 2013년 10월 - Wwise v2013.2.1

2013년 10월 - Wwise v2013.2.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2013년 10월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2013년 10월 - Wwise v2013.2.1

  • PlayStation4와 Xbox One에서 뱅크 생성 추가.
  • AkReverbVolume을 추가하여 공간 안에서 Wwise 보조 버스에 볼륨을 매핑할 수 있도록 함.
  • UI-128 수정됨: 비동기적 IO 접근 구현.


Wwise Unreal Integration Documentation: 2013년 9월 - Wwise v2013.2.1

2013년 9월 - Wwise v2013.2.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2013년 9월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2013년 9월 - Wwise v2013.2.1

  • Visual Studio 2012 빌드 설정 수정.
  • AkAudioDevice만 있을 경우 UEngine::UseSound()가 false를 리턴하는 문제 수정.
  • UAkComponent::PostAkEvent에서 null 이벤트를 사용할 경우 크래시가 발생하는 문제 수정.
  • 스태틱 액터를 사용하는 게임 오브젝트 위치 수정.


Wwise Unreal Integration Documentation: 2013년 8월 - Wwise v2013.2

2013년 8월 - Wwise v2013.2

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2013년 8월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2013년 8월 - Wwise v2013.2

  • Actor, AkComponent, Wwise 게임 오브젝트와 해당 수명 간에 헷갈리는 내용 수정.
    • AkComponent는 Epic의 AudioComponent의 연결 시맨틱스(semantics)를 따름. AkComponent는 연결된 모든 매개 변수가 대응할 경우 재사용됩니다.
    • AkGameplayStatics를 블루프린트에서 쉽게 사용할 수 있도록 Actor를 대상으로 하는 전역적 헬퍼를 담고 있음.
  • SoundBank Definition File에서 누락된 Event와 Bank 수정.
  • Wwise Profiler에서 게임 오브젝트 이름 수정.
  • 이제 SoundBank를 생성할 경우 이제 로드된 뱅크가 새로 고침됨.
  • Set RTPC Value global 헬퍼가 이제 Game Parameter의 전역적 범위 설정 (Actor 대상이 없는)을 지원함.


Wwise Unreal Integration Documentation: 2013년 7월 - Wwise v2013.1.1

2013년 7월 - Wwise v2013.1.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2013년 7월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2013년 7월 - Wwise v2013.1.1

  • SoundBank Generation 도중 오류가 일어날 경우 메시지 상자 추가.
  • Content Browser에서 Audiokinetic Event와 Audiokinetic Bank 에셋 타입에 각각 새로운 색깔 추가.
  • Xbox One과 PS4 플랫폼에서의 종합적 오류 수정.
  • AnimNotify_AkEvent가 잘못된 타입을 사용하는 문제 수정.
  • AkComponent Game Object 위치 업데이트 수정.


Wwise Unreal Integration Documentation: 2013년 6월 - Wwise v2013.1.1

2013년 6월 - Wwise v2013.1.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2013년 6월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2013년 6월 - Wwise v2013.1.1

  • DebugGame 빌드 설정 지원 추가.
  • 이제 통합 설정을 도울 수 있는 부분적 Wwise SDK가 들어 있음.
  • Windows 64비트 빌드에서 xaudio2/mmdev DLL 언로드 문제 해결.
  • 마티네 동영상이 데모맵을 재생하지 않도록 함 - 이 문제로 인해 사용자 입력이 작동되지 않았음.
  • FLevelEditorViewportClient::UpdateAudioListener에서 AkAudioDevice 리스너 위치 업데이트 수정.
  • Windows 플랫폼에서 AudioDeviceModuleName 기본값을 XAudio2로 변경함.


Wwise Unreal Integration Documentation: 2013년 5월 - Wwise v2013.1.1

2013년 5월 - Wwise v2013.1.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2013년 5월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2013년 5월 - Wwise v2013.1.1

  • 독시젠(doxygen) 설명서 추가.
  • 이제 Wwise 2013.1.1 빌드 4677을 사용하여 빌드함.


Wwise Unreal Integration Documentation: 2013년 3월 - Wwise v2013.1

2013년 3월 - Wwise v2013.1

이 통합의 각 버전은 특정 빌드의 Unreal Engine 4와 대응합니다. 다음은 통합의 Unreal Engine 2013년 3월 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

2013년 3월 - Wwise v2013.1

  • 이제 Wwise 2013.1 베타 빌드 4609를 사용하여 빌드함.


Wwise Unreal Integration Documentation: 자주 겪는 문제

자주 겪는 문제

Wwise Unreal 통합 2022.1 관련 구현 정보 및 자주 겪는 문제

디버깅

There should be Log, Warning, and Error messages when something is wrong. However, if you have trouble pinpointing the issue with asset loading and packaging, set the log for all relevant Wwise modules to Verbose, or VeryVerbose.

If you have issues with memory usage and performance, many Stats were added in the lower-level Wwise constructs. You can use Unreal Frontend to start a profiling session, or use the Stats menu to enable real-time visualization of the available statistics. For example, the WwiseFileHandler stats has information about all the currently loaded assets.

The GeneratedSoundBanks folder is usually relative to the project root. When using the editor with the -Game option, the working directory might need to be set at the same folder than the root where your .uproject file is.

Editor 로드 시간

The code was designed to be asynchronous for load-time performance. However, this optimization was not pursued in time for 2022.1. This means all SoundBank information files are parsed on Editor start, which can take a significant amount of time, depending on your hardware and project size.

Cooking and Packaging

Iterative cooking is currently not supported in 2022.1. Unreal doesn't support our particular use case, and we are working on mitigating this issue. For now, the simplest solution is to manually delete the staged files. See https://issues.unrealengine.com/issue/UE-167603.

There is currently no automated way to separate assets by package. It is not possible to split languages into different optional packages, or make particular assets loadable independently. Although these features are planned, we need your feedback on your particular use cases so we can develop the most appropriate default feature set. Remember, it’s always possible to overwrite the different libraries in order to adapt the cooking functionality to your particular needs. You can also write specific rules directly in Unreal's Game - Asset Manager project preferences that would encompass the different Wwise assets in the Staging folder.

Unreal Stat (Mac Only)

The statistics for Wwise might not be accessible in the Unreal Stat menu on Mac if your Unreal project is out of date. Update your Unreal project in order to see the Wwise Stat category.

자주 겪는 문제

  • WG-29964 Wwise Profiler는 Linux 게임과 연결할 수 없습니다.
  • WG-29982 Use Reverb Volumes 플래그가 실시간으로 작동하지 않습니다. Blueprint 상자 'Set use reverb volumes'가 올바르게 작동하지 않습니다.
  • WG-44750 Mesh에 있는 Physical Material Override를 AkGeometryComponent가 있는 Acoustic Texture 할당에서 사용할 수 없습니다.
  • WG-48803 Event에서 Event를 게시할 경우, 그리고 Switch나 State 값을 설정할 경우 패키징된 게임에서 미디어가 누락될 수 있습니다.

  • WG-52497 현재 오디오 장치에서 Spatial Sound 옵션을 변경할 경우 Unreal Editor가 멈출 수 있음. 예를 들어 이 문제는 Windows Sonic for Headphones를 Off로 변경할 경우 일어날 수 있습니다. 이 문제가 생길 경우 UE Audio를 비활성화하면 멈춤 문제를 방지할 수 있습니다.

    UE Audio를 비활성화하려면 반드시 다음을 실행해주세요:

    1. UE 프로젝트의 Config 폴더를 여세요. (예: WwiseAudioLab/Config)
    2. Windows라는 새로운 하위 폴더를 만드세요.
    3. 새로 만든 Windows 폴더 안에 다음 내용이 담긴 WindowsEngine.ini 파일을 만드세요:
      [Audio]
      AudioDeviceModuleName=
      AudioMixerModuleName=
  • WG-63926 It is not possible to package a game for iOS or tvOS when using Unreal Engine 5.1. A rigid static library version check was added to Unreal Engine 5.1, preventing to link static libraries that were compiled using an Xcode version more recent than Xcode 13.


Wwise Unreal Integration Documentation: Android 관련 정보

Android 관련 정보

This page lists requirements and special considerations for developers who use the Unreal Integration to build applications for Android.

Upgrading to Unreal 4.25 or Later

  • The Android toolchain was changed in Unreal Engine 4.25. If you are migrating from an earlier version of Unreal to 4.25 or later, you must change the Android SDK folder hierarchy within the ThirdParty folder. Move the following folders into an Android folder and rename them as indicated:
    • Move and rename Android_armeabi-v7a to Android/armeabi-v7a
    • Move and rename Android_arm64-v8a to Android/arm64-v8a
    • Move and rename Android_x86 to Android/x86
    • Move and rename Android_x86_64 to Android/x86_64


Wwise Unreal Integration Documentation: iOS-Specific Information

iOS-Specific Information

This page lists requirements and special considerations for developers who use the Unreal Integration to build applications for iOS.

Building Remotely from Windows

You can build projects for iOS from a Windows system with Remote Build Options. However, some additional configuration is necessary because not all files are copied to the remote macOS system by default.

To ensure that this type of build functions correctly, you must create an RsyncProject.txt file that forces Unreal to copy the files under the /Build/Rsync/ path. The file must contain the following lines:

+ /Plugins/Wwise/ThirdParty/include/**
+ /Plugins/Wwise/ThirdParty/iOS/**

Using Unreal Audio

If you are using built-in Unreal audio in addition to Wwise on iOS, you might encounter an error that causes your game to crash or prevents it from loading. If that happens, you must either disable Unreal audio or use Using the AkAudioMixer Module.

To disable Unreal audio, you must update the IOSEngine.ini file.

In <UE_ROOT>/Engine/Config/iOS/IOSEngine.ini, locate the following line:

AudioDeviceModuleName=IOSAudio

Replace it with the following:

AudioDeviceModuleName=


Wwise Unreal Integration Documentation: Wwise의 오픈 소스 컴포넌트

Wwise의 오픈 소스 컴포넌트

다음 오픈 소스 컴포넌트는 Unreal Wwise 통합의 일부로 포함됩니다.

Wwise의 일부로 포함된 다른 오픈 소스 컴포넌트는 Wwise의 오픈 소스 컴포넌트에서 찾을 수 있습니다.

GTE Mathematics

Boost Software License - Version 1.0 - August 17th, 2003
이에 따라 이 라이선스('소프트웨어')가 적용되는 소프트웨어 및 첨부 문서의 사본을 획득한 사람 또는 조직에게 소프트웨어를 사용, 복제, 표시, 배포, 실행 및 전송할 수 있는 권한이 무료로 부여됩니다. 소프트웨어의 파생 작업을 준비하고 소프트웨어가 제공되는 제3자가 그렇게 하도록 허용하는 것은 모두 다음 사항을 따라야 합니다.
사본 또는 파생물이 소스 언어 프로세서에 의해 생성된 기계 실행 개체 코드의 형태로만 존재하는 경우를 제외하고는 위의 라이선스 부여하기, 본 제한 사항 및 다음 권리 포기 각서를 포함하여 소프트웨어의 저작권 고지와 이 전체 설명이 소프트웨어의 전체 또는 부분적 사본과 소프트웨어의 모든 파생 작업에 포함되어야 합니다.
소프트웨어는 상품성, 특정 목적에의 적합성, 소유권 및 비침해에 대한 보증을 포함하되 이에 국한되지 않는 어떠한 종류의 명시적 또는 묵시적 보증 없이 '있는 그대로' 제공됩니다. 어떠한 경우에도 저작권 소유자 또는 소프트웨어 배포자는 계약, 불법 행위 또는 기타 방식에 관계없이 소프트웨어 또는 소프트웨어 사용 또는 기타 거래로 인해 또는 이와 관련하여 발생하는 모든 손해 또는 기타 책임에 대해 책임을 지지 않습니다.


Wwise Unreal Integration Documentation: Using the Project Migration Commandlet

Using the Project Migration Commandlet

The Wwise Unreal plug-in includes a Commandlet you can use to migrate your Unreal projects to Wwise version 2022.1 from the command line.

Commandlet Usage and Parameters

다음은 Commandlet 사용법입니다:

<UnrealEditor.exe> <path_to_uproject> -run=AkMigration [ [-transfer-bank-waapi] OR [-generate-bank-definition=<Path/To/Save/FileName>.tsv] ][-ignore-bank-errors] [-transfer-bank-autoload] [-delete-banks] [-migrate-assets] [-update-settings] [-delete-deprecated-assets] [-generated-soundbanks-folder=<Path/To/Folder>]
참고: If you are using Unreal Engine 4, the executable is named UE4Editor.exe.

The following parameters perform the same operations available in the Migration Window. These operations are detailed in the Wwise 2022.1로 프로젝트 업그레이드하기 page.

  • transfer-bank-waapi: (Optional) Transfers SoundBanks in the Unreal project to Wwise through WAAPI. This parameter cannott be used with 'generate-bank-definition'.
  • generate-bank-definition: (Optional) Creates a SoundBank definition file at the specified path. Use an absolute file path (C:...). You must then manually import the file into Wwise manually to create the SoundBanks. This parameter cannot be used with 'transfer-bank-waapi'.
    • ignore-bank-errors (Optional) Ignores any errors that occurred during bank transfer through WAAPI or when writing to the SoundBank Definition file and continues migration.
  • transfer-bank-autoload: (Optional) Transfer the AkAudioBank AutoLoad property to assets grouped in it.
  • delete-banks: (Optional) Deletes all SoundBank assets in the Unreal project after the transfer is complete.
  • delete-deprecated-assets: (Optional) Deletes all deprecated Wwise assets that are still in the project.
  • migrate-assets: (Optional) Migrates the Wwise assets in the project.
  • update-settings: (Optional) Updates the Wwise and Unreal Project settings.
    • generated-soundbanks-folder: (Optional) The path to the GeneratedSoundBanks folder used with the 'update-settings' switch. Use an absolute file path (C:/...). This parameter sets the Generated Sound Banks Folder setting in the Unreal project.
  • help: (Optional) Prints a message that describes all parameters and quits the Commandlet immediately.

Example Usage

C:\UE_5.0\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\MyProjects\Demo\WwiseDemoGame.uproject -run=AkMigration -transfer-bank-waapi -transfer-bank-autoload -delete-banks -migrate-assets -delete-deprecated-assets -update-settings -generated-soundbanks-folder="C:/Project/WwiseProject/GeneratedSoundBanks"
도움말: The Commandlet window closes as soon as the command is executed. To output the results of the command to a text file, add > log.txt to the end of your command. A text file named log.txt is created in the current directory and contains any errors or warnings.

Order of Operations

The migration operations are performed in the same order as the in-editor migration, regardless of the order of the parameters in the command line. The order is as follows:

  1. Bank migration
    1. Auto Load property transfer
    2. Bank Transfer (WAAPI or SoundBank Definition file)
    3. Deprecated AkAudioBank asset deletion
  2. Wwise asset migration
  3. Deprecated asset deletion
  4. Update project settings


Wwise Unreal Integration Documentation: Android 디렉토리 참조

  • Input_ko
  • Android
Android 디렉토리 참조


Wwise Unreal Integration Documentation: Input_ko 디렉토리 참조

  • Input_ko
Input_ko 디렉토리 참조

디렉토리들

디렉토리 | Android
디렉토리 | iOS
디렉토리 | ReleaseNotes


Wwise Unreal Integration Documentation: iOS 디렉토리 참조

  • Input_ko
  • iOS
iOS 디렉토리 참조


Wwise Unreal Integration Documentation: ReleaseNotes 디렉토리 참조

  • Input_ko
  • ReleaseNotes
ReleaseNotes 디렉토리 참조


Wwise Unreal Integration Documentation: 관련된 페이지

관련된 페이지
다음은 관련된 모든 문서화 페이지들의 목록입니다.:
Using the Project Migration Commandlet