Wwise Unreal Integration Documentation: Wwise Unreal 통합

Wwise Unreal Integration Documentation
Wwise Unreal 통합

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

문서

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

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

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

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

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

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

  • 더 알아보기
    Spatial Audio 및 Customizable Modules와의 통합을 최대로 활용하는 방법.

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

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

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

  • Android 관련 정보
    Android와 관련된 정보는 이 페이지를 참고해 주세요.

  • iOS 관련 정보
    iOS/tvOS와 관련된 정보는 이 페이지를 참고해 주세요.

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


Wwise Unreal Integration Documentation: 요구 사항

요구 사항

언리얼 엔진

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

Unreal Project Defaults

Wwise Unreal 통합은 Blueprint만 존재하는 Unreal 프로젝트는 지원하지 않습니다. 프로젝트를 만들 때 C++ Project Default를 선택해야 하지만 나중에 C++ 프로젝트에 Blueprint를 추가할 수도 있습니다. 프로젝트 생성하기 및 Project Defaults에 대한 자세한 내용은 새 프로젝트를 생성하기를 참고해 주세요.

Wwise

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

플랫폼

This plug-in has been tested on Windows, Mac, Linux, Xbox One, Xbox Series X, Playstation 4, Playstation 5, Nintendo Switch, Android, iOS, and tvOS. 다른 플랫폼을 대상으로 할 경우 변경해야 할 수 있습니다.

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

개발 환경 설정

Unreal Engine 문서를 참고하세요.

  • "언리얼 엔진 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 개발 작업 과정 이해하기.

설치 과정

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

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

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

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

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

Wwise 프로젝트에 어떤 영향이 있는지 이해하려면 Wwise 프로젝트 변경 사항 를 참고해 주세요.

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 2023.1.0.8367\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 프로젝트에 어떤 영향이 있는지 이해하려면 Wwise 프로젝트 변경 사항 을 참고하세요.


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 사용자들의 기쁨과 어려움, 좌절을 저희와 공유해주셔서 대단히 감사합니다. 바로 여러분들의 목소리가 궁극적으로 우선순위를 설정할 수 있게 해주었습니다.

빠른 시작하기

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

또한 통합에는 이전 섹션에서 설명한 마이그레이션 작업을 수행하기 위해 명령줄에서 커맨드렛 또한 제공됩니다 ( 프로젝트 마이그레이션 커맨드렛 사용하기 참고).

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

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로 작업하는 방법에 대한 자세한 내용은 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: 프로젝트 마이그레이션 커맨드렛 사용하기

프로젝트 마이그레이션 커맨드렛 사용하기

Wwise Unreal 플러그인에는 명령줄로부터 Unreal 프로젝트를 Wwise 2022.1 버전으로 마이그레이션하는 데 사용할 수 있는 Commandlet이 있습니다.

커맨드렛 사용법 및 매개 변수

다음은 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>]

다음 매개 변수는 Migration Window에서 사용할 수 있는 것과 같은 작업을 수행합니다. 이러한 작업은 Wwise 2022.1로 프로젝트 업그레이드하기 페이지에 자세히 설명되어 있습니다.

  • transfer-bank-waapi: (선택 사항) WAAPI를 통해 Unreal 프로젝트의 SoundBank를 Wwise로 전송합니다. 이 매개 변수는 'generate-bank-definition'과 함께 사용할 수 없습니다.
  • generate-bank-definition: (선택 사항) 지정된 경로에 SoundBank 정의 파일을 생성합니다. 절대 파일 경로(C:...)를 사용하세요. 그런 다음 파일을 수동으로 Wwise로 가져와서 SoundBank를 생성해야 합니다. 이 매개 변수는 'transfer-bank-waapi'와 함께 사용할 수 없습니다.
    • ignore-bank-errors (선택 사항) WAAPI를 통한 뱅크 전송 중이나 SoundBank Definition 파일에 쓸 때 발생하는 모든 오류를 무시하고 마이그레이션을 계속합니다.
  • transfer-bank-autoload: (선택 사항) AkAudioBank AutoLoad 속성을 그룹으로 묶여진 에셋으로 전송합니다.
  • delete-banks: (선택 사항) 전송이 완료되면 Unreal 프로젝트의 모든 SoundBank 에셋을 삭제합니다.
  • delete-deprecated-assets: (선택 사항) 프로젝트에 남아있는 사용되지 않는 모든 Wwise 에셋을 삭제합니다.
  • migrate-assets: (선택 사항) 프로젝트의 Wwise 에셋을 마이그레이션합니다.
  • update-settings: (선택 사항) Wwise과 Unreal Project 설정을 업데이트합니다.
    • generated-soundbanks-folder: (선택 사항) 'update-settings' 스위치와 함께 사용되는 GeneratedSoundBanks 폴더의 경로입니다. 절대 파일 경로(C:/...)를 사용하세요. 이 매개 변수는 Unreal 프로젝트에서 Generated Sound Banks Folder를 설정합니다.
  • help: (선택 사항) 모든 매개 변수를 설명하는 메시지를 출력하고 Commandlet을 즉시 종료합니다.

사용 예시

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"
도움말: Commandlet 창은 명령이 실행되자마자 닫힙니다. 명령 결과를 텍스트 파일로 출력하려면 명령 끝에 >log.txt를 추가하세요. 오류나 경고를 포함한 log.txt라는 이름의 텍스트 파일이 현재 폴더에 생성됩니다.

작업 순서

마이그레이션 작업은 명령줄의 매개 변수 순서와 상관없이 에디터 내 마이그레이션과 동일한 순서로 수행됩니다. 순서는 다음과 같습니다.

  1. Bank 마이그레이션
    1. Auto Load 속성 전송
    2. Bank Transfer(WAAPI나 SoundBank Definition 파일)
    3. 사용되지 않는 AkAudioBank 에셋 삭제
  2. Wwise 에셋 마이그레이션
  3. 사용되지 않는 에셋 삭제
  4. 프로젝트 설정 업데이트


Wwise Unreal Integration Documentation: 개발 작업 과정 이해하기

개발 작업 과정 이해하기

게임 개발 프로젝트는 그 복잡성, 규모, 팀 구성 면에서 매우 다양합니다. 개발 스튜디오의 규모와 프로젝트의 성격에 따라 사운드 디자인 및 통합은 내부의 사운드 디자이너 팀이 직접 전문적으로 다룰 수도 있고, 사운드나 음악을 전문으로 하는 아웃소싱 회사가 참여해야 할 수도 있습니다. 아니면 소규모 개발팀의 경우 비-사운드 디자이너가 이러한 오디오 측면을 전부 담당해야 할 수도 있죠.

다양한 개발 시나리오에 따라 그 작업 과정 또한 달라지게 됩니다. 어떠한 팀원은 Wwise만 사용하고 다른 개발 도구는 사용하지 않을 수도 있고, 다른 팀원은 Unreal만 사용할 수도 있고, 다른 팀원을 두 도구를 모두 사용할 수도 있습니다. 특정 통합 기능에는 WAAPI를 통해서 Unreal과 Wwise 간의 활성화된 연결이 필요하기 때문에 개발 작업 과정은 Wwise Unreal 통합의 몇몇 측면에 영향을 미치게 됩니다.

대규모 팀을 위한 개발 작업 과정

대규모 개발 팀은 일반적으로 사운드 디자이너, 게임 개발자 및 오디오 통합 전문가와 같은 사람들 사이에 작업을 나눕니다. 팀의 구조에 따라 일부 팀원은 Unreal과 Wwise로 작업할 수 있고 다른 팀원은 둘 중 하나만 사용할 수도 있겠죠. 다음 섹션에서 여러 역할에 대해 권장하는 구성을 알아봅시다.

게임 개발자를 위한 환경

2D 및 3D 아티스트, 게임플레이 개발자, UI/UX 전문가 등 많은 게임 개발 역할은 Wwise와 함께 일할 필요가 없습니다. 이러한 사용자에게는 Wwise Authoring이 필요하지는 않지만 적절한 팀에서 소스 컨트롤 시스템에 GeneratedSoundBanks 폴더를 추가하는 것을 권장합니다. 특히 다음 파일 확장자를 소스 컨트롤에 추가하는 것이 좋습니다.

  • *.json
  • *.bnk
  • *.wem 개발자가 통합 코드를 실행하고 사운드를 얻기 위해서는 다음 두 가지만 수행하면 됩니다
  • Wwise 플러그인 설치하기
  • Editor 플랫폼(Windows 또는 Mac)용 GeneratedSoundBanks 폴더에 액세스할 수 있어야 함. 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.

오디오 통합 전문가를 위한 환경

오디오 통합 전문가를 위한 권장 환경은 게임 개발자를 위한 환경과 거의 동일하지만 Wwise Authoring을 설치하는 것이 도움이 될 수 있습니다. 오디오 통합 전문가는 Wwise Authoring과 Unreal 사이의 WAAPI 연결을 사용하여 에셋 통합을 간소화할 수 있지만 이것이 필수적인 사항은 아닙니다.

Wwise와 Unreal이 모두 설치되어 있을 때의 주요 이점은 통합을 통해 Wwise 프로젝트에서 동적으로 에셋을 생성하고 수정할 수 있다는 것입니다. Wwise Browser를 통해 Wwise Authoring이나 Unreal에서 Event와 이름을 생성하거나 수정할 수도 있습니다.

에셋 생성을 위한 명명 규칙 사용하기

오디오 통합 전문가는 때때로 에셋이 명명 규칙을 따르는지 확인해야 합니다. 이전 섹션에서 설명한 환경에서 다음 두 가지 방법으로 에셋 이름을 효과적으로 지정할 수 있습니다.

  • 원하는 명명 규칙에 따라 먼저 Wwise에서 에셋을 생성할 수 있습니다. 이렇게 하면 Event의 안정적인 GUID와 올바른 Event ID가 보장됩니다. 그 후 Unreal에서는 Wwise Browser를 사용하여 새로 생성된 Event를 Content Browser의 폴더로 드래그할 수 있습니다.
  • 또는 동기화 옵션으로 함께 에셋을 생성할 수 있습니다. 이 방식을 사용하려면 Wwise Authoring과 Unreal이 동시에 열려 있어야 합니다.

테크니컬 오디오 디자이너를 위한 환경

테크니컬(Technical) 오디오 디자이너는 일반적으로 Wwise와 Unreal을 모두 활용하여 작업합니다. 따라서 Wwise Authoring과 Unreal이 동시에 열려 있고 둘 사이에 WAAPI 연결이 유지되어 있는 환경이 가장 좋습니다. WAAPI 에셋 동기화 옵션을 활성화하면 Wwise 프로젝트에서 생성한 모든 Wwise Event가 Unreal 프로젝트에서도 자동으로 생성됩니다. 이러한 에셋은 기본 폴더 구조에 생성되지만 필요한 경우 이를 바꿀 수도 있습니다.

SoundBank가 서버에서 생성되거나 디자이너가 테스트해야 하는 경우 사용자 설정을 통해 일시적으로 GeneratedSoundBanks 폴더 위치를 재정의할 수 있습니다. Unreal(프로젝트의 Wwise User Preferences를 통해)이나 Wwise Authoring(SoundBank Generation 사용자 환경 설정에서)에서 이 작업을 수행할 수 있습니다. 이 두 옵션에서 모두 동일한 폴더 위치를 가리키는지 확인하세요.

서드파티 상호작용 오디오 디자이너를 위한 환경

서드파티 오디오 디자이너는 Wwise만 활용하여 작업하는 경우가 많기 때문에 Wwise Authoring과 Wwise 프로젝트만 있으면 됩니다. 물론 디자이너가 Wwise Soundcaster를 사용하고 싶지 않다면 Unreal이 필요하게 됩니다.

서버를 위한 환경

대규모 프로젝트의 경우 SoundBank 전용 서버를 보유하는 것이 유용할 수 있습니다. SoundBank 생성 커맨드렛( Generating SoundBanks with the GenerateSoundBanks Commandlet 참조)은 일정에 따라(예: 매일 밤) 서버에서 실행될 수 있으며 생성된 SoundBank를 소스 컨트롤이 있는 위치로 푸시할 수 있습니다. 그러면 다른 팀원들이 뱅크를 직접 생성할 필요 없이 Unreal에서 최신 SoundBank로 작업할 수 있습니다. 대규모 프로젝트의 경우 SoundBank 생성할 때 시간이 많이 소요될 수 있고 게임 오디오의 다른 부분(음악, 음성, 효과음 등)을 작업하는 여러 팀원들이 있을 수 있으므로 SoundBank를 수동으로 생성하는 것보다 자동 처리하는 것이 개발 과정을 더 효율적으로 만들 수 있습니다. .

그러나 일부 팀원은 개발 과정에서 실험이나 테스트하기 위해 SoundBank를 직접 생성해야 할 수도 있습니다. 이러한 경우 서버 기반 설정을 유지하면서 사용자 오버라이드를 사용하면 로컬에서 SoundBank를 생성할 수 있습니다. 자세한 내용은 Overriding Generated SoundBanks Directories for Local Users 를 참고해 주세요.

소규모 팀을 위한 개발 작업 과정

소규모 팀은 게임의 다양한 측면(예: 오디오)을 해당 전문가 없이 제품을 전체적으로 개발합니다. 이러한 상황에서는 모든 팀원이 동일한 일반적인 구성으로 시작할 것을 권장합니다. 사전 설치된 동일한 Unreal Engine과 동일한 버전의 Wwise Authoring을 사용하세요. 개발자가 소스 컨트롤에서 프로젝트를 풀 할 때마다 SoundBank를 생성해야 할 수도 있지만 이러한 과정은 대규모 프로젝트보다 소규모 프로젝트에서 훨씬 빠릅니다.


Wwise Unreal Integration Documentation: Wwise 프로젝트 변경 사항

Wwise 프로젝트 변경 사항

Wwise를 통합한 다음 처음으로 Unreal 프로젝트를 열었을 때 Wwise 프로젝트의 특정 설정이 이전에 다르게 설정되어 있었다면 이러한 설정들은 다시 변경되게 됩니다.

SoundBank Settings(Project > Project Settings > SoundBanks)를 열면 다음 설정이 활성화되어 있음을 알 수 있습니다.

  • 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 (적극 권장)
    • Estimated Duration (적극 권장)

Project > Project Settings > Logs를 열면 다음 설정이 비활성화되어 있음을 알 수 있습니다.

  • 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 에 있는 전처리 장치 정의입니다.

  • WWISE_CONFIGURATION_DIR
    This setting specifies the Wwise build configuration: the appropriate subfolder in which the AkSoundEngine library is located.
  • WWISE_DSP_DIR
    This setting specifies the Wwise build configuration: the appropriate subfolder in which the plug-in libraries (both static and dynamic) are located.
  • 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 (for plug-ins)
  • XboxOne

  • XboxSeriesX

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

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

Unreal and Wwise SoundEngine Configurations

In Unreal, the following configuration states are available: Debug, DebugGame, Development, Test, and Shipping (refer to Build Configurations Reference for details).

In the Wwise SoundEngine, the following build configurations are available: Debug, Profile, and Release (refer to Build Configuration for details).

The Wwise and Unreal build configurations are related in the following ways for all platforms:

  • The Unreal Debug and DebugGame configuration states correspond to the Wwise SoundEngine Debug configuration.
  • The Unreal Develpment configuration state corresponds to the Wwise SoundEngine Profile configuration.
  • The Unreal Test and Shipping configuration states correspond to the Wwise SoundEngine Release configuration.

Unreal and Wwise SoundEngine Configurations on Windows

On Windows, the SDK provides dynamic and static versions of the C runtime libraries for the Debug, Profile, and Release versions of the sound engine. Static libraries are contained in folders that include (StaticCRT) in the folder name.

The Wwise Unreal Integration uses the StaticCRT AkSoundEngine libraries or, if they are unavailable, reverts to the dynamic version of the AkSoundEngine libraries.

However, with the Wwise dynamic libraries, you can only use the Debug build configuration if the Unreal project is fully built with the bDebugBuildsActuallyUseDebugCRT setting. Refer to the Unreal Engine Build Configurations page for more information on that build setting.

WAAPI's AkAutobahn library uses C++ settings that are incompatible with Unreal, so that library is reverted to the dynamic DLL's Profile version whenever it is used.


Wwise Unreal Integration Documentation: 통합 사용하기

통합 사용하기
  • 빠른 시작하기
    시작을 위한 기본 작업 과정.
  • 프로젝트 설정
    통합으로 Unreal을 빌드한 후 Wwise를 사용하여 구성하는 방법.
  • Unreal Engine C++ 프로젝트
    C++ 프로젝트 사용 시작에 대한 간단한 개요.
  • Using the Wwise Demo Game
    통합 기능을 설명해주는 UnrealWwiseDemo 게임에 대한 간단한 개요.
  • Wwise Unreal 오브젝트 사용하기
    통합에 포함된 다양한 Wwise Unreal 오브젝트에 대한 설명.
  • 블루프린트 함수
    시각적 스크립팅을 통해 사용할 수 있는 블루프린트 함수.
  • 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: 빠른 시작하기

빠른 시작하기

새로운 프로젝트 만들기

  1. 새로운 Wwise 프로젝트를 만드세요. Wwise Help의 새로운 프로젝트 만들기를 참고해 주세요.
  2. 새로운 Unreal 프로젝트를 만드세요. 자세한 내용은 Unreal Engine 5 문서에서 새 프로젝트를 생성하기 를 참고해 주세요.
  3. 런처를 통해 프로젝트에 Wwise를 통합하세요. 런처 문서에서 Unreal 프로젝트에 Wwise 통합하기를 참고하세요.
참고
  • Wwise 프로젝트 변경 사항

Adding an Ambient Sound (Wwise)

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

새로 만든 SFX를 위한 Play Event를 만드세요.

User-Defined SoundBank를 사용할 경우

Wwise Project Settings 대화 상자의 SoundBanks 탭에서 Enable Auto-Defined SoundBanks를 선택 해제하면 새로운 SoundBank를 만들어야 합니다. 새로운 SoundBank를 만든 후 Event를 SoundBank에 추가하세요.

Auto-Defined Soundbank를 사용할 경우

Wwise Project Settings 대화 상자의 SoundBanks 탭에서 Enable Auto-Defined SoundBanks를 선택하면 다음과 같이 SoundBank가 표시됩니다.

이제 필요한 뱅크를 생성할 수 있습니다. 필요한 뱅크, 플랫폼, 언어를 선택하고 Generate Checked를 클릭하세요. 아니면 Generate All을 클릭하세요.

Generating SoundBanks (Unreal Wwise Browser + Build menu)

Unreal로 돌아가서 GeneratedSoundBank 폴더 설정을 위해 Edit > Project Settings > Wwise > Integration Settings를 여세요. 여기에서 Wwise 프로젝트와 Generated Sound Banks 폴더 대한 경로를 모두 설정할 수 있습니다.

해당 경로는 Wwise Authoring SoundBanks 설정의 Root Output Path와 같은 폴더여야 합니다.

Then open Window > Wwise Browser.

SoundBank가 생성되면 다음과 같이 표시됩니다.

SoundBank가 아직 생성되지 않았거나 SoundBanks 폴더가 설정되지 않은 경우 다음과 같이 표시됩니다.

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. 맵으로 직접 드래그하면 Edit > Project Settings > Wwise > Integration Settings > Default Asset Creation Path에 지정된 폴더에 에셋이 만들어 집니다.

Level Blueprint에서 재생하기

새로운 Ak Ambient Sound를 기본 맵에 추가한 다음 Level Blueprint를 수정하세요.

사운드 재생하기

Editor에서 Play를 시작하세요. Event가 게시되고 사운드를 들을 수 있습니다. 기본 빈 Unreal 프로젝트를 사용하는 경우 먼저 맵에서 모든 사운드를 제거하세요.


Wwise Unreal Integration Documentation: 프로젝트 설정

프로젝트 설정

Wwise 통합에 관련된 모든 설정은 Unreal Project Settings(Edit > Project Settings)의 Wwise 섹션에서 찾을 수 있습니다. 구조체가 동일하지 않은 경우에도 한 플랫폼 설정 구조에서 다른 구조체로 데이터를 복사해넣을 수 있습니다. Unreal은 일치하는 데이터를 복사하고 나머지는 무시합니다.

Platform Initialization Settings

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

Common Settings

  • Sample Rate
    Hz 단위의 샘플 레이트. 기본 값은 48000 입니다. 저음질 오디오에는 24000을 사용하세요. 양수의 합리적인 모든 샘플 레이트가 지원됩니다. 그러나 샘플 레이트가 매우 낮으면 사운드 엔진이 오작동할 수도 있습니다.
  • Maximum Number of Memory Pools
    최대 메모리 풀 수. 로드된 각 뱅크에 대해 메모리 풀이 필요합니다.
  • Maximum Number of Positioning Paths
    사운드 위치 지정을 위한 최대 오토메이션(자동화) 경로 수.
  • Command Queue Size
    Command Queue의 크기입니다.
  • Samples Per Frame
    오디오 프레임당 샘플 수입니다 (256, 512, 1024, 2048).
  • Streaming Look Ahead Ratio
    모든 스트리밍 예측 휴리스틱 값(heuristic value)의 곱셈 계수입니다.
  • Number Of Refills in Voice
    보이스 버퍼의 리필 버퍼 수입니다. 이중 버퍼링의 경우 2로 설정하세요. 기본값은 4입니다.

Main Output Settings

  • Audio Device ShareSet
    사용할 사용자 지정 오디오 장치의 이름입니다. 사용자 지정 오디오 장치는 Wwise 프로젝트의 Audio Device ShareSet 섹션에서 정의됩니다. 기본 오디오 장치를 통해 일반적으로 출력하려면 이를 비워 두세요.
  • Device ID
    동일한 종류의 여러 장치를 사용하는 경우 장치별 식별자입니다. 하나의 장치만 사용하는 경우 설정을 0(기본값)으로 두세요.
  • Panning Rule
    스테레오 버스로 라우팅되는 신호의 3D 패닝 규칙입니다. 'Speakers' 모드에서는 전면 라우드스피커의 각도가 사용됩니다. 'Headphones' 모드에서 스피커 각도는 180도 떨어져 있는 두 개의 가상 마이크 사이에서 일정 전력 패닝으로 대체됩니다.
  • Channel Config Type
    uChannelMask에 의한 채널 식별을 완료하는 코드입니다. Anonymous: Channel mask == 0과 채널. Standard: AkSpeakerConfigs에서 표준 정의로 채널을 식별해야 합니다. Ambisonic: Channel mask == 0, 채널은 표준 앰비소닉 순서를 따릅니다.
  • Channel Mask
    채널 식별자가 AkChannelConfigType에 따라 달라지는 비트 필드 (최대 20).
  • Number of Channels
    식별되거나(채널 마스크에서 유추된) 익명(직접 설정된) 채널의 수입니다.

Spatial Audio Settings

  • Max Sound Propagation Depth
    사운드가 전달될 수 있는 포털의 최대 개수를 말합니다.
  • Movement Threshold
    Amount that an emitter or listener has to move to trigger a recalculation of reflections and diffraction. 값이 더 클수록 CPU 부하량이 적어지며 정확도가 떨어집니다.
  • Number Of Primary Rays
    확률적 레이캐스팅에서 사용되는 주요 레이 (각 리스너로부터의 캐스트)의 개수를 말합니다.
  • Reflection Order
    1~4 범위 사이의 최대 리플렉션 순서를 말합니다.
  • Diffraction Order
    최대 회절 차수: 회절 경로에서 휘는 곳(bend)의 수를 말합니다. 높은 회절 차수는 CPU 사용량이 더 높으며 지오메트리가 더 복잡합니다. 회절 경로를 찾으려면 지오메트리에서 회절을 활성화해야 합니다. 모든 지오메트리에서 회절을 비활성화하려면 0으로 설정하세요. 이 매개 변수는 환경을 스캔하기 위해서 리스너에서 투사되는 회절 레이의 재귀 깊이(recursion depth)를 제한하고 이미터와 리스너 사이의 경로를 찾기 위한 회절 검색의 깊이도 제한합니다. To optimize CPU usage, set it to the maximum number of edges you expect the obstructing geometry to traverse.
  • Max Emitter Room Aux Sends
    The maximum number of game-defined auxiliary sends that can originate from a single emitter. An emitter can send to its own Room and to all adjacent Rooms if the emitter and listener are in the same Room. If a limit is set, the most prominent sends are kept, based on spread to the adjacent portal from the emitter's perspective. Set to 1 to only allow emitters to send directly to their current Room, and to the Room a listener is transitioning to if inside a portal. Set to 0 to disable the limit. The default value is 3.
  • Diffraction on Reflections Order
    반사 경로의 각 끝에 존재하는 최대 회절 지점 수입니다. 반사 시 회절을 사용하면 리스너나 이미터가 반사의 그림자 영역 안팎으로 이동할 때 반사가 부드럽게 페이드 인/아웃됩니다. When greater than zero, diffraction rays are sent from the listener to search for reflections around one or more corners from the listener. 회절 반사를 찾으려면 지오메트리에서 회절을 활성화해야 합니다. 반사 시 회절을 비활성화하려면 0으로 설정하세요.
  • Maximum Path Length
    리플렉션/회절 경로의 최대 길이를 말합니다.
  • CPU Limit Percentage
    레이트레이싱 엔진이 사용할 수 있는 오디오 프레임의 최대 비율을 제어합니다. 현재 오디오 프레임의 백분율 [0, 100]. 이 값을 0으로 설정하면 CPU 리소스에 제한을 두지 않고 레이트레이싱을 사용합니다.
  • Load Balancing Spread
    The computation of spatial audio paths is spread over LoadBalancingSpread frames. Spreading the path computation over several frames can prevent CPU peaks. 이러한 분산으로 인해 경로 계산이 지연되게 됩니다.
  • 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 Positioning tab of the Wwise Property Editor. 이 플래그는 지오메트리 주변(회절)과 지오메트리를 통한(전달) 사운드 경로를 활성화합니다. Enable Geometric Diffraction and Transmission를 false로 설정하면 지오메트리가 리플렉션을 위한 계산에만 사용됩니다. 회절 계산을 하기 위해서는 지오메트리에서 회절 모서리를 활성화해야 합니다. If Enable Geometric Diffraction and Transmission is false but a sound has "Enable Diffraction and Transmission" selected in the positioning tab of Wwise Authoring, the sound only diffracts through portals but passes through geometry as if it were not there. 게임이 자체적으로 방해를 계산을 하고 반사 계산을 위해 지오메트리가 여전히 공간 음향에 전달되는 경우 이 설정을 비활성화하세요.
  • Calc Emitter Virtual Position
    true로 설정하면 Wwise Spatial Audio는 포털이나 지오메트리 주변에서 회절하는 이미터의 가상 위치를 계산한 다음 해당 위치를 사운드 엔진으로 보냅니다.

Communication Settings

  • Initialize System Comms
    대화 시스템을 초기화할지 여부를 나타냅니다. 일부 콘솔에는 대화 시스템 초기화에 대한 중요한 요구 사항이 있습니다. 게임이 사운드 엔진 초기화 전에 이미 소켓을 사용하는 경우에만 false로 설정하세요.
  • Pool Size
    대화 풀의 크기입니다.
  • Discovery Broadcast Port
    Wwise Authoring 애플리케이션이 네트워크에서 실행 중인 게임을 검색하기 위해 'Game Discovery' 요청을 게시하는 포트입니다. 기본값은 24024입니다. 이 값은 0으로 설정할 수 없습니다.
  • Command Port
    '명령(command)' 채널 포트입니다. 동적(dynamic)/임시(ephemeral) 포트를 요청하려면 0으로 설정하세요.
  • Network Name
    Wwise Authoring 애플리케이션 내에서 이 게임을 식별하는 데 사용되는 이름입니다. FApp::GetProjectName()을 사용하려면 비워두세요.

Advanced Settings

  • Use Head Mounted Display Audio Device
    오디오 기능이 있는 헤드 마운트 디스플레이용 프로젝트에서 작업할 때 활성화하세요.
  • Max System Audio Objects
    예약할 System Audio Object의 최대 개수입니다. 다른 처리에서는 이 오브젝트를 사용할 수 없게 됩니다. 기본값은 128입니다.
  • Enable Multi Core Rendering
    이 값을 True로 설정하면 SoundEngine은 Unreal Engine Task Graph 전반에 걸쳐 처리 작업을 분산시킵니다. 이 설정을 변경하면 Editor를 다시 시작해야 합니다.
  • Max Num Job Workers
    The maximum number of workers that the Sound Engine can request at any time. 이 설정을 변경하면 Editor를 다시 시작해야 합니다.
  • Job Worker Max Execution Time Usec
    Sound Engine 처리 작업에 할당된 최대 시간(마이크로초)입니다. 이 설정을 변경하면 Editor를 다시 시작해야 합니다.
  • IO Memory Size
    I/O용 메모리 풀 크기(자동 스트림용)입니다. "<tt>uGranulrity</tt>의 배수로 내림한 다음 <tt>AK::MemoryMgr::CreatePool()</tt>로 직접 전달됩니다."
  • IO Granularity
    I/O 요청 세밀도입니다 (일반적인 바이트/요청).
  • Target Auto Stream Buffer Length
    자동 스트림 버퍼의 목표 길이(밀리초)입니다. 스트림이 버퍼 제한에 도달하면 스케줄러가 유휴 상태인 경우를 제외하고는 I/O에 대해서만 예약됩니다.
  • Use Stream Cache
    이 값이 True인 경우 해당 장치는 이미 디스크에서 스트리밍된 I/O 버퍼를 재사용하려고 시도합니다. 이 기능은 반복 재생되는 짧은 사운드를 스트리밍할 때 특히 유용합니다. 그러나 메모리를 할당할 때 CPU 사용량이 약간 증가하고 StreamManager 풀에서 메모리를 약간 더 차지할 수 있습니다.
  • Maximum Pinned Bytes in Cache
    AK::SoundEngine::PinEventInStreamCache()나 AK::IAkStreamMgr::PinFileInCache()를 사용해서 핀을 꽂을 수 있는(pinned) 최대 바이트 수입니다.
  • Enable Game Sync Preparation
    AK::SoundEngine::PrepareGameSync를 활성화하려면 true로 설정하세요.
  • Continuous Playback Look Ahead
    다음 사운드가 재생되기 전에 연속적인(continuous) 컨테이너가 새로운 보이스를 인스턴스화하는 퀀타의 수입니다. 이리한 예측 시간은 I/O가 발생할 수 있게 하며, 특히 트리거율이나 샘플 단위로 정밀한 전환 효과가 있는 연속적인(continuous) 컨테이너의 레이턴시를 줄이는 데 유용합니다.
  • Monitor Queue Pool Size
    모니터링 대기열 풀의 크기입니다. Release 빌드에서는 해당 매개 변수가 무시됩니다.
  • Maximum Hardware Timeoput Ms
    하드웨어 장치가 오디오 중단(interrupt)을 트리거할 때까지 대기하는 시간(밀리초)입니다. 이 대기 시간 이후에 중단이 없으면 사운드 엔진은 무음 모드가 되고 하드웨어가 다시 응답할 때까지 계속 작동합니다.
  • Debug Out Of Range Check Enabled
    디버그 설정: 처리 코드에서 범위를 벗어난(또한 NaN) 부동(float)에 관한 검사를 활성화합니다. 이 설정은 많은 CPU를 사용하므로 정상적인 상황에서는 활성화하지 마세요. 이 설정은 파이프라인의 다양한 지점에서 잘못된 값이 발견되면 로그에 오류 메시지를 출력합니다.
  • Debug Out Of Range Limit
    디버그 설정: Debug Out Of Range Check Enabled가 true인 경우에만 사용됩니다. 이 설정은 샘플이 가질 수 있는 최대 값을 정의합니다. 일반 오디오는 +1/-1 내의 값이어야 합니다. 이 최대값을 1보다 큰 값으로 설정하면 일시적으로 범위를 벗어날 수 있게 허용할 수 있습니다. 기본값은 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
    해당 UE 게임에 사용하는 Wwise 프로젝트의 위치를 말합니다. Unreal Content Browser (혹은 Build 메뉴) 안에서 Generate SoundBanks 함수를 사용하여 게임에 필요한 Wwise 에셋을 생성하기 위해서 Wwise 통합은 이 경로를 필요로 합니다. 이 경로는 Unreal Engine의 FPaths::ProjectDir() 에 의해 제공되는 Unreal Project 폴더에 상대적입니다.
  • Root Output Path
    The location of the folder that contains the Wwise project metadata, specifically the ProjectInfo.json file. This file contains the locations of the generated SoundBanks, which are required to play sound in the game. The path is relative to the Unreal project's content directory, as given by FPaths::ProjectContentDir().
    참고: 외부 음원을 사용할 경우 해당 경로가 변경되면 Wwise 프로젝트의 External Source 설정에서도 변경 내용이 반드시 반영되어야 합니다.

Cooking

  • Wwise Staging Directory
    쿠킹 도중 파일을 스테이징할 때 .bnk와 .wem 파일이 복사될 폴더를 말합니다.

Obstruction Occlusion

  • Default Collision Channel
    The default collision channel used for audio obstruction and occlusion calculations.

Fit to Geometry

  • Default Fit to Geometry Collision Channel
    Ak Acoustic Portal과 Ak Spatial Audio Volume을 주변 지오메트리에 맞출 때 Collision Channel의 기본값입니다.

Reverb Assignment (Refer to Automatically Assigning a Reverb Aux Bus for more information)

  • Global Decay Absorption
    The global surface absorption value to use when estimating environment Decay value. It is used for the decay estimations of environments without Acoustic Texture information. 기본 값은 0.5 입니다.
  • Default Reverb Aux Bus
    The default Auxiliary Bus to choose for Automatic Reverb Assignment. Automatic Reverb Assignment can be enabled on Late Reverb components. When their Decay values exceed the highest Decay value in the Reverb Assignment Table, or if the table is empty or nonexistant, the default Auxiliary Bus is chosen. This Auxiliary Bus must have a reverb effect.
  • Reverb Assignment Table
    A table that associates Auxiliary Busses with Reverb Decay values. If Automatic Reverb Assignment is enabled on a Late Reverb component, its Decay value is compared to the table's Decay values. The chosen Auxiliary Bus is the one associated with the closest and highest Decay value in the table. If the given Decay value exceeds the highest Decay value in the table, or if the table is empty or nonexistant, the Default Reverb Aux Bus is chosen.
    Rows must be of type FWwiseDecayAuxBusRow.
    • Row Name A unique name for the row.
    • Decay The number of seconds it takes for the sound reverberation in an environment to decay by 60 dB. Decay values are represented with floating point numbers. We recommend that consecutive Decay values differ by at least 0.01 to ensure the correct Auxiliary Bus is chosen for a given Decay value.
    • Aux Bus The Auxiliary Bus in Wwise Authoring that has a reverb effect to associate with the Decay value of the same row.
  • RTPCs
    • HFDamping Name
      (레거시 작업 과정) 환경에서 생성되는 고주파수 약화(damping)를 설정하는 데 사용되는 RTPC의 이름입니다. HFDamping RTPC 값이 있는 경우 해당 값으로 오버라이드됩니다.
    • Decay Estimate Name
      (레거시 작업 과정) 음압 수준이 60dB 감소하는 데 걸리는 시간을 추정하는 데 사용되는 RTPC의 이름입니다. Decay Estimate RTPC 값이 있는 경우 해당 값으로 오버라이드됩니다.
    • Time to First Reflection Name
      (레거시 작업 과정) 첫 번째 리플렉션이 리스너에게 도달하는 데 걸리는 시간을 설정하는 데 사용되는 RTPC의 이름입니다. Time to First Reflection RTPC 값이 있는 경우 해당 값으로 오버라이드됩니다.
    • HFDamping RTPC
      환경에 의해 생성된 고주파수 약화(damping)를 설정하는 데 사용되는 RTPC입니다.
    • Decay Estimate RTPC
      음압 레벨이 60dB 감소하는 데 걸리는 시간을 추정하는 데 사용되는 RTPC입니다.
    • Time to First Reflection RTPC
      첫 번째 리플렉션이 리스너에게 도달하는 데 걸리는 시간을 설정하는 데 사용되는 RTPC입니다.

Initialization

  • Audio Input Event
    Wwise Audio Input과 관련된 입력 이벤트입니다. For more information, see Using the AkAudioMixer Module.
  • Init Bank
    The unique Init Bank for the Wwise project, which contains the basic information necessary to properly set up the Sound Engine.
  • Unreal Audio Routing
    Audio routing options that determine whether to use Unreal or Wwise audio exclusively, the two together, or to route Unreal audio through AkAudioMixer or AudioLink. For more information, refer to Selecting Audio Routing Options.
  • Wwise Sound Engine Enabled
    Indicates whether the Wwise Sound Engine is enabled, depending on the selected audio routing option.
  • Wwise Audio LInk Enabled
    Indicates whether the Wwise AudioLink is enabled, depending on the selected audio routing option.
  • Ak Audio Mixer Enabled
    Indicates whether the Wwise AkAudioMixer is enabled, depending on the selected audio routing option.

Localization

  • Unreal Culture to Wwise Culture
    Unreal Culture 코드에서 Wwise Language로의 매핑을 말합니다. 이 옵션은 Unreal Culture 코드에서 Set Current Audio Culture를 직접 호출할 수 있게 해줍니다. 더 자세한 정보는 Localizing Audio Assets 을 참고해 주세요.

Asset Creation

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

Geometry Surface Properties

  • Verify and Update
    Verify each row of the Geometry Surface Properties Table below and remove rows with an invalid Physical Material.
  • Default Acoustic Texture
    The default Acoustic Texture set on a surface of a Spatial Audio Volume actor when Fit to Geometry is used and no geometry is hit. The default value is None, which indicates a completely reflective surface.
  • Default Transmission Loss
    The default Transmission Loss value set on a surface of a Spatial Audio Volume actor when Fit to Geometry is used and no geometry is hit. The valid range is between 0 and 1. The default value is 0, which indicates that sound can pass through the surface without any loss. A surface with 0 transmission loss is considered transparent. It disables any reflections and does not use the Acoustic Texture.
  • Geometry Surface Properties Table
    The table that associates Geometry Surface Properties (Acoustic Texture and Transmission Loss) with Physical Materials. This table is used to retrieve the Geometry Surface Properties according to the Static Mesh's Physical Materials when using the AkGeometryComponent or when using Fit to Geometry with the AkSpatialAudioVolume.
    Rows must be of type FWwiseGeometrySurfacePropertiesRow. We recommend that you do not add or remove rows. Rows are updated when Physical Material assets are added to or removed from the project. Rows are also updated when an Acoustic Texture with a name similar to a Physical Material is added to the project.
    • Row Name The asset path to a Physical Material in the current project.
    • Acoustic Texture The Acoustic Texture to associate with the Physical Material of the same row. Acoustic Textures consist of a group of absorption values representing the percentage by which sound within a relative frequency range is dampened after a reflection.
    • Transmission Loss The value by which to filter a sound modeling transmission through geometry.

사용자 설정

설치

  • Wwise Windows Installation Path
    The location of Wwise Authoring on your Windows development machine. This option will need to be updated when a new version of Wwise Authoring is required by the integration changes.
  • Wwise Mac 설치 경로
    The location of Wwise Authoring on your Mac development machine. You must update this value when integration changes require you to install a new version of Wwise Authoring.
참고: If these installation paths are not correctly set, Unreal cannot generate the Wwise SoundBanks required for the game.
  • Root Output Path User Override
    The location of the folder that contains the Wwise project metadata, as determined by a user override in the Wwise User SoundBank Settings. The folder includes the ProjectInfo.json file, which contains the paths to the generated SoundBanks.

WAAPI

  • WAAPI IP Address
    Wwise 저작 API (WAAPI) 에 연결하는 데 사용되는 IP Address를 말합니다.
  • WAAPI Port
    WAAPI에 연결하는 데에 사용되는 포트를 말합니다.
  • Auto Connect to WAAPI
    WAAPI를 통해 Unreal Editor와 Wwise의 자동 연결을 활성화합니다.
  • Auto Sync Selection
    Whether to synchronize the selection between the Wwise Browser and the Wwise Project Explorer.

Error Message Translator

  • XML Translator Timeout
    XML 파일 리더의 ID 검색에 할당된 최대 시간(밀리초)입니다. 비활성화하려면 0으로 설정하세요.
  • Waapi Translator Timeout
    WAAPI 연결을 통해 ID를 검색하는 데 할당된 최대 시간(밀리초)입니다. 비활성화하려면 0으로 설정하세요.

Error Translators의 목적은 정보가 제공될 때마다 숫자 ID를 오류 메시지로 변환해서 사람이 읽을 수 있는 이름으로 변환하는 것입니다. 여기에는 SoundBanksInfo.xml을 통하는 방법과 WAAPI를 통하는 방법 두 가지가 제공됩니다. SoundBanksInfo.xml 파일이 SoundBank 파일과 같은 위치에 있는 경우(선택 사항) XML 방식을 사용하는 것이 더 빠릅니다. WAAPI는 Wwise 인스턴스에서 최신 정보를 직접 읽을 수 있다는 장점이 있습니다. 그러나 네트워크 통신이 매우 느릴 수 있습니다. 그래서 이는 기본적으로 비활성화되어 있습니다.

Assets Reload

  • Ask for Wwise Assets Reload
    Unreal Editor에서 작업할 때 Wwise Asset Data를 다시 로드하기 전에 사용자가 수락해야 하는 알림을 띄웁니다.

Viewports

  • Visualize Rooms and Portals
    뷰포트에서 공간과 포털을 시각화합니다. 뷰포트에서 'realtime' 설정이 활성화되어 있어야 합니다.
  • Show Reverb Info
    When enabled, information about AkReverbComponents is displayed in viewports, above the component's UPrimitiveComponent parent. 뷰포트에서 'realtime' 설정이 활성화되어 있어야 합니다.

Wwise Simple External Source Manager 설정

  • Media Info Table
    프로젝트의 모든 외부 음원 미디어를 올바르게 로드하는 데 필요한 모든 정보가 있는 표입니다. 이 표에 있는 모든 파일은 빌드된 프로젝트에 패키징됩니다.
  • External Source Default Media
    External Source가 로드될 때 로드할 MediaInfoTable의 기본 미디어 항목을 정의하는 선택적인 표입니다.
  • External Source Staging Directory
    프로젝트를 쿠킹할 때 External Source 미디어를 스테이징하는 위치입니다. 빌드된 프로젝트에서 External Source 미디어를 로드할 위치입니다.

Initializing the SoundEngine

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

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


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

Wwise 저작 API (WAAPI)

Wwise Authoring API는 Wwise Authoring 애플리케이션과 소통합니다. Unreal 통합은 Unreal과 Wwise Authoring이 모두 실행 중이며 Unreal이 WAAPI에 연결되어 있는 경우 WAAPI를 통해 세션 도중 Wwise 프로젝트에 대한 정보를 요청하고 변경할 수 있게 해줍니다.

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

참고: WAAPI는 오직 Windows와 Mac 플랫폼에서만 지원되며 Editor와 Game 안에서 사용할 수 있습니다.

WAAPI에 연결하기

Wwise를 Unreal 프로젝트에 통합한 후 WAAPI에 연결하려면 반드시 Unreal 구성 설정을 업데이트해야 합니다.

Unreal 프로젝트에서 WAAPI를 활성화하는 방법:

  1. Unreal Editor에서 프로젝트를 열고 Wwise Authoring에서 해당 Wwise 프로젝트를 여세요.
  2. Unreal에서 Edit > Project Settings를 클릭하세요. Unreal Project Settings 대화 상자가 열립니다.
  3. 왼쪽 패널에서 Wwise 섹션으로 스크롤하고 User Settings를 클릭하세요.
  4. 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++ 프로젝트 에서 제시한 단계를 따라 AkAudio 모듈을 게임의 의존성으로 반드시 추가해야 합니다. 모듈을 게임의 의존성으로 추가한 후에 FAkWaapiClient 클래스를 사용할 수 있습니다.


Wwise Unreal Integration Documentation: Unreal Engine C++ 프로젝트

Unreal Engine C++ 프로젝트

모듈 연결하기

Wwise Unreal 통합은 여러 모듈로 분리되어 있습니다. C++ 프로젝트 내에서 Wwise의 기능을 사용하려면 프로젝트의 빌드 파일(.Build.cs) 에서 이러한 모듈을 연결해야 합니다. 모듈을 빌드 파일에서 제거하면 해당 모듈을 비활성화할 수 있습니다.

다음 예시에서 프로젝트는 Core, CoreUOBject, Engine, InputCore, AkAudio, WwiseSoundEngine 모듈이 공용으로 포함됩니다. AkAudio와 WwiseSoundEngine은 Wwise 모듈입니다.

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

이 경우 WwiseSoundEngine 모듈과 AkAudio 모듈의 기능을 사용할 수 있습니다. 모듈은 PublicDependencyModulesNames나 PrivateDependencyModulesNames에 있을 수 있습니다. 모듈에 대한 자세한 정보는 Unreal Engine 문서에서 확인할 수 있습니다.

모듈 개요

Unreal Wwise 통합은 다음 모듈로 구성됩니다.

  • AkAudio: 통합에서의 대부분의 사용자-상호작용 기능을 위한 루트 모듈입니다.
  • AkAudioMixer: 프로젝트에서 오디오 출력과 오디오 서브믹스를 Unreal 오디오 컴포넌트에서 Wwise 프로젝트의 믹서로 연결할 수 있게 해줍니다.
  • AudiokineticTools: Implements editor-specific tools and utilities like the Wwise Browser.
  • WwiseFileHandler: Wwise Sound Engine에 미디어, SoundBank, Wwise Location Resolver, I/O Hook의 요청을 처리하는 기능 및 필요한 외부 음원을 제공합니다.
  • WwiseProjectDatabase: Wwise 프로젝트에서 생성된 SoundBank의 현재 상태에 관한 메모리 기반 데이터베이스 뷰를 제공합니다.
  • WwiseResourceCooker: WwiseObjectInfo 구조 를 쿠킹된 구조체로 변환하고 필요한 리소스를 스테이징 폴더에 복사합니다.
  • WwiseResourceLoader: 모든 Wwise 에셋 유형에 필요한 모든 리소스의 로드/언로드를 처리합니다.
  • WwiseSoundEngine: Wwise Sound Engine API와 Unreal 프로젝트 사이의 다리 역할을 합니다.

통합에서의 모듈의 종속성은 다음 그림에 설명되어 있습니다.

Wwise Unreal Integration 오버라이드하기

통합에서 WwiseSoundEngine, AudiokineticTools, AkAudio를 제외한 모든 모듈은 상속을 통해 확장이 가능하도록 설계되었습니다. 이러한 모듈의 대부분의 기능은 가상이기 때문에 개발자가 이를 오버라이드하고 프로젝트에 가장 적합하도록 해당 작동 방식을 변경할 수 있습니다. 모듈을 오버라이드하려면 새로운 모듈을 만들고 오버라이드하려는 모듈을 상속하는지 확인해야 합니다. 그런 다음 원하는 함수를 오버라이드 합니다. 새로운 모듈을 사용하려면 다음과 같이 해당 모듈이 게임의 Build.cs에 포함되고 DefaultEngine.ini에 추가되었는지 확인하세요.

[Audio]
WwiseFileHandlerModuleName=WwiseSimpleExternalSource

<tt>WwiseSimpleExternalSource</tt> 모듈은 모듈을 오버라이드하는 예시를 보여줍니다. 이 모듈은 Data 테이블이 있는 외부 음원를 처리하기 위해 WwiseFileHandler 모듈을 오버라이드합니다.

C++를 사용해서 AkComponent 생성하기

C++를 사용하여 새로운 AkComponent를 생성할 경우 이 컴포넌트를 상위 계층 컴포넌트에 반드시 연결해야 합니다. API가 의도한 대로 작동하려면 AkComponent가 필요합니다. 다음 섹션은 AkComponent를 추가하는 방법의 예시를 제공합니다.

Unreal 프로젝트에서 Wwise API 사용하기

Wwise Unreal 통합을 통해 Wwise API를 사용할 수 있습니다. 대부분의 함수는 WwiseSoundEngine 모듈이나 AkAudio 모듈을 통해 호출할 수 있습니다.

WwiseSoundEngine 모듈

WwiseSoundEngine 모듈은 대부분의 SoundEngine API 작업에 대한 하위 레벨 접근을 제공합니다. 다음 예시와 같이 WwiseSoundEngine 모듈을 사용하면 API 함수에 안전하게 바로 접근할 수 있습니다.

#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. 이 컴포넌트는 해당 액터에서 사운드를 방사하려는 경우에 필요합니다.
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());
}
}
}

이 코드는 해당 액터에 Event를 게시합니다. 해당 액터에 반드시 UAkComponent를 추가해서 Wwise에 등록해야 합니다. WwiseSoundEngine 모듈에서 자동으로 Event가 실행되지 않기 때문에 Event도 반드시 로드해야 합니다.

참고: 2022.1 이전 버전의 통합에서는 동일한 동적 라이브러리에서 API에 접근해야 했기 때문에 AkAudio 모듈 외부의 코드에 접근하는 것이 불가능했습니다.

AkAudio 모듈

AkAudio는 통합에서의 대부분의 사용자-상호작용 기능을 위한 루트 모듈입니다. 이 모듈은 Unreal Component를 사용해서 WwiseSoundEngine 모듈이 할 수 있는 대부분의 작업을 수행할 수 있습니다. 여기에는 통합에서사용하는 에셋 유형 및 컴포넌트에 대한 클래스가 담겨 있습니다. SoundEngine을 직접 호출하는 대신 AkAudioDevice는 WwiseSoundEngine API의 일반적인 사용을 래핑(wrap)하는 많은 도우미 함수(helper function)를 제공합니다. 이러한 도우미 함수는 API를 사용하는 데 필요한 리소스가 로드되었는지 확인하며 더 많은 정보를 로깅합니다.

다음 코드는 이전 예시와 마찬가지로 주어진 액터에 Event를 게시할 뿐만 아니라 AkComponent 연결과 Event 로딩도 처리합니다.

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

더 많은 예시 코드는 WwiseDemoGame의 WwiseDemoGame/WwiseCodeExample에서 찾을 수 있으며 WwiseDemoCodeExampleMap에서 시험해 볼 수 있습니다.

디버그 기능

로깅

통합의 각 모듈에는 독립적인 로그 상세 수준(independent log verbosity level)이 있습니다. 이 수준은 효율적으로 디버그할 수 있게 도와줍니다. 오류가 발생하면 오류를 만들어낸 모듈을 찾은 다음 해당 모듈 로그의 디테일 정도를 Verbose나 VeryVerbose로 설정해서 오류가 발생한 이유를 더 잘 이해할 수 있습니다. . DefaultEngine.ini 파일의 Core.Log 섹션에서 각 모듈의 상세 수준을 변경할 수 있습니다. 또한 모든 모듈에서는 기본적으로 활성화되는 LogWwiseHints라는 특수한 로깅 범주가 있는데, 이 범주는 더 이상 사용되지 않는 기능이나 기타 나쁜 습관을 사용하는 것에 관해서 경고합니다.

사용할 수 있는 상세 수준은 다음과 같습니다.

  • Fatal: 프로그램 실행을 계속할 수 없거나 진행해서는 안 되는 경우 크래시를 일으킵니다. 예를 들어, 필요한 플러그인 모듈이 로드되지 않았을 수 있습니다.
  • Error: 오디오가 작동하지 않는 경우 게임을 패키징을 할 수 없게 만듭니다.
  • Warning: 예측하지 못한 동작을 일으킬 수 있지만 치명적이지 않은 기능에 관한 경고를 나타냅니다. 원한다면 패키징을 방지할 수도 있습니다.
  • Display: 모듈 초기화에 관한 정보를 기록하고 Commandlet 정보를 제공합니다.
  • Log: 다양한 중요 작업을 기록합니다.
  • Verbose: 모듈이 수행하는 모든 작업을 기록합니다.
  • VeryVerbose: 모듈이 수행하는 각 작업의 모든 단계를 기록합니다.

다음 예시에서 각 모듈과 관련된 상세 수준을 알아 볼 수 있습니다.

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

상세 수준(verbosity level)에 대한 자세한 내용은 Unreal Engine 문서에서 확인할 수 있습니다.

Stat

통합에는 디버깅에 도움이 되는 다음 Stat이 포함되어 있습니다.

  • AkAudioDevice: Post Event Async 호출에 관한 정보를 기록합니다.
  • AkSoundBankGenerationSource: SoundBank 생성과 관련된 WAAPI 호출을 기록합니다.
  • WwiseFileHandler: 로드된 미디어, SoundBank, 외부 음원에 대한 정보를 기록합니다.
  • WwiseFileHandlerLowLevelIO: 스트리밍 사운드에 대한 정보를 기록합니다.
  • WwiseProjectDatabase: 실제 메모리에 관한 정보를 기록합니다.
  • WwiseResourceLoader: 참조된 AkType에 관한 정보를 기록합니다.
  • WwiseSoundEngine: API 호출에 관한 정보를 기록합니다.

이러한 정보에 접근하려면 Unreal Viewport 옵션에서 필요한 Stat을 선택하세요.

Stat에 대한 자세한 정보는 Unreal Engine 문서을 참고해 주세요.

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.

SoundBank 생성

  1. Unreal Editor에서 WwiseDemoGame을 여세요.
  2. 툴바에서 Build 아래에 있는 Audiokinetic 카테고리에서 Generate SoundBanks...를 선택하세요.
  3. 원하는 모든 플랫폼과 언어를 선택한 후 OK를 클릭하세요.

SoundBank가 생성된 후 GeneratedSoundBanks 폴더와 연결된 Wwise 프로젝트가 다시 파싱되고 프로젝트의 Wwise 에셋이 다시 로드됩니다.

맵 콘텐츠

AkEvent Animation Notify

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

환경음 데모

맵의 이 구역에서는 AkAmbientSound 액터의 사용을 보여줍니다. 레벨에 있는 AmbientNoise_Spatialized 환경음 이미터는 Level Blueprint 안에 있는 Start All Ambient Sounds 노드에 의해 시작됩니다. 액터의 위치를 찾는 데에 도움을 주기 위해 게임을 시작하면 노란색 감쇠구가 표시됩니다. 이 이미터에서 사용하는 Event는 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 사운드의 피치를 제어합니다.

또한 레벨 Blueprint의 'Create RTPC button Event dispatchers' 섹션에서는 Post Event 노드를 사용하여 액터를 대상으로 하는 Event를 게시하는 법도 보여줍니다.

Reverb Demo

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

Switch Demo

맵의 이 섹션에서는 Blueprint를 사용하여 Switch를 설정하는 방법을 보여줍니다 (Blueprint 레벨의 'Switch Logic' 섹션에서). 버튼을 사용하면 (버튼 앞에 있는 벽에 적힌 설명을 보세요) 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 로 해당 텍스트를 적용합니다.

Blueprint에서 콜백의 사용에 대한 자세한 정보는 Blueprint에서 콜백 사용하기 을 참고해 주세요.

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 미디어 파일도 언로드됩니다.

스위치 컨테이너 미디어 분할에 대한 더 많은 정보는 Optimizing Memory Usage with Reference-Loaded Switch Containers 를 참고하세요.


Wwise Unreal Integration Documentation: Wwise Unreal 오브젝트 사용하기

Wwise Unreal 오브젝트 사용하기

Wwise Unreal 통합은 Unreal Editor에서 사용할 수 있는 다양한 오브젝트를 제공합니다. 각 오브젝트에 대한 자세한 내용은 다음 항목을 참고해 주세요.


Wwise Unreal Integration Documentation: Wwise Unreal 에셋

Wwise Unreal 에셋

목차

  • Wwise Unreal 에셋
  • WwiseObjectInfo 구조
    • FWwiseObjectInfo
    • FWwiseEventInfo
    • FWwiseGroupValueInfo
  • Wwise 에셋 쿠킹 및 로드된 데이터
  • Wwise Unreal 에셋 유형
    • UAkAudioType
    • UAkAudioEvent
    • UAkInitBank
    • UAkAuxBus
    • UAkEffectShareSet
    • UAkGroupValue
    • UAkStateValue
    • UAkSwitchValue
    • UAkRtpc
    • UAkTrigger
    • UAkAcousticTexture
    • 더 이상 사용되지 않는 에셋 및 데이터 유형
  • Unreal에서 에셋 링크 보기

Wwise Unreal 에셋

Unreal 통합을 사용하려면 사용자가 Wwise 프로젝트에서 해당 오브젝트를 나타내는 에셋을 만들어야 합니다. 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. 드래그하여 만들어진 에셋은 해당 Wwise 오브젝트에 연결하는 데 필요한 정보(GUID, ShortID, Name)를 자동으로 포함합니다. Content Browser를 통해 에셋을 만들 때는 이러한 정보를 수동으로 추가해야 합니다. 두 방법 모두 나중에 에셋을 편집해서 특정한 Wwise 오브젝트를 가리키도록 설정 할 수 있습니다. 이러한 에셋 유형을 사용하는 Blueprint 기능에 대한 자세한 내용은 블루프린트 함수 를 참고해 주세요.

참고: 맵과 Blueprint에서 Wwise 에셋을 직접 참조하면 에셋에 필요한 모든 Wwise 리소스(.bnk와 .wem 파일)가 자동으로 게임에 패키징됩니다. 그러나 코드를 통해서 이러한 에셋을 로드한 경우 에셋이 올바르게 패키징되었는지 다시 확인해야 합니다.

다음 표는 해당 Unreal 에셋 클래스가 있는 Wwise 오브젝트의 유형을 열거합니다.

Wwise Unreal 오브젝트
Wwise Object Type | Unreal 에셋 클래스 | 설명
Acoustic Texture | UAkAcousticTexture | SoundEngine에 식별해주는 ShortId용 래퍼.
RTPC | UAkRtpc
Trigger | UAkTrigger
Auxiliary Bus | UAkAuxBus | ShortId를 포함하고 필요한 미디어 및 SoundBank 리소스가 메모리에 로드되고 빌드된 게임에 패키징되는지 확인합니다.
Event | UAkAudioEvent
Effect ShareSet | UAkEffectShareSet | 게임 내에서 Effect ShareSet를 동적으로 설정하는 데에도 필요한 ShortId용 래퍼. 필요한 미디어와 SoundBank 리소스가 메모리에 로드되고 빌드된 게임에 패키징되는지 확인합니다.
Init Bank | UAkInitBank | Init Bank 파일이 게임에 패키징되고 다른 SoundBank보다 먼저 로드되는지 확인합니다.
State Value | UAkStateValue | ShortId 및 상위 그룹의 ShortId에 대한 래퍼입니다. UAkAudioEvent 에셋에서 FWwiseEventInfo 구조의 고급 설정SwitchContainerLoading::LoadOnReference가 제대로 작동하기 위해서 필요합니다. 이 설정이 활성화된 경우 이러한 그룹 값 에셋을 로드하거나 언로드하면 전환된 미디어 리소스의 동적 로드가 트리거됩니다. 자세한 내용은 Optimizing Memory Usage with Reference-Loaded Switch Containers 를 참고해 주세요.
Switch Value | UAkSwitchValue

WwiseObjectInfo 구조

Wwise Unreal 에셋에는 Wwise 프로젝트의 고유한 오브젝트를 가리키는 FWwiseObjectInfo 정보 구조가 포함되어 있습니다. 일부 에셋 클래스는 데이터가 로드를 준비하는 방법과 같은 작동 방식에 영향을 미치는 추가 입력란이 있는 하위 클래스를 사용합니다. 이 구조는 저장될 때 에셋에서 직렬화되지만 패키지 빌드를 위해서 쿠킹될 때 폐기됩니다. 쿠킹 중에는 해당 구조가 WwiseResourceCooker로 전달되어 패키징된 에셋에서 직렬화되는 쿠킹된 데이터를 가져옵니다. CookedData 구조에 대한 자세한 내용은 Wwise 에셋 쿠킹 및 로드된 데이터 를 참고해 주세요.

FWwiseObjectInfo

기본 정보 구조체입니다. 에디터의 에셋이 로드되거나 쿠킹될 때 이 구조체는 WwiseDatabase를 쿼리하여 모든 에셋의 필수 리소스(.bnk와 .wem 파일)를 메모리에 로드하는 데 사용되는 CookedData 구조를 가져오는 데 사용됩니다.

속성:

  • WwiseGuid: Wwise 프로젝트에서 이 에셋을 식별하는 GUID입니다.
  • WwiseShortId: Wwise SoundEngine의 에셋을 나타내는 32비트 정수입니다.
  • WwiseName: Wwise 프로젝트에 있는 에셋의 문자열 이름입니다. 이 이름은 해당 에셋을 포함하는 언리얼 에셋의 이름과 일치할 필요는 없습니다. 그러나 에셋이 직렬화될 때 WwiseObjectInfo의 모든 식별 입력란이 비어 있는 경우에는 Unreal 에셋의 이름과 일치하도록 WwiseName 입력란이 업데이트됩니다.
  • HardCodedSoundBankShortId: 에셋이 종속성으로 로드해야 하는 SoundBank를 식별하는 32비트 정수입니다. 예를 들어 하나의 Event가 여러 SoundBank에 포함되어 있는 경우 해당 에셋과 함께 패키징하고 로드할 SoundBank를 지정할 수 있습니다. 이 입력란을 설정하지 않으면 해당 Wwise 오브젝트를 포함하는 모든 SoundBank가 함께 로드됩니다.
참고: HardCodedSoundBankShortId 속성은 SoundBank 리소스가 필요한 유일한 에셋인 UAkAudioEvent, UAkAuxBus 및 UAkEffectShareSet 에셋에만 영향을 미칩니다.

Wwise Database에서 검색하면 WwiseGuid, WwiseShortId, WwiseName 순서로 입력란의 우선 순위가 지정됩니다. 예를 들어 WwiseGuid가 유효하지 않으면 WwiseShortId가 오브젝트 검색에 사용됩니다.

WwiseObjectInfo에서 Wwise 오브젝트를 식별하는 세 가지 속성(WwiseShortId, WwiseGuid, WwiseName)이 Unreal Asset 인스펙터에서 수정되면 Wwise 프로젝트 데이터베이스에서 새 속성의 값과 다른 두 입력란과 일치하는 오브젝트를 검색하고 그에 따라 업데이트합니다.

FWwiseObjectInfo의 하위 클래스에는 데이터를 올바르게 로드하는 데 사용되는 추가 정보가 포함되어 있습니다. 또한 인스펙터에서 WwiseObjectInfo 속성(또는 하위 클래스의 모든 입력란)을 변경할 경우에도 에셋의 Wwise 리소스가 다시 로드됩니다.

FWwiseEventInfo

UAkAudioEvent 에셋에 대한 FWwiseObjectInfo 의 하위 클래스입니다. FWwiseEventInfo에는 사용자가 Event 에셋이 로드되고 파괴될 때의 작동 방식을 커스터미이징할 수 있는 추가 옵션이 포함되어 있습니다.

추가 속성:

  • SwitchContainerLoading: 'AlwaysLoad'는 전환된 모든 미디어 및 이를 사용하는 이벤트와 함께 로드합니다. 또한 'LoadOnReference'는 스위치나 그룹 값도 메모리에 있을 때만 미디어를 로드합니다. 자세한 내용은 Optimizing Memory Usage with Reference-Loaded Switch Containers 를 참고해 주세요.
  • DestroyOptions: 'StopEventOnDestroy'는 파괴될 때 이벤트 재생을 중지하고 'WaitForEventEnd'는 이벤트 재생이 중지될 때까지 기다립니다.

FWwiseGroupValueInfo

Switch 및 State Value 에셋에 대한 FWwiseObjectInfo 의 하위 클래스. FWwiseGroupValueInfo는 State나 Switch Group의 ShortId도 포함하고 있습니다.

추가 속성:

  • GroupShortId: 에셋을 포함하는 그룹을 식별하는 32비트 정수입니다.

Wwise 에셋 쿠킹 및 로드된 데이터

Wwise Asset에는 필요한 리소스(.bnk 및 .wem 파일)를 로드하고 다른 Wwise Object에 대한 종속성을 모니터링하는 데 사용되는 CookedData 구조체가 포함되어 있습니다 (예: Switch Container를 재생하는 Event에서 사용하는 스위치). WwiseResourceCooker 모듈은 FWwiseObjectInfo 구조체를 받아들이고 해당 Wwise 오브젝트의 CookedData 구조체를 반환하는 함수를 제공합니다. 또한 FWwiseObjectInfo 구조체를 취하고 패키징에 필요한 리소스를 준비하는 함수를 제공합니다.

에디터에서 작업할 때 CookedData 구조체는 일시적이며 에셋에 직렬화되지 않습니다. 이렇게 하면 Wwise 오브젝트 간의 데이터나 연결을 변경할때 해당 Unreal 에셋이 불필요하게 변경되는 것을 방지할 수 있습니다. 패키징하는 동안 CookedData는 패키징된 에셋에서 직렬화되고 Wwise 정보 구조체는 폐기됩니다.

해당 WwiseResourceLoader 모듈은 에셋의 필수적인 리소스를 메모리에 로드합니다. CookedData 구조체를 받아들이는 함수를 제공하고 WwiseFileHandler 모듈의 메소드를 호출하여 실제 리소스의 로딩을 관리합니다. 그런 다음 'Loaded' 구조체에 대한 참조를 반환합니다.

참고: UAkRtpc, UAkTrigger 및 UAkAcousticTexture 에셋은 추가 리소스를 로드할 필요가 없습니다. 이 에셋은 WwiseResourceLoader와 상호 작용하지 않으며 CookedData 구조에는 ShortId만 포함됩니다.

Wwise Unreal 에셋 유형

UAkAudioType

모든 Wwise Unreal 에셋의 기본 클래스입니다.

속성:

  • AutoLoad: Unreal Asset과 함께 Wwise 데이터(뱅크와 미디어)를 자동으로 로드할지 여부를 결정합니다.
  • UserData: 사용자 데이터의 배열입니다. 여기에 Wwise 통합에서 사용하는 커스텀 기능에 유용한 모든 것을 저장할 수 있습니다. 예를 들어 UserData는 음성 해설 이벤트에 대한 자막 데이터를 저장할 수 있습니다.

블루프린트 함수:

  • LoadData: 에셋에 필요한 리소스(.bnk 및 .wem 파일)를 로드합니다. AutoLoad가 비활성화되어 Wwise 리소스를 수동으로 로드할 때 이 함수를 사용하세요. 이 함수는 여러 번 호출해도 안전하지만 리소스가 불필요하게 다시 로드될 가능성이 있습니다.
  • UnloadData: 에셋에 필요한 리소스(.bnk 및 .wem 파일)를 언로드합니다. 리소스가 다른 에셋에 필요한 경우 해당 에셋도 모두 언로드될 때까지 리소스가 언로드되지 않습니다.

UAkAudioEvent

Event의 UAkAudioType 의 하위 클래스 버전입니다.

속성:

  • MaxAttenuationRadius: 최대 감쇠 반경.
  • IsInfinite: Event에서 재생되는 사운드가 무한 반복되는지 여부를 나타냅니다.
  • MinimumDuration: Event에서 재생되는 사운드의 최소 지속 시간을 추정합니다.
  • MaximumDuration: Event에서 재생되는 사운드의 최대 지속 시간을 추정합니다.
  • EventInfo: 에디터에서 EventCookedData의 속성을 채우는 FWwiseEventInfo 입니다.
  • EventCookedData: 언어에서 언어별 FWwiseEventCookedData로의 매핑을 포함하는 임시 FWwiseLocalizedEventCookedData입니다.
참고: EventCookedData, MaxAttenuationRadius, IsInfinite, MinimumDuration, MaximumDuration 속성은 AkAudioEvent 에셋이 에디터에 로드될 때 채워지고 에셋을 쿠킹할 때 에셋에 직렬화됩니다. 통합은 MaxAttenuationRadius를 사용해서 컴포넌트 시각화(visualizer)에 추가 정보를 표시하는 반면 다른 세 개는 타임라인 트랙에 이벤트를 표시할 때 사용됩니다.

Unreal Content Browser 콘텍스트 메뉴 옵션:

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

UAkInitBank

Init Bank에 대한 UAkAudioType 의 서브클래스.

  • InitBankCookedData: 임시 FWwiseInitBankCookedData.
참고: UAkAudioType 의 Autoload 속성은 해당 에셋 유형에 영향을 미치지 않습니다.

UAkAuxBus

UAkAudioType Auxiliary Bus의 서브클래스.

  • AuxBusInfo: 에디터에서 AuxBusCookedData 속성을 채우는 FWwiseObjectInfo.
  • AuxBusCookedData: 언어에서 언어별 FWwiseAuxBusCookedData로의 매핑을 포함하는 임시 FWwiseLocalizedAuxBusCookedData.

UAkEffectShareSet

Effect ShareSet에 대한 UAkAudioType 의 서브클래스.

  • ShareSetInfo: 에디터에서 AuxBusCookedData 속성을 채우는 FWwiseObjectInfo.
  • ShareSetCookedData: 언어에서 언어별 FWwiseShareSetCookedData로의 매핑을 포함하는 임시 FWwiseLocalizedShareSetCookedData.

UAkGroupValue

UAkAudioType 의 서브클래스와 UAkStateValue 및 UAkSwitchValue 의 기본 클래스.

  • GroupValueInfo: 에디터에서 GroupValueCookedData 속성을 채우는 FWwiseGroupValueInfo.
  • GroupValueCookedData: 임시 FWwiseGroupValueCookedData.

UAkStateValue

State 값에 대한 UAkGroupValue 의 하위 클래스.

UAkSwitchValue

Switch 값에 대한 UAkGroupValue 의 서브클래스.

UAkRtpc

RTPC/Game Parameter에 대한 UAkAudioType 의 서브클래스.

  • RtpcInfo: 에디터에서 GameParameterCookedData 속성을 채우는 FWwiseObjectInfo.
  • GameParameterCookedData: 임시 FWwiseGameParameterCookedData.
참고: UAkAudioType 의 Autoload 속성과 LoadData 및 UnloadData Blueprint은 해당 에셋 유형에 영향을 미치지 않습니다.

UAkTrigger

Music Trigger에 대한 UAkAudioType 의 서브클래스.

  • TriggerInfo: 에디터에서 TriggerCookedData 속성을 채우는 FWwiseObjectInfo.
  • TriggerCookedData: 임시 FWwiseTriggerCookedData.
참고: UAkAudioType 의 Autoload 속성과 LoadData 및 UnloadData Blueprint은 해당 에셋 유형에 영향을 미치지 않습니다.

UAkAcousticTexture

Acoustic Texture에 대한 UAkAudioType 의 서브클래스. 이를 Spatial Audio 기능과 함께 사용하는 방법은 AkAcousticTexture 를 참고해 주세요.

  • TriggerInfo: 에디터에서 AcousticTextureCookedData 속성을 채우는 FWwiseObjectInfo.
  • AcousticTextureCookedData: 임시 FWwiseAcousticTextureCookedData.
참고: UAkAudioType 의 Autoload 속성과 LoadData 및 UnloadData Blueprint는 해당 에셋 유형에 영향을 미치지 않습니다.

더 이상 사용되지 않는 에셋 및 데이터 유형

다음 클래스 및 구조체는 더 이상 사용되지 않으며 이전 프로젝트에서 마이그레이션하는 데만 사용됩니다.

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

Unreal에서 에셋 링크 보기

Event와 미디어 사이의 연결은 Unreal 참조를 통해 유지됩니다. 그렇기 때문에 다음 이미지와 같이 Unreal Reference Viewer를 사용하여 에셋 간의 링크를 볼 수 있습니다.

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


Wwise Unreal Integration Documentation: Wwise Unreal 액터

Wwise Unreal 액터

목차

  • AkAmbientSound
  • AkReverbVolume

AkAmbientSound

AkAmbientSound는 Unreal Audio 시스템에 포함된 AAmbientSound 오브젝트와 동일한 방식으로 사용되는 AActor 클래스 입니다. 재생을 제어하는 방법은 두 가지가 있습니다. 자체 오브젝트 Blueprint 함수를 통하거나, Start All Ambient Sounds 및 Stop All Ambient Sounds 전역적 도우미 함수를 사용하는 것입니다. 또한 AkAmbientSound는 자체적으로 Property를 가진 AkComponent 를 담고 있습니다.

속성:

  • Stop When Owner Is Destroyed: AkAmbientSound가 파괴될 경우 해당 Event가 자동으로 중단됩니다.
  • Auto Post: BeginPlay에서 연결된 UAkAudioEvent 를 자동으로 게시합니다.

블루프린트 함수:

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

AkReverbVolume

AkReverbVolume 은 Unreal Audio 시스템과 함께 제공되는 AReverbVolume 오브젝트와 유사한 방식으로 사용되는 AVolume 클래스입니다. Editor의 모든 Brush가 이 클래스를 추가할 수 있습니다. 리버브 효과는 AkLateReverbComponent 로 얻을 수 있습니다.


Wwise Unreal Integration Documentation: Wwise Unreal 컴포넌트

Wwise Unreal 컴포넌트

목차

  • AkLateReverbComponent
  • AkComponent
  • AkAudioInputComponent

AkLateReverbComponent

이 컴포넌트를 UPrimitiveComponent 에 추가해서 해당 Primitive Component에서 리버브 영역을 만들 수 있습니다. 리버브 효과를 얻으려면 Wwise Auxiliary Bus를 컴포넌트에 할당하고 이 볼륨에 들어오는 모든 AkComponent 를 관련 Wwise Auxiliary Bus로 라우팅하세요. 볼륨이 겹칠 경우 Priority 속성은 대상 AkComponent가 라우팅되는 Auxiliary Bus를 결정합니다. AkReverbVolume 을 오고 나가는 Auxiliary Bus의 레벨에 일시적인 페이드 인/아웃 Effect가 적용됩니다. Ak Late Reverb Component가 AkRoomComponent 도 있는 액터에서 활성화되면 Late Reverb Component가 비활성화되고 리버브는 Spatial Audio 엔진을 사용하여 Effect를 렌더링하는 AkRoomComponent 에 의해 처리됩니다.

리버브 매개 변수에 대한 정보는 Ak Late Reverb Component가 연결된 모든 오브젝트 위에 표시됩니다. Wwise Integration Settings의 Viewports - Show Reverb Info 나 Unreal Level Editor Viewport 메뉴에서 이 텍스트를 활성화하거나 비활성화할 수 있습니다.

Level Editor Viewport 메뉴에 있는 Show Reverb Info

속성:

  • Enable Late Reverb: 해당 컴포넌트를 활성화/비활성화 합니다.
  • Send Level: Wwise Auxiliary Bus와 연관된 최대 Send Level 입니다.
  • Fade Rate: 현재 Late Reverb Component에 들어가고 나갈 때 Send Level을 페이드 인/아웃하는 비율(초당 백분율)입니다. 예를 들어 이 값이 0.2이면 페이드 시간은 5초가 됩니다.
  • Priority: Late Reverb Component를 적용할 순서입니다. 볼륨이 서로 겹칠 경우 우선 순위가 가장 높은 볼륨만 선택됩니다 (동시 다발적인 Late Reverb Component의 개수는 Unreal Editor Project Settings의 Wwise > Integration Settings에서 설정할 수 있습니다). 서로 겹치는 두 개 이상의 Late Reverb Component의 우선 순위가 같으면 어떤 Late Reverb Component가 먼저 적용될지 예측할 수 없습니다.
  • Auto Assign Aux Bus: 볼륨과 표면적을 고려해서 상위 Primitive Component에서 생성된 리버브의 쇠퇴 시간을 추정하여 이 리버브 컴포넌트에 대한 보조 버스를 자동으로 할당합니다. 이 쇠퇴 값은 통합 설정에서 Automatically Assigning a Reverb Aux Bus 으로부터 보조 버스를 선택하는 데에 사용됩니다. 이 속성은 기본적으로 활성화되어 있습니다.
  • Aux Bus: 이 볼륨에 할당된 UAkAuxBus 입니다. Wwise 프로젝트에서 이 보조 버스는 게임에서 정의한 보조 버스를 활성화합니다. AkRoomComponent 및 AkPortalComponent 와 함께 Late Reverb를 사용할 경우 Positioning을 위한 Listener Relative Routing도 활성화해야 하며 3D Spatialization이 지정되어 있어야 합니다.
  • Environment Decay Estimate: 후기 잔향이 연결된 Primitive Component를 기반으로 해당 잔향의 환경에 대한 T60(음압 레벨이 60dB만큼 감소하는 데에 걸리는 시간)의 예상 값입니다. 이 T60 값은 통합 설정에서 Automatically Assigning a Reverb Aux Bus 을 사용하는 보조 버스를 자동으로 지정하는 데에 사용되거나, 혹은 통합 설정에서 Driving Global Reverb RTPCs 로부터 Decay Estimate RTPC를 구동하는 데에 사용됩니다.
  • HFDamping: 연관된 AkGeometryComponent (혹은 이를 소유하는 Actor가 Volume일 경우 AkSurfaceReflectorSetComponent )에 따라 해당 환경에 의해 생성되는 고주파수 감폭(damping)의 예상 값입니다. HF 감폭을 추정하려면 AssociateAkTextureSetComponent 함수를 통해 지오메트리 컴포넌트가 이 리버브 컴포넌트에 반드시 연결되어 있어야 합니다. 이 후기 리버브 컴포넌트에 형제 지오메트리 컴포넌트 (혹은 표면 반사기 설정 컴포넌트)가 있을 경우 이 컴포넌트도 자동으로 연결되기 때문에 AssociateAkTextureSetComponent를 호출할 필요가 없습니다. AssociateAkTextureSetComponent가 사용될 경우 HFDamping 값은 재생 동안에만 정확합니다. 이 값이 0.0일 경우 모든 주파수가 동일하게 감폭됨을 의미합니다. 값이 0.0보다 클 경우 저주파수보다 고주파수가 더 감폭됨을 의미합니다. 값이 0.0보다 작을 경우 고주파수보다 저주파수가 더 감폭됨을 의미합니다. 이 값은 통합 설정의 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: 후기 리버브가 연결된 기본 컴포넌트에 따라 초기 반사가 리스너에게 도달하는 데에 걸리는 시간을 예측한 값입니다. 해당 추정치는 상위 기본 컴포넌트의 중앙에 위치한 이미터와 리스너를 기반으로 합니다. 이 값은 통합 설정에서 Driving Global Reverb RTPCs 로부터 Time To First Reflection RTPC를 구동하는 데에 사용될 수 있습니다.

블루프린트 함수:

  • Associate Ak Texture Set Component: HFDamping을 예측하는 데에 사용되는 컴포넌트 ( AkGeometryComponent 혹은 AkSurfaceReflectorSetComponent )를 설정합니다. 예를 들어 AkGeometryComponent 하위 컴포넌트가 있는 스태틱 메쉬 컴포넌트를 가진 Blueprint에서는 이 함수를 BeginPlay에서 호출하여 해당 AkGeometryComponent 를 이 리버브 컴포넌트와 연결할 수 있습니다. 이 후기 리버브 컴포넌트에 형제 AkGeometryComponent (혹은 AkSurfaceReflectorSetComponent )가 있을 경우 이 컴포넌트가 자동으로 연결되기 때문에 해당 함수를 호출할 필요가 없습니다.
참고:
  • 컴포넌트 계층 구조에서 Ak Late Reverb Component는 UPrimitiveComponent 에 반드시 연결되어 있어야 합니다. Ak Late Reverb Component의 상위 계층으로 UPrimitiveComponent 가 없을 경우 오류가 표시되며 컴포넌트가 아무 효과를 가지지 않습니다. 커스텀 Blueprint 클래스에서 AkLateReverbComponent 를 사용할 경우 BoxCollision , SphereCollision 또는 CapsuleCollision 컴포넌트와 같은 단순 충돌 컴포넌트를 상위 계층으로 사용하는 것이 좋습니다. 더 많은 정보는 Spatial Audio Blueprint 컴포넌트 를 참고해 주세요.
  • 통합 설정에서 Driving Global Reverb RTPCs 에 Environment Decay Estimate, HFDamping, Time to First Reflection 값을 사용하려면 리버브 컴포넌트에 반드시 형제 AkRoomComponent (다시 말해 동일한 Primitive 상위 컴포넌트를 공유하는 AkRoomComponent )가 있어야 합니다. RTPC 값은 Room ID에서 설정됩니다.
  • 레벨 에디터에서 Ak Late Reverb Component를 사용하여 작업할 경우 Viewport Options에서 Realtime을 반드시 활성화할 것을 권장합니다. Realtime이 비활성화될 경우 Wwise 프로젝트에서 액터의 크기가 변경되더라도 리버브 매개 변수 예상값이 업데이트되지 않습니다.

AkComponent

AkComponent 는 USceneComponent 로부터 파생되며 활성한 Wwise 이벤트를 나타냅니다.

속성:

  • Attenuation Scaling Factor: Ambient Sound가 Wwise에서 감쇠를 사용할 경우 이 속성을 사용하여 대/소규모의 영역으로 사운드를 시뮬레이션할 수 있게 환경음에서의 감쇠 계산을 변경할 수 있습니다.
  • Use Reverb Volumes: AAkReverbVolumes가 컴포넌트에 영향을 주는지 여부를 결정합니다.
  • Obstruction Occlusion
    • Collision Channel: The object collision channel to use when doing line of sight traces for obstruction/occlusion calculations. When set to 'Use Integration Settings Default', the value is taken from the DefaultOcclusionCollisionChannel in the Wwise Integration Settings.
    • Refresh Interval: Set the time interval between obstruction/occlusion checks (direct line of sight between the listener and this game object). Obstruction is used if Spatial Audio Rooms are present in the map. Otherwise, occlusion is used. Set to 0 to disable obstruction/occlusion on this component. The obstruction/occlusion value is directly applied with AK::SoundEngine::SetObjectObstructionAndOcclusion. When using Spatial Audio, obstruction checks are also done between portals in the same room and this game object. Only use this feature if you plan to obstruct this game object with geometry that is neither AkSurfaceReflectorSetComponent nor AkGeometryComponent. If not, we recommend that you disable obstruction/occlusion checks and exclusively use Spatial Audio Geometric Diffraction and Transmission.
  • Spatial Audio
    • Enable Spot Reflectors: 해당 AkComponent의 AkSpotReflector 에서 리플렉션을 활성화합니다.
    • Radial Emitter
      • Outer Radius: 해당 입락련을 원하는 외부 반경 크기로 설정하세요. 설정되는 값은 아무 변경 없이 공간 음향 AK:SpatialAudio::SetGameObjectRadius() 호출로 바로 전송됩니다. 액터가 선택되었을 경우 게임 오브젝트의 위치 주변에 노란색 구형 선이 표시되어 해당 크기를 시각적으로 확인할 수 있게 해줍니다.
      • Inner Radius: 해당 입력란을 원하는 내부 반경 크기로 변경하세요. 이 크기는 외부 반경의 크기와 같거나 작아야 합니다. 설정되는 값은 아무 변경 없이 공간 음향 AK:SpatialAudio::SetGameObjectRadius() 호출로 바로 전송됩니다. 액터가 선택되었을 경우 게임 오브젝트의 위치 주변에 노란색 구형 선이 표시되어 해당 크기를 시각적으로 확인할 수 있게 해줍니다.
    • Reflect (반사)
      • Early Reflection Aux Bus: 현재 게임 오브젝트의 초기 반사 보조 버스를 설정합니다. 이 컴포넌트는 선택된 보조 버스로 AK::SpatialAudio::SetEarlyReflectionsAuxSend()를 호출합니다. 보조 버스 매개 변수는 저작 도구에서 게임 오브젝트에서 재생되는 초기 반사 보조 버스가 지정되지 않은 사운드에 적용됩니다. 각 사운드에 지정된 초기 반사 보조 버스 매개 변수는 여기로 전달된 값보다 우선시됩니다.
      • Early Reflection Bus Send Gain: 현재 게임 오브젝트의 초기 반사 전송 볼륨을 설정하세요. 해당 컴포넌트는 입력된 볼륨값으로 AK:SpatialAudio::SetEarlyReflectionsVolume()을 호출합니다. 이 값은 저작 도구에서 지정된 초기 반사 볼륨과 조합되며 해당 게임 오브젝트에서 재생되는 모든 사운드에 적용됩니다. 유효한 값은 [0, 1] 입니다. 0으로 설정하면 해당 게임 오브젝트에서 처리되는 모든 반사가 비활성화됩니다.
    • Debug Draw 옵션: Spatial Audio Engine에서 수행한 레이캐스트와 해당 레이캐스트에 의해 충돌된 삼각형을 시각화하려면 이 옵션을 사용하세요. 이러한 시각화는 Spatial Audio 엔진을 디버그해야 할 때 유용합니다. 이 기능은 동시에 한 컴포넌트에서만 작동할 수 있습니다.
  • AkEvent
    • Ak Audio Event: UAkAudioEvent 오브젝트가 재생을 시작하도록 지시받을 경우 게시되는 AkAmbientSound 입니다. Spatial Audio 기능을 사용하려는 경우 Event의 효과음이 게임에서 정의한 보조 센드를 활성화해야 합니다.
참고
  • AkComponent 블루프린트 함수
  • C++를 사용해서 AkComponent 생성하기.

AkAudioInputComponent

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

블루프린트 함수:

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


Wwise Unreal Integration Documentation: Wwise Spatial Audio 오브젝트

Wwise Spatial Audio 오브젝트

AkAcousticTexture

Wwise Acoustic Texture를 나타내는 Unreal 오브젝트입니다. 이 오브젝트는 AkSurfaceReflectorSetComponent 의 폴리곤이나 AkSpotReflector 에 적용할 수 있습니다.

Integration Settings 의 AkGeometry Surface Properties Map을 통해 AkAcousticTexture를 Unreal Physical Material과 연결할 수 있습니다.

  • 속성:
    • Edit Color: AkAcousticTexture 가 지정되어 있는 AkSurfaceReflectorSetComponent 폴리곤에 사용할 색깔을 정의하는 에디터 전용 속성입니다. Edit Color는 Wwise 프로젝트의 Acoustic Texture로부터 자동으로 가져옵니다. 활성화된 WAAPI 연결이 있는 경우 Wwise에서 Acoustic Texture 색상을 변경하면 AkAcousticTexture Edit Color 에 즉시 적용됩니다.
참고
  • UAkAcousticTexture

AkSpotReflector

Spot Reflector 액터를 사용하면 3D 세계에서 다방향적 지점 반사기(Spot Reflector)를 배치할 수 있습니다. Spot Reflector는 멀리 있는 산과 같이 반경이 크며 멀리 있는 오브젝트에 배치할 때 유용합니다.

Spot Reflector 작동 방식을 제어하는 데 사용할 수 있는 몇 가지 옵션들:

Spot Reflectors는 Enable Spot Reflectors가 활성화되었으며 AkComponent 에서 나오는 모든 사운드를 반사합니다.

Spot Reflectors가 동일한 Spatial Audio Room에서의 사운드만 반사하도록 하려면 Same Room Only를 활성화해주세요. 이 경우 둘 다 공간 밖에 있거나 같은 공간에 있는 경우에만 Spot Reflector에 AkComponent 를 제공합니다. 공간은 AkRoomComponent 가 연결된 볼륨을 사용하여 생성할 수 있습니다.

Spot Reflector가 포함된 공간을 오버라이드하려면 Enable Room Override를 활성화하고 공간을 Room Override에 할당하세요. Room Override를 설정하지 않으면 Spot Reflector가 공간 외부에 배치됩니다.

AkSpotReflector 는 BeginPlay 때 Spatial Audio API에서 AK::SpatialAudio::AddImageSource() 를 호출합니다.

속성:

  • Aux Bus: 초기 반사 DSP를 위한 AkReflect 플러그인을 가진 UAkAuxBus 입니다. 이 보조 버스는 게임에서 정의한 보조 센드를 활성화하며 Listener Relative Routing는 활성화하지만 3D Spatialization은 None으로 설정합니다.
  • Acoustic Texture: AkAcousticTexture 는 허음원에서 반사되는 사운드를 필터링합니다.
  • Distance Scaling Factor: 허음원 거리 척도입니다. 이 값은 리스너를 기준으로 sourcePosition 벡터의 비율을 조정함으로서 거리의 비율을 조정하고 방향을 유지합니다.
  • Level: 게임에 의해 제어되는 해당 음원의 선형적 레벨입니다.

AkSurfaceReflectorSetComponent

이 컴포넌트는 AkGeometryComponent 와 동일하지만 AVolume 액터에 연결되어야 합니다. BeginPlay에서 모든 볼륨의 활성화된 폴리곤이 Spatial Audio 엔진으로 전송됩니다.

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

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

속성:

  • Enable Surface Reflector Set: 이 컴포넌트를 활성화합니다.
  • Acoustic Surfaces: 이 컨트롤을 사용하여 볼륨에서 두 개 이상의 면과 연결된 속성을 편집할 수 있습니다. 기본적으로 이 속성을 변경하면 선택된 액터의 모든 면에 적용됩니다. 편집 중인 면을 변경하려면 Enable Edit Surfaces를 클릭하세요. Unreal 에디터가 Brush Editing 모드로 전환되고 레벨에서 선택되지 않은 모든 액터를 숨깁니다. 일반 에디터 모드로 돌아가려면 Disable Edit Surfaces를 클릭하세요. Edit Surfaces 모드에서는 볼륨에 별도의 면을 두 개 이상 선택할 수 있습니다. 음향 표면 속성을 변경하면 선택된 모든 면에 해당 내용이 적용됩니다. 각 속성 뒤에 있는 괄호 안의 텍스트는 몇 개의 면이 편집되는지를 표시해줍니다.
    • AkAcousticTexture: 선택된 면과 연결된 AkAcousticTexture 입니다. 해당 면은 텍스처의 Edit Color에 따라 결정되며 텍스처의 이름이 Game Viewport의 면 위에 표시됩니다. 완전히 반사되는 표면의 경우 추가 텍스처 필터가 적용되지 않도록 None으로 설정합니다.
    • Transmission Loss: 사운드가 표면을 통과하여 얼마나 전달되는지를 나타냅니다. 유효한 값은 0.0~1.0 입니다 이 값이 0.0일 경우 사운드가 표면을 완전히 통과하게 됩니다. 이 값이 1.0일 경우 사운드게 표면에 의해 차단됩니다.
    • Enable Surface: 선택된 면이 Spatial Audio 엔진으로 전송될지의 여부를 표시합니다. 비활성화된 면은 텍스처 이름이나 Transmission Loss 값을 표시하지 않습니다.
  • Geometry Settings:
    • Enable Diffraction: 해당 Geometry에서 지오메트릭 회절을 활성화합니다.
    • Enable Diffraction on Boundary Edges: 해당 Geometry의 경계 모서리에서 지오메트리 회절을 활성화합니다. 경계 모서리는 한 삼각형에만 연결된 모서리를 말합니다. 지오메트리의 특정 모양에 따라 경계 모서리가 유용하거나 유용하지 않을 수 있습니다. 처리를 쉽게 하기 위해 회절 모서리의 개수를 줄이는 것이 좋습니다.
    • Associated Room: (Deprecated) Associate this AkSurfaceReflectorSetComponent with a Room. This property is deprecated and will be removed in a future version. We recommend not using it by leaving it set to None. Associating an AkSurfaceReflectorSetComponent with a particular Room limits the scope in which the geometry is accessible. 지오메트리를 공간과 연결하면 리플렉션과 회절 계산에 의해 실행되는 레이캐스트의 검색 공간을 줄여줍니다. 이 속성을 None으로 설정하면 해당 지오메트리는 전역적 범위를 가집니다. Note if one or more geometry sets are associated with a room, that room can no longer access geometry that is in the global scope.
참고
  • AkSurfaceReflectorSetComponent Blueprint 함수
  • Spatial Audio 지오메트리 SDK 설명서
  • Reflect 설명서

AkRoomComponent

이 컴포넌트는 어떤 UPrimitiveComponent 로든 추가하여 Wwise 사운드 엔진으로 Spatial Audio Room을 등록할 수 있습니다. 공간은 두 가지 목적을 가집니다.

  • 지향성 리버브. Room에 있는 게임 오브젝트에 적용된 모든 Auxiliary Bus는 볼륨의 전면 벡터를 향하게 됩니다.
  • AkAcousticPortal 혹은 AkPortalComponent 와 함께 사용할 경우 한 Room에서 Portal을 통과하여 다른 Room으로 변조 신호를 라우팅할 수 있습니다.

두 경우 모두 Auxiliary Bus에서 3D Spatialization을 지정하고 Positioning에서 Listener Relative Routing을 활성화해서 감쇠를 부여해야 합니다.

속성:

  • Is Dynamic: 공간의 움직임에 따라 해당 공간의 포털 연결 런타임 변경을 활성화 합니다. When the value for this property is set, bWantsOnUpdateTransform is also set to its value. 포털이 많은 세계의 경우 이 속성을 활성화하면 계산 비용이 많이 들 수 있습니다. When this option is disabled, the room's portal connections might still change if dynamic portals are moved (that is, portals with Is Dynamic enabled).
  • Enable Room: 해당 컴포넌트를 활성화합니다.
  • Priority: 공간이 적용될 순서를 결정합니다. 공간이 서로 겹칠 경우 우선 순위가 가장 높은 공간이 선택됩니다. 서로 겹치는 두 개 이상의 공간이 동일한 우선 순위를 가질 경우 선택될 공간을 예측할 수 없습니다.
  • Transmission Loss: 리스너가 다른 공간에 있을 경우 Room에서 방사되는 직접 사운드의 전달 손실 값을 설정하는 데에 사용됩니다. 이 값은 공간의 벽을 통해 전달되는 소리 에너지의 양과 관련이 있기 때문에 '두께'라고 할 수 있습니다. 유효한 값은 0.0f~1.0f이며, 기본적으로 Wwise 프로젝트의 차단 곡선으로 매핑되어 있습니다. If the Room has a parent or sibling AkGeometryComponent or AkSurfaceReflectorSetComponent, the transmission loss of these component surfaces is used, unless they are set to 0.
  • Room Tone
    • Ak Audio Event: 공간 게임 오브젝트에 게시할 이벤트입니다.
    • Aux Send: 해당 공간에 게시할 사운드의 전송 레벨입니다. 유효 범위: (0.f-1.f). 값이 0일 경우 보조 센드가 비활성화됩니다.
    • Auto Post: BeginPlay에서 공간에 게시된 오디오 이벤트를 자동으로 게시합니다.
참고:
  • Ak Room Component는 반드시 컴포넌트의 계층 구조에서 UPrimitiveComponent 에 연결되어야 합니다. Ak Room Component의 상위 계층으로 UPrimitiveComponent 가 없을 경우 오류가 기록되며 해당 컴포넌트가 아무 효과를 가지지 않습니다.
  • Ak Room Component는 해당 상위 계층(UPrimitiveComponent )의 위치와 경계선을 사용하여 Wwise를 업데이트합니다. Ak Room Component에 직접 적용되는 변환, 회전, 척도는 아무 효과를 가지지 않습니다. 커스텀 Blueprint 클래스에서 AkRoomComponent 를 사용할 경우 BoxCollision , SphereCollision 또는 CapsuleCollision 컴포넌트와 같은 단순 충돌 컴포넌트를 상위 계층으로 사용하는 것이 좋습니다. 더 많은 정보는 Spatial Audio Blueprint 컴포넌트 를 참고해 주세요.
참고
  • AkRoomComponent Blueprint 함수
  • 공간과 포털 SDK 설명서

AkPortalComponent

이 컴포넌트는 어떤 UPrimitiveComponent 로든 추가하여 Wwise 사운드 엔진으로 Spatial Audio Portal을 등록할 수 있습니다. AkRoomComponent 가 연결된 액터에 담긴 사운드 (예: AkSpatialAudioVolume ) 가 AkRoomComponent 가 연결된 다른 액터로 누출될 수 있게 해줍니다. 이렇게 Portal과 겹치는 액터는 초기화 시간에 감지됩니다. 패닝되고 3D로 공간화된 사운드는 포털을 통해 라우팅할 수 있습니다. 포털은 앞 공간과 뒷 공간을 가집니다. They must have at least one room connected, the front room must be different than the back room, and the front and back rooms should not have a parent-child relationship (see AkReverbZone for more information). The depth of a Portal determines the crossfade distance for both reverb sends and spread transition between the front and back Rooms. 포털이 더 깊을수록 (포털의 X축을 따라) AkComponent가 포털을 통과하여 전환할 때 크로스페이드 거리가 더 길어집니다.

Viewport에서 공간과 포털을 확인하며 위치를 조정하고 포털과 공간의 연결을 시각화할 수 있습니다. 시각화 기능은 Wwise Integration Settings의 Viewports - Visualize Rooms and Portals에서 활성화/비활성화할 수 있습니다. Unreal Level Editor Viewport메뉴에서 직접 이 설정을 토글할 수도 있습니다.

Level Editor Viewport Menu에서 Room과 Portal 시각화하기

속성:

  • Is Dynamic: 포털의 움직임에 따른 해당 포털의 공간 연결 런타임 변경을 활성화합니다. When the value for this property is set, bWantsOnUpdateTransform is also set to its value. 공간이 많은 세계의 경우 이 속성을 활성화하면 계산 비용이 많이 들 수 있습니다. When this option is disabled, the portal's room connections might still change if dynamic rooms are moved (that is, rooms with Is Dynamic enabled).
  • Initial State: Initially enables or disables the portal. When the portal is enabled, emitters positioned in the AkRoomComponent in front of and behind the portal emit through it.
  • Initial Occlusion: The initial occlusion value applied to the portal. When the occlusion value is set to 0, the portal is not occluded, and when it is set to 1, the portal is completely occluded. The occlusion value is directly applied to the portal with AK::SpatialAudio::SetPortalObstructionAndOcclusion. Portal occlusion can be used to modulate sound in response to a door opening or closing.
  • Obstruction Refresh Interval: Set the time interval between obstruction checks (direct line of sight between game objects or other portals and this portal). 값을 0으로 설정할 경우 방해 확인을 비활성화합니다. Only use this feature if you plan to obstruct this portal with geometry that is neither AkSurfaceReflectorSetComponent nor AkGeometryComponent. If not, we recommend that you disable obstruction checks and exclusively use Spatial Audio Geometric Diffraction and Transmission.
  • Obstruction Collision Channel: The object collision channel that creates the collision of the obstruction ray-casts between game objects and this portal with the desired geometry.
참고: AkPortalComponent는 컴포넌트 계층 구조에서 반드시 UPrimitiveComponent 에 연결되어야 합니다. AkPortalComponent의 상위 계층이 UPrimitiveComponent 가 아닐 경우 오류가 기록되며 해당 컴포넌트가 아무 효과를 가지지 않습니다.
  • 포털을 선택하면 연결된 공간의 이름이 양쪽에 표시됩니다. AkPortalComponent는 상위 계층(UPrimitiveComponent )의 위치와 경계선을 사용하여 Wwise를 업데이트합니다. AkPortalComponent에 직접 적용되는 변환, 회전, 척도는 아무 효과를 가지지 않습니다. 여러 개의 AkPortalComponent가 커스텀 Blueprint Class에 추가될 경우 Level Editor에서 해당 클래스의 인스턴스를 옮길 때 Unreal Editor가 응답하지 않을 수 있습니다. 이 문제를 방지하려면 다음과 같이 Class Settings에서 Run Construction Script on Drag를 비활성화하세요.
    1. Blueprint Editor에서 커스텀 Blueprint Class를 엽니다.
    2. Class Settings를 클릭합니다.
    3. Details Panel에서 Blueprint Options 아래 있는 Run Construction Script on Drag를 비활성화합니다.
참고
  • AkPortalComponent Blueprint 함수
  • 공간과 포털 SDK 설명서

AkSpatialAudioVolume

AkSpatialAudio 볼륨은 통합에 포함돼있습니다. 이 볼륨은 AkSurfaceReflectorSetComponent 와 AkRoomComponent 및 AkLateReverbComponent 가 연결된 간단한 볼륨으로 구성되어 있습니다.

AkAcousticPortal

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

AkGeometryComponent

이 컴포넌트는 AkSurfaceReflectorSetComponent 과 동일하지만 브러쉬 대신 StaticMeshComponent에 추가해야 합니다. AkGeometryComponent는 자신의 메쉬를 Spatial Audio Geometry로 변환합니다. 스태틱 메쉬 자체와 단순 충돌 메쉬는 두 개의 메쉬로 변환할 수 있습니다. 단순 충돌의 경우 구체와 캡슐 원선은 근사치인 경계 상자 메쉬로 변경됩니다.

게임을 디버깅할 때 Wwise Authoring Game Object 3D Viewer에서 공간 음향 지오메트리를 확인할 수 있습니다. AkGeometryComponent 를 사용하면 더 복잡한 모양을 전송할 수 있으며, 이 경우 Game Object 3D Viewer가 지오메트리를 표시하지 못할 수 있습니다. Platform Initialization Settings 안의 Monitor Queue Pool Size가 게임에서 전송하는 추가 데이터에 충분한 값으로 올바르게 설정되어 있는지 확인하세요.

메쉬 유형을 선택하면 Acoustic Textures와 전달 손실 값이 메쉬의 Physical Material에서 추론됩니다. Use the Geometry Surface Properties Table in the Integration Settings to associate Physical Materials with AkAcousticTextures and transmission loss values.

  • 스태틱 메쉬의 경우 스태틱 메쉬가 사용하는 각 Material의 Physical Material에서 표면 속성이 추론됩니다.
  • 단순 충돌의 경우 Simple Collision Physical Material에서 표면 속성이 추론됩니다.

Unreal에서는 Physical Material이 선택되지 않았을 경우 (None으로 설정됐을 경우) DefaultPhysicalMaterial이 대신 사용된다는 점을 알아두세요. Associate Geometry Surface Properties to the DefaultPhysicalMaterial for meshes that do not have assigned Physical Materials.

속성:

  • Geometry
    • Mesh Type: 지오메트리가 스태틱 메쉬 혹은 간단한 충돌 메쉬에서부터 변환될 것인지의 여부를 말합니다.
    • LOD(Level Of Detail): Mesh Type 목록에서 Static Mesh를 선택했을 경우, 이 매개 변수를 사용하면 공간 음향 지오메트리로 사용할 세부 수준(level of detail, LOD)을 선택할 수 있습니다.
    • Welding Threshold: Mesh Type 목록에서 Static Mesh를 선택했을 경우, 이 매개 변수는 서로 용접될 정점 간의 Unreal 단위를 로컬 거리로 선택할 수 있도록 해줍니다. 이 한계점보다 더 가까운 두 정점은 동일한 고유의 정점으로 처리되며 동일한 위치가 지정됩니다. 이 한계점을 높이면 삼각형 간의 간격이 줄어들어서 메쉬가 더욱 지속적이며 사운드가 덜 새어나가게 되고, 또한 너무 작아서 중요하지 않은 삼각형을 제거하게 됩니다. 이 한계점을 높이면 Spatial Audio의 꼭지점 찾기 알고리즘이 더 유효한 회절 모서리를 찾는데 도움이 됩니다.
    • Acoustic Properties Override
      • Acoustic Texture: 메쉬의 물리적 재질에 따라 자동으로 선택되는 음향 텍스처를 오버라이드합니다. Mesh Type에서 Static Mesh를 선택했을 경우 각 재료의 음향 텍스처를 개별적으로 오버라이드할 수 있습니다.
      • Enable Transmission Loss Override: 전달 손실 값을 오버라이드합니다.
      • Transmission Loss: 메쉬의 물리적 재질에 따라 자동으로 선택되는 전달 값을 오버라이드합니다. Mesh Type에서 Static Mesh를 선택하면 각 재질의 전달 손실 값을 개별적으로 오버라이드할 수 있습니다. 유효한 값은 0.0~1.0 입니다 이 값이 0.0일 경우 사운드가 표면을 완전히 통과하게 됩니다. 이 값이 1.0일 경우 사운드게 표면에 의해 차단됩니다.
  • Diffraction
    • Enable Diffraction: 해당 Geometry에서 지오메트릭 회절을 활성화합니다.
    • Enable Diffraction on Boundary Edges: 해당 Geometry의 경계 모서리에서 지오메트리 회절을 활성화합니다.
  • Optimization
    • Associated Room: (Deprecated) Associate this AkGeometryComponent with a Room. This property is deprecated and will be removed in a future version. We recommend not using it by leaving it set to None. Associating an AkGeometryComponent with a particular Room limits the scope in which the geometry is accessible. 지오메트리를 공간과 연결하면 리플렉션과 회절 계산에 의해 실행되는 레이캐스트의 검색 공간을 줄여줍니다. 이 속성을 None으로 설정하면 해당 지오메트리는 전역적 범위를 가집니다. Note if one or more geometry sets are associated with a room, that room can no longer access geometry that is in the global scope.
참고: Unreal의 Blueprint Editor에서 AkGeometryComponent를 추가할 때 Mesh Type이 Static Mesh로 설정되었을 경우 음향 텍스처 배열이 자동으로 설정되지 않습니다. 왜냐하면 Blueprint Editor의 Component Details 패널이 템플릿의 Component 인스턴스를 보여주는데, 이 패널은 Blueprint에 있는 다른 Component를 알지 못하기 때문입니다.
참고
  • Unreal Spatial Audio 튜토리얼
  • AkGeometry Blueprint 함수
  • Spatial Audio 지오메트리 SDK 설명서
  • Reflect 설명서

AkReverbZone

The AkReverbZone Actor is the same as an AkSpatialAudioVolume Actor, but with two additional properties: a parent SpatialAudioVolume and a Transition Region Width. The parent-child relationship between the Reverb Zone and the Spatial Audio Volume allows for sound propagation between them as if they were the same Room, without the need for a connecting Portal. The Reverb Zone and its parent are both Rooms, and as such, must enable their respective Room components. The transition region acts the same as the depth of a Portal but centered around the Reverb Zone geometry (see AkPortalComponent for more details about the Portal depth). Transition region are only added on surfaces where transmission loss is set to 0.

A Reverb Zone is useful in situations where two or more acoustic environments are not easily modeled as closed rooms connected by portals. Possible uses for Reverb Zones include: a covered area with no walls, a forested area within an outdoor space, or any situation where multiple reverb effects are desired within a common space. Reverb Zones have many advantages compared to standard Game-Defined Auxiliary Sends (i.e. compared to the AkLateReverbComponent or the AkReverbVolume). They are part of the wet path, and form reverb chains with other Rooms; they are spatialized according to their 3D extent; they are also subject to other acoustic phenomena simulated in Wwise Spatial Audio, such as diffraction and transmission.

By default, the AkReverbZone actor is set with a disabled AkSurfaceReflectorSetComponent, an enabled AkLateReverbComponent and an enabled AkRoomComponent. The Room's Transmission Loss value is set to 0 to allow sound to pass through all of it's surfaces and for the transition region to be applied on all of them. The Room's Transmission Loss value can be set to something different than 0. In this case, it will be applied on all surfaces of the room. It is possible to enable the AkSurfaceReflectorSetComponent to set surfaces with different Acoustic Textures and Transmission Loss values. Surfaces with a Transmission Loss between 0 and 1, or, in other words, semi-transparent surfaces, will not let diffraction and reflection paths pass through. Only direct, transmission paths will pass through such surfaces.

속성:

  • Parent Spatial Audio Volume: The Room of this Spatial Audio volume is the parent Room of the Reverb Zone. A parent Room can have multiple Reverb Zones, but a Reverb Zone can only have a single Parent. A Reverb Zone can be the parent of another Reverb Zone. An AkReverbZone Actor cannot be its own parent. To use the automatically created 'Outdoors' Room as a parent, leave this property to None.
  • Transition Region Width: The width of the transition region between the Reverb Zone and its parent. The value must be positive. Negative values are treated as 0.
참고
  • AkRoomComponent
  • AkPortalComponent
  • AkRoomComponent Blueprint 함수


Wwise Unreal Integration Documentation: WAAPI 위젯

WAAPI 위젯

WAAPI UMG 위젯

Ak 체크 상자

이 WAAPI 체크 상자를 활성화해서 Wwise에서 불린(boolean) 속성을 제어하세요.

속성:

  • Property to control: Wwise에서 제어할 불리언 속성의 이름입니다.
  • Item to control: Wwise에서 제어할 요소입니다.
  • On Check State Changed: 체크 상자의 상태가 변경될 때 호출할 Event 입니다.
  • 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 속성을 위해 미리 제작된 피커입니다. Ak 체크 상자 나 Ak 슬라이더 를 드래그하는 데에 유용합니다.

Ak 요소 속성

부동 소수점 속성을 위해 미리 제작된 피커입니다. Ak 체크 상자 나 Ak 슬라이더 를 드래그하는 데에 유용합니다.

Ak 슬라이더

WAAPI로 활성화된 이 슬라이더는 Wwise에서 부동 소수점 속성을 제어할 수 있습니다. 제어되는 속성을 변경하면 슬라이더 값의 범위가 Wwise에서 정의된 범위로 자동 조정됩니다.

속성:

  • Property to control: Wwise에서 제어할 불리언 속성의 이름입니다.
  • Item to control: Wwise에서 제어할 요소입니다.
  • Value: 해당 슬라이더의 값입니다.
  • On Value Changed: 슬라이더 값이 변경될 때 호출되는 Event입니다.
  • On Item Dropped: 슬라이더에 요소가 놓일 때 호출하는 Event 입니다.
  • On Property Dropped: 속성의 이름이 슬라이더에 놓일 때 호출하는 Event 입니다.

블루프린트 메소드:

  • 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. 드래그를 통해 Ak 체크 상자 와 Ak 슬라이더 에 항목 할당 기능을 활성화할 수 있습니다.

속성:

  • On Selection Changed: 트리의 현재 선택이 변경될 경우 호출하는 Event 입니다.
  • On Item Dragged: 트리에서 요소가 놓일 때 호출하는 Event 입니다.

블루프린트 메소드:

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

Ak Wwise Tree 선택 버튼

Ak Wwise Tree 를 더 간소화한 버전으로, 요소를 선택할 수 있는 별도의 창을 엽니다.

속성:

  • On Selection Changed: 트리의 현재 선택이 변경될 경우 호출하는 Event 입니다.
  • On Item Dragged: 트리에서 요소가 놓일 때 호출하는 Event 입니다.

Slate 위젯

FWwiseTreeItem

Wwise 요소를 나타내기 위해 필요한 모든 것을 담고 있는 구조입니다.

멤버:

  • DisplayName: 요소의 이름입니다.
  • FolderPath: Wwise에 있는 트리 요소의 경로입니다 (이름 포함).
  • ItemType: 요소 타입입니다.
  • ItemId: 요소의 ID 입니다.

FWwisePropertyDragDropOp

속성 이름의 드래그를 처리합니다. 속성 이름을 FWwisePropertyDragDropOp::New에 전달하여 드래그 작업을 수행합니다.

FWwiseUmgDragDropOp

Wwise 요소의 드래그를 처리합니다. 공유된 포인터를 FWwiseTreeItem to FWwisePropertyDragDropOp::New 로 전달하여 드래그 작업을 생성합니다.

Ak 슬라이더

WAAPI로 활성화된 이 슬라이더는 Wwise에서 부동 소수점 속성을 제어할 수 있습니다. FWwisePropertyDragDropOp 와 FWwiseUmgDragDropOp 를 통해 드래그를 처리합니다.

공용 메소드:

  • GetAkSliderValue: Wwise Authoring 애플리케이션에 표시된 대로 슬라이더의 현재 값을 가져옵니다.
  • GetAkSliderProperty: 제어된 속성의 이름을 가져옵니다.
  • GetAkSliderItemControlled: 슬라이더가 제어하는 항목의 이름을 가져옵니다.
  • SetAkSliderItemProperty: 슬라이더가 제어하는 속성을 설정합니다.
  • SetAkSliderItemId: 제어할 항목의 ID를 설정합니다 (GUID 문자열, '괄호 안에 있는 숫자와 하이픈' GUID 형식 사용).
  • SetAkSliderRangeMin: 슬라이더의 최소값을 설정합니다.
  • SetAkSliderRangeMax: 슬라이더의 최대값을 설정합니다.
  • GetAkSliderRangeMin: 슬라이더의 최소값을 가져옵니다.
  • GetAkSliderRangeMax: 슬라이더의 최대값을 가져옵니다.


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

블루프린트 함수

일부 Wwise 전용 전역적 함수는 스크립팅에 드러나 있으며 이 중 다수는 인자를 변환하고 해당하는 Wwise API로 전달합니다. 다음은 Audiokinetic 카테고리에서 사용 가능한 함수입니다.

Cancel Event Callback

PostEvent 에 제공된 콜백 이벤트를 취소합니다. Blueprint Event는 이 노드가 실행된 다음에는 더 이상 호출되지 않습니다.

Get Ak Audio Type User Data

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

Get Ak Component

연결되어 있는 AkComponent 를 가져오며 지정된 컴포넌트를 따릅니다. AkComponent 에서 사용할 수 있는 메소드에 대한 자세한 내용은 AkComponent 블루프린트 함수 를 참고해 주세요.

Get Ak Media Asset User Data

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

Get RTPC Value

Game Parameter의 값을 가져오며, 선택적으로 지정된 액터의 루트 컴포넌트를 대상으로 할 수 있습니다.

Get Speaker Angles

지정된 장치의 스피커 각도를 가져옵니다. 자세한 내용은 GetSpeakerAngles를 참고해 주세요.

Is Editor

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

Is Game

WorldContextObject 인자에서 세계를 가져올 수 있으며 WorldType이 Game, GamePreview, Play-In-Editor일 경우, true를 반환합니다. 그렇지 않을 경우 false를 반환합니다.

Post Event At Location

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

Post Event At Location Async

지정된 위치에서 Wwise Event를 게시합니다. 비동기적 버전은 미디어가 로드될 때까지 기다린 후 이벤트를 게시합니다. 이 함수는 자체유도적 사운드이며 해당하는 AkComponent 없이 임시 Wwise Game Object에서 생성됩니다.

Reset RTPC Value

Resets the value of a Game Parameter to the default value specified in the Wwise project, with either a global scope or a game object scope, and optionally targets the root component of a specified actor. 액터가 지정되지 않거나 null일 경우 전역적 Game Parameter 값이 설정됩니다. If no RTPCValue is provided, the RTPC parameter is used. Otherwise, it is ignored.

Set Bus Config

지정된 버스의 채널 구성을 강제 설정합니다. 자세한 내용은 SetBusConfig를 참고해 주세요.

Set Multiple Channel Emitter Positions

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

매개 변수:

  • GameObjectAkComponent: 위치를 설정할 게임 오브젝트의 AkComponent.
  • ChannelMasks: 각 위치에 적용할 채널 마스크의 Array.
  • Positions: A적용할 트랜스폼의 Array.
  • MultiPositionType: Position 타입.

Set Multiple Positions

여러 방사원을 시뮬레이션하지만 하나의 보이스 리소스만 사용하며 하나의 게임 오브젝트에 대해 여러 위치를 설정합니다. 이 방법은 벽의 열린 공간, 구역음, 같은 구역에서 같은 사운드를 내는 여러 오브젝트에 사용할 수 있습니다. 단 하나의 위치로 SetMultiplePositions() 를 호출하는 것은 SetPosition() 을 호출하는 것과 같습니다.

매개 변수:

  • GameObjectAkComponent: 위치를 설정할 게임 오브젝트의 AkComponent.
  • Positions: A적용할 트랜스폼의 Array.
  • MultiPositionType은 Position 유형입니다. For more information on the different position types, refer to MultiPositionType.

Set Multiple Speaker Emitter Positions

한 게임 오브젝트에 여러 위치를 설정하며 입력 스피커를 자유롭게 설정할 수 있도록 해줍니다.

매개 변수:

  • GameObjectAkComponent: 위치를 설정할 게임 오브젝트의 AkComponent. SpeakerMasks: 각 위치에 적용하는 스피커 마스크의 Array 입니다.
  • Positions: A적용할 트랜스폼의 Array.
  • MultiPositionType: Position 타입.

Set Panning Rule

지정된 출력의 패닝 규칙을 설정합니다. 이러한 규칙은 사운드 엔진이 초기화된 후 언제든지 변경이 가능합니다. 자세한 내용은 SetPanningRule을 참고해 주세요.

Set RTPC Value

Game Parameter의 값을 설정하며, 선택적으로 지정된 액터의 루트 컴포넌트를 대상으로 할 수 있습니다. 액터가 지정되지 않거나 null일 경우 전역적 Game Parameter 값이 설정됩니다.

Set Speaker Angles

지정된 장치의 스피커 각도를 설정합니다. 자세한 내용은 SetSpeakerAngles를 참고해 주세요.

Set State

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

Spawn Ak Component at Location

지정된 위치에서 새로운 AkComponent를 생성합니다. 기본적으로 이 컴포넌트는 Event의 재생이 끝나면 자동으로 파괴됩니다.

매개 변수:

  • Auto Post: 컴포넌트가 생성될 경우 이벤트를 즉시 게시할 것인지의 여부를 제어합니다. 기본값은 false입니다.
  • Auto Destroy: 해당 컴포넌트에서 게시된 첫 Event가 게시된 후 컴포넌트를 파괴할 것인지의 여부를 제어합니다. 기본값은 true입니다.

이 Blueprint 노드를 사용하여 자체유도적(fire-and-forget) 사운드에 Switch를 설정할 수 있습니다. 그렇게 하려면 Auto Post를 비활성화하고 스폰된 Ak Component에 Switch를 설정하고 다음 이미지와 같이 Event를 게시하세요.

Stop All

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

Set Current Audio Culture

자세한 내용은 Localizing Audio Assets 을 참고해 주세요.

Set Current Audio Culture Async

자세한 내용은 Localizing Audio Assets 을 참고해 주세요.

기타 Blueprint 함수

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

  • 액터 블루프린트 함수
  • Spatial Audio 오브젝트 Blueprint 함수
  • AkAmbientSound 블루프린트 함수
  • AkComponent 블루프린트 함수
  • AkAudioInputComponent 블루프린트 함수
  • SoundBank 블루프린트 함수
  • 디버그 블루프린트 함수
  • Blueprint에서 콜백 사용하기
  • WAAPI 블루프린트 함수


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

액터 블루프린트 함수

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

Post and Wait for End of Event

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

게시하기 및 Event Async 종료 기다리기

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

Post Event

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

Post Event Async

지정된 Actor의 루트 컴포넌트에 연결되었으며 이 컴포넌트를 따르는 Wwise Event를 게시합니다. 비동기적 버전은 미디어가 로드될 때까지 기다린 후 이벤트를 게시합니다.

Execute Action on Event

지정된 Actor의 루트 컴포넌트에 연결되어있으며 이 컴포넌트를 따르는 Event에서 Action을 실행합니다. 페이드 시간과 보간 곡선 유형을 지정할 수 있습니다. 특정 인스턴스에서 해당 Action을 실행하려면 Post Event Blueprint가 반환하는 값인 재생 ID를 사용하세요.

Post Trigger

지정된 Actor의 루트 컴포넌트를 대상으로 하여 Wwise에 Trigger를 게시합니다.

Set Obstruction Occlusion Refresh Interval

Sets the time interval at which the AkComponent attached to the root component performs obstruction/occlusion calculations. Set to 0 to turn off obstruction/occlusion on the component.

Set Switch

주어진 Switch Group의 활성한 Switch를 설정하고 지정된 Actor의 루트 컴포넌트를 대상으로 합니다.

Set Output Bus Volume

지정된 게임 오브젝트에 사용할 직접(direct) 출력 버스 볼륨을 설정합니다. Bus Volume 값은 0.0f~1.0f 사이입니다.

Stop Actor

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

Use Reverb Volumes

루트 컴포넌트에 연결된 AkComponent 가 AkReverbVolume 에 영향을 받는지 여부를 설정합니다.


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

Spatial Audio 오브젝트 Blueprint 함수

AkGeometry Blueprint 함수

  • ConvertMesh: 상위 메쉬를 Spatial Audio Geometry와 함께 사용할 수 있는 구조체인 FAkGeometryData 로 변환합니다. 고정 메쉬 종류의 경우 상위 메쉬의 색인과 정점이 사용됩니다. 단순 충돌 메쉬 종류의 경우 상위 계층의 BodySetup이 FAkGeometryData 로 변환됩니다. 단순 충돌이 상자, 구형, 캡슐로 구성된 경우 각 모양에 대한 경계 상자가 사용됩니다. 단순 충돌이 볼록한 선체를 가질 경우 이 충돌의 색인과 정점이 사용됩니다.
  • RemoveGeometry: AK:SpatialAudio::RemoveGeometry()를 호출하여 Spatial Audio에서 지오메트리를 제거합니다.
  • UpdateGeometry: FAkGeometryData 컴포넌트를 Spatial Audio로 전송합니다.

AkLateReverbComponent Blueprint 함수

  • AssociateAkTextureSetComponent: HFDamping을 예측하는 데에 사용할 컴포넌트를 설정합니다. 예를 들어 AkGeometry 하위 컴포넌트가 있는 스태틱 메쉬 컴포넌트를 가진 Blueprint에서는 이 함수를 BeginPlay에서 호출하여 AkGeometry 컴포넌트를 해당 리버브 컴포넌트와 연결할 수 있습니다. 이 후기 리버브 컴포넌트에 형제 지오메트리 컴포넌트(혹은 표면 반사 설정 컴포넌트)가 있는 경우 이 컴포넌트가 자동으로 설정되기 때문에 해당 함수를 호출할 필요가 없습니다.

AkRoomComponent Blueprint 함수

  • GetPrimitiveParent: 해당 Ak Room Component가 연결될 UPrimitiveComponent 를 반환합니다.
  • SetReverbZone: Establishes a parent-child relationship between this AkRoomComponent and a parent AkRoomComponent and allows for sound propagation between them as if they were the same Room, without the need for a connecting AkPortalComponent. Setting a Room as a Reverb Zone is useful in situations where two or more acoustic environments are not easily modeled as closed Rooms connected by Portals. Possible uses for Reverb Zones include: a covered area with no walls, a forested area within an outdoor space, or any situation where multiple reverb effects are desired within a common space. Reverb Zones have many advantages compared to standard Game-Defined Auxiliary Sends (i.e. compared to the AkLateReverbComponent or the AkReverbVolume). They are part of the wet path, and form reverb chains with other Rooms; they are spatialized according to their 3D extent; they are also subject to other acoustic phenomena simulated in Wwise Spatial Audio, such as diffraction and transmission. A parent Room can have multiple Reverb Zones, but a Reverb Zone can only have a single Parent. If a Room is already assigned to a parent Room, it is first removed from the old parent (exactly as if RemoveReverbZone were called) before then being assigned to the new parent Room. A Reverb Zone can be the parent of another Reverb Zone. A Room cannot be its own parent. The automatically created 'Outdoors' Room is commonly used as a parent Room for Reverb Zones, because they often model open spaces. A Reverb Zone needs to be a Room component with an associated geometry. This function also sets a transition region between the Reverb Zone and its parent. The transition region acts the same as the depth of a Portal but centered around the Reverb Zone geometry (see AkPortalComponent for more details about the Portal depth). Transition region are only added on surfaces where transmission loss is set to 0.
  • RemoveReverbZone: Removes this Reverb Zone from its parent. Sound can no longer propagate between the two rooms, unless they are explicitly connected with a Portal.

AkPortalComponent Blueprint 함수

AkPortalComponent 오브젝트에서 여러 Wwise 전용 동작을 실행할 수 있습니다. 이러한 동작은 Ak Portal Component Category에서 제공됩니다.

  • EnablePortal: Enables the portal. Emitters positioned in the AkRoomComponent in front of and behind the portal emit through it.
  • DisablePortal: Disables the portal. Emitters positioned in the AkRoomComponent in front of and behind the portal do not emit through it.
  • GetCurrentState: Returns an AkAcousticPortalState, which represents the current state of the portal (Enabled or Disabled).
  • GetPortalOcclusion: Returns a floating point number between 0 and 1 that represents the occlusion value applied to the portal. A value of 0 indicates that the portal is not occluded and a value of 1 indicates that it is completely occluded.
  • SetPortalOcclusion: Sets a new portal occlusion value. A value of 0 indicates that the portal is not occluded and a value of 1 indicates that it is completely occluded. The occlusion value is applied to the portal with AK::SpatialAudio::SetPortalObstructionAndOcclusion. Portal occlusion can be used to modulate sound in response to a door opening or closing.
  • GetPrimitiveParent: 해당 Ak Portal Component가 연결될 UPrimitiveComponent 를 반환합니다.
  • PortalPlacementValid: 포털 위치와 방향이 유효할 경우 true를 반환합니다. 포털은 앞 공간과 뒷 공간을 가집니다. They must have at least one connected room, the front room must be different than the back room, and the rooms cannot be a Reverb Zone and its parent. 더 자세한 정보는 AkPortalComponent 및 AkRoomComponent 를 참고해 주세요.

AkSurfaceReflectorSetComponent Blueprint 함수

  • SendSurfaceReflectorSet: AK:SpatialAudio::SetGeometry()를 호출하여 브러쉬의 색인과 정점을 Spatial Audio Geometry 데이터로 변환하여 Spatial Audio로 보냅니다.
  • RemoveSurfaceReflectorSet: AK:SpatialAudio::RemoveGeometry()를 호출하여 Spatial Audio에서 지오메트리를 제거합니다.
  • UpdateSurfaceReflectorSet: SendSurfaceReflectorSet를 호출하여 브러쉬의 새로운 변환을 Spatial Audio로 보냅니다.
참고
  • Wwise Spatial Audio 오브젝트
  • Unreal Spatial Audio 튜토리얼


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

AkAmbientSound 블루프린트 함수

일부 Wwise 전용 동작은 AkAmbientSound 액터에서 실행될 수 있습니다. 이러한 동작은 Ambient Sound 카테고리에서 제공됩니다.

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 블루프린트 함수

일부 Wwise 전용 동작은 AkComponent 씬 컴포넌트에서 실행될 수 있습니다. 이러한 동작은 Ak Component 카테고리에서 제공됩니다.

Get Attenuation Radius

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

Post Ak Event

Wwise에서 지정된 UAkAudioEvent 를 게시합니다.

Post Ak Event Async

Wwise에서 지정된 UAkAudioEvent 를 게시합니다. 비동기적 버전은 미디어가 로드될 때까지 기다린 후 이벤트를 게시합니다.

Post Ak Event and Wait for End

지정된 UAkAudioEvent 를 Wwise에서 게시한 후 Event가 끝날 때까지 기다린 후 그래프 실행을 진행하는 잠재적인 Blueprint 노드입니다.

Post Ak Event and Wait for End Async

지정된 UAkAudioEvent 를 Wwise에서 게시한 후 Event가 끝날 때까지 기다린 후 그래프 실행을 진행하는 잠재적인 Blueprint 노드입니다. 비동기적 버전은 미디어가 로드될 때까지 기다린 후 이벤트를 게시합니다.

Post Associated Ak Event

이 AkComponent 의 내부 UAkAudioEvent 를 Wwise에서 게시합니다.

Post Associated Ak Event Async

이 AkComponent 의 내부 UAkAudioEvent 를 Wwise에서 게시합니다. 비동기적 버전은 미디어가 로드될 때까지 기다린 후 이벤트를 게시합니다.

Post Associated Ak Event and Wait for End

이 AkComponent 의 내부 UAkAudioEvent 를 Wwise에서 게시한 후 Event가 끝날 때까지 기다린 후 그래프 실행을 진행하는 잠재적인 Blueprint 노드입니다.

Post Associated Ak Event and Wait for End Async

이 AkComponent 의 내부 UAkAudioEvent 를 Wwise에서 게시한 후 Event가 끝날 때까지 기다린 후 그래프 실행을 진행하는 잠재적인 Blueprint 노드입니다. 비동기적 버전은 미디어가 로드될 때까지 기다린 후 이벤트를 게시합니다.

Post Trigger

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

Set Attenuation Scaling Factor

감쇠 척도 비율을 설정합니다. 이 비율은 게임 오브젝트에서 감쇠 계산을 변경하여 대/소규모의 효과 영역으로 사운드를 시뮬레이션합니다.

Set Listeners

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

Get Collision Channel

Gets the collision channel used when doing line of sight traces for obstruction/occlusion calculations.

Set Output Bus Volume

지정된 게임 오브젝트에 사용할 출력 직접(direct) 버스 볼륨을 설정합니다. Bus Volume 값은 0.0f~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

AkComponent 와 연관된 UAkAudioEvent 의 재생을 중단합니다.

Use Reverb Volumes

AkComponent 가 AkReverbVolume 의 영향을 받는지의 여부를 설정합니다.

Set GameObject Radius

AK:SpatialAudio::SetGameObjectRadius()를 호출해서 게임 오브젝트의 외부 및 내부 반경을 설정하고 Spatial Audio로 보냅니다.


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

AkAudioInputComponent 블루프린트 함수

일부 Wwise 전용 동작은 AkAudioInputComponent 씬 컴포넌트에서 실행될 수 있습니다. 이러한 동작은 Ak Audio Input Component 카테고리에서 제공됩니다.

Post Associated Audio Input Event

이 AkAudioInputComponent 의 내부 UAkAudioEvent 를 Wwise에 게시하고 알맞은 콜백을 등록합니다.


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

SoundBank 블루프린트 함수

대부분의 SoundBank 처리와 관련된 함수는 2022.1에서 지원이 중단되었습니다. 자세한 내용은 Wwise 2022.1로 프로젝트 업그레이드하기 을 참고해 주세요.

Clear Banks

로드된 모든 Wwise Asset의 Wwise 리소스(뱅크와 미디어)를 언로드합니다.

Init Bank 함수

Init Bank 관리에 대해 다음 함수가 제공됩니다.

  • Load Init Bank
  • Unload Init Bank

제거되고 더 이상 사용되지 않는 함수

2022.1부터 이러한 Blueprint 함수는 더 이상 존재하지 않습니다. Wwise 에셋의 뱅크나 미디어 리소스를 수동으로 로드 및 언로드하려면 Wwise Unreal 에셋 에서 설명된 LoadData나 UnloadData Blueprint 함수를 사용하세요.

  • Load Bank
  • Load Bank Async
  • Unload Bank
  • Unload Bank Async


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: Blueprint에서 콜백 사용하기

Blueprint에서 콜백 사용하기

Event 콜백은 Blueprint에서 노출되어 있습니다. 이 콜백은 커스텀 Event를 사용하여 구현할 수 있습니다.

Event 콜백

C++ 사운드 엔진 API에 노출된 대부분의 콜백은 Blueprint에서 노출되어 사용할 수 있습니다. 다양한 콜백 타입을 통한 작업에 대한 더 많은 정보는 SDK 설명서를 참고해 주세요.

참고: Blueprint 그래프가 게임 스레드에서 실행되어야 하기 때문에 AkCallbackInfo 구조체 (예: AK_SpeakerVolumeMatrix)를 변경해야 하는 콜백의 경우 Blueprint에서 사용할 수 없습니다. 이 경우 C++ 코드로 구현하세요.

Event 콜백 사용하기

Event 콜백을 구독하려면 Callback Mask 입력 핀 드롭다운에서 콜백을 선택하세요. 그런 다음 커스텀 Blueprint Event를 사용하여 선택한 콜백 안에서 실행하려는 Blueprint 그래프를 구현할 수 있습니다.

여러 콜백 유형 구독하기

두 개 이상의 콜백 타입을 구독하려면 Callback Mask 입력 핀 드롭다운에서 여러 값을 선택하세요.

그런 다음 Custom Event 그래프에서 Callback Type 변수에 있는 Switch를 사용해서 현재 콜백 유형을 결정한 다음 Callback Info 클래스를 적절한 유형으로 캐스트(cast)할 수 있습니다.

MIDI 콜백 사용하기

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

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


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

WAAPI 블루프린트 함수

이러한 Blueprint 함수는 Wwise Authoring API를 통해서 Wwise Authoring에 연결합니다.

WAAPI와 해당 함수에 대한 자세한 내용은 WAAPI 문서를 참고해 주세요.

JSON 오브젝트

WAAPI는 JSON을 광범위하게 사용하기 때문에 통합에는 Unreal FJsonObject용 Blueprint 래퍼가 포함되어 있습니다. 'WAAPI Json Manager' 아래 있는 노드에 대한 더 많은 정보는 FJsonObject에 대한 Unreal Engine 문서를 참고해 주세요.

WAAPI 호출

WAAPI를 호출하고 지정된 URI에 따라 정보나 매개 변수를 가져오거나 설정합니다.

매개 변수:

  • WaapiUri: 이벤트 발생 시 호출할 함수입니다.
  • WaapiArgs: in_uri 함수가 레퍼런스하는 인자입니다.
  • WaapiOptions: 이벤트에 대한 더 많은 정보를 얻기 위한 선택적 플래그입니다.
  • Return Value: 이벤트 호출 과정에 관한 정보를 포함하는 JSON 오브젝트입니다. 호출이 실패할 경우 오류를 반환합니다.

Register WAAPI Connection Lost Callback

WAAPI 연결이 끊어지면 게시되는 이벤트를 구독합니다. 이 함수를 사용해서 WAAPI를 사용하는 모든 리소스를 정리하세요.

매개 변수:

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

Register WAAPI Project Loaded Callback

올바른 Wwise 프로젝트가 로드될 때 게시되는 이벤트를 구독합니다 (Wwise Plugin Settings의 Wwise Project Path에서 정의된대로). 이 함수를 사용해서 WAAPI를 사용하는 모든 리소스를 초기화하세요.

매개 변수:

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

WAAPI 구독

이벤트에 따라 알림을 구독합니다.

매개 변수:

  • WaapiUri: 이벤트에 대한 참조입니다.
  • WaapiOptions: 이벤트에 대한 더 많은 정보를 얻기 위한 선택적 플래그입니다.
  • Callback: 구독 이벤트 도중 실행할 대리자입니다.

반환값:

  • SubscriptionId: 해당 구독의 ID 입니다.
  • Result: 구독이 성공적으로 실행되었는지 여부를 나타냅니다.
  • Return Value: 이벤트 구독 과정에 관한 정보를 포함하는 JSON 오브젝트입니다. 구독에 실패할 경우 오류를 반환합니다.

Unsubscribe

이벤트 구독을 해제합니다.

매개 변수:

  • SubscriptionId: 현재 이벤트 구독의 ID 입니다.

반환값:

  • UnsubscriptionDone: 구독 취소가 성공적으로 되었는지 여부를 나타냅니다.
  • Return Value : 이벤트 구독 취소 과정에 관한 정보를 포함하는 JSON 오브젝트입니다. 구독 취소에 실패할 경우 오류를 반환합니다.


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.
  • Memory Usage Considerations
    Explains how to monitor Wwise memory usage in Unreal.
  • SoundBank 생성하기
    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.
  • 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 auto-defined SoundBanks for some audio assets and user-defined SoundBanks for others.

The preferred strategy is to use auto-defined SoundBanks, which is the simplest and most efficient approach: auto-defined SoundBanks ensure that only the required assets are loaded in memory, and they require the least amount of manipulation in Wwise Authoring. In contrast, user-defined SoundBanks require manual asset management, which can be time-consuming and is more prone to error than using auto-defined SoundBanks.

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 introduced in Wwise 22.1 although the Event-Based Packaging model, which was the default in Wwise 19.2 and 21.1, shared some characteristics with auto-defined SoundBanks.

Using Auto-Defined SoundBanks

Auto-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.

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. As with any manual process, it is open to user error.

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 SoundBank is loaded, even if only a single Event out of hundreds in the bank is required. The SoundBank is only loaded once, though.
  • 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.

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.

Posting Events

In order to post Events, you must use UAkAudioEvents to do so regardless of the type of SoundBank that you use. UAkAudioEvent is a lightweight structure that contains only the essential information required to load SoundBanks and Media, and process and package the Event.


Wwise Unreal Integration Documentation: Memory Usage Considerations

Memory Usage Considerations

Memory management is an important part of working with the Wwise Unreal Integration. For background on memory management in Wwise, refer to Optimizing Memory Allocation and Tips to Reduce Memory Usage. In addition, the .

Memory usage in the Wwise Unreal Integration is strongly affected by the type of SoundBank your project uses:

  • With auto-defined SoundBanks, much of the memory management is automatic: each Event has its own SoundBank, which is loaded when the Event occurs, but media assets are stored outside of the bank. Individual SoundBank memory usage is therefore kept to a minimum; however, if many Events occur at the same time, memory usage can spike.
  • With user-defined SoundBanks, you have granular control over memory. However, because the SoundBanks contains Events as well as associated media assets, and the entire SoundBank must be loaded even if only a single Event is required, memory usage can be inefficient without manual optimization. It is your responsibility to optimize your SoundBank memory, which can add a significant amount of time and effort to your project. The Wwise 251 Certification has several strategies and tips about memory management in projects with user-defined SoundBanks.

For more information about the differences between auto-defined and user-defined SoundBanks, refer to Managing SoundBanks.

In Wwise, you can use the Advanced Profiler to view Wwise memory usage in detail (refer to Advanced Profiler). However, the Profiler only displays memory usage related to the Wwise SoundEngine. For Unreal projects integrated with Wwise, you can monitor memory usage in the Unreal Editor.

Wwise Memory Stats

The Wwise Unreal Integration enables several options in Unreal Stats that monitor Wwise memory usage, including several items in the WwiseMemory category. You can view the stats as an overlay in the editor or through the Session Frontend. For more information about Unreal Stats, refer to Stat Commands in Unreal Engine.

The following Wwise memory statistics are available, which you can view in different places in Unreal:

  • SoundEngine Reserved: The memory pool requested by the SoundEngine.
  • ExtSrc: Memory required for external sources that are loaded, not streamed.
  • ExtSrc Prefetch: The memory required to stream external sources.
  • ExtSrc Device: Device-allocated memory for external sources on certain platforms. Not applicable on Windows.
  • Media: Memory required to load media assets.
  • Media Prefetch: Memory required to stream assets.
  • Media Device: Device-allocated memory for loaded or streamed media assets on certain platforms. Not applicable on Windows.
  • SoundBank Mapped: The memory required for mapped files, which are only relevant in the editor or on iOS.
  • SoundBank: Memory required for SoundBanks. For auto-defined SoundBanks, which do not contain media, memory consumption is only loaded briefly and then transferred to Wwise. However, some memory usage might appear here for user-defined SoundBanks that contain media.
  • SoundBank Device: Allocation for loading SoundBanks that contain media assets that require device-allocated memory on certain platforms. Not applicable on Windows.

Viewing Stats in the Viewport

Through the Unreal Stats, you can view Wwise memory usage information in the Unreal Editor's level viewport.

To view Wwise memory usage:

  1. Open the Unreal project in the Unreal Editor.

  2. In the viewport, open the menu in the upper left and select Stat > Wwise > WwiseMemory. The Unreal memory monitor opens in the viewport and displays Wwise memory usage statistics.

Viewing Stats in the Session Frontend

The Unreal Session Frontend includes a Profiler, in which you can view the Wwise memory Stats. For more information about the Session Frontend, refer to Using the Frontend Tool.

To view Stats in the Session Frontend:

  1. Open the Unreal project in the Unreal Editor.
  2. Open Tools > Session Frontend, and open the Profiler.

  3. Enable Data Capture and Data Preview. You can select any of the WwiseMemory Stats:


Wwise Unreal Integration Documentation: SoundBank 생성하기

SoundBank 생성하기

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. SoundBank가 생성됩니다.

SoundBank 생성 세부 정보

WwiseConsole을 사용해서 SoundBank 생성하기

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

WAAPI를 사용해서 SoundBank 생성하기

WAAPI에 연결되었을 경우 SoundBank를 생성하는 명령이 WAAPI를 통해 Wwise Authoring으로 직접 전송되지만 뱅크는 여전히 디스크의 GeneratedSoundBanks 폴더에 만들어 집니다.

SoundBank 생성 감시자

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.

선택적으로 에셋 다시 로드하기

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]

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. Unreal에서 Edit > Project Settings를 클릭하세요. 그러면 Project Settings 대화 상자가 열립니다.
  8. Scroll to the Wwise section and click User Settings. The Wwise - User Setting page opens.
  9. Click the ellipses next to Root Output Path. 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: Project Database 새로 고침하기

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.
  • Reconciling Wwise UAssets. Use the Wwise Browser or a Commandlet to update the UAssets of your project with your changes in 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 Wwise and Unreal projects are integrated, all Wwise-specific Unreal assets have IDs, which reference corresponding objects in the Wwise project. You can create assets in the Content Browser, or use the Wwise Browser.

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

Synchronizing from Wwise to Unreal

When you generate SoundBanks in Wwise while the Unreal Editor is open, 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.


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 to object names or IDs in Wwise are reflected in the Wwise Browser.

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.

참고: We recommend that you retain the default /Game/ part of the asset creation path. If you remove it, assets are created under the Plugins folder, which might cause confusion.

To set the default asset creation path:

  1. In the Unreal menu bar, click Edit > Project Settings. 그러면 Project Settings 대화 상자가 열립니다.
  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 name and ID of the item are the same in the Wwise Project and in the SoundBanks.

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 Needs Update: There is one UAsset associated with the item but its information is not up to date with the SoundBanks.
  • UAsset Up to Date: There is one UAsset associated with the item and its information is up to date with the SoundBanks.

Orphaned UAssets Folder

If the Unreal project references Wwise assets that you then delete from your Wwise project, they are listed in the Orphaned UAssets folder, which appears at the end of the folder list:

It is not possible to remove these UAssets with the Wwise Browser's reconciliation function. Instead, you must delete them manually. For more information on reconciliation, refer to Reconciling Wwise UAssets.

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.

Reconciling

It is possible to Reconcile UAssets with the Wwise Browser.


Wwise Unreal Integration Documentation: Reconciling Wwise UAssets

Reconciling Wwise UAssets

When you use Wwise assets in an integrated Unreal project, corresponding UAssets are created in Unreal based on the most recently generated Wwise SoundBanks. However, if you or another team member continues to work on the Wwise project, the original files might be renamed, deleted, or moved. If the SoundBanks are then regenerated, there might be discrepancies between the contents of the SoundBanks and the UAssets in Unreal.

If that happens, you can reconcile the SoundBanks and UAssets through the Wwise Browser or with a commandlet.

Reconciling UAssets can do four things:

  • Create: Creates a UAsset for an item in the generated SoundBanks. The Asset is created in the Default Asset Creation Path (refer to Setting the Default Asset Creation Path for more information) in the same directory structure as the one in the Generated SoundBanks. The directory structure details are contained in the ProjectInfo.json metadata file, which is located in the Root Output Path (refer to Integration Settings for details). The directory structure mimics the structure of the Wwise project directory. If the path is too long, the UAsset is not created and you must import it manually.
  • Update: Updates the information of the UAsset to match the information of the item in the GeneratedSoundBanks.
  • Rename: Renames the UAsset to match the name of the item in the SoundBanks.
  • Delete: Removes the UAsset because there is no item associated with it in the Generated SoundBanks. The item is not deleted if it is referenced in the Unreal project, but instead appears in the Orphaned UAssets folder in the Wwise Browser (refer to Orphaned UAssets Folder). You must delete this type of UAsset manually.

Using the Wwise Browser

The Wwise Browser contains several columns that display information about the state of assets in the Wwise Project, the generated SoundBanks, and in Unreal:

  • Wwise Project vs SoundBanks: If the Wwise project is open and WAAPI is connected, this column indicates any discrepancies between the items in Wwise and in the Generated SoundBanks.
  • Wwise UE Asset Status: Shows how many UAssets for this item exist.
  • SoundBanks vs UAssets: Indicates any discrepancies between the UAssets and the SoundBank contents. If you see that there are discrepancies that require reconciliation, you can reconcile assets directly through the Wwise Browser.
참고: Ensure that you generate SoundBanks before you reconcile assets. The Wwise Browser displays asset status based on the most recently generated SoundBanks, so if you have not generated SoundBanks in some time, the information might not be accurate.

To reconcile UAssets:

  1. In the Wwise Browser, select the assets you want to reconcile. You can select a folder to reconcile all of its contents.

  2. Do one of the following:

    • In the upper right, click Reconcile Selected.
    • Right-click, then click Reconcile Selected Assets.

    A window opens, and lists all of the assets that require reconciliation and the operations that will be performed. Assets that are already up to date do not appear.

  3. Click Reconcile Unreal Assets. The assets are reconciled.

Using WwiseReconcileCommandlet

The Wwise Unreal plug-in includes a Commandlet you can use to reconcile all UAssets. To make sure the Assets are properly reconciled, we recommend that you run the GenerateSoundBanks commandlet before the WwiseReconcileCommandlet.

Commandlet usage:

<UnrealEditor-cmd.exe> <path_to_uproject> -run=WwiseReconcileCommandlet -modes=listOfOperation

The Commandlet has the following parameters:

  • modes: Comma-separated list of operations performed on the asset. The operations can be any of the following:
    • create: Create Unreal assets from the Generated SoundBanks.
    • update: Update existing Unreal assets. This updates the asset name as well as its metadata.
      경고: It is not possible to rename assets on Unreal Engine 4.27 through the commandlet. Instead, use the Wwise Browser to reconcile assets with Unreal 4.27.
    • delete: Delete Unreal assets that no longer exist in the Generated SoundBanks.
    • all: Fully reconcile Unreal assets.

Example:

C:\UE_5.0\Engine\Binaries\Win64\UnrealEditor-Cmd.exe C:\MyProjects\Demo\WwiseDemoGame.uproject -run=WwiseReconcileCommandlet -modes=create,update


Wwise Unreal Integration Documentation: Working with Reverb

Working with Reverb

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

Automatically Assigning a Reverb Aux Bus

You can use AkLateReverbComponent to automatically assign a Reverb Aux Bus through the Reverb Assignment Table. 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 table. The assigned Aux Bus is the first Aux Bus in the table 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 table is assigned the Aux Bus that corresponds to Decay value Y. If the Decay estimate is greater than the maximum Decay value in the table, it is assigned the Default Reverb Aux Bus.

The Global Decay Absorption value is used when estimating the Decay value of environments without Acoustic Texture information. It is used in the Sabine equation 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). RTPC 값은 Room ID에서 설정됩니다.


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. WAAPI가 활성화되지 않은 경우 SoundBank를 재생성하세요.
  4. Select the AkAmbientSound again. The size of the corresponding sphere in the Unreal Editor changes at the same time.

WAAPI가 활성화되지 않은 경우 생성된 SoundBank에서 Max Attenuation을 가져옵니다. 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 can 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. Be aware that this approach consumes more system resources and might affect performance.

You can profile the different sessions in Wwise (see Profiling). Each PIE session appears in the list of game systems to which the profiler can connect, as described in Connecting to a Local/Remote Game System. However, it is not possible to know in advance which session corresponds to a specific player.


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. 그런 다음 통합은 새로운 언어로 IWwiseStreamMgrAPI::SetCurrentLanguage를 호출합니다.

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. FWwiseResourceLoader::SetLanguage가 완료되면 Completed Blueprint 이벤트가 시작됩니다.

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
    • 이벤트 리소스를 로드할 때 사용되는 FWwiseResourceLoader의 CurrentLanguage 변수가 새로운 언어로 설정됩니다.
    • 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

현지화된 Wwise 에셋이 쿠킹되면 각 언어의 리소스(.bnk와 .wem 파일)가 에셋과 함께 패키징됩니다. Refer to 쿠킹 및 패킹징하기 on the 자주 겪는 문제 page.


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

외부 음원 사용하기

목차

  • Wwise Simple External Source Manager 사용하기
  • Wwise에서 External Source 설정하기
  • External Source 이해하기
  • Wwise External Source Manager 이해하기
  • Wwise External Source Manager 구현하기
  • Wwise External Source Manager Blueprint
  • External Source Manager가 사용하는 State 구조체
    • FWwiseExternalSourceState
    • FWwiseExternalSourceFileState

External Source는 개발자가 음원과 연결된 미디어를 동적으로 변경하기 위해 Wwise 사운드 오브젝트와 연결해서 사용할 수 있는 음원의 유형입니다. External Source는 런타임 때 사운드 데이터를 제공합니다.

그렇기 때문에 개발자는 아마 자체 시스템을 구현해서 로드해야 하는 미디어와 이 로드가 발생하는 방법(및 시기)을 결정하고 싶을 것 입니다. External Source Manager는 이를 염두에 두고 설계되었으며, External Source 및 해당 미디어의 상태를 추적하기 위한 대부분의 표준 구현을 제공하는 기본 클래스를 제공합니다. 이 클래스에서 실제 로드 작동 방식을 정의하려면 확장이 필요합니다.

Wwise Simple External Source Manager 사용하기

통합에는 Wwise Simple External Source Manager라는 Wwise External Source Manager의 샘플 확장이 들어 있습니다. 이 샘플 확장은 기본적인 External Source 관리를 지원하고, 자신만의 관리자를 구현하고자 하는 개발자들에게 레퍼런스를 제공합니다. 자세한 내용은 Wwise Simple External Source Manager 사용하기 를 참고해 주세요.

Wwise에서 External Source 설정하기

External Source의 생성 경로는 Wwise Authoring의 Project Settings 대화 상자에 있는 External Sources 탭에서 설정합니다. Refer to Specifying the Input/Output Locations for External Sources for more information.

External Source 이해하기

External Source는 빈 컨테이너라고 할 수 있습니다. 게임은 이 컨테이너를 채우고 Sound Engine에 무엇이 포함되어 있는지 알려줘야 합니다.

External Source는 ShortId와 유사한 Cookie를 식별자로 사용합니다. Cookie를 얻으려면 음원의 Contents Editor에서 External Source 플러그인에 지정된 이름을 해시(hash)하세요. 자세한 내용은 Contents Editor: Wwise External Source를 참고해 주세요.

External Source를 사용하는 Event가 SoundEngine에 게시되면 각 Cookie에 사용할 미디어를 식별하는 AkExternalSourceInfo 구조체의 배열이 함께 전달되어야 합니다. 이 미디어는 메모리에 저장되거나 스트리밍될 수 있으며, 게임은 이 Event가 게시될 때 이러한 리소스가 준비되었는지 확인해야 합니다.

External Source에 대한 자세한 내용은 다음 항목을 참고해 주세요.

  • Wwise External Source 개요
  • Contents Editor: Wwise External Source
  • AkExternalSourceInfo 구조체 참조

External Source 변환에 대한 자세한 내용은 External Source 통합하기를 참고해 주세요.

Wwise External Source Manager 이해하기

External Source에는 주목할 만한 몇 가지 특징이 있습니다.

  • 여러 Event가 동일한 External Source를 사용할 수 있습니다.
  • 여러 External Source가 동일한 Media를 사용할 수 있습니다.
  • External Source가 사용하는 미디어는 SoundBank에서 정의되지 않으며 게임 로직에 의해 언제든지 변경될 수 있습니다.

Event, External Source, Media 간의 연결이 복잡하기 때문에 Wwise External Source Manager는 다음과 같은 책임을 가집니다.

  • 로드된 Event에서 사용하는 External Source의 상태를 추적합니다.
  • PostEvent 호출을 위한 AkExternalSourceInfo 구조체를 제공합니다.
  • External Source에서 사용하는 로드된 미디어의 상태를 추적합니다.
  • 로드된 External Source와 미디어 간의 매핑을 추적합니다.
  • External Sources에서 사용하는 미디어의 로드/언로드를 트리거합니다.
  • 게임에서 External Source가 사용하는 미디어 파일을 패키징합니다.

Wwise External Source Manager 구현하기

커스텀 Wwise External Source Manager를 구현하려면 먼저 새로운 Unreal 모듈을 생성해야 합니다. 모듈에는 최소한 두 개의 클래스가 포함되어야 합니다.

  • 이전 섹션에서 나열된 책임들을 처리하는 FWwiseExternalSourceManager를 상속하는 클래스.
    • FWwiseExternalSourceManager에는 External Source를 정의하는 데 필요한 순수 가상 인터페이스(pure virtual interface)가 있습니다. 특별한 경우, 프로젝트는 이를 상속 지점으로 정의하고 External Source 파이프라인을 완전히 제어할 수 있습니다.
    • FWwiseExternalSourceManagerImpl에는 런타임이 External Source에서 사용하는 미디어를 로드/언로드하는 데 필요한 모든 함수가 있습니다. 이 클래스에는 External Source 쿠키에서 미디어 ID로의 매핑이 담겨 있으며, I/O 작업을 처리하고 미디어 수명을 추적합니다. 이 클래스를 상속하면 사용자 지정 추적 작업과 패키징 구현이 간소화됩니다. FWwiseExternalSourceManagerImpl 클래스는 복잡한 I/O 세부 정보를 자체적으로 처리합니다.
    • FWwiseSimpleExtSrcModule은 확장 가능하기 때문에 상위 클래스로 사용할 수도 있습니다.
  • 첫 번째 클래스의 인스턴스를 반환하기 위해 InstantiateExternalSourceManager를 오버라이드하는 FWwiseFileHandlerModule을 구현하는 클래스입니다.

그리고 DefaultEngine.ini 파일의 [Audio] 섹션에 있는 새로운 모듈의 이름으로 WwiseFileHandlerModuleName을 설정하면 해당 모듈을 활성화할 수 있습니다. 자세한 내용은 Simple External Source Manager 활성화하기 를 참고해 주세요.

Wwise External Source Manager는 WwiseFileHandler 모듈의 인터페이스입니다. External Source를 사용하는 Wwise Event 에셋이 로드되면 WwiseResourceLoader 모듈은 Event의 CookedData에 있는 External Source 정보( Wwise Unreal 에셋 참고)를 WwiseFileHandler에 전달합니다. 그런 다음 리소스 로딩을 Wwise External Source Manager Implementation에 위임합니다. 이 다음은 구현에 따라 달라집니다.

기본 구현에서 External Source Manager는 External Source를 추적하는 FWwiseExternalSourceState 구조체를 생성합니다. 구현의 특이성 및 사용 가능한 정보에 따라 미디어가 로드되거나 스트리밍을 위해 준비됩니다. 마찬가지로 Event 에셋이 언로드되면 External Source Manager가 이 내용을 전달받고 이에 따라 External Source의 상태를 업데이트합니다. External Source Manager의 첫 번째 책임(External Source 상태 추적하기)을 수행하는 이 작동 방식은 다음 함수에서 구현됩니다.

  • PrepareExternalSourceInfos: 요청된 External Source에 따라 재생할 미디어 목록을 선택/가져오고 External Source 재생에 필요한 AkExternalSourceInfo를 준비하는 공용 메소드입니다.
  • LoadExternalSource: 관리자의 실행 대기열에서 LoadExternalSourceImpl로의 호출을 준비하는 공용 메소드입니다.
  • UnloadExternalSource: 관리자의 실행 대기열에서 UnloadExternalSourceImpl로의 호출을 준비하는 공용 메소드입니다.
  • LoadExternalSourceImpl: (가상) 추적된 External Source State의 생성 또는 업데이트를 처리합니다. 그런 다음 LoadExternalSourceMedia를 호출합니다.
  • UnloadExternalSourceImpl: (가상) 추적된 External Source State의 제거 또는 업데이트를 처리합니다. External Source State를 제거하려면 UnloadExternalSourceMedia가 호출됩니다.

두 번째 책임(AkExternalSourceInfo 구조체 채우기)은 PostEvent External Source 매개 변수를 반환하는 PrepareExternalSourceInfos에 의해 처리됩니다. CookieToMedia에서 데이터를 검색하고 해당 정보를 사용하여 다양한 파일 상태를 정의하고 이벤트 게시에 필요한 AkExternalSourceInfo 구조체를 제공합니다. 이를 오버라이드해서 보다 복잡한 선택 알고리즘을 사용할 수도 있습니다.

Wwise Simple External Source Manager 확장에서 고정 MediaInfo DataTable은 프로젝트의 모든 External Source 미디어와 관련 메타데이터를 식별합니다. 더 고급한 시스템은 미디어의 목록을 동적으로 업데이트할 수 있습니다. 이러한 시스템을 구현하는 방법은 다양하기 때문에 모든 작업은 가상화됩니다. PostEvent마다 변경되는 임의의 컨테이너나 언어 변경과 같은 외부 상태에 따라 변경되는 구조로 코드를 생성할 수 있습니다.

다음 책임 작업(로드된 미디어의 상태 추적하기, External Source에 대한 매핑 추적 및 디스크에서 로드하기)를 수행하기 위해 FWwiseExternalSourceManagerImpl 클래스는 알려진 External Source 미디어와 이를 로드하는 데 필요한 정보를 추적합니다. 이러한 상태 추적은 ExternalSourceStatesById 맵을 통해 내부적으로 수행됩니다.

위에서 언급한 시스템 및 구조를 구현한 후에 다음 가상 기능을 구현하는 것을 권장합니다.

  • LoadExternalSourceMedia: External Source가 사용하는 미디어를 찾아 로드하거나 스트리밍을 준비합니다. FWwiseFileHandlerBase에서 상속된 메소드를 사용하여 미디어 로드 상태를 추적하고 FWwiseExternalSourceFileState 구조를 사용하여 미디어 리소스를 관리하는 것이 좋습니다.
  • UnloadExternalSourceMedia: External Source가 사용하는 미디어를 찾아서 리소스를 언로드합니다.
  • SetExternalSourceMediaById: 이름으로 식별되는 External Source의 미디어 ID를 설정합니다.
  • SetExternalSourceMediaByName: 이름으로 식별되는 External Source의 미디어 이름을 설정합니다.
  • SetExternalSourceMediaWithIds: Cookie로 식별되는 External Source의 미디어 ID를 설정합니다.

SetExternalSourceMedia 함수는 각 External Source 미디어에 고유한 ID가 있고 SetExternalSourceMediaByName의 경우 이름을 통해 미디어 ID를 알아낼 수 있다고 가정합니다. 이러한 기능에 대한 참조로 Simple Wwise External Source Manager를 사용하는 것이 좋습니다. External Source에서 미디어로의 매핑을 저장, 업데이트 및 가져오는 방법의 구현에 차이가 있을 수 있기 때문입니다. External Source와 미디어 파일 사이의 매핑이 동적으로 변경되면 리소스가 로드 및 언로드될 수 있습니다.

현재 구현에서는 이러한 기능을 Game Thread를 통해 잠재적으로 실행되는 차단 기능으로 취급합니다. 그러나 이것은 필수 요구 사항은 아닙니다.

경고: 재생 중인 External Source 미디어를 강제로 언로드하면 SoundEngine에 크래시가 일어납니다. FWwiseExternalSourceFileState 는 BindPlayingIdToExternalSources와 OnEndOfEvent 메소드를 통해 재생 횟수를 늘리거나 줄여서 이를 자동으로 처리할 수 있습니다.

지금까지 설명한 다양한 함수의 구현을 마쳤다면 External Source 관리자의 가장 복잡한 부분은 완성됬다고 보면 됩니다. 모든 것이 제대로 작동하는 경우 EventAsset을 로드하면 (또는 시스템에서External Source 준비를 구현하하는 방식대로 실행하면) 메모리의 해당 External Source에서 사용하는 미디어가 로드되거나 스트리밍을 위해 준비됩니다.

마지막으로 External Source 미디어를 패키징해야 합니다. 간단한 방법은 Unreal 프로젝트 내에서 항상 쿠킹되도록 설정된 폴더에 External Source 미디어를 생성하는 것입니다. 더 복잡한 패키징 로직을 구현하려면 Wwise Resource Cooker가 쿠킹된 Wwise Asset에 포함된 각 External Source에 대해 호출되는 External Source 관리자의 Cook 메소드를 오버라이드하세요.

오버라이드 가능한 다음 함수를 사용할 수도 있습니다.

  • BindPlayingIdToExternalSources: External Source를 사용하는 Event가 게시될 때 관리자의 내부 상태를 업데이트하려면 이 함수를 오버라이드하세요.
  • OnEndOfEvent: External Source를 사용하는 Event가 재생을 중지할 때 관리자의 내부 상태를 업데이트하려면 이 함수를 오버라이드하세요.
  • SetGranularity: 스트리밍 미디어 프리페치 청크의 세분성(읽을 최소 바이트 수)을 설정합니다.

Wwise External Source Manager Blueprint

기본적으로 세 가지 Blueprint 함수가 WwiseExternalSourceStatics에 노출됩니다.

  • SetExternalSourceMediaById
  • SetExternalSourceMediaByName
  • SetExternalSourceMediaWithIds

이러한 함수는 External Source Manager 확장에 정의된 해당 함수를 호출합니다. 자세한 내용은 External Source Manager Blueprint 함수 를 참고해 주세요.

External Source Manager가 사용하는 State 구조체

FWwiseExternalSourceState

로드된 External Source의 숫자를 참조하기 위해 WwiseExternalSourceManagerImpl에서 기본적으로 사용되는 구조체입니다.

FWwiseExternalSourceFileState

미디어 리소스를 처리하기 위해 Wwise Simple External Source Manager가 사용하는 State 구조체입니다. 이 상태(state)는 현재 미디어가 재생되고 있는지 여부와 참조 횟수를 추적합니다. 재생 중인 External Source 미디어를 언로드하면 SoundEngine에 크래시가 일어납니다. 메모리에 저장되거나 스트리밍되는 미디어를 처리하기 위해서는 다음 두 개의 하위 클래스를 사용할 수 있습니다.

  • FWwiseInMemoryExternalSourceFileState
    • Media Data는 메모리에 로드되어 SoundEngine에 전달할 AkExternalSourceInfo 구조체를 만드는 데 사용할 수 있습니다.
  • FWwiseStreamedExternalSourceFileState
    • FileState는 External Source Manager의 FWwiseFileHandlerBase 기본 클래스에 자신을 등록합니다. 스트림 미디어에 대한 요청이 External Source Manager에게 전달되면, 등록된 FileState를 검색하고, 다음 I/O 요청을 처리합니다.


Wwise Unreal Integration Documentation: Wwise Simple External Source Manager 사용하기

Wwise Simple External Source Manager 사용하기

목차

  • Simple External Source Manager 활성화하기
  • 설정
    • Media Info Table
    • External Source 기본 미디어
  • Simple External Source Manager의 작동 방식
  • Data Table 업데이트하기
  • External Source Manager Blueprint 함수
  • External Source Manager API
  • Simple External Source Manager의 한계

External Source로 작업할 때 External Source와 해당 미디어는 기본적으로 분리되어 있음을 꼭 기억해 주세요. 디자이너(또는 개발자)는 기본적으로 ShortID인 External Source Cookie와 재생할 미디어 간의 매핑을 명시적으로 설정해야 합니다. External Source 미디어는 SoundBank와 스트리밍 미디어와 함께 생성될 수 있지만 디자이너가 미디어 파일과 해당 메타데이터도 추적해야 합니다.

Simple External Source Manager는 External Source 미디어를 추적하며 External Source에 매핑할 수 있는 기능을 제공합니다. 이는 게임에서 사용할 External Source 미디어를 설명하는 Data Table(.csv 파일)과 미디어를 External Source에 할당하는 API 및 Blueprint 함수를 통해 이루어집니다.

참고: 이 SubModule의 사용 예시는 WwiseDemoGame에서 볼 수 있습니다.

Simple External Source Manager 활성화하기

기본적으로 Simple External Source Manager 모듈은 비활성화되어 있습니다. 이를 활성화하려면 Unreal 프로젝트의 DefaultEngine.ini 파일에 다음 줄을 추가하세요:

[Audio]
WwiseFileHandlerModuleName=WwiseSimpleExternalSource

이 코드는 Wwise Simple External Source Manager 하위 모듈을 사용해서 External Source 로드를 처리하는 모듈로 WwiseFileHandlerModule을 오버라이드합니다.

설정

Wwise Simple External Source Manager Settings는 두 개의 Data Table과 하나의 Directory를 통해 설정할 수 있습니다:

  • Media Info Table에는 미디어 파일을 로드하는 데 필요한 메타데이터가 포함되어 있습니다.
  • External Source Default Media(선택 사항)는 External Source와 Media Info Table의 미디어 간의 초기 매핑을 정의합니다. 이 문서의 뒷부분에서 설명하는 API 및 Blueprint 함수를 사용해서 이 매핑을 업데이트하거나 추가할 수 있습니다.
  • External Source Staging Directory는 패키지 게임의 'Game' 폴더에 상대적인 External Source 미디어 파일을 복사할 위치를 지정합니다.

Media Info Table

미디어 정보 테이블의 항목에는 다음과 같은 속성이 있습니다.

  • Name: ExternalSourceMediaInfoId와 일치해야 합니다. 테이블에서 조회하는 데 사용됩니다.
  • ExternalSourceMediaInfoId: 관리자에서 미디어를 추적하는 데 사용되는 고유 ID입니다.
  • MediaName: 디스크에서 파일을 찾는 데 사용되는 파일 이름(확장명 포함)입니다. 또한 이름으로 미디어를 설정할 때 관리자가 미디어 ID를 조회하기 위해 사용됩니다.
  • CodecID: 미디어 데이터를 디코딩하는 데 사용하는 코덱의 ID입니다. AkGameplayTypes.h의 AkCodecId 열거형(enum)을 참조해 주세요.
  • bIsStreamed: 미디어를 스트리밍으로 로드할지 메모리로 로드할지 결정합니다.
  • bUseDeviceMemory: 장치별 메모리 사용 여부를 결정합니다. 메모리를 사용하는 미디어에만 적용됩니다.
  • MemoryAlignment: 사용할 메모리 정렬. 메모리를 사용하는 미디어에만 적용됩니다.
  • PrefetchSize: 프리페치할 데이터의 양(바이트). 스트리밍 미디어에만 적용됩니다.

External Source 기본 미디어

기본 미디어 테이블의 항목에는 다음과 같은 속성이 있습니다.

  • Name: ExternalSourceCookie와 일치해야 합니다. 테이블에서 조회하는 데 사용됩니다.
  • ExternalSourceCookie: Wwise Authoring 또는 SoundBank 메타데이터에서 찾을 수 있는 External Source의 고유 ID입니다.
  • ExternalSourceName: 로깅(logging)하는 데에 사용됩니다.
  • MediaInfoId: Media Info Table의 ExternalSourceMediaInfoId와 일치해야 합니다.
  • MediaName: 로깅(logging)하는 데에 사용됩니다.

Simple External Source Manager의 작동 방식

Simple External Source Manager가 인스턴스화되면 Media Info Table 을 읽어 미디어 메타데이터 목록을 채웁니다. 그리고 미디어 ID의 미디어 이름 맵이 External Source Manager Blueprint 함수 와 함께 사용되도록 채워집니다.

다음으로 External Source 기본 미디어 를 읽고 External Source Cookie/미디어 ID 쌍을 맵에 추가합니다. 이러한 선택적인 Data Table은 게임에서 사용할 External Source에 대한 '기본' 미디어를 설정합니다. 이 시스템은 SetExternalSourceMedia 메소드에 대한 Blueprint 및 함수 호출의 수를 줄입니다. 기본 미디어가 이미 정의된 경우 미디어를 동적으로 변경하는 External Source에만 이 메소드를 사용하면 됩니다.

External Source Manager가 External Source를 로드하면 (보통 로드 중인 AkAudioEvent에 의해 트리거됨) External Source를 참조하는 에셋의 수를 추적하는 상태 구조체가 생성되고 해당 맵이 확인됩니다. 맵에 미디어 페어링이 있을 경우 미디어에 대한 상태 구조체가 생성되거나 이러한 구조체가 이미 있는 경우 업데이트됩니다. Media Info Table 에서 읽은 정보에 따라 미디어는 디스크에서 메모리로 로드되고, 스트리밍되는 경우에는 생성된 상태가 등록되어 SoundEngine에서 들어오는 스트리밍 요청을 처리합니다.

External Source Cookie/미디어 ID 쌍이 게임 플레이 중에 설정되고(예: External Source Manager Blueprint 함수 에 의해서) External Source가 이미 로드된 경우 미디어가 즉시 로드됩니다. Exteral Source가 이미 다른 미디어에 매핑된 경우 해당 미디어의 참조 횟수가 감소합니다. 참조 횟수가 0이면 재생이 중지되고 언로드됩니다.

통합의 Blueprint 함수에서 발생하는 PostEvent 호출을 포함해서 AkAudioDevice를 통과하는 모든 PostEvent 호출은 External Source Manager의 PrepareExternalSourceInfos 메소드를 호출합니다. 이러한 메소드는 전달된 External Source 쿠키에 게시할 미디어를 선택합니다. 해당 작업이 성공하거나 실패한 후 BindPlayingIdToExternalSources 메소드가 호출되어 선택한 모든 미디어를 게시된 이벤트의 Playing ID에 바인딩합니다. 마찬가지로 Event 재생이 완료되면 OnEndOfEvent 메소드가 호출되고 미디어가 해당 Playing ID에서 더 이상 사용되지 않음을 External Source Manager에게 알립니다.

마지막으로 Cook 메소드는 External Source 미디어 패키징을 지원합니다. External Source를 사용하는 Event가 패키징되면 각 External Source에 대해 Cook 메소드가 호출됩니다. 이러한 메소드가 호출되면 Simple External Source Manager는 패키징을 위해 Media Info Table 에 모든 미디어 파일을 준비합니다. 해당 작업은 한 번만 수행하면 되기 때문에 플래그가 설정되고 그 다음 Cook로의 호출은 아무 작업도 수행하지 않습니다.

참고: WwiseSoundEngine API를 통해 직접 External Source로 이벤트를 게시하는 경우 적절한 시간에 External Source Manager의 PrepareExternalSourceInfos, BindPlayingIdToExternalSources 및 OnEndOfEvent를 구현해야 합니다. 그렇지 않으면 External Source가 재생되는 동안 사용하는 미디어를 전환하게 되면 이전 미디어가 조기에 언로드되어 SoundEngine에 크래시가 일어날 수 있습니다. 또한 더 낮은 수준에서 I/O Hook를 재정의하고 파일 관리를 직접 처리할 수도 있습니다.

Data Table 업데이트하기

디스크의 Data Table이 수정되고 Unreal Editor가 열리면 해당 콘텐츠가 다시 파싱됩니다. 그런 다음 로드된 모든 Wwise Events Asset이 언로드된 다음 다시 로드됩니다. 이러한 억지 기법은 External Source Manager의 상태가 적절하게 업데이트되도록 하는 가장 간단한 방법입니다.

External Source Manager Blueprint 함수

External Source와 미디어 간의 매핑을 업데이트하기 위해 모듈은 외부 음원 미디어를 설정하는 Blueprint 함수를 제공합니다.

선호에 따라 이름이나 ID를 사용하는 세 가지 Blueprint 함수가 제공됩니다.

  • SetExternalSourceMediaById: External Source 이름을 사용하여 External Source를 지정하고 MediaID를 사용하여 미디어를 지정합니다.
  • SetExternalSourceMediaByName: External Source 이름을 사용하여 External Source를 지정하고 Media Info Table 에서 MediaName을 사용하여 미디어를 지정합니다.
  • SetExternalSourceMediaWithIds: External Source Cookie를 사용하여 External Source를 지정하고 MediaID를 사용하여 미디어를 지정합니다.

문자열로 External Source 미디어를 설정할 경우 Cookie는 이름 문자열의 해시(hash)에 의해 결정됩니다 (Wwise Authoring의 방법과 같음). MediaID는 Media Info Table이 파싱될 때 구성되는 맵에서 미디어 이름을 조회하여 가져옵니다.

참고: Blueprint는 부호가 있는 짧은 정수만 사용할 수 있습니다. 이러한 제한을 피하려면 FAkUniqueID 변수를 사용하여 External Source 쿠키 값을 설정하세요.

External Source Manager API

개발자는 코드를 통해 두 가지 방법으로 External Source를 설정할 수 있습니다. 이전 섹션에서 설명한 Blueprint 함수를 호출하거나, External Source Manager 인스턴스를 가져와서 해당 메소드를 직접 호출할 수 있습니다. Wwise Simple External Source Manager의 대부분의 메소드는 가상이기 때문에 개발자는 이러한 관리자를 새로운 모듈로 확장할 수 있습니다. 그리고 자체 데이터 구조체와 논리를 사용하여 미디어를 추적하고 External Source와 페어링할 수 있습니다.

Simple External Source Manager의 한계

Simple External Source Manager 디자인의 주요 한계점은 여러 플랫폼 게임에 대해 Media Info Table 이 유연하지 않다는 것입니다. 플랫폼마다 다른 코덱을 사용해서 미디어를 디코딩하지만 Media Info Table의 구조체는 이를 지원하지 않습니다. 관리자 확장으로 가능한 한 해결책은 플랫폼별 Media Info Table을 만들고 빌드 대상에 따라 알맞게 패키징하는 것입니다.

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.

예시:

  • 주인공의 발소리 Event는 신발, 바닥 재질, 날씨 등 여러 Switch에 따라 깊은 계층 구조를 가지고 있을 수 있습니다. 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. 이 경우 Switch나 State 값이 씬의 GameObject에 계속 설정되어 있으면 예기치 않은 동작이 발생할 수 있습니다.

Enabling Reference-Loaded Switch Container Media

각 UAkAudioEvent 는 이 이벤트가 표시하는 해당 Wwise Event를 식별하는 FWwiseEventInfo 구조체를 포함합니다. 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.

기술적 세부 사항

When this option is activated and a Wwise Event asset is cooked by the WwiseResourceCooker, its cooked data contains a set of SwitchContainerLeaves. 이 리프(leaves)는 로드할 미디어와 SoundBank에 대한 다양한 Switch(또는 State) 값 세트의 평탄화된 맵(flattened map)입니다. 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. Wwise Event가 WwiseResourceLoader에 의해 로드되면 해당 SwitchContainerLeaves 세트가 각 알려진 Switch와 State Value에 대해 WwiseResourceLoader가 추적하는 리프 목록에 추가됩니다. 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).

참고: 미디어 의존성은 Event, Switch, State 에셋이 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. 이 옵션을 비활성화하면 각 에셋의 LoadData와 UnloadData 메소드(Blueprint에서 사용 가능)를 반드시 호출하여 WwiseResourceLoader가 에셋을 로드 및 언로드해야 합니다.

마지막으로 문자열을 사용하여 Sound Engine에서 Event를 게시하거나 Switch와 State를 설정할 때 WwiseResourceLoader가 필요한 리소스를 이미 로드했는지 확인하는 것은 게임 디자이너의 책임입니다. 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. 그러면 Project Settings 대화 상자가 열립니다.
  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. 파형 뒤의 빈 공간은 Wwise 이벤트의 최대 예상 지속 기간을 나타내며, 이 지속 기간은 SoundBank를 생성할 때 계산됩니다 ( 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. 각 플랫폼에 대해 다음 줄을 <Project>/Config/<Platform>/<Platform>.ini 또는 <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. Wwise Authoring에서 Unreal Player의 Profiler를 시작하면 Audio Bus의 미터가 움직이는 것을 볼 수 있습니다.

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.

이제 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 AudioLink. 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. 그러면 Project Settings 대화 상자가 열립니다.
  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 SoundEngine 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.
      참고: After you select an option, do not change it. If you do, any existing AudioLink components will stop working.
  3. Select the desired audio routing option. For AudioLink, select Route through AudioLink [5.1+].

Setting Default AudioLink Properties

AudioLink configuration settings determine its default behavior when enabled. The integration uses these default values unless there is an override asset associated with a particular Event (as described in Overriding Default AudioLink Properties).

Before you begin the following procedure, set up an Audio Input Source Plug-in in Wwise and create a Wwise "Play" Event that uses a Sound SFX with Audio Input as the source. This Event is required to ensure that the audio routing works correctly.

To set default AudioLink properties:

  1. In Wwise, set up an Audio Input Source Plug-in.
  2. Create a Wwise "Play" Event that uses a Sound SFX with Audio Input as the source, then generate SoundBanks.
  3. In Unreal, click Edit > Project Settings. 그러면 Project Settings 대화 상자가 열립니다.
  4. In the Wwise section, click Wwise AudioLink.
  5. Set the following properties:
    • Start Event: Select the Wwise "Play" Event you created earlier.
    • Should Clear Buffer on Receipt: When selected, the receiving code clears the buffer after it is read so that Unreal doesn't render it. This setting only applies when both renderers are running simultaneously. 이 속성은 기본적으로 활성화되어 있습니다.
    • Producer to Consumer Buffer Ratio: The ratio of the producer to consumer buffer size. The default value is 2.0, which means that the producer buffer is twice as large as the consumer buffer.
    • Initial Silence Fill Ratio: The ratio of the initial buffer to fill with silence before consumption, which can prevent starvation at the cost of extra latency. The default value is 1.0.

Overriding Default AudioLink Properties

You can create separate AudioLink assets for individual Wwise Events, which override the default settings.

To override default AudioLink properties:

  1. In Wwise, create a "Play" Events with Audio Input as the source.
  2. In the Unreal Content Browser, click Add > Sounds > AudioLink > Wwise AudioLink Settings. A Wwise AudioLink Settings asset is added to the Content Browser.
  3. In the asset Details, set the Start Event to the newly created Wwise Event, and change any other property values as required.
    You can now associate the custom settings with different audio assets.

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 Blueprints to play sounds and music as required.

To use AudioLink on an audio asset:

  1. In the Unreal Content Browser, create an audio asset such as an Attenuation or Submix.
  2. Edit the asset. The location of the AudioLink properties varies depending on the type of asset. The following image shows the AudioLink properties for an Attenuation asset:
  3. To enable AudioLink, select Send to AudioLink. The asset now routes audio through AudioLink with the default AudioLink settings.
  4. (Optional) To use custom AudioLink settings, use the options next to AudioLink Settings Override to select the desired Wwise AudioLink Settings asset.
    The audio asset now uses custom AudioLink settings.
  5. Add the audio asset to a Blueprint.

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: 자주 묻는 질문

자주 묻는 질문

Unreal 에디터에서 뱅크를 생성하거나 쿠킹할 때 뱅크는 어디에 위치해 있나요?

By default, they are located in the following location:

UE/[게임 이름]/Content/WwiseAudio/[플랫폼]

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.

Wwise SoundEngine 라이브러리를 사용해서 코드를 디버그할 수 있나요?

Yes. You can use the Debug or DebugGame build configuration states in Unreal, which use the Wwise SoundEngine debug libraries. Refer to Unreal and Wwise SoundEngine Configurations for more information.

패키징된 게임을 실행할 때 왜 모든 사운드가 재생되지 않나요?

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: Introductory 튜토리얼

Introductory 튜토리얼

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.

  • 튜토리얼 준비하기
  • 레벨에 환경음 사운드 추가하기
  • Blueprint에서 음악 재생하기
  • 발자국 소리 통합하기
  • 물리적 충돌을 위한 사운드 추가하기
  • Distance Probe를 사용하여 3인칭 게임에서 리스너 사용자 지정하기


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

튜토리얼 준비하기

이 튜토리얼을 진행하기 위해서는 Wwise와 Unreal 5가 기본 설치되어 있어야 합니다. 튜토리얼 전용 음원 파일등은 제공되지 않습니다. 하지만 Integration Demo Wwise 샘플 프로젝트에서 대부분의 예제에 사용할 수 있는 다양한 사운드와 음악을 찾을 수 있습니다. Integration Demo(통합 데모)는 Wwise SDK에 포함되어 있으며 Audiokinetic 런처를 통해 설치할 수 있습니다. 자세한 내용은 Integration Demo 예제를 참고해 주세요.

사전 준비

튜토리얼을 진행하기 전에 다음 전제 조건을 검토하고 필요한 모든 설정이 완료되었는지 확인하세요.

  • Unreal에서 C++ Project Default로 Third Person 게임 템플릿을 사용하여 프로젝트를 생성하세요 (Wwise Unreal 통합은 Blueprint만 존재하는 Unreal 프로젝트는 지원하지 않습니다). 자세한 내용은 새 프로젝트를 생성하기, 삼인칭 템플릿을 참고해 주세요.
  • 설치와 플러그인 빌드하기에서 설명한대로 Wwise Unreal 플러그인을 설치하세요.
  • Wwise 프로젝트에서 Auto-Defined SoundBank를 활성화하세요. See Automatically Defining SoundBanks for more information.

필수 Unreal 관련 지식

Unreal에서 오디오를 통합하기 전에 Unreal 5 게임 개발에 대한 실무 지식을 갖추는 것이 좋습니다. 특히 Unreal 문서의 다음 섹션을 확인하세요.

  • Level Editor: Level Editor는 Unreal을 열면 처음 나타나는 레이아웃입니다. 레벨에 사운드를 배치하고 새 사운드를 생성하는 등 에셋을 관리하는 데 사용합니다. 여기서 Blueprint Editor와 같은 다른 뷰를 열 수도 있습니다.
  • Actors, Components, and Blueprints: 언리얼에서는 레벨에 있는 모든 오브젝트를 Actor라고 합니다. 다양한 유형의 Actor가 있으며, Actor는 자신이 하는 일을 정의하는 컴포넌트를 가질 수 있습니다. 예를 들어 Actor에는 특정 환경음이 재생되는 영역을 정의하는 Trigger로 사용할 수 있는 Mesh가 있을 수 있죠. Blueprint를 사용하여 시스템을 디자인하고 이를 Actor에도 추가할 수 있습니다. 이 시스템 안에서 Actor의 컴포넌트를 참조하여 무언가가 Trigger 영역에 들어올 때 환경음이 시작되도록 할 수 있습니다.
도움말: SoundBank를 생성하면 알림이 뜨며 사운드가 재생됩니다. 통합된 사운드의 레벨에 따라 해당 알림음이 꽤나 크게 들릴 수 있는데, 이 사운드는 비활성화 할 수 있습니다. 그러려면 Edit > Editor Preferences로 가세요. Level Editor에서 Miscellaneous를 클릭하고 Enable Editor Sounds를 비활성화하세요.


Wwise Unreal Integration Documentation: 레벨에 환경음 사운드 추가하기

레벨에 환경음 사운드 추가하기

이 튜토리얼에서는 AkAmbientSound 에셋을 Unreal 레벨에 추가하여 Wwise에서 반복되는 환경음을 재생하는 방법을 보여줍니다.

튜토리얼 준비하기

  1. Integrate Wwise into your Unreal project, as described in Integrating Wwise into an Unreal Project.
  2. 반복 재생되는 환경음을 Wwise 프로젝트에 추가하고 사운드의 Positioning 속성에서 Hold Emitter Position and Orientation 옵션을 선택 해제하세요. Refer to Managing Media Files in Your Project for more information about adding sounds to Wwise.
  3. 사운드를 재생하는 Wwise Event를 만드세요. Refer to Creating Events for more information.
  4. Unreal 프로젝트가 올바른 SoundBanks 폴더를 참조하는지 확인하세요.
    1. Unreal에서 Edit > Project Settings를 클릭하세요. 그러면 Project Settings 대화 상자가 열립니다.
    2. Wwise 섹션으로 스크롤하여 Integration Settings를 클릭하세요.
    3. Installation에서 Generated Sound Banks 폴더 옆에 있는 줄임표를 클릭하세요. 파일 탐색기가 열립니다.
    4. Wwise Project의 GeneratedSoundBanks 폴더를 찾아서 Select Folder를 클릭하세요.
  5. Wwise Browser에 액세스할 수 있으며 Wwise 프로젝트 데이터로 채워져 있는지 확인하세요. 그렇지 않은 경우 Wwise 프로젝트를 저장하거나 Wwise Browser에서 Refresh 버튼을 클릭하세요. For more information, refer to Managing Assets with the Wwise Browser.

Wwise 이벤트 게시하기

Wwise에서 Unreal로 사운드를 추가하는 쉬운 방법은 레벨에 AkAmbientSound 에셋을 추가하는 것입니다. 이 경우 AkAmbientSound 에셋이 이미터이기 때문에 Spatial Audio를 사용한다면 레벨에 있는 오브젝트가 해당 사운드를 방해(obstruct)할 수 있습니다. 만약 캐릭터가 레벨을 나가면 사운드 재생도 중지됩니다.

환경음을 추가하려면

  1. Unreal Editor에서 프로젝트를 여세요.
  2. 메뉴 바에서 Build > SoundBank Generate를 클릭하고 Generate를 클릭하세요. SoundBank가 생성됩니다.
  3. Window > Wwise Browser를 클릭하세요.

  4. Wwise Browser에서 환경음을 재생하는 Event를 Level Editor로 드래그하세요. 이렇게 하면 레벨에 AkAmbientSound가 생성되고 Default Asset Creation Path에 Event의 uasset이 생성됩니다.

  5. (1) 새로 생성된 AkAmbientSound를 선택하고 (2) Details 패널에서 Auto Post를 선택하세요.

    Unreal Editor에서 Play를 누르면 이제 환경음을 들을 수 있습니다.

차단 비활성화하기

이제 레벨에서 걸어다니면서 환경음이 잘 들립니다. 하지만 캐릭터가 장애물 뒤로 이동하게 될 경우 사운드가 희미해지는 것을 알 수 있습니다. 이는 기본적으로 활성화되어 있는 차단(Occlusion) 효과 때문입니다. 환경음이나 음악과 같은 경우 이러한 차단을 비활성화하는 것이 더 나을 수 있습니다.

차단을 비활성화하려면

  1. 레벨에서 AkAmbientSound Actor를 선택하세요.

  2. Details 패널의 Ak Component > Occlusion에서 Occlusion Refresh Interval을 0으로 설정하세요.

    이제 레벨의 어느 곳에서나 환경음을 들을 수 있습니다.


Wwise Unreal Integration Documentation: Blueprint에서 음악 재생하기

Blueprint에서 음악 재생하기

이 튜토리얼에서는 Unreal Blueprint를 사용하여 통합 Wwise 프로젝트에서 음악을 재생하는 방법을 알아봅시다. Blueprint는 음악처럼 다양한 레벨의 게임의 전체의 경험에서 재생될 수 있는 유형에 적합합니다.

튜토리얼 준비하기

  1. Wwise Authoring에서 Music Playlist Container를 만드세요.

  2. 무한 반복 재생되는 Music Segment를 추가하세요. 다음 이미지는 Container 구성을 보여줍니다.

  3. Music Segment를 재생하는 Event를 만드세요. 이 튜토리얼에서는 Play_Music이라는 이름을사용합니다.
  4. Wwise 또는 Unreal에서 SoundBank를 생성하세요.
  5. Unreal Editor의 Wwise Picker에서 음악 Event를 Level Editor로 드래그하세요. 레벨에 환경음 사운드 추가하기 와 마찬가지로 Event가 추가되며 uasset이 생성됩니다.
  6. Event를 선택하고 Details 패널에서 Auto Post 옵션을 선택하세요.

Event 게시하기

이 튜토리얼 부분에서는 ThirdPersonExampleMap 레벨에 사운드를 추가하게 됩니다. 이 레벨에는 이미 Light, Mesh 및 캐릭터와 같은 다양한 Actor가 포함되어 있습니다.

참고: 씬이 여러 개일 경우퍼시스턴트 레벨을 만들어서 다른 맵이 로드되어도 음악이 계속 재생되도록 할 수 있습니다.

이 튜토리얼에서는 ThirdPersonCharacter 콘텐츠에서 기본적으로 제공되는 플레이 가능한 캐릭터의 Blueprint를 사용합니다. Wwise Event를 재생하거나 '게시'하려면 다음 세 가지를 수행해야 합니다.

  1. 플레이를 시작할 때 Unreal Event를 호출하기.
  2. Wwise Event를 재생하는 함수에 연결하기.
  3. Event를 재생하는 Actor를 지정하기.

다음은 이러한 과정에 대해 자세히 설명합니다.

이벤트를 게시하려면

  1. Content Browser에서 ThirdPerson > Blueprints로 이동하여 BP_ThirdPersonCharacter를 더블 클릭하세요. 그러면 BP_ThirdPersonCharacter Blueprint가 열립니다. Event Graph 탭에는 세 개의 비활성화된 노드가 있습니다.

  2. BeginPlay 노드에서 핀을 드래그하고 Post Event Audiokinetic 함수을 검색하여 클릭하세요.

    Post Event 함수는 Wwise Event를 배치하기 위해 Actor에 대한 참조를 필요로 합니다.

  3. Actor Object Reference에서 핀을 드래그하고 Get a reference to self Variable를 검색해서 클릭하세요.

  4. Post Event 함수에서 Play_Music Ak Event를 선택하세요.

  5. Compile을 클릭하고 Level Editor에서 Play를 클릭하세요. 음악이 재생됩니다.

AkComponent 사용하기

Blueprint는 Actor 작동 방식을 제어하는 데 이상적인 환경입니다. 하지만 레벨에서 Actor를 효율적으로 관리하고 배치하기 위해서는 Details 패널에 일부 Blueprint 컨트롤을 노출한 채 주로 Level Editor에서 작업할 수도 있습니다. 그렇게 하려면 Actor에 AkComponent를 추가한 다음 Level Editor에서 사운드 위치를 수정하는 데 사용할 수 있습니다.

AkComponent를 사용하려면

  1. Blueprint Editor의 Components 탭에서 Add를 클릭한 다음 Ak Audiokinetic 컴포넌트를 검색하고 클릭하세요.
  2. Event Graph에서 Post Event 함수와 Self에 대한 참조를 삭제하세요.

  3. Ak 컴포넌트를 Blueprint로 드래그한 다음 컴포넌트에서 핀을 드래그하고 Post Ak Event를 검색하여 클릭하세요.

  4. BeginPlay를 Post Ak Event에 연결하세요.

    이제 AkComponent에서 선택된 Wwise Event를 가져올 수 있습니다.

  5. AkEvent Object Reference에서 핀을 드래그하고 Get Ak Audio Event를 찾아서 Ak 컴포넌트에 연결하세요.

  6. Compile을 클릭하세요.
  7. Components 패널에서 Ak를 선택한 다음 Details 패널에서 Ak Event 섹션을 펼치세요. 현재 비어 있습니다.

  8. Wwise Picker에서 음악 Event를 빈 Ak Audio Event 영역으로 드래그하세요.

    이제 Blueprint를 열지 않고도 Event를 변경할 수 있으며, 연결된 Actor를 기준으로 사운드 위치를 수정할 수 있습니다.

State로 음악 제어하기

대부분의 경우 게임에는 게임 플레이 상황에 맞게 적응하고 다양성을 제공하는 상호작용 음악이 적합합니다. 이 튜토리얼은 State를 사용하여 음악을 제어하는 일반적인 구현 전략을 보여줍니다.

시작하기 전에 먼저 Wwise에서 두 가지 다른 유형의 음악으로 구성된 새로운 음악 시스템을 만들어야 합니다. 이 예시에서는 차분한 음악과 강렬한 음악을 사용합시다.

다음 이미지와 같이 'Music' State에 따라 'Repeat Calm'과 'Repeat Intense' Music Playlist 간에 전환할 수 있는 Music Switch Container를 만드세요.

이 예시에서는 Calm, Intense, None의 세 가지 State를 사용합니다. 이러한 설정을 사용하면 게임에서 State를 사용하여 런타임 중에 음악을 변경할 수 있습니다. 그리고 게임이 시작될 때 설정할 State를 선택할 수도 있습니다.

이 튜토리얼에서 사용하는 일반적인 접근 방식은 플레이어가 Trigger로 정의된 특정 영역에 들어갈 때 State를 설정하게 되는 방식입니다. Trigger Box를 만들고 Blueprint 시스템을 사용하여 플레이어가 해당 상자의 경계를 넘을 때 State가 결정되게 하는 방법이죠.

다음 단계를 진행하기 전에 AkComponent 사용하기 의 단계를 완료했는지 확인하세요.

State로 음악을 제어하려면

  1. Blueprint Editor에서 BeginPlay의 SetState Audiokinetic 함수를 드래그하세요.

  2. Initial State를 Music-Calm으로 설정하세요.

    이제 Initial State가 설정되었습니다.

  3. Trigger Box를 레벨 안으로 드래그하세요.

  4. Trigger Box의 크기를 늘리세요.

  5. 아래 이미지처럼 (1) Details 뷰에서 세 개의 상자 모양이 있는 버튼을 클릭한 다음, (2) New Subclass를 클릭하고, (3) Blueprint 이름을 입력한 다음, (4) Select를 클릭하세요.

    ActorBeginOverlap Event가 포함되어 있는 Blueprint가 생성되었습니다. 이제 이를 Trigger Box에 무언가가 들어올 때를 감지하는 데 사용할 수 있습니다.

  6. ActorBeginOverlap에서 ThirdPersonCharacter로 캐스트하고 Exec을 Set State 함수와 연결하세요.

    Trigger Box를 여러 State에 사용할 수 있도록 하려면 Blueprint 외부에서 접근 가능한 Variable을 만들어야 합니다.

  7. State Value로 부터 드래그하고 Promote to variable을 클릭하세요.

    이제 왼쪽의 My Blueprint > Variables에 변수가 있습니다.

  8. 변수 이름을 'MusicState'로 변경하고 눈 아이콘을 클릭하세요.

    이제 해당 변수는 퍼블릭(public)이 되었습니다 (Blueprint 외부에서 액세스 가능).

  9. Compile을 클릭하고 Blueprint를 닫으세요.

  10. Trigger를 선택한 다음 Details 뷰에서 Default > Music State에 있는 State를 선택하세요.

  11. 레벨에서 ThirdPersonCharacter를 사용하여 새로운 Trigger 안으로 걸어 들어가서 음악이 변경될 때까지 기다려보세요.

    이제 이 트리거를 복제해서 원래 트리거에 아무 영향을 주지 않으면서 다른 곳에 사용하여 다른 State를 설정할 수 있습니다.

참고: Music Switch Container의 Transition이 Exit Cue로 설정된 경우 음악이 변경되기까지 시간이 조금 걸릴 수 있습니다.


Wwise Unreal Integration Documentation: 발자국 소리 통합하기

발자국 소리 통합하기

게임 제작 과정에서 발자국 사운드 게시하기는 아주 흔한 작업입니다. 이 튜토리얼에서는 발자국 사운드를 이용하여 애니메이션의 특정 순간에서 사운드를 게시하는 방법을 보여줍니다. 문이 열리고 닫히는 것과 같은 다른 사운드나 애니메이션에서도 이 방법을 사용할 수 있습니다. 또한 이 튜토리얼에서는 Wwise Switch Container와 함께 Unreal Surface Type을 사용하여 플레이어 캐릭터가 한 유형의 표면에서 다른 유형의 표면으로 이동할 때 발자국 사운드를 변경하는 방법을 보여줍니다.

여기서는 입력 컨트롤과 애니메이션이 있는 Mannequin(구동할 수 있는 캐릭터 컨트롤러)이 포함된 ThirdPersonCharacter 프로젝트 템플릿을 사용합니다. 다음 섹션에서는 발자국 사운드를 통합하기 위해서 캐릭터의 달리기 애니메이션에 Animation Notification(애니메이션 노티파이)을 추가하는 방법을 설명합니다. Blueprint는 해당 노티파이를 수신하여 사운드를 게시합니다.

이 튜토리얼의 발자국 구현은 Unreal의 Physics 시스템을 광범위하게 사용합니다. 자세한 내용은 피직스(Physics)를 참고해 주세요.

계속 진행하기 전에 적어도 두 가지 유형의 표면(예: 흙, 자갈, 잔디)에 대한 몇 가지 발자국 사운드를 준비해주세요. 또한 Wwise 프로젝트에서 몇 가지 준비 작업을 해야 합니다.

튜토리얼 준비하기

  1. Wwise Authoring에서 'Surface'라는 이름의 Switch Group을 만들고 사용하려는 각 표면 유형에 Switch를 추가하세요. 최소한 두 가지 표면 유형이 필요합니다.
  2. Actor-Mixer 계층 구조에서 'Footsteps'라는 이름의 Switch Container를 만들고 각 표면 유형에 해당하는 사운드 또는 Container를 추가하세요.
  3. Footsteps Container에 Surface Switch Group을 할당하고, 기본 Switch 값을 설정하고, 적절한 발자국 Object를 해당 Switch에 할당하세요. 다음은 예시 구성입니다.
  4. Footsteps Switch Container를 재생하기 위해 'Play_Footsteps'라는 이름의 Event를 만드세요.
  5. Unreal 또는 Wwise Authoring에서 SoundBank를 생성하세요.
도움말: Wwise Integration Demo 프로젝트에는 여러 표면에 대한 사운드가 포함된 Footsteps 컨테이너가 있습니다.

발자국 Anim Notify 추가하기

게임에서 플레이어 캐릭터의 움직임에 맞춰 발자국 사운드를 재생하려면 Anim Notify(애님 노티파이)를 사용해야 합니다. 다음은 Unreal의 캐릭터 애니메이션 상태에서 캐릭터의 발이 지면에 닿는 정확한 순간에 Anim Notify를 추가하는 방법을 설명합니다. 그런 다음 캐릭터 Blueprint를 업데이트하여 Anim Notify에 따라 Wwise Event를 게시할 수 있습니다.

발자국에 Anim Notify를 추가하려면

  1. Unreal Content Browser에서 Content > Characters > Mannequins > Animations > Quinn으로 가서 MF_Run_Fwd를 더블 클릭하세요. Animation Sequence Editor가 열립니다.
  2. 창 오른쪽 상단의 Skeletal Mesh 버튼을 클릭하세요. SK_Mannequin Skeletal Mesh가 열립니다.
  3. 오른쪽 하단의 Animation Notifies 패널에서 우클릭하고 New를 클릭해서 텍스트 입력란에 Footsteps를 입력하세요.
  4. Animation Sequence Editor로 돌아가서 Notify 옆에 있는 Asset Editor에서 Track > Add Notify Track을 클릭하세요. 새로운 번호의 트랙이 Animation 타임라인에 추가됩니다.

  5. 타임라인에서 Playhead를 맨 위 트랙의 첫 번째 R에 맞춥니다. 이 순간이 오른발이 지면에 닿는 순간입니다.

  6. 타임라인에서 새 트랙을 우클릭하고 Add Notify > Skeleton Notifies > Footsteps를 클릭하세요.

  7. Footsteps Anim Notify를 복사하여 다른 R과 L 노티파이 각각에 알맞은 Footsteps Anim Notify를 추가합니다.

Unreal에서 표면 준비하기

이제 서로 다른 표면에서 발자국 사운드를 테스트해 봅시다. 그러려면 레벨에 서로 다른 Physical Material을 할당할 수 있는 표면이 두 개 이상 있어야 합니다. 그런 다음 Switch를 각각 해당 표면과 연결하여 캐릭터가 한 표면에서 다른 표면으로 이동할 때 발자국 사운드가 변경되도록 할 수 있습니다. Wwise Switch Container의 사운드에 해당하는 표면과 재질을 사용하세요.

이러한 접근법은 Unreal Static Mesh와 Physical Material을 사용합니다. 자세한 내용은 Physical Materials 및 스태틱 메시를 참고해 주세요.

2층 표면을 레벨에 추가하려면

  1. Edit > Project Settings를 클릭하세요. 그러면 Project Settings 대화 상자가 열립니다.
  2. Engine 섹션에서 Physics를 클릭하세요.
  3. Physical Surface 섹션에서 Wwise 프로젝트의 Switch Container에 있는 각 표면에 별도의 Surface Type 이름(예: Dirt, Gravel, Metal, Wood)을 추가한 다음 Project Settings 대화 상자를 닫으세요.
  4. Level Editor에서 해당 바닥 오브젝트(SM_Cube)를 복제하고 레벨에서 각 사본이 바닥 면적의 절반을 차지하도록 두 오브젝트의 크기를 조정하세요.
  5. Content Browser에서 폴더를 선택하고 Add > Physics > Physical Material을 클릭한 다음 대화 상자에서 PhysicalMaterial을 선택하세요. 그리고 Select를 클릭합니다. 그러면 Physical Material 에셋이 폴더에 추가됩니다.
  6. 해당 재질의 이름을 프로젝트 설정에서 추가한 Surface Type 중 하나와 맞게 변경하세요. 나머지 표면 유형에 대해서도 추가 Physical Material을 생성하세요.

  7. 새로운 Physical Material 중 하나를 더블 클릭하고 Details Panel의 Physical Properties에서 해당 Surface Type을 선택하세요.

  8. Level Editor에서 바닥 오브젝트 중 하나를 선택하고 Details 패널에서 StaticMeshComponent를 클릭하여 메시 속성을 봅니다.

  9. Collision 섹션에서 Phys Material Override를 원하는 Physical Material로 설정하세요.

  10. Material 섹션에서 원하는 Surface Type과 알맞는 Material을 선택하세요. 이를 2층 오브젝트에도 반복합니다. 다음 이미지는 바닥이 금속 부분과 흙 부분으로 구분된 레벨의 예시를 보여줍니다.

Surface Switch 사용하기

Footstep Notify를 캐릭터 애니메이션에 추가하고 레벨의 다양한 표면을 구성한 후 마지막으로 Mannequin Blueprint를 구성하여 플레이어 아래에 어떤 표면이 있는지 결정하게 됩니다. 그리고 해당 정보를 올바른 Set Switch 함수로 라우팅한 다음 마지막으로 Event를 Wwise로 게시하면 적절한 발자국 사운드가 재생됩니다.

이 방법은 발자국 Anim Notify 추가하기 에서와 동일한 MF_Run_Fwd 애니메이션 시퀀스를 사용합니다.

Surface Switch를 설정하려면

  1. Animation Sequence Editor에서 MF_Run_Fwd 애니메이션을 여세요.
  2. 우측 상단의 Blueprint 아이콘을 클릭하세요. ABP_Manny 블루프린트가 열립니다.

  3. 다음 이미지와 같이 플레이어 캐릭터의 발자국을 감지하도록 Line Trace By Channel 함수로 Blueprint의 첫 번째 부분을 구성하세요.

  4. 플레이어가 유효한 표면 유형에 있는지를 감지하고, 만약 그렇다면 해당 신호를 올바른 Set Switch 함수으로 라우팅한 다음 Wwise Play_Footsteps Event를 게시하여 올바른 사운드를 재생하도록 Blueprint의 두 번째 부분을 구성하세요.

    다음은 전체 Blueprint의 다이어그램입니다.

  5. Compile을 클릭하세요.
  6. Level Editor에서 Play를 클릭하고 다양한 표면 위로 캐릭터를 이동해보세요. 그에 따라 발자국 사운드가 바뀌는 것을 알 수 있습니다.


Wwise Unreal Integration Documentation: 물리적 충돌을 위한 사운드 추가하기

물리적 충돌을 위한 사운드 추가하기

이전 튜토리얼에서는 게임을 시작할 때와 애니메이션의 특정 시기에서 음악을 재생하는 방법을 알아보았습니다. 이 튜토리얼에서는 Unreal의 Physics 시스템을 사용해서 오브젝트 간의 충돌을 감지하고 Wwise Event를 게시하여 충돌 시 사운드를 재생하는 방법을 설명합니다. 또한 RTPC를 사용하여 최소 속도 스레숄드를 설정해서 오브젝트 간에 충돌이 크지 않을 경우 충격음이 재생되지 않도록 하는 방법을 알아봅시다. 마지막으로 충돌 사운드 시스템을 테스트하기 위해서 게임에서 오브젝트를 인스턴스화하는 시스템에 관한 내용도 포함되어 있습니다.

튜토리얼 준비하기

  1. 물리적 충돌에 사용할 짧은 사운드를 Wwise로 가져오세요.
  2. 'Collision_Velocity'라는 이름의 Game Parameter를 만드세요.
  3. Collision_Velocity Game Parameter와 관련된 Voice Low-pass Filter와 Voice Volume RTPC를 다음 이미지와 같이 곡선으로 추가하세요.
  4. 사운드를 재생하는 'Play_Impact'라는 이름의 Event를 만드세요.
  5. Unreal 또는 Wwise Authoring에서 SoundBank를 생성하세요.

오브젝트가 충돌할 때 사운드 재생하기

오브젝트가 충돌할 때 사운드를 재생하려면

  1. Level Editor에서 파란색 상자 중 하나를 선택하세요.
  2. Details 패널에서 Blueprint 아이콘을 클릭하세요. 그러면 Create Blueprint From Selection 대화 상자가 열립니다.
  3. New Subclass를 선택하고 Blueprint Name을 WwiseObject로 변경한 다음 Select를 클릭하세요. Blueprint가 열립니다.
  4. Components 패널에서 Static Mesh Component를 선택하세요.
  5. Details 패널에서 다음 옵션이 선택되었는지 확인하세요.
    • Physics > Simulate Physics
    • Collision > Simulation Generates Hit Events
  6. Components 패널에서 Static Mesh Component를 우클릭하고 Add Event > Add OnComponentHit를 클릭하세요. Event Graph가 열리고 On Component Hit Event가 추가됩니다.

  7. 다음 다이어그램과 같이 Blueprint를 구성하세요.

    이 Blueprint는 여러가지 작업을 수행합니다.

    • 오브젝트가 다른 오브젝트와 충돌할 때 감지합니다.
    • Component Velocity의 Vector Length를 기준으로 Collision_Velocity RTPC의 값을 설정하고, 그 값이 최소 스레숄드인 40을 초과하지 않는 약한 충돌에는 충격음이 발생하지 않도록 합니다.
    • Event를 RTPC 값과 함께 Wwise에 게시하여 Wwise가 적절한 볼륨으로 충돌 사운드를 재생하도록 합니다.
  8. Compile을 클릭하고 Blueprint를 닫으세요.
  9. BP_ThirdPersonCharacter Blueprint를 여세요.

  10. 다음 이미지와 같이 Event Graph에서 게임에서 F를 누르면 Wwise Object 클래스에서 Actor를 스폰하는 시스템을 추가하세요.

  11. Compile을 클릭하고 Blueprint를 닫으세요.
  12. Level Editor에서 Play를 클릭하고 F를 눌러 블록을 만드세요. 여기에 부딪히게 되면 충돌 사운드가 재생됩니다.
참고
  • From Audio File to in-game Audio in Unreal(언리얼에서 오디오 파일에서부터 게임 오디오가 되기까지) (동영상)


Wwise Unreal Integration Documentation: Distance Probe를 사용하여 3인칭 게임에서 리스너 사용자 지정하기

Distance Probe를 사용하여 3인칭 게임에서 리스너 사용자 지정하기

이 튜토리얼을 시작하기 전에 3인칭 게임에서 Listener(리스너) 작업하기에서 Wwise의 Distance Probe를 사용하는 방법에 대한 전반적인 소개를 참고해 주세요.

이 튜토리얼은 Wwise에서 Distance Probe를 할당하기 위해 Blueprint를 사용하는 방법을 보여줍니다. 이 예시는 Third Person 프로젝트 템플릿을 사용하며 ThirdPersonCharacter Actor가 Distance Probe에 사용됩니다. 프로젝트에 따라 정확한 각 단계는 다를 수 있습니다.

Blueprint를 사용해서 Distance Probe를 할당하려면

  1. Content Browser에서 Content > ThirdPerson > Bluprints로 이동하고 BP_ThirdPersonCharacter를 더블 클릭하세요. Blueprint가 열립니다.
  2. Event Graph에서 빈 공간을 우클릭하고 BeginPlay Event를 추가하세요.
  3. 우클릭해서 두 번째 노드인 Set Distance Probe를 추가하고 Event BeginPlay에 연결하세요.

  4. Set Distance Probe의 Listener 입력 매개 변수에 핀을 드래그해서 Get Player Camera Manager 노드를 추가하세요.

    참고: Wwise Unreal 통합은 자동으로 Game Object를 기본 리스너로 지정하고 이를 PlayerCameraManager 액터에 연결합니다.

  5. Distance Probe 입력 매개 변수에서 연결을 드래그해서 Get a reference to self 변수를 추가하세요. 여기서 Self는 ThirdPersonCharacter 액터를 말합니다.

  6. Wwise Authoring을 사용하여 게임에 연결해서 Distance Probe가 올바르게 설정되었는지 확인하세요. 자세한 내용은 Distance Probe 프로파일링 하기를 참고해 주세요.


Wwise Unreal Integration Documentation: 더 알아보기

더 알아보기

Unreal Project에 Wwise를 통합하는 것은 시작에 불과합니다. 성능과 효율성을 극대화하기 위해 통합을 조정할 수도 있습니다.

다음 섹션에서는 Wwise Unreal 통합을 최대한 활용하는 방법을 안내합니다.

  • Unreal Spatial Audio 튜토리얼
  • Wwise Unreal 통합 모듈 이해하기


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 오브젝트
  • Spatial Audio 오브젝트 Blueprint 함수
  • Spatial Audio SDK 설명서


Wwise Unreal Integration Documentation: Spatial Audio 튜토리얼 준비

Spatial Audio 튜토리얼 준비
참고: 모든 튜토리얼의 매개 변수가 있는 맵은 Audiokinetic 런처에서 다운로드할 수 있는 Unreal Demo Game의 일부로 제공됩니다. 이 맵의 이름은 SpatialAudioTutorialMap입니다. 해당 맵을 따라가려면 다음 섹션을 건너뛸 수 있습니다.

새로운 프로젝트 만들기

작업 환경을 빌드하려면 아래 단계를 실행해주세요.

  1. Epic 런처에서 Unreal을 시작하세요.
    1. 새로운 Unreal Project C++ Blank 프로젝트를 생성하세요 (스타터 콘텐츠 없이).
    2. Unreal을 닫으세요.
  2. Audiokinetic 런처를 시작하세요.
    1. Wwise를 설치하세요.
    2. Unreal Engine 탭을 선택하세요.
    3. Wwise Wwise into Project 버튼을 클릭하세요.
    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. Positioning 탭에서:

      1. Listener Relative Routing을 활성화하세요
      2. 3D Spatialization을 Position + Orientation으로 설정하세요
      3. Max 거리가 5000인 Attenuation을 추가하세요.
      4. Diffraction과 Transmission을 활성화하세요

  2. Actor-Mixer Hierarchy 안에 있는 Sound SFX를 우클릭한 후 New Event > Play를 선택하세요.

  3. Project Settings를 여세요

    1. Soundbanks 탭에서 Enable Auto-Defined SoudBanks가 활성화되어 있는지 확인하세요.

  4. 프로젝트를 저장하세요.
  5. SoundBank를 생성하세요.

Unreal 프로젝트 준비

  1. 원하는 방식으로 바닥을 만든 후 두 개의 공간이 있는 건물을 세우고 바깥에 장애물을 배치하세요. SpatialAudioTutorialMap에는 이 빌딩에 사용할 커스텀 메쉬와 밖에 있는 장애물에 사용할 기본 정육면체 고정 메쉬 컴포넌트가 제작되어 있습니다.
  2. 씬에 이미터를 배치하세요.

    1. Drag the Event created in the previous section from the Wwise Browser to the Content Browser.

    2. 해당 Event를 씬으로 드래그하여 새로운 AkAmbientSound 액터를 만드세요.
      1. 한 액터는 바깥에 배치하고 다른 액터는 각 공간 안에 배치하세요.

      2. For all AkAmbientSound actors, make sure to set Refresh Interval to 0.

다음은 Spatial Audio Tutorial Map의 이미지입니다.

  1. Blueprint 메뉴에서 Level Blueprint를 여세요.
    1. 사용자 입력을 통해 이벤트를 트리거하세요.
      1. 새로 만든 AkAmbientSound를 World Outliner에서 Blueprint로 드래그하세요.
      2. AkAmbientSound 노드에서 'Post Associated Ak Event"' 함수를 찾으세요.
      3. Blueprint 배경을 우클릭하고 'Left Mouse Button'을 검색하세요.
      4. Pressed 배출구를 'Post Associated Ak Event' Exec와 연결하세요.

    2. 모든 AkAmbientSound 요소에 동일한 단계를 반복하세요.

    3. Level Blueprint를 저장하고 닫으세요.

셋업 검토하기

  1. 씬을 시작하세요. 버튼을 반복적으로 누르면 3D로 공간화된 사운드가 들립니다.

  2. Wwise Authoring에 연결하고 Profiler 레이아웃 (단축키 F6)을 여세요.

    1. 외부에서 사운드를 재생하면 아래와 비슷한 그래프가 보입니다.


Wwise Unreal Integration Documentation: 반사 (Reflect)

반사 (Reflect)

이 튜토리얼에서는 Spatial Audio Geometry를 사용해서 Reflect 플러그인에 반사적 표면을 전송해봅시다. 그렇게 하면 음향 환경에서 소리의 전달을 통해 초기 반사를 시뮬레이션할 수 있습니다.

참고: 이 튜토리얼에서 SoundBank를 생성하려면 Reflect 라이선스가 필요합니다.
참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다.

Wwise 프로젝트

  1. 기본 Acoustic Texture와 초기 반사 Auxiliary Bus의 프리셋에 접근하려면 먼저 Factory Acoustic Texture와 Reflect Factory Asset을 가져와야 합니다.
    1. Project > Import Factory Assets...로 이동하세요
    2. Reflect와 Acoustic Texture를 모두 선택하고 Import를 누르세요.
  2. 기본 프리셋을 사용하여 초기 반사 Auxiliary Bus를 만드세요.
    1. Master-Mixer Hierarchy에서 Master Audio Bus를 우클릭하세요

    2. New Child > Presets로 가서 Simplified Early Reflection Auxiliary Bus를 선택하세요

      1. Effects 탭에서 효과를 더블 클릭하고 Sound의 Speed를 34,500로 설정하세요.

  3. Wwise 프로젝트 준비 에서 만든 사운드의 Sound SFX Sound Property Editor로 이동하세요.

    1. General Settings 탭에서 Reflect Effect under Early Reflections를 사용하는 새로운 Auxiliary Bus를 만드세요.
  4. 프로젝트를 저장하고 Soundbank를 생성하세요.

Unreal 프로젝트

이 프로젝트에서 건물, 바닥, 장애물이 소리를 반사시키도록 만들어야 합니다. 이렇게 소리를 반사시키는 방법에는 AkSpatialAudioVolume 이나 AkGeometryComponent 를 사용하는 두 가지 방법이 있습니다.

AkGeometryComponent는 스태틱 메쉬 액터에 추가할 수 있습니다. 이 컴포넌트는 고정 메쉬 지오메트리를 공간 음향으로 자동 전송합니다. 또한 간단한 충돌 메쉬를 전송하도록 설정할 수도 있습니다. AkGeometryComponent가 연결된 스태틱 메쉬가 꽤 복잡할 경우 지오메트리가 너무 복잡해질 수 있습니다. 그 이유는 계산 시간뿐만 아니라 Wwise Spatial Audio에서 사용되는 것과 같은 레이 기반 음향 시뮬레이션 기술이 지오메트리 특징(표면과 모서리)을 음원의 파장보다 훨씬 더 크다고 가정하기 때문입니다. 예를 들어 1000Hz 사운드는 파장이 34cm입니다. 스태틱 메쉬를 직접 사용하는 대신 AkSpatialAudioVolume을 사용하면 메쉬 주변(사운드를 반사하고 방해하는 장애물 역할을 하는 경우)이나 메쉬 내부(내벽 역할을 하는 경우)에 간단한 모양을 생성할 수 있습니다.

  1. 튜토리얼 맵에서 장애물은 기본 스태틱 메쉬입니다. 여기에 AkGeometryComponent를 쉽게 추가할 수 있습니다.

    1. 액터를 클릭하고 Add Component를 클릭하세요. Ak Geometry를 선택하세요.

      1. Geometry 섹션에서 Simple Collision을 선택하세요
  2. 바닥에도 동일한 단계를 반복하세요.

  3. SpatialAudioTutorialMap에서 이 건물은 커스텀 메쉬로 제작되었습니다. 건물의 모양이 AkGeometryComponent 사용할 정도로 충분히 기본적이지만 이 튜토리얼에서는 AkSpatialAudioVolume을 사용해봅시다.

    1. 세 개의 AkSpatialAudioVolumes를 씬 안으로 드래그하세요.
      1. 한 볼륨은 건물의 외벽 주변에 두세요. 이 볼륨은 메쉬 바깥 주변에 배치되기 때문에 직접 크기를 조정해야 합니다.
      2. 나머지 두 볼륨을 각 공간의 내부 벽에 설정하세요. Fit To Geometry를 사용해서 두 공간을 배치해봅시다.
        1. 각 AkSpatialAudioVolume의 Details 패널에서 Fit To Geometry를 활성화하세요.
        2. 발견된 처음 모양이 맘에 들지 않을 경우 트랜스폼 기즈모를 사용해서 AkSpatialAudioVolume을 새로운 위치로 옮기세요. AkSpatialAudioVolume을 옮길 때 노란색 미리보기 선이 표시되는 것을 보세요. 원하는 모양을 찾은 후에 마우스 버튼을 떼면 해당 위치로 AkSpatialAudioVolume이 스냅됩니다.
        3. Fit To Geometry를 사용하여 AkSpatialAudioVolumes 배치하기에 대한 더 많은 정보는 Fit to Geometry 를 참고해 주세요.
      3. 세 개의 AkSpatialAudioVolumes에 모두 Enable Surface Reflectors가 활성화되어 있는지 확인해 주세요.
        1. Enable Room과 Enable Late Reverb는 선택하지 않은 채로 놔두세요. 이 부분은 공간(Room)과 포털(Portal) 에서 더 설명해드립니다.

셋업 검토하기

  1. 씬을 시작하고 Wwise Authoring에 연결하세요.
    1. Advanced Profiler의 Voices Graph 뷰에서 Reflect Effect를 사용하는 새로운 보조 센드가 보입니다.
      1. 플레이어의 시작 위치에서 바깥에 배치된 사운드를 재생하세요.
        참고: 플레이어가 바깥에 있을 때 공간에 있는 사운드 중 하나를 재생하면 Reflect 전송이 표시되지 않습니다. 또한 소리는 전달(transmission)에 의해 감쇠됩니다. 그 이유는 건물과 각 공간 주변에 닫힌 AkSpatialAudioVolume을 만들어두었기 때문입니다. 브러쉬 오브젝트를 변경하거나 Spatial Audio Portal을 사용하면 이 안에 열린 공간을 생성할 수 있습니다. 이 부분은 공간(Room)과 포털(Portal) 에서 설명되어 있습니다.
      2. 다음 단계로 넘어가기 전에 Profiler Settings 뷰를 열어서 Spatial Audio가 활성화되었는지 확인하세요.

    2. Game Object Profiler 레이아웃 (단축키 F12)으로 이동하세요.

      1. Game Object 3D Viewer에서 서로 다른 반사적 표면이 보입니다.
      2. 사운드를 재생하면 초기 반사가 레이가 표시되어 사운드가 들려오는 위치를 보여줍니다. [fuzzy]
      3. 레이가 보이지 않을 경우 Game Object 3D Viewer Settings에서 Show Reflection Paths가 활성화되었는지 확인하세요.
참고: Game Object 3D 뷰어에서 지오메트리가 보이지 않을 경우 Monitor Queue Pool Size를 늘여야 할 수 있습니다. 이 설정은 Platform Initialization Settings 에 있습니다.
참고
  • 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. New Child > Presets로 가서 Room Auxiliary Bus를 선택하세요

      1. Effects 탭에서는 RoomVerb Effect를 변경할 수 있습니다.
  2. 프로젝트를 저장하고 Soundbank를 생성하세요.

Unreal 프로젝트

  1. In Unreal, drag and drop the new Auxiliary Busses from the Wwise Browser to the Content Browser.
  2. 다른 튜토리얼에서 이미 하지 않은 경우 건물의 각 공간으로 두 개의 AkSpatialAudioVolume 오브젝트를 드래그하여 놓으세요. Fit To Geometry를 사용해서 두 공간을 배치해봅시다.
    1. 각 AkSpatialAudioVolume의 Details 패널에서 Fit To Geometry를 활성화하세요.
    2. 발견된 처음 모양이 맘에 들지 않을 경우 트랜스폼 기즈모를 사용해서 AkSpatialAudioVolume을 새로운 위치로 옮기세요. AkSpatialAudioVolume을 옮길 때 노란색 미리보기 선이 표시되는 것을 보세요. 원하는 모양을 찾은 후에 마우스 버튼을 떼면 해당 위치로 AkSpatialAudioVolume이 스냅됩니다.
    3. Fit To Geometry를 사용하여 AkSpatialAudioVolumes 배치하기에 대한 더 많은 정보는 Fit to Geometry 를 참고해 주세요.
      1. 두 AkSpatialAudioVolume 오브젝트에서 Enable Room과 Enable Late Reverb가 활성화되었는지 확인하세요.
        1. 반사 (Reflect) 튜토리얼을 실행하지 않았을 경우 Enable Surface Reflectors는 선택하지 않은 채로 놔두세요.
        2. Late Reverb Section에서 Auto Assign Aux Bus를 선택 취소하고 새로 가져온 Auxiliary Bus를 Content Browser에서 Aux Bus 매개 변수로 드래그하여 놓으세요.
          참고: Auto Assign Aux Bus는 Reverb Parameter 예측 에서 설명되어 있습니다.

  3. 두 개의 AkAcousticPortal 오브젝트를 추가하세요.

    1. 건물의 열린 부분 주변에 배치하세요.
      1. AkAcousticPortal을 쉽게 배치하기 위해서 Details 패널에 있는 Fit To Geometry 체크 상자를 활성화하세요.
      2. Fit To Geometry를 활성화하면 이 통합이 주변 지오메트리를 사용하여 포털의 알맞은 위치를 찾으려고 시도합니다. 트랜스폼 기즈모를 사용하여 올바른 열린 공간 근처로 AkAcousticPortal을 드래그하면 노란색 미리보기 선이 나타납니다. 원하는 위치를 찾은 후에 마우스 버튼을 떼면 AkAcousticPortal이 해당 위치로 스냅됩니다.
      3. Fit To Geometry를 사용하여 AkAcousticPortals 배치하기에 대한 더 많은 정보는 Fit to Geometry 를 참고해 주세요.
      4. AkAcousticPortal이 각 출입구 안에 배치된 후에 크기(scale) 기즈모를 사용하여 각 포털의 깊이를 조절해서 크로스페이드 거리를 원하는대로 조정하세요. 포털이 더 깊을수록 (포털의 X축을 따라) AkComponent가 포털을 통과하여 전환할 때 크로스페이드 거리가 더 길어집니다. 잔향 전송과 확산 전환에서도 마찬가지입니다.
    2. Select the portals and set their Initial State to Enabled in the Ak Portal Component section. In the Obstruction Occlusion section, set the Initial Occlusion and Obstruction Refresh Interval to 0.0.
참고:

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)과 전달 손실(transmission loss)은 사운드의 Attenuation ShareSet에서 Diffraction 및 Transmission 곡선에 따라 사운드를 감쇠시킵니다. 곡선이 Use Project Obstruction/Occlusion으로 설정되면 Authoring 애플리케이션에서 Project Settings의 Obstruction/Occlusion 탭에 있는 Obstruction 곡선을 사용합니다.

포털(Portal)과 잔향(Reverb)

Portal을 통해 방사되는 사운드는 현재 리스너가 있는 공간 안으로 울릴 수 있습니다. 다음 단계는 이를 구성하는 방법을 보여줍니다.

  1. Wwise 프로젝트에서,

    1. 해당 Room Verb에 사용되는 Auxiliary Bus를 찾으세요. 다른 공간 잔향으로 제공하고자 하는 소리가 방사되는 공간에 사용되는 Room Verb를 말합니다.

      1. Auxiliary Bus Property Editor의 General Settings에서 'use game-defined auxiliary sends'가 활성화되었는지 확인하세요.
  2. Soundbank를 생성하고 씬을 시작한 후 Wwise Authoring에 연결하세요.

  3. 보조 센드가 활성화된 공간 안에서 사운드를 재생하고 이 보조 센드와 통신하도록 설정된 공간으로 이동하세요.

    1. 방사되는 사운드의 변조된 부분이 리스너가 있는 공간의 잔향도 제공하는 것을 볼 수 있습니다.

공간음 (Room tone)

경우에 따라 공간 안에 웅웅거리는 소리나 에어컨 소리와 같은 특정한 환경음이 있을 수 있습니다. 이 공간음을 재현하려면 Spatial Audio Room 게임 오브젝트에 이벤트를 게시할 수 있습니다. 리스너가 공간 안에 있을 경우 이 사운드는 리스너의 위치에 지정됩니다. 다른 공간에 있을 때 리스너는 연결된 포털과 벽을 통해 이 공간음을 들을 수 있습니다.

  1. Wwise 프로젝트에서,
    1. 공간음에 사용할 새로운 Sound SFX를 만드세요.
      1. 사운드를 리버브로 전송하려면 General Settings 탭에서 Use game-defined aux sends를 활성화하세요.
      2. Positioning 탭에서:
        1. 거리 감쇠, 회절, 전달 곡선에 감쇠를 추가하세요.
        2. Diffraction과 Transmission을 활성화하세요
    2. Sound SFX를 우클릭하고 New Event > Play를 선택해서 공간음을 재생하는 재생 이벤트를 만드세요.
    3. 프로젝트를 저장하고 Soundbank를 생성하세요.

  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. Auto Post 상자를 선택하면 BeginPlay에서 공간음 이벤트가 게시되도록 할 수 있습니다. 혹은 보통 게임 오브젝트에서 이벤트를 게시하는 데에 사용되는 동일한 Blueprint 함수를 호출할 수도 있습니다.

    1. Spatial Audio Tutorial 맵에서는 Level Blueprint에 Blueprint 함수를 사용하여 공간음을 활성화하고 비활성화했습니다.

      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 튜토리얼 준비 를 반드시 완료해야 합니다. 다음 두 단계가 가장 중요하며 반드시 수행해야 합니다.
  • Wwise에서 회절될 사운드의 Positioning 탭에서 Diffraction and Transmission을 활성화하세요.
  • In Unreal, set the Refresh Interval of AkAmbientSound to 0. This tutorial only uses the Spatial Audio diffraction and transmission loss system.

맵에서 Spatial Audio 회절을 설정하려면 다음 단계를 따라해 주세요.

  1. Unreal에서 이미 하지 않았을 경우
    1. 건물 주위에 AkSpatialAudioVolume 오브젝트를 추가하세요.
      1. Enable Surface Reflectors가 활성화되었는지 확인하세요.
      2. Geometry Settings 섹션에서 Diffraction이 활성화되었는지 확인하세요.
    2. 외부에 있는 장애물 스태틱 메쉬에 AkGeometryComponent 컴포넌트를 추가하세요.
      1. Geometry 섹션의 Diffraction 아래 Diffraction이 활성화되었는지 확인하세요.
  2. 게임 재생을 시작하고 Wwise에 연결하세요.
    1. 회절이 활성화된 사운드가 리스너로부터 방해될 경우 회절이 활성화된 지오메트리와 회ㄹ절 경로에서 회절 모서리를 확인할 수 있습니다.

Demo Game과 함께 제공되는 SpatialAudioTutorialMap에서 외부 이미터가 재생되면 밖에 있는 장애물에 의해 회절 경로가 생성되는 것을 볼 수 있습니다.

Diffraction은 사운드의 Attenuation ShareSet에 있는 Diffraction 곡선에 따라 사운드를 감쇠시킵니다. 곡선이 Use Project Occlusion으로 설정되면 Authoring 애플리케이션에서 Project Settings의 Obstruction/Occlusion 탭에 있는 Obstruction 곡선을 사용합니다.

참고
  • 공간 음향 회절
  • 지오메트리 API를 사용하여 회절 시뮬레이션하기


Wwise Unreal Integration Documentation: 차단

차단

Basic occlusion is exposed for AkOcclusionObstructionService::SetOcclusionObstruction(). To enable occlusion on an Actor, use the Set Obstruction Occlusion Refresh Interval function in the Blueprint Editor. 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 (CollisionChannel). 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.

Occlusion and Spatial Audio

When using Spatial Audio rooms, obstruction is set instead of occlusion. In parallel, sources perform simple line of sight checks with AkPortalComponent in the same room. These portals need to have a non-zero Obstruction Refresh Interval property. The portals also perform simple line of sight checks with other portals with a non-zero Obstruction Refresh Interval property.

참고
  • Get Collision Channel
  • AkComponent


Wwise Unreal Integration Documentation: Transmission (전달)

Transmission (전달)

이미터와 리스너 사이에 오브젝트가 나타날 경우 사운드가 이 오브젝트를 통과할 수 있습니다. Spatial Audio는 이 현상을 사운드의 직접 경로를 필터링하여 모델링합니다. 0~1 범위의 전달 손실 값은 AkSurfaceReflectorSetComponent, AkGeometryComponent 혹은 AkRoomComponent 컴포넌트에 적용될 수 있습니다. 그런 다음 전달 손실 값이 Wwise로 전송되어 사운드의 Attenuation ShareSet 전달 곡선에 따라 관련된 필터가 적용됩니다. 보통 값이 1.0일 경우 완전히 손실되며 값이 0.0일 경우 아무 손실 없이 사운드가 전달될 수 있음을 나타냅니다.

참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다. 다음 두 단계가 가장 중요하며 반드시 수행해야 합니다.
  • Wwise에서 회절될 사운드의 Positioning 탭에서 Diffraction and Transmission을 활성화하세요.
  • In Unreal, set the Refresh Interval of AkAmbientSound to 0. This tutorial only uses the Spatial Audio diffraction system.

경로의 전달 손실 값은 이미터에서 리스너에 도달할 때까지 직접 경로에서 사운드가 당면하는 최대 손실 값입니다. 전달 손실 값은 지오미트리나 공간으로부터 선택될 수 있습니다.

  1. AkSpatialAudioVolume 액터에서,
    1. 표면 반사기(surface reflector)가 활성화되었을 경우 전달 손실 값이 각 음향 표면(acoustic surface)과 연결될 수 있습니다
    2. 공간이 활성화되었을 경우 전달 손실 값은 공간의 벽과 연결될 수 있습니다.
  2. AkGeometryComponent 에서,
    1. 전달 손실 값은 Acoustic Properties Override 섹션에서 덮어 써질 수 있습니다.
      1. 충돌 메쉬의 경우:
      2. 혹은 고정적 메쉬의 각 표면의 경우:
      3. 또한 Integration Settings 의 AkGeometry Surface Properties Map에서 각 Physical Material(물리적 재질)마다 차단 값을 설정할 수 있습니다.

전달 손실(transmission loss)은 사운드의 Attenuation ShareSet의 Transmission 곡선에 따라 사운드를 감쇠시킵니다. 곡선이 Use Project Occlusion으로 설정되면 Authoring 애플리케이션에서 Project Settings의 Obstruction/Occlusion 탭에 있는 Occlusion 곡선을 사용합니다.

참고
  • 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 를 사용할 경우 단순 충돌 컴포넌트를 상위 계층으로 사용하는 것을 권장합니다. 단순 충돌 컴포넌트의 예시는 상자, 구형, 캡슐이 있습니다. 공간이나 건물에 특정한 메쉬가 있을 경우 단순 충돌 컴포넌트를 해당 메쉬의 하위 컴포넌트로 추가할 수 있습니다.

참고: 두 가지 버전의 메쉬를 사용해서 복합 충돌과 단순 충돌을 결합할 수 있습니다. 해당 방법에 대한 설명은 단순 충돌과 복합 충돌 결합하기 을 참고해 주세요.
참고: 여기서는 Wwise 런처에서 사용할 수 있는 Unreal Demo Game의 에셋을 사용하겠습니다. 프로젝트에서 이러한 에셋을 사용하려면 Unreal Demo Game을 다운로드하고 $<YourWwiseProjectsFolder>/WwiseDemoGame/Content 에서 원하는 에셋을 찾으세요. 그리고 원하는 에셋을 작업중인 프로젝트의 Content 폴더에 복사하여 붙여넣으세요.
  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 빌딩 안에 있는 큰 공간 안으로 들어가세요.
    • 잔향이 적용되는 것이 들립니다.

단순 충돌과 복합 충돌 결합하기

참고: 이 섹션은 Audiokinetic 런처에서 제공되는 WwiseDemoGame 프로젝트의 'SpatialAudioTutorialMap'과 ComplexRoomDemo 폴더에 있는 에셋을 기반으로 합니다. 사전 제작된 메쉬 에셋과 커스텀 Blueprint 클래스는 단순 충돌과 복합 충돌을 결합하는 데 사용됩니다.

이 섹션에서는 Spatial Audio 교차 검사(containment test)가 단순 충돌을 사용하여 수행되고 Unreal 쿼리가 복합 충돌을 사용하는 것과 같이, 동일한 메쉬에서 단순 충돌과 복합 충돌을 결합하는 방법을 다룹니다.

출입구와 열린 공간이 있는 등 복잡한 메쉬의 경우 경우에 따라 메쉬의 충돌 설정에서 'use complex collision as simple(복합 충돌을 단순 충돌로 사용)'을 사용해야 할 수도 있습니다 (단순 vs 복합 콜리전 (Simple Vs Complex Collision) 참조). 예를 들어 이 설정은 캐릭터가 출입구를 통해 공간 안으로 들어갈 수 있지만 여전히 벽과 충돌하도록 하기 위해 필요할 수 있습니다. 이 설정을 사용할 경우 단순 충돌이 무시되며 메쉬의 전체 트라이메쉬(trimesh)가 사용되기 때문에 AkLateReverbComponent 와 AkRoomComponent 에 대한 오염 시험이 실패하게 됩니다. AkLateReverbComponent 와 AkRoomComponent 에 의해 사용되는 단순 충돌은 트라이메쉬를 지원하지 않습니다.

이에 대한 한 가지 해결책은 동일한 메쉬 에셋의 복사본 두 개를 만들어서 하나는 단순 충돌을 사용하고 다른 하나는 복합 충돌을 사용하는 것입니다. SpatialAudioTutorialMap에 이 기술이 사용된 복잡한 공간 구조가 있습니다.

에디터에서 해당 맵을 플레이해서 건물 주변을 걸어다니며 복잡한 공간 구조를 시험해보세요.

  • Unreal에서 SpatialAudioTutorialMap을 여세요.
  • 'Play in Editor' 옵션을 활성화하세요.
  • 상자 모양이 아닌 건물에서 소리를 트리거하려면 'C'를 누르세요.
    SpatialAudioTutorialMap에 있는 상자 모양이 아닌 공간
    • 여기에서는 건물 외부를 돌아다닐 수 있으며 소리가 차단됩니다.

이 튜토리얼의 나머지 부분을 따라하면서 Wwise Spatial Audio 교차 검사를 위한 단순 충돌과 Unreal 물리 교차 검사를 위한 복합 충돌을 처리하도록 건물 구조가 어떻게 설정되었는지 살펴보세요.

  • 콘텍스트 브라우저에서 WwiseAssets/SpatialAudioDemo/ComplexRoomDemo로 이동하세요.

    SpatialAudioTutorialMap의 ComplexRoomDemo 에셋

이 폴더에는 'Building_Complex'와 'Building_Simple'이라는 두 개의 스태틱 메쉬 에셋이 포함되어 있습니다.

  • 각 에셋을 열어서 Details Panel의 충돌 설정(collision settings)으로 이동하세요.

Collision Complexity 속성에 다른 값이 할당되어 있음을 알 수 있습니다.

Building_Complex 메쉬 에셋
Building_Simple 메쉬 에셋

Building_Complex에는 Collision Complexity가 'Use Complex Collision As Simple'로 설정되어 있습니다. 이 경우 Unreal은 해당 메쉬에 대해 단순화된 지오메트리를 생성하지 않고 전체 트라이메쉬를 사용합니다. 이렇게 하면 캐릭터가 출입구를 통해 걸을 수 있습니다. Building_Simple의 Collision Complexity가 'Use Simple Collision As Complex'으로 설정되어 있습니다. 그래서 언리얼은 단순화된 지오메트리를 생성하고 트라이메쉬를 무시합니다. 바로 이를 통해 Spatial Audio는 공간 교차에 대한 교차 검사를 할 수 있습니다.

참고: Collision Complexity를 'Simple And Complex'으로 설정할 수 있습니다. 하지만 이렇게 하면 언리얼은 충돌 쿼리에 단순화된 지오메트리를 사용하게 되고, 결국 캐릭터가 출입구를 통해 들어갈 수 없게 되어버립니다. 이 경우 대신 두 개의 동일한 메시를 사용해서 하나는 복잡한 지오메트리를, 다른 하나는 단순한 지오메트리를 사용할 수 있습니다.

다음 단계는 커스텀 Blueprint 클래스 내에서 두 메쉬를 결합하는 것입니다.

  • BuildingBP Blueprint를 여세요.

이 Blueprint는 서로의 바로 위에 배치된 두 개의 스태틱 메쉬 컴포넌트를 사용합니다.

BuildingBP Blueprint의 스태틱 메쉬 컴포넌트
StaticMesh_Complex 컴포넌트의 경우 Building_Complex 메쉬가 사용됩니다.
StaticMesh_Simple 컴포넌트의 경우 Building_Simple 메쉬가 사용됩니다.
StaticMesh_Simple 렌더링 설정

StaticMesh_Simple 컴포넌트의 경우 Rendering 섹션에서 'Visible'이 비활성화되고 'Hidden in Game'이 활성화됩니다. 이는 이 메쉬가 단순한 지오메트리에만 사용되어 Spatial Audio에 대한 교차 검사를 수행할 수 있기 때문입니다.

StaticMesh_Simple Collision Presets 설정

또한 StaticMesh_Simple 컴포넌트의 경우 Collision Presets 속성이 'Trigger'로 설정됩니다. 단순화된 지오메트리는 출입구에 장벽을 만듭니다. 'Trigger' 충돌 프리셋을 사용하면 캐릭터와 기타 게임 오브젝트가 단순화된 지오메트리를 통해 자유롭게 이동할 수 있습니다.

StaticMesh_Simple 컴포넌트에는 AkRoom 컴포넌트와 AkLateReverb 컴포넌트가 연결되어 있습니다. 이러한 방식으로 Building_Simple 메쉬의 단순 충돌이 공간 교차 검사에 사용됩니다.

사운드가 BuildingBP의 메쉬에서 반사 및 회절되도록 하려면 Static Mesh Component 중 하나에 AkGeometry Component를 추가해야 합니다. 이 솔루션은 Reverb Parameter 예측 도 사용하고 있으므로 StaticMesh_Simple 컴포넌트에 추가하는 것이 가장 좋습니다. AkLateReverb Component는 형제 AkGeometry Component의 Acoustic Textures를 사용하여 HF Damping을 계산합니다. AkGeometry Component를 Static Mesh로 설정하면 단순 충돌 메쉬 대신 전체 복합 지오메트리(full complex geometry)가 Wwise Spatial Audio로 전송됩니다.

마지막으로, AkPortal Component가 연결된 Box Collision Component는 출입구에 음향 포털을 추가하는 데 사용됩니다.

BuildingBP Blueprint의 포털

건물 내부가 잘 보이도록 Point Light도 추가되었습니다.

참고: 지오메트리를 Wwise로 보낼 때에는 각 모서리에 연결된 삼각형이 2개 이하여야 한다는 제한이 있습니다. Spatial Audio와 함께 사용할 메쉬를 디자인할 때 이 점을 고려해야 합니다.
참고: Wwise에서 Game Object Profiler를 사용할 때 Room Extent는 공간에 할당된 지오메트리와 관계없이 항상 초록색 직육면체로 표시됩니다.
참고: Unreal에서 메쉬에 단순 충돌을 추가하는 것은 메쉬가 볼록한 보양일 경우에만 제대로 작동합니다. 보다 복잡한 메쉬 구조의 경우 단순 충돌 지오메트리를 사용해서 메쉬를 근사화하는 것이 가장 좋습니다. Static Mesh 에디터의 Collision 메뉴에서 단순 충돌 프리미티브(Simple collision primitive)를 메시에 추가할 수 있습니다.
메시 에셋에 충돌 프리미티브 추가하기
자세한 내용은 스태틱 메쉬에 콜리젼 구성하기를 참고해 주세요.


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 the Reverb Assignment Table chosen in the Integration Settings to determine which Decay values map to which Aux Busses.

Reverb Assignment section the Integration Settings
참고: Integration Settings는 Edit > Project Settings...를 클릭하여 Unreal Project Settings를 열어서 접근할 수 있습니다. 그런 다음 Unreal Project Settings의 왼쪽 패널에서 Wwise 섹션으로 스크롤하고 Integration Settings를 클릭하세요.

Before setting up the Decay keys in the table, we can observe the estimated Decay values for the existing reverbs in our level.

  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으로 설정됩니다. This is because we have not yet set up the Reverb Assignment Table.

Auto Assign Aux Bus를 활성화하면 뷰포트에서 각 AkSpatialAudioVolume 이 선택될 때 일부 텍스트 정보가 위에 표시됩니다. 또한 이 정보는 Reverb Parameter Estimation 아래의 Details 패널에서도 확인할 수 있습니다. We can use these values to set up the Reverb Assignment Table.

  1. Integration Settings를 여세요.
  2. 이미 펼치지 않았을 경우 Reverb Assignment Map 섹션을 펼치세요.
    Reverb Assignment section the Integration Settings
  3. Open the Reverb Assignment Table asset.
  4. Click Add in the toolbar.
  5. Set the Decay value of this new row to 1.0 and set the Aux Bus to SmallRoom.
  6. Repeat the previous two steps to add another row with a Decay value of 2.0 for the LargeRoom Aux Bus.

With the Reverb Assignment Table set up like this, any Room with a Decay value between 0.0 and 1.0 sends to the SmallRoom Aux Bus and any Room with a Decay value between 1.0 and 2.0 sends to the LargeRoom Aux Bus. Decay values above 2.0 sends to the 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

To facilitate quick and accurate placement of AkAcousticPortal and AkSpatialAudioVolume actors, the Wwise Unreal integration is able to detect surrounding static mesh geometry in a scene and determine the appropriate size and location of the portals and volumes within the scene. Fit to Geometry(지오메트리에 맞추기)는 다양한 일반적 공간, 창, 문의 모양에서 작동할 수 있습니다. This section gives an overview of how to use Fit To Geometry for AkAcousticPortal and AkSpatialAudioVolume actors.

참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다.
참고:

Fit To Geometry가 올바르게 작동하려면 뷰포트 옵션에서 Realtime이 반드시 활성화되어 있어야 합니다.

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

Fit To Geometry 전제 조건

  • Select the desired default collision channel inside the Integration Settings. Fit To Geometry 기능은 Unreal Engine을 사용하여 레이 트레이싱을 실행합니다. 이 레이는 반드시 주변의 고정 메쉬 지오메트리와 교차할 수 있어야 합니다. Therefore, the collision channel must correspond with the collision parameters of the static mesh that the AkAcousticPortal and AkSpatialAudioVolume actors are placed within.
  • If desired, individual AkAcousticPortal and AkSpatialAudioVolume actors can override the default collision channel and choose a different one. This setting is found in the Details panel for both AkAcousticPortal and AkSpatialAudioVolume actors.
  • If automatic Surface Property assignment is desired, set up the Geometry Surface Properties Table in the Integration Settings. 더 많은 정보는 Automatically Assigning Surface Properties to AkSpatialAudioVolumes 을 참고해 주세요.
참고: 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 작업은 액터의 원점으로부터 벽을 조사하기 위해 여러 개의 레이 트레이싱을 구형의 모양으로 방출함으로써 실행됩니다. 이 레이가 부딪히는 지점은 초록색으로 표시됩니다 (이 지점이 무시될 경우에는 빨간색으로 표시됩니다). It can be useful to take note of where the rays hit to make sense of the resulting shape, to make sure that the correct collision channel is being used, and lastly, to make sure the correct properties are assigned to the resulting surfaces.
  • 지원되는 모양은 세 가지 입니다. 모양의 종류는 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) 모양을 사용할 때 가장 유용합니다. 왜냐하면 레이 충돌 지점의 개수를 낮추는 것이 방향 결정에 오류를 발생시킬 수는 없지만 (정렬된 상자에는 고정된 방향이 있기 때문에) 레이 필터링은 모든 모양과 사용할 수 있기 때문입니다.

Automatically Assigning Surface Properties to AkSpatialAudioVolumes

  • Surface Properties (that is Acoustic textures and Transmission Loss values) are automatically assigned to the surfaces of the AkSpatialAudioVolume based on the collision results of the ray traces performed by Fit To Geometry, and the acoustic material mapping defined in the Geometry Surface Properties Table chosen in the Integration Settings.
    • Since the result of a ray trace in the Unreal Engine yields a physical material, the table maps each physical material to surface properties.
    • 두 개 이상의 레이 충돌이 AkSpatialAudioVolume의 결과적 표면으로 투영될 가능성이 높으며 다양한 레이 충돌이 각각 서로 다른 물리적 재질을 반환할 수 있습니다. The physical material with the most hits is chosen.
    • It is possible that some rays will hit undesirable surfaces that are not representative of the properties of the resulting AkSpatialAudioVolume surface. For example, a drywall surface may have a wooden trim in some areas, but using 'drywall' for the acoustic texture representation makes more sense than 'wood' for the wall as a whole. 대부분의 경우 면적이 넓은 텍스처를 충돌하는 지점이 충분하기 때문에 해당 텍스처로 지정됩니다. If not, try translating the AkSpatialAudioVolume slightly so that the hit points move slightly, or if desired results are still not achieved, the acoustic texture can be manually assigned in the Details panel for the AkSurfaceReflectorSet component.
  • It is necessary to create the desired mapping between physical materials and surface properties in the Geometry Surface Properties Table before using Fit To Geometry on an AkSpatialAudioVolume. If you change the material mapping after fitting an AkSpatialAudioVolume, its properties are not updated.
참고: Fit To Geometry는 반드시 Unreal Engine의 복합 충돌(complex collision)을 사용하여 고정 메쉬의 각 삼각형을 찾아야 하기 때문에 고정 메쉬 액터의 'Phys Material Override' 속성에 지정된 물리적 재질을 가져올 수가 없습니다. This property only applies to simple collision, and will not be mapped to Surface Properties.

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: Wwise Unreal 통합 모듈 이해하기

Wwise Unreal 통합 모듈 이해하기

다음 모듈을 사용하여 작업 흐름에 맞게 Wwise Unreal 통합을 커스터마이징할 수 있습니다.

Wwise 사운드 엔진 런타임 모듈:

  • AkAudio 모듈
    통합에서 대부분의 사용자 대면 기능을 위한 루트 모듈입니다. 통합을 커스터미이징하려는 경우가 아니면 일반적으로 이 모듈이외에 다른 모듈을 살펴볼 필요는 없습니다.
  • Wwise Module
    A simple module that links to all of the other optional modules.
  • WwiseSoundEngine 모듈
    가장 하위 레벨에서 Wwise Sound Engine 라이브러리와 Unreal 프로젝트 사이의 다리 역할을 합니다.
  • WwiseFileHandler 모듈
    Wwise Sound Engine에 미디어 및 SoundBank와, Wwise Location Resolver 및 I/O Hook의 요청을 처리하는 기능을 포함한 필요한 외부 음원을 제공합니다.
  • WwiseResourceLoader 모듈
    보다 높은 레벨에서는 모든 Wwise 오브젝트 유형을 처리하고 이러한 Wwise 오브젝트의 파일을 로드 및 언로드하기 위해 WwiseFileHandler 모듈 와 적절하게 인터페이스합니다. 쿠킹하지 않은 프로젝트 및 Editor 모듈:
  • WwiseProjectDatabase 모듈
    Wwise 프로젝트에서 생성된 SoundBank의 현재 상태에 관한 메모리 기반 데이터베이스 뷰를 제공합니다.
  • WwiseResourceCooker 모듈
    Wwise Object Info 구조체를 WwiseResourceLoader용 Cooked 구조체로 변환하고 요청된 오브젝트의 파일을 GeneratedSoundBanks에서 패키징 프로세스의 Staging 폴더로 복사합니다. 선택적인 모듈:
  • WwiseSimpleExternalSourceManager 모듈
    내부 테스트나 Wwise Demo Game과 같은 Audiokinetic이 제공하는 일부 프로젝트에 사용되는 최소한의 External Source Manager 구현입니다.
  • AkAudioMixer 모듈
    프로젝트에서 오디오 출력과 오디오 서브믹스를 Unreal 오디오 컴포넌트에서 Wwise 프로젝트의 믹서로 연결할 수 있게 해줍니다.


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 모듈

WwiseSoundEngine 모듈

고정 사운드 엔진 브리징

WwiseSoundEngine Module에는 Wwise Sound Engine API 인터페이스와 다양한 번들 플러그인이 들어 있습니다.

Wwise Sound Engine의 기능 대부분은 가장 하위 레벨에서 연결됩니다. Wwise Sound Engine API를 호출하려면 반드시 브리지를 통해야 합니다.

auto* SoundEngine = IWwiseSoundEngineAPI::Get();
if (UNLIKELY(!SoundEngine)) return;
주의: AK:: 나 ak:: 함수를 직접 사용하지 마세요. 링커 오류, 불안정, 크래시가 발생할 수 있습니다.

Wwise 2022.1 이전 버전에서는 AkAudio 모듈에서 AkAudioDevice의 모든 AK::SoundEngine 호출을 만들어야 했습니다. 이러한 방식은 더 이상 필요하지 않지만 여전히 사용할 수는 있습니다. 이 방식은 Blueprint할 수 있는 작업과 함께 Unreal 클래스를 Wwise 네이티브 유형으로 변환하는 등 사용자 코드에 더 많은 기능을 제공하기 때문에 경우에 따라 이 방식을 선호할 수도 있습니다.

두 번째 모듈 WwiseSoundEngine_2022_1은 WwiseSoundEngine 인터페이스에서 실제 Wwise 2022.1 Sound Engine API로 연결하는 코드를 포함하고 있습니다.

Global Callback

통합에는 Global Callback 싱글톤(singleton) 기능이 포함되어 있습니다. 이 기능을 이용하면 게임과 도구가 Sound Engine의 AkGlobalCallback을 활용할 수 있습니다. 콜백에 대한 자세한 설명은 Wwise SDK 문서의 AkCallbackType 을 참고해 주세요.

각 콜백에 대해 다음 함수을 사용할 수 있습니다.

  • <Location>Async: Task Graph 스레드가 사용 가능하게 되는 즉시 콜백이 실행되는 가장 효율적인 방법입니다. 콜백이 다중 스레드 코드에 대한 알맞은 사례를 따르는지 반드시 확인하세요.
  • <Location>Sync: 가장 반응이 빠르지만 또한 가장 위험도가 높은 방법입니다. Sound Engine 스레드에서 콜백을 실행하며 속도 저하나 오디오 결함을 발생시킬 수 있습니다. Unreal 스레드 풀 외부에서 생성된 스레드의 제한 사항도 고려해야 합니다. 작업의 Unreal 스레드 로컬 데이터는 서로 다르며 스택의 크기와 우선 순위도 다를 수 있습니다. 다시 말해, 위험 사항을 고려해서 본인의 책임하에 사용해 주세요!
  • <Location>Game: 콜백이 Game Thread에서 실행되어야 하는 사용자 인터페이스 작업에 선호되는 방법입니다.

각 함수에 따라 알맞은 용도가 있습니다. 모든 상황에 완벽한 함수는 없습니다.


Wwise Unreal Integration Documentation: WwiseFileHandler 모듈

WwiseFileHandler 모듈

The WwiseFileHandler module prepares and handles all External Sources, media, and SoundBank files. 이 모듈은 파일을 미리 로드하고 스트리밍하지만 모듈 자체가 관련 파일의 종속성을 확인하지는 않습니다.

각 파일은 한 번만 열리는 개별 오브젝트로 처리되며 파일 사용은 File State를 통해 개별적으로 추적됩니다. 아래에 설명된 세 가지 관리자 중 하나에 File State를 사용할 수 있게 되면 해당 파일을 Sound Engine I/O Hook과 Sound Engine File Location Resolver 에서 사용할 수 있게 됩니다.

WwiseFileHandler는 파일을 File State의 옵션으로 함께 먼저 등록하기 위해 WwiseResourceLoader 가 필요합니다. 그러면 Sound Engine의 File Location Resolver에서 해당 파일에 접근할 수 있게 됩니다.

메타사운드가 GeneratedSoundBanks 폴더에 저장되며 패키징 정보로 에셋과 함께 쿠킹되기 때문에 WwiseResourceLoader 모듈 는 어떤 리소스가 필요한지 결정할 수 있고 WwiseFileHandler는 필요할 수 있는 리소스를 로드하기 전에 모든 File State를 제공하게 됩니다.

File State

File State는 WwiseFileHandler 모듈에 known file을 선언합니다. Load와 Unload 작업을 사용해서 파일이 WwiseFileHandler에 표시되어 이미 로드되었는지 여부와 참조 횟수를 결정합니다. 해당 파일에 대한 사용자가 있는 한 해당 File State는 활성 상태로 유지됩니다.

각 File State와 관련된 새로운 모든 작업은 해당 Execution Queue에서 실행되며 대기 중인 작업은 비동기식이며 순차적으로 실행됩니다. 이러한 File State의 비동기식 특성으로 인해 각 File State에는 공용 비동기 메소드(public asynchronous method)와 보호된 동기 메소드(protected synchronous method)의 두 가지 레벨이 있습니다. 각 공용 메소드는 그저 작업을 Execution Queue로 푸시하는 래퍼(wrapper)입니다.

여기에서는 Closed, Opened, Loaded의 세 가지 기본 상태를 사용할 수 있습니다. 이러한 각 상태의 정의는 약간 모호하지만 대략적으로 다음과 같이 정의할 수 있습니다.

  • Closed: 해당 파일을 안전하게 삭제할 수 있음. 시스템에서 사용 중인 리소스가 없으며 적은 양의 메모리만 사용합니다.
  • Opened: 정의 파일 작업이 완료됨. 해당 파일이 열렸고 부분적 또는 완전히 메모리에서 읽혔을 수 있는 상태입니다. 스트리밍 미디어의 경우 파일이 열려 있으며 미리 로드된 데이터가 필요한 양 만큼 캐시되어 있는 상태입니다. 메모리에 계속 존재하는 미디어의 경우 파일이 열린 다음 전부 읽히고 닫힌 상태입니다. 사용 가능한 포인터는 Opened 상태입니다.
  • Loaded: 정의된 Sound Engine 작업이 완료됨. Sound Engine이 파일을 인식하고 있거나 사용할 수 있는 상태입니다. 예를 들어, 스트리밍 미디어의 경우 I/O Hook에서 파일의 콘텐츠를 읽을 수 있습니다. 메모리에 로드된 미디어 파일의 해당 데이터는 SetMedia 작업을 통해 Sound Engine으로 전송되었습니다. 마찬가지로 SoundBank의 경우 데이터는 LoadBank 메소드 계열을 통해 처리됩니다.

또한 기본 File State 중 하나로의 전환을 나타내는 중간 File State도 있습니다.

작업이 시간이 오래 걸릴 수 있고 비동기적이기 때문에 여러 작업이 동일한 파일이 로드되기를 기다리고 있을 수 있습니다. 이럴 경우 하나의 작업만 진행되고 다른 모든 작업은 작업이 완료될 때까지 기다린 후 상태를 반환합니다. . 예를 들어, 12개의 서로 다른 Event가 포함된 User-Defined SoundBank에서 12개 Event 모두 동일한 SoundBank를 로드하도록 요청할 수 있습니다. 이 경우 Event는 해당 SoundBank가 로드되었을 때만 진행됩니다.

Unloading 시 오디오 작업이 길다면 특별한 주의가 필요합니다. 예를 들어, 긴 리버브 꼬리가 있는 AK Convolution Reverb 파일은 공명(resonation)이 완료될 때까지 언로드할 수 없습니다. 또는 특정 미디어의 반복 재생이 계속해서 중단되지 않을 수도 있습니다. 이러한 작업은 몇 초 동안 일시적인 상태로 유지될 수 있습니다.

또한 리버브의 꼬리가 처리되는 동안, 우연히 동일한 미디어가 필요한 새 맵에 대한 리소스를 수집하는 등 같은 파일이 요청될 수도 있습니다. 이 경우 Unloading 상태에 갇히지 않고 Reloading으로 상태가 변경되고 Unloading 작업이 가능한 한 빨리 취소된 다음 Loaded 상태로 돌아갑니다.

Sound Engine I/O Hook과 Sound Engine File Location Resolver

Sound Engine I/O Hook과 Sound Engine File Location Resolver는 함께 작동하여 스트리밍된 에셋의 수명을 처리합니다. 먼저 File Location Resolver는 WwiseFileHandler에게 파일을 열도록 요청합니다. 그리고 파일이 열리면 I/O Hook은 WwiseFileHandler가 필요에 따라 해당 파일에 대한 비동기식 Read 요청을 충족하도록 요청합니다.

Resolver를 통해 파일을 열려면 다음 단계를 따르세요.

  1. 전달된 Short ID를 기반으로 File State 맵을 찾습니다.
  2. 새로운 스트리밍 요청을 확인하도록 File State에 요청해서 File State 알고리즘에 따라 상태가 변경될 수 있도록 합니다.
  3. Sound Engine에 결과를 반환합니다.

일반적인 게임에서 이 작업은 모두 1밀리초 이내에 완료될 수 있지만 이 1밀리초가 긴 것으로 간주될 수 있습니다. 그러나 File State가 이미 열려 있고 사용할 준비가 되었기 때문에 추가 시스템 I/O 작업이 아예 필요하지 않을 수 있습니다.

스트리밍을 위해 파일이 열린 다음, I/O Hook의 비동기 Read 작업은 이러한 Read 작업을 독점적으로 처리하는 또 다른 전용 Execution Queue를 통해 처리됩니다. 이 큐의 목표는 효율적이고 빠른 Read 작업을 최적화된 방식으로 일괄 처리하는 것입니다. 또한 이 큐는 스트리밍된 미디어에 대한 Close 작업을 제공하고 보류 중인 Read 작업 다음에 Close 작업이 수행되도록 합니다.

모든 Sound Engine 콜백과 마찬가지로 이 작업은 Unreal이 소유하지 않은 스레드에서 호출됩니다. 작업의 Unreal 스레드 로컬 데이터는 서로 다르며 스택의 크기와 우선 순위도 다를 수 있습니다. 이로 인해 Stat 수집과 같은 많은 Unreal 작업이 실패하게 됩니다.

파일 이름 기반 Location Resolver

Location Resolver에서 대부분의 Open 작업은 다양한 맵에 저장된 Short ID를 기반으로 수행됩니다.

파일 경로 이름을 기반으로 한 파일 열기는 통합에서 지원되지 않습니다. Unreal 통합은 Short ID 기반으로만 파일을 엽니다. 그러나 파일 경로 이름에 따라 Sound Engine이 파일을 열 수 있는 경우가 있습니다. 예를 들어, XML Error Translator와 같은 일부 알고리즘은 'SoundBanks.xml' 파일을 요청합니다. 또 다른 경우는 Sound Engine이 파일을 쓰는 경우입니다. 이는 일반적으로 디버그 및 프로필 빌드에서 로깅 목적으로 수행됩니다.

SoundBank와 Media Manager

SoundBank Manager는 LoadSoundBank 및 UnloadSoundBank 작업을 제공하는 반면 Media Manager는 LoadMedia 및 UnloadMedia 작업을 제공합니다. 이 두 관리자는 생성된 File State를 추적하고 File State가 스트리밍 목적으로 요청되면 Location Resolver에 정보를 보냅니다.

둘 다 동일한 Execution Queue 패턴을 통해 비동기적으로 작동합니다. File State 생성 프로세스는 상대적으로 효율적이기 때문에 일반적으로 여러 작업을 동시에 실행할 때 지연되는 일은 거의 없습니다. 그러나 파일이 사용하기에 적합한 상태여야 하고 Sound Engine 로드/언로드를 해야해서 콜백을 실행하는 데 더 많은 시간이 걸릴 수 있습니다.

External Source Manager

The External Source Manager (refer to 외부 음원 사용하기) manages File States for External Sources. It is designed to be overridden by a user-developed module that implements a data model to track External Source media dependencies. The Wwise Simple External Source Manager is an example that uses Data Tables (.csv files) to map the External Sources to their corresponding media.

The manager provides a supplemental, editor-only operation for cooking that the user can override to properly stage External Source files. With this approach, users don't have to override the WwiseResourceCooker 모듈 only to support their External Source Manager implementations.

Because the posted Events must include the External Sources they use when they are posted, the Integration automatically queries the External Source Manager for this information at the appropriate time. 더 자세한 내용은 Wwise Simple External Source Manager 사용하기 을 참고하세요.


Wwise Unreal Integration Documentation: WwiseResourceLoader 모듈

WwiseResourceLoader 모듈

WwiseFileHandler 모듈 보다 한 계층 높은 WwiseResourceLoader 모듈은 Wwise 프로젝트 에셋과 그 의존성을 처리합니다. WwiseFileHandler와 마찬가지로 WwiseResourceLoader가 수행하는 두 가지 기본 작업은 다양한 리소스를 로드/언로드하는 일 입니다. 그러나 Wwise ResourceLoader는 모든 에셋 유형에 대해 이러한 작업을 처리합니다.

예를 들어, Aux Bus는 하나의 SoundBank와 연결될 수 있습니다. 그리고 다른 SoundBank와 연결된 다른 Aux Bus에 종속될 수도 있습니다. 더불어, 다양한 Effect 플러그인에서 필요한 대로 미디어 파일과 연결할 수 있습니다. 이러한 모든 SoundBank와 미디어 파일은 Aux Bus를 사용하기 전에 로드되어야 합니다. WwiseResourceLoader가 Aux Bus를 로드하라는 요청을 받으면 WwiseFileHandler는 이러한 모든 리소스를 로드합니다.

Event와 Switch Container 리소스

로드하기 가장 복잡한 Wwise 오브젝트는 바로 Wwise 동작의 기초인 Event입니다. Wwise Event는 모든 유형의 Wwise 오브젝트를 포함할 수 있습니다. Event를 위해서 외부 음원을 준비하고 여러가지 필수적인 SoundBank와 미디어 파일을 로드해야 할 수도 있습니다. 또한 Switch Container 계층 구조 내에 이러한 모든 종속성이 중첩되어 있을 수도 있습니다. 그리고 AkAudioEvent 에셋에는 LoadOnReference 옵션이 있는데, 이 옵션은 관련 Switch와 State 조합들이 현재 맵에 로드되어 있을 때만 Switch Container 리소스를 로드합니다. 이 최적화는 기본적으로 비활성화되어 있지만 큰 Switch Container 계층 구조를 사용할 경우 메모리를 절약할 수 있습니다.

예를 들어 바닥 재질 Switch에 의존하는 Switch Container를 사용하는 Play Footsteps Event는 현재 로드된 맵의 Switch에 대한 사운드만 로드합니다. 또한 DLC를 통해서만 제공되는 고품질 버전이나 신발 종류 및 캐릭터의 무게나 속도와 같이 동적으로 선택되는 조건과 같이 여러 레이어의 Switch Container가 존재할 수 있습니다. 이러한 경우 조건에 따라 매우 복잡한 Switch Container 계층 구조가 존재할 수 있고 이 모든 구조가 주어진 시간 내에 항상 로드되지 못할 수 있습니다.

통합에서 Switch Container Leaf는 이러한 조건을 정리하는 데 도움이 됩니다. 여기서 각 리프(leaf)는 조건이 충족될 때 로드해야 하는 관련 SoundBank, 미디어, 외부 음원과 잠재적인 조건들의 집합(Switch와 State)을 나타냅니다.

Switch나 State와 같은 Group Value는 에셋으로 프로젝트에 포함되고 배포되는 게임에 패키징될 수 있지만 Sound Engine에 노출된 메소드를 직접 호출하여 여전히 프로그래밍을 통해 설정할 수도 있습니다. 이러한 경우 LoadOnReference 옵션을 사용할 때 Group Value를 설정하기 전에 해당 정보를 WwiseResourceLoader로 보내 잠재적인 파일을 로드할 준비를 할 수 있도록 하는 것이 중요합니다. 예를 들어 전체 애플리케이션을 High Quality로 설정하는 코드는 WwiseResourceLoader가 해당 Group Value의 값으로 설정하도록 알려야 합니다. 쿠킹된 경우에도 프로그래밍을 통해 Switch, State, Game Parameter 구조에 이러한 데이터를 전달하는 것이 가능합니다.

참고
  • Optimizing Memory Usage with Reference-Loaded Switch Containers

언어 변경하기

애플리케이션 언어가 변경되면 WwiseResourceLoader는 현지화된 에셋을 다시 로드합니다. 긴 시간이 걸리는 이 과정은 현지화된 모든 SoundBank와 미디어를 언로드한 다음 새로운 언어에 해당하는 리소스를 로드합니다. 이 작업 중에는 영향을 받는 에셋을 일시적으로 사용할 수 없으며 게시할 경우 오류가 발생할 수 있습니다.


Wwise Unreal Integration Documentation: WwiseProjectDatabase 모듈

WwiseProjectDatabase 모듈

WwiseProjectDatabase 모듈은 Editor를 포함해서 쿠킹되지 않은 프로젝트에서 사용할 수 있습니다. 이 모듈은 Wwise 프로젝트에서 생성된 SoundBank의 현재 상태에 관한 메모리 기반 데이터베이스 뷰를 제공합니다. SoundBank를 생성할 때 만들어진 JSON 메타데이터 파일에서 사용 가능한 모든 값과 정보는 Project Database에서 접근할 수 있습니다. 이 뷰는 정보 제공용이며 생성된 파일이 업데이트될 때만 변경됩니다. 새로운 데이터베이스 버전이 비동기적으로 로드되는 경우에도 해당 데이터베이스의 구조체에 대한 참조는 스레드로부터 안전합니다.

다음은 데이터베이스가 제공하는 두 가지 유형의 정보입니다.

  • Metadata structures는 JSON 파일의 원시적 정보를 제공합니다.
  • Ref classes는 메타데이터와 관련된 인접 정보에 대한 접근을 허용합니다.

Metadata 구조체

Metadata 구조체는 생성된 SoundBanks 메타데이터를 설명하는 JSON 파일과 동일하게 정의됩니다. 맥락(context)은 제공되지 않으며 이를 위한 편리한 도구는 거의 없습니다. 소수의 예외를 제외하고 이러한 구조체의 멤버 이름은 JSON 파일의 이름과 동일합니다.

파일 정의 자체의 경우 파일이 선언할 수 있는 선택적인 루트 오브젝트의 종류를 정의하는 WwiseMetadataRootFile 오브젝트에서 시작하세요. 그러면 이 구조체는 발생할 수 있는 다양한 내부 오브젝트 및 값을 노출합니다.

이 오브젝트와 값이 메모리에 로드되면 이러한 구조체가 생성된 SoundBank의 명확한 이미지를 작고 효율적인 형태로 나타냅니다.

이 정보의 단 하나의 복사본이 FWwiseRootDataStructure의 메모리와 FWwisePlatformDataStructure JSON 파일에 보관됩니다.

Ref 클래스

Ref 클래스는 필요한 메타데이터를 찾는 방법에 대한 설명을 통해 각 메타데이터 오브젝트를 다시 정의합니다. 이 클래스는 생성된 SoundBank의 메타데이터에는 정보의 중복이 거의 없고 다양한 데이터 구조체에 대한 참조를 사용하기 때문에 유용합니다. 따라서 Event에는 ID로 참조하는 미디어 목록이 있지만 파일의 위치와 같은 미디어의 메타데이터는 더 높은 계층의 SoundBank 메타데이터에서 정의됩니다.

예를 들어 Event의 Switch Container 값을 가리키기 위해 Ref 클래스는 파일의 루트에 대한 공유 포인터 복사본을 유지하고 Switch Container를 찾는 방향을 포함합니다. 이 방향은 해당 파일, SoundBanks 구조 안, 첫 번째 SoundBank, 네 번째로 선언된 Event, 세 번째로 선언된 Switch Container와 같은 식으로 제공됩니다.

다음 샘플 코드에서 설명된 것을 보세요.

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);
};

예시 미디어:

"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"
}

본질적으로 Ref 클래스는 맥락(context)을 제공합니다. 따라서 Switch Container 정보를 얻을 수 있으며 Event, SoundBank, 해당 파일과 같은 상위 클래스에 대한 정보도 얻을 수 있습니다.

참조된 일부 유형은 추가 정보를 요구합니다. 예를 들어 Platform 정보에는 ProjectInfo.json과 PlatformInfo.json이라는 두 개의 보완(complementary) 파일로 정보가 분할되어 있기 때문에 플랫폼 Ref에는 자연스럽게 두 개의 서로 다른 구조체가 포함됩니다. 마찬가지로 일부 다른 참조 형식은 여러 위치에 있을 수 있으며 Ref 클래스는 이러한 특수성을 수용하려고 시도합니다.

마지막으로 Ref 클래스는 추가적인 유틸리티를 제공합니다. 필요한 전역적인 맵을 전달하면 특정 Wwise 오브젝트 내부에 포함된 Ref 클래스와 함께 추가 정보를 얻을 수 있습니다. 예를 들어 특정 Event 정의에서 요청된 미디어를 요청하면 미디어를 Refs로 반환받을 수 있습니다.

Ref 정보는 기본 및 파생 구조체(derived struct)로 선언되므로 Switch Container에서 Event의 모든 Switch Container 값을 요청하고 동시에 이러한 형제들을 불러올 수 있습니다. Event에 포함된 다른 유형의 정보도 마찬가지입니다.

AnyRef 클래스

더 높은 계층에서 AnyRef 클래스는 모든 종류의 Ref 구조체에 대한 포인터를 가지고 있습니다. 여기에는 유형(type)과 공유 포인터(shared pointer)가 담겨 있습니다. AnyRef 수준에서는 오브젝트의 Short ID, GUID, 이름 검색과 같은 제한된 작업을 할 수 있습니다. 그 밖의 모든 작업은 boxed Ref 오브젝트를 해당 형식으로 캐스팅하도록 요청할 수 있습니다. 이 클래스가 Null 오브젝트를 가리킬 수 있기 때문에 AnyRef 형식은 참조가 아니라 Ref 오브젝트에 대한 포인터입니다.

정보 접근하기: WwiseProjectDatabase와 WwiseDataStructure

WwiseProjectDatabase 모듈은 해당 접근 메소드를 통해 쿼리를 처리합니다. 예를 들어, 알려진 모든 SoundBank나 하나의 특정 SoundBank를 요청할 수 있습니다. 해당 데이터 자체는 DataStructure 멤버에 보관됩니다.

이 데이터 구조체안에는 두 가지 구조체가 있습니다.

  • Root structure에는 특정 프로젝트 구조에 관한 각 플랫폼의 기본 정보가 포함되어 있습니다.
    • 로드되지 않은 경우에도 프로젝트에 사용 가능한 모든 플랫폼을 나타내는 Platform 목록.
    • Language 목록
  • 프로젝트의 모든 정보가 플랫폼별로 들어 있는 Platforms structure map.

일반적으로 WwiseProjectDatabase에는 쿠킹과 패키징 목적으로 한 번에 하나의 플랫폼만 로드됩니다. 그러나 둘 이상의 플랫폼을 로드하는 것도 가능합니다.

참고: Mac에서 프로젝트의 Unreal Editor로 작업할 때는 Mac 플랫폼만 로드해야 합니다.

Data 구조 구조체에는 다음이 포함됩니다.

  • GeneratedPlatformFiles 속성에 로드된 모든 파일 이름 목록.
  • JsonFiles 속성에서 파싱된 각 JSON 파일의 고유한 복사본 하나.
  • 접근 가능한 각 데이터 조각에 대한 Ref.

또한 Data 구조체는 GetRef와 같은 함수를 통해 템플릿으로 된 접근을 허용합니다.


Wwise Unreal Integration Documentation: WwiseResourceCooker 모듈

WwiseResourceCooker 모듈

WwiseResourceCooker 모듈은 다음과 같은 기능을 제공합니다.

  • WwiseObjectInfo 구조체를 WwiseResourceLoader 모듈 에 대해 쿠킹된 구조체로 변환합니다.
  • 요청된 오브젝트 파일을 GeneratedSoundBank에서 패키징 프로세스에서 사용하는 Staging 폴더로 복사합니다.
참고
  • Unreal Engine에서 콘텐츠 쿠킹하기 문서

Wwise 오브젝트를 위해 쿠킹된 데이터 준비하기

특정 Wwise 오브젝트를 식별하는 WwiseObjectInfo 구조체에서 시작하여 WwiseResourceCooker는 해당 Wwise 오브젝트와 관련된 Project Database에서 모든 정보를 수집하고 해당 정보가 포함된 '쿠킹된' 데이터 구조체를 반환합니다.

SoundBank나 미디어 파일의 경우 이들이 빌딩 블록이고 개별 파일을 나타내기 때문에 간단한 작업입니다. 외부 음원도 비교적 단순하지만 사용자에 의해 정의되기 때문에 얼마나 복잡할 지는 알 수 없습니다. 그래서 기본적으로 쿠킹된 데이터 결과는 디버깅이 아닌 정보로 쿠키만 가지고 있습니다.

쿠킹된 일부 데이터는 Short ID만 포함하고 있습니다. 쿠키가 있는 외부 음원와 마찬가지로 Short ID는 Trigger, Game Parameter(RTPC), Acoustic Texture의 쿠킹된 데이터에 필요한 유일한 정보입니다. 마찬가지로 Switch와 State는 자신이 속한 그룹의 식별자와 자신을 나타내는 값만 필요합니다.

Auxiliary Bus나 Effect ShareSet과 같은 다른 오브젝트는 조금 더 복잡할 수 있습니다. 여러가지 필수적인 미디어, SoundBank, 외부 음원, Aux 버스, 여타 다른 Switch Container의 요소를 가질 수 있는 Even가 가장 복잡합니다.

기본 인스턴스화 vs. 플랫폼 인스턴스화

WwiseResourceCooker는 Editor와 쿠킹되지 않은 프로젝트에서 사용되는 기본 인스턴스화를 가집니다. 이 인스턴스화는 Play in Editor 모드에 사용되며 Wwise 에셋이 Editor에 로드될 때 요청에 따라 쿠킹된 데이터를 제공합니다. 이 데이터는 패키지된 게임의 Wwise 에셋에서 직렬화되는 쿠킹된 데이터와 비슷합니다. 유일한 차이점은 Editor 쿠킹된 데이터가 GeneratedSoundBanks 폴더에 있는 리소스 파일(.bnk나 .wem)을 직접 사용한다는 것입니다. 반대로 패키지로 쿠킹된 데이터는 게임과 함께 패키징된 리소스 파일을 사용합니다.

패키징할 때 일반적으로 외부 쿠킹 프로세스가 생성되며 특정 플랫폼에서의 쿠킹만을 담당합니다. 예를 들어 기본 인스턴스화가 Mac 플랫폼용인 Mac 컴퓨터에서 Android WwiseResourceCooker를 인스턴스화하면 Android 게임을 패키징할 수 있습니다.

플랫폼에 대한 Project Database를 로드하는 데 시간이 오래 걸릴 수 있기 때문에 각 쿠킹 프로세스에 필요한 플랫폼만 로드됩니다. 일반적으로 이때 Project Database에 하나의 플랫폼만 로드됩니다. 그러나 동일한 프로세스가 여러 플랫폼을 쿠킹하거나 쿠킹이 에디터 프로세스 내에서 직접 실행되는 경우 여러 플랫폼이 로드될 수 있습니다.

Wwise 리소스 쿠킹부터 Staging까지

내부적으로 캐시된 쿠킹된 데이터를 기반으로 필요한 모든 파일은 GeneratedSoundBanks에서 Staging 폴더로 복사됩니다. Media 및 SoundBank는 개별 파일을 나타냅니다. 쿠키는 파일을 나타내지 않기 때문에 외부 음원은 사용자 정의됩니다. 기타 오브젝트는 하나 이상의 파일을 나타냅니다. 예를 들어 엄밀히 말해서 Init Bank는 SoundBank로서 외부 미디어 파일도 필요할 수 있기 때문에 Init Bank를 쿠킹하면 해당 미디어 파일도 복사됩니다.

쿠킹 옵션

다음 쿠킹 옵션을 패키지 게임에서 사용할 수 있습니다.

ExportDebugNameRule

(Editor에서) 기본 인스턴스에 대해 쿠킹할 때 쿠킹된 각 에셋에는 전체 Wwise Object Path가 포함된 디버그 이름이 있어서 디버깅하는 동안 에셋을 쉽게 식별할 수 있습니다.

패키지 게임을 빌드할 때 ExportDebugNameRule은 각 에셋의 디버그 이름 입력란을 채울지 아니면 비워 둘지 결정합니다. 이 입력란을 비워 두면 파일 크기가 줄어들고 리버스 엔지니어링이 더 쉬워집니다. 하지만 에셋의 Short ID만 사용하여 쿠킹된 데이터에서 해당 Wwise 오브젝트를 식별할 수 있기 때문에 디버깅하기가 더 어렵습니다.

LoadOnReference

LoadOnReference 옵션은 AkAudioEvent 에셋에서 활성화할 수 있습니다. 이 옵션을 활성화하면 현재 로드된 Switch와 State 세트에 따라 필요한 SoundBank와 미디어만 로드됩니다. Switch나 State를 로드/언로드하면 관련 리소스가 동적으로 로드/언로드됩니다. 이 옵션을 비활성화하면 Switch Container가 포함된 Event가 로드될 때 해당 Switch Container가 사용하는 모든 SoundBank와 미디어가 로드됩니다.

이 옵션을 활성화하면 쿠킹 프로세스가 Event의 쿠킹된 데이터를 준비하여 해당 리소스의 동적 로드를 지원합니다. 비활성화할 경우 쿠킹된 데이터가 Event와 함께 모든 리소스를 로드합니다.

이 옵션은 에셋별로 활성화할 수 있습니다.

참고: 이 옵션을 활성화하면 더 많이 복잡해지기 때문에 특히 프로젝트에서 프로그래밍을 통해 Switch와 State를 설정하는 경우 해당 기능에 대한 명확한 이해가 필요합니다. 대부분의 경우 이 옵션이 제공하는 최적화는 이러한 단점을 능가하기에 충분하지 않습니다.
참고
  • Optimizing Memory Usage with Reference-Loaded Switch Containers


Wwise Unreal Integration Documentation: 릴리즈 노트 2023.1.0.8367.2849

릴리즈 노트 2023.1.0.8367.2849

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2023.1.0.8367.2849 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에). Upgrading Projects to Wwise 2023.1

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27, 5.1, 5.2 및 5.3에서 컴파일되었습니다. Unreal Engine 버전 5.3에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • API 개선 사항
  • 작동 방식 변경 사항
  • 성능 개선 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정
  • 문서 개선 사항

새로운 기능

  • WG-53296 통합이 이제 Debug와 DebugGame Unreal 구성에서 Wwise Debug SoundEngine을 지원함.
  • WG-58405 (Spatial Audio) Room 안에서 인접한 Room과 연결되는 Portal 없이 뚜렷한 리버브 효과가 있는 구역을 모델링하는 Reverb Zone을 추가함. Reverb Zone은 지붕이 있는 공간, 고가 도로나 육교, 파티오 등 열린 공간을 모델링하는 데 유용합니다.
  • WG-62866 Unreal과 Generated SoundBank 간에 에셋을 동기화하기 위한 Wwise Reconcile 커맨드렛을 추가함.
  • WG-63596 Wwise 2023.1 통합은 Wwise SoundEngine 2022.1과 하위 호환 됩니다.
  • WG-65226 3D 뷰어에서 전환 구역을 표시하는 옵션을 추가함.
  • WG-66632 Wwise SoundEngine의 StaticCRT Windows 빌드가 이제 기본적으로 사용됨.
  • WG-68016 WwiseResourceLoader 단위 테스트를 추가함.
  • WG-68279 Added function to confirm that code is being executed in a particular ExecutionQueue.

API 개선 사항

  • WG-64048 (Spatial Audio) 단일 이미터에서 발생할 수 있는 게임에서 정의한 보조 센드의 최대 개수를 제한하는 AkSpatialAudioInitSettings::uMaxEmitterRoomAuxSends를 추가함.
  • WG-65130 (Spatial Audio) AkGeometryParams::EnableTriangles를 제거하고 AkGeometryInstanceParams::UseForReflectionAndDiffraction으로 교체함.
  • WG-66244 (Spatial Audio) AkGeometryInstanceParams::RoomID 사용이 추후 버전에서는 사용 중단되며 해당 매개 변수가 추후 버전에서 제거됨. RoomID를 사용하지 말고 기본값(-1)으로 놔두세요.

작동 방식 변경 사항

  • WG-61307 Unreal 방해 및 차단 서비스가 이제 AK::SpatialAudio::SetGameObjectToPortalObstruction과 AK::SpatialAudio::SetPortalToPortalObstruction API 함수를 지원함. 이미터와 리스너 게임 오브젝트가 Spatial Audio 공간에 있을 경우 방해와 차단 확인은 같은 공간 안에 있는 이미터와 포털 사이, 같은 공간 안에 있는 리스너와 포털 사이, 그리고 같은 공간 안에 있는 포털 사이에서 실행됩니다. Unreal Portal Component에 Portal Occlusion이라는 새로운 매개 변수가 추가되었습니다. 이 매개 변수는 AK::SpatialAudio::SetPortalObstructionAndOcclusion 함수를 사용하여 포털에 차단값을 적용합니다. 이를 사용하여 문이 열리거나 닫히면서 소리를 변경할 수 있습니다. Unreal 방해 및 차단 서비스는 사용자가 원할 경우 서비스를 자체적으로 교체할 수 있도록 WwiseObstructionOcclusion이라는 별도의 모듈로 옮겨졌습니다.

성능 개선 사항

  • WG-67286 The integration now uses TTask and basic Unreal threads for most task usage on Unreal 5.1 and later.

기타 수정 사항

  • WG-62759 Room과 Portals Visualization 토글 설정이 이제 User Settings 아래 있음.
  • WG-65309 Spatial Audio Unreal의 사용자 인터페이스 및 툴팁을 개선함.
  • WG-66557 Unreal Engine 4.27은 더 이상 지원되지 않습니다. Unreal Engine 5.1 이상을 사용해 주세요.

버그 수정

  • WG-63820 수정됨: 레벨 스트리밍 도중 포털 열기/닫기를 호출할 때 UpdateConnectedRooms에서 발생하는 Unreal 크래시.
  • WG-64283 수정됨: 리버브 예측 서비스의 EstimateHFDamping() 함수가 HF Damping 정의가 불일정한 잘못된 값을 제공함.
  • WG-64362 수정됨: Spatial Audio Volume 이름이 변경될 때 Portal 앞/뒤 공간의 이름이 업데이트되지 않음.
  • WG-64529 수정됨: Refresh Interval이 음수로 설정될 수 있음.
  • WG-65139 수정됨: Spatial Audio API 함수 SetDiffractionOrder, SetMaxEmitterRoomAuxSends, SetNumberOfPrimaryRays, SetLoadBalancingSpread가 Unreal Blueprint에 노출되지 않음.
  • WG-66779 수정됨: 빌드된 게임 안에서 Auto Assign Aux Bus가 있는 AkLateReverbComponent의 T60 Decay 를 계싼할 때 FAkReverbDescriptor에서 어서트가 일어남.
  • WG-67317 수정됨: Ak Event가 없는 Room의 Post-associated AkEvent에서 Unreal null 포인터 크래시가 발생함.
  • WG-67343 수정됨: Wwise Browser와 Reconcile 대화창이 연결되지 않은 에셋을 한 번에 하나만 열거함.
  • WG-67418 수정됨: 다른 레벨 안에 레벨을 추가한 후 실행 취소를 했을 때 발생하는 Unreal 크래시.
  • WG-67848 수정됨: Fit To Geometry가 충돌한 표면의 물리적 물질에 따라 Spatial Audio Volume의 지오메트리 속성을 변경하지 않음.
  • WG-68315 Fixed: Wwise Unreal plugin fails to build in Server mode.
  • WG-68516 Fixed: Renamed items appear twice in the Wwise Browser.
  • WG-68554 Fixed: Crash when SoundBanks are not generated, and then WAAPI is connected and generates SoundBanks multiple times.

커뮤니티에 보고된 버그 수정

  • WG-60975 수정됨: (Spatial Audio) 여러 포털이 있는 공간에 들어갈 때 패닝이 갑자기 변경됨.
  • WG-61552 수정됨: Spatial Audio 에셋에서 DefaultGame.ini가 데이터베이스로서 사용됨.
  • WG-63321 수정됨: Unreal 서버를 빌드할 때 패키징을 방지하는 로그 오류가 발생함.
  • WG-65717 수정됨: 레이캐스팅이 값을 반환하지 않을 경우 UAkSurfaceReflectorSetComponent::AssignAcousticTexturesFromSamples()가 기본값을 지정하지 않음.
  • WG-66785 수정됨: 패키지된 Unreal 게임에서 Dynamic Room과 Portal 변환이 업데이트되지 않음.
  • WG-67619 수정됨: Resource Loader 레이스 컨디션으로 인한 크래시.
  • WG-67950 수정됨: Portal 컴포넌트에서 원시적 포인터를 사용함으로 인해 크래시 발생.
  • WG-68029 수정됨: FWwiseExecutionQueue에서 std::atomic을 사용할 경우 특정 조건에서 데드락 발생.
  • WG-68102 Fixed: Crash on UE 4.27 due to resource loading and unloading.
  • WG-68115 Fixed: Quickly reopening a streamed file causes "Could not open file for asset loading" error.
  • WG-68216 수정됨: Switch Container Leaf 다시 로드/언로드 상황으로 인한 크래시.
  • WG-68380 Fixed: VisualCPP generates incorrect warnings in certain unit tests.

문서 개선 사항

  • WG-66140 Testing with Multiple Play In Editor and Wwise Instances 에 프로파일링에 대한 정보를 추가함.
  • WG-67709 개별적인 Unreal 오디오 에셋에서 기본 AudioLink 속성과 오버라이드 속성 설정하기에 대한 정보를 Combining Unreal 5 and Wwise Audio with AudioLink about 에 추가함.


Wwise Unreal Integration Documentation: Upgrading Projects to Wwise 2023.1

Upgrading Projects to Wwise 2023.1

Spatial Audio

Integration Settings

Before 23.1, Spatial Audio used the Integration Settings to store look up tables. They were then saved in the DefaultGame.ini file. Some of them could be modified by the user or by asset changes in the project, which often made the DefaultGame.ini file dirty.

AcousticTextureParamsMap This array previously stored the absorption values of all the acoustic textures of the project. It has been removed from DefaultGame.ini and made private.

AkGeometryMap This array previously associated the Physical Materials of the project with Acoustic Textures and Transmission Loss values. It has been replaced by a Data Table asset of row type FWwiseGeometrySurfacePropertiesRow. When updating to 23.1, a new asset is created, the contents of AkGeometryMap are moved into it, and the new asset is associated with the Integration Setting's Geometry Surface Properties Table property. A new "Verify and Update" button has been added to remove invalid rows.

EnvironmentDecayAuxBusMap This array previously associated Reverb Decay values with Reverb Auxiliary Busses. It has been replaced by a Data Table asset of row type FWwiseDecayAuxBusRow. When updating to 23.1, a new asset is created, the contents of EnvironmentDecayAuxBusMap are moved into it, and the new asset is associated with the Integration Settings's Reverb Assignment Table property.

Reverb Estimation Service

Before 23.1, the reverb estimation service in Unreal estimated the decay of a room with a Global Decay Absorption value defined in the Project Settings. It now uses the absorption values of the room's textures to estimate this decay. Expect a change in decay value for rooms that have specified acoustic textures. If no textures are specified for a room, then the Global Decay Absorption value is used.

Continuous Ray Casting

Spatial Audio uses a raytracing engine to efficiently evaluate reflection and diffraction paths. In the previous version of Wwise, when the emitter or listener movement exceeded a predefined threshold (see the Movement Threshold Spatial Audio Setting), a number of rays were cast, and the reflection and diffraction paths were recalculated. The combination of the ray casts with the recalculation increased the load on the frame, which caused CPU peaks. In Wwise 2023.1, rays are continuously cast on each frame until a recalculation is triggered. This helps spread the load of ray casting over several frames, which prevents CPU peaks.

For this reason, the default value of the Number Of Primary Rays Spatial Audio Setting has been lowered from 100 to 35. Make sure you re-evaluate the preferred number of primary rays for your project after migrating.

Watertight Geometry

In 23.1, we have introduced new Spatial Audio features that require the Geometry of Rooms to be watertight in order to calculate containment and proximity to transition regions. This means that there can be no holes in the Geometry; every edge connects exactly two triangles. When a Room is sent to Spatial Audio, the Room's Geometry is searched for boundary edges. If any boundary edges are found, the Geometry is not watertight and an error message appears.

If the Room is a Reverb Zone, its Geometry must be watertight. If you encounter the error message, fix the Geometry by looking for holes and boundary edges. Any hole can be covered by a surface with a Transmission Loss value of 0. If there are no apparent holes, look for boundary edges caused by overlapping edges or surfaces.

Note that it is also important to have a watertight Geometry if you depend on Spatial Audio to do room containment. However, the Unreal integration does not use this feature by default. In any other scenario, you can disregard the error message.

Deprecation

The following functions, blueprint nodes and properties were deprecated in the 2022.1.0 Unreal Integration and were removed in the 2023.1.0 Unreal Integration:

Removed Functions

  • FAkAudioInputManager:
    • PostAudioInputEvent: EventName parameter has been removed.
  • UAkComponent:
    • PostAkEvent: EventName parameter has been removed.
    • PostAkEventAndWaitForEnd: EventName parameter has been removed.
    • PostAkEventByIdWithCallback: Use PostAkEvent instead.
    • PostAkEventByNameWithDelegate: Use PostAkEvent instead.
    • PostAssociatedAkEventAndWaitForEndAsync: Use PostAkEventAndWaitForEnd instead.
    • UseEarlyReflections
  • UAkGameObject:
    • PostAkEvent: EventName parameter has been removed.
    • PostAkEventAsyncByEvent: Use PostAkEvent instead.
    • PostAkEventByNameWithDelegate: Use PostAkEvent instead.
    • GetRTPCValue
  • FAkAudioDevice:
    • PostAkAudioEventOnActor: Use UAkAudioEvent::PostOnActor instead.
    • PostAkAudioEventOnComponent: Use UAkAudioEvent::PostOnComponent instead.
    • PostEventOnActor: Use UAkAudioEvent::PostOnActor instead.
    • PostEventOnGameObjectID: Use UAkAudioEvent::PostOnGameObjectID instead.
    • PostEventOnActorWithLatentAction: Use UAkAudioEvent::PostOnActor instead.
    • PostEventOnComponentWithLatentAction: Use UAkAudioEvent::PostOnComponent instead.
    • PostEventOnAkComponent: Use UAkAudioEvent::PostOnComponent instead.
    • PostEventOnAkGameObject: Use UAkAudioEvent::PostOnAkGameObject instead.
    • PostAkAudioEventAtLocation: Use UAkAudioEvent::PostAtLocation instead.
    • PostAkAudioEventAtLocationAsync: Use UAkAudioEvent::PostAtLocation instead.
    • PostAkAudioEventOnActorAsync: Use UAkAudioEvent::PostOnActor instead.
    • PostAkAudioEventOnAkGameObjectAsync: Use UAkAudioEvent::PostOnAkGameObject instead.
    • PostAkAudioEventWithLatentActionOnActorAsync: Use UAkAudioEvent::PostOnActor instead.
    • PostAkAudioEventWithLatentActionOnAkComponentAsync: Use UAkAudioEvent::PostOnComponent instead.
    • ExecuteActionOnEvent: Use UAkAudioEvent::ExecuteAction instead.
    • ExecuteActionOnPlayingID: Use UAkAudioEvent::ExecuteAction instead.

Removed Blueprint Nodes

  • PostAndWaitForEndOfEventAsync: Use PostAndWaitForEndOfEvent or UAkAudioEvent::PostOnActorAndWait instead.
  • PostEventByName: Use PostEvent or UAkAudioEvent::PostOnActor instead.
  • PostEventAtLocationByName: Use UAkAudioEvent::PostAtLocation instead.
  • PostEventAtLocation: EventName parameter has been removed.
  • ExecuteActionOnEvent: Use UAkAudioEvent::ExecuteAction instead.
  • UseEarlyReflections
  • ClearBanks
  • LoadBankByName
  • UnloadBankByName

Removed Properties

  • UAkComponent:
    • EarlyReflectionOrder
    • EarlyReflectionMaxPathLength
    • roomReverbAuxBusGain
    • diffractionMaxEdges
    • diffractionMaxPaths
    • diffractionMaxPathLength
  • UAkGameObject:
    • EventName


Wwise Unreal Integration Documentation: 이전 버전 릴리즈 노트

이전 버전 릴리즈 노트

다음 페이지에서는 이전 릴리즈에서 만들어진 통합의 변경 사항에 대한 정보를 제공합니다.

  • Release Notes 2022.1.8.8316.2811
  • 릴리즈 노트 2022.1.7.8290.2779
  • 릴리즈 노트 2022.1.6.8263.2748
  • 릴리즈 노트 2022.1.5.8242.2714
  • 릴리즈 노트 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
  • Release Notes 2021.1.14.8108.2656
  • 릴리즈 노트 2021.1.13.8036.2580
  • 릴리즈 노트 2021.1.12.7973.2505
  • 릴리즈 노트 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: Release Notes 2022.1.8.8316.2811

Release Notes 2022.1.8.8316.2811

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. Here is what has changed in the 2022.1.8.8316.2811 release of the integration (in addition to upgrading to the new Unreal build).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27, 5.1, 5.2 및 5.3에서 컴파일되었습니다. Unreal Engine 버전 5.3에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정
  • 문서 개선 사항

새로운 기능

  • WG-67296 Unreal Engine 5.3 지원 추가.

버그 수정

  • WG-54758 수정됨: Editor 모드에서 Play를 종료할 때 왼쪽 채널에서 오디오가 갑자기 치솟는 현상.
  • WG-60554 수정됨: Root Output Path Override를 사용할 때 아무런 로그나 경고가 없음.
  • WG-61529 수정됨: (Spatial Audio) 삼각형 만들기(triangulate)와 늘이기(stretch) 후 실행 취소를 하면 가끔 Spatial Audio Volume의 Acoustic Texture 표면 매핑이 재정렬됨.
  • WG-63041 수정됨: Root Output Path 설정의 툴팁 누락.
  • WG-63174 수정됨: AkLateReverb 요소가 있는 Blueprint 액터에 대한 미할당 Aux Bux 경고.
  • WG-64028 수정됨: 작업을 실행 취소하거나 다시 실행할 때 Geometry Surfaces Details 사용자 인터페이스가 새로 고쳐지지 않음.
  • WG-64107 수정됨: SoundBank를 생성할 때 Wwise Browser가 새로 고쳐지지 않음.
  • WG-64764 수정됨: Linux에서 Unreal Editor를 컴파일할 때 오류 및 경고 발생.
  • WG-65312 수정됨: Wwise Demo Game의 예제에 더 이상 사용하지 않는 기능이 사용됨.
  • WG-67304 수정됨: 로딩 단계에서 Unreal Editor가 정지됨.
  • WG-67466 수정됨: AK Libraries가 UnrealBuildTool (UBT) 빌드 스크립트에서 결정론적으로 정렬되지 않음.

커뮤니티에 보고된 버그 수정

  • WG-64458 수정됨: Generated SoundBanks 경고가 떠 있을 때 Unreal Editor를 닫으면 크래시 발생.
  • WG-66614 수정됨: Query API 함수 GetListenerSpatialization()가 AkGameObjectID 대신 리스너 인덱스를 잘못 가져옴.
  • WG-66848 수정됨: 비동기 리소스 언로드를 마무리할 때 소멸자(destructor) 대신 Unreal의 FinishDestroy가 사용되어 중단 또는 크래시 발생.
  • WG-66881 수정됨: 액터 없는 콜백으로 PostEvent를 호출할 때 크래시 발생.
  • WG-67270 수정됨: 모든 SoundBank 메타데이터 파일 SoundBanksInfo.(xml|json)에 생성되지 않은 User-defined SoundBank의 "Hash" 영역이 누락됨.
  • WG-67357 수정됨: Wwise Browser에 오래된 에셋이 두 번 나타남.
  • WG-67362 수정됨: Wwise Browser가 연결된 상태에서 하나의 Project Explorer에서 선택을 하면 모든 Project Explorer가 업데이트됨.
  • WG-67370 수정됨: 작업자 스레드가 중지되는 동안 특정 작업을 전송했을 때 Execution Queue가 이를 무시함.

문서 개선 사항

  • WG-65255 WwiseFileHandler 모듈 에 CSV 파일 사용에 대한 정보 추가.
  • WG-66811 Reconciling Wwise UAssets 에 에셋 조정에 사용되는 디렉터리 구조체에 대한 세부 정보 추가.


Wwise Unreal Integration Documentation: 릴리즈 노트 2022.1.7.8290.2779

릴리즈 노트 2022.1.7.8290.2779

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2022.1.7.8290.2779 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27, 5.1 및 5.2에서 컴파일되었습니다. Unreal Engine 버전 5.2에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정

새로운 기능

  • WG-64936 WwiseFileHandler, WwiseResourceLoader 및 WwiseSimpleExternalSource에 대한 보조 Unreal Insights 범위 이벤트 추가.

기타 수정 사항

  • WG-66408 UE 5.3의 AkAudioMixer 지원 추가.
  • WG-66582 Bus와 Aux Bus의 SoundBank Metadata에 Attenuation Max Distance(감쇠 최대 거리) 추가.

버그 수정

  • WG-64677 수정됨: (macOS) AudioLink로 Unreal 사운드를 선택한 후 애니메이션 창을 종료할 때 가끔 크래시 발생.
  • WG-65000 수정됨: (Spatial Audio) Reflection(반사)이 여러 개의 일치하는 표면에서 반사될 때 불안정하고, 경우에 따라 닫혀 있는 지오메트리를 통해 새어나갈 수 있음.
  • WG-66583 수정됨: Wwise에서 복사/붙여넣기를 하면 Wwise Browser가 업데이트되지 않음.
  • WG-66638 수정됨: Reconcile 시 최대 에셋 경로 길이를 초과하는 에셋을 생성하는 경우가 있음.
  • WG-66661 수정됨: (Spatial Audio) Box Collision에 배치된 Late Reverb 요소의 볼륨이 올바르지 않음.
  • WG-66672 수정됨: SoundBank가 로드에 실패할 경우 SoundEngine에서 발생할 수 있는 크래시.
  • WG-66673 수정됨: 가비지 컬렉션이 Init Bank를 언로드할 수 있음.
  • WG-66720 수정됨: UE 4.27에서 Wwise Reconcile 커맨드렛이 모든 UAssets를 삭제함.
  • WG-66776 수정됨: 오래된 WwiseName이 있는 에셋이 제대로 조정되지 않음.
  • WG-66805 수정됨: AudioLink를 사용할 때 사용하면 안 되는 "No Initial Submix"가 기록됨.

커뮤니티에 보고된 버그 수정

  • WG-57358 수정됨: Editor Listenerk가 Animation Montage Viewport의 카메라를 따라가지 않음.
  • WG-63861 수정됨: Unreal의 'Generated Sound Banks Folder User Override' 설정 이름이 Wwise Authoring 이름인 'Root Output Path'와 일치하지 않음.
  • WG-64181 수정됨: Unreal Engine 설치 빌드를 사용해 빌드할 때 Null Wwise 플랫폼 오류 발생.
  • WG-64211 수정됨: 시작시 Wwise AudioLink가 재생되지 않고 Set Link가 사운드 재생을 중지함.
  • WG-65769 수정됨: Unreal 에서 가비지 수집시 UAkComponent::UnregisterGameObject에서 크래시 발생.
  • WG-66665 수정됨: FWwiseFileCacheHandle::RemoveRequestInFlight와 FWwiseExecutionQueue에서 발생하는 크래시.
  • WG-66840 수정됨: Wwise 2022.1 마이너 버전으로 업그레이드시 플랫폼별 전용 폴더를 삭제하는 문제.


Wwise Unreal Integration Documentation: 릴리즈 노트 2022.1.6.8263.2748

릴리즈 노트 2022.1.6.8263.2748

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2022.1.6.8263.2748 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.27, 5.1 및 5.2에서 컴파일되었습니다. Unreal Engine 버전 5.2에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 작동 방식 변경 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정

새로운 기능

  • WG-62841 Unreal Asset을 Generated SoundBank와 쉽게 동기화할 수 있게 됨. 자세한 내용은 Reconciling Wwise UAssets 를 참고하세요.
  • WG-65812 로그에서 Wwise SoundEngine 대신 null SoundEngine이 사용된 이유를 제공함.
  • WG-66200 사전 출시 Unreal 5.3에 대한 기본 컴파일 지원 추가.
  • WG-66220 모든 메모리 관련 통계가 Wwise/WwiseMemory 통계 아래 그룹화됨. Wwise SoundEngine Reserved 메모리 통계도 함께 추가됨.

작동 방식 변경 사항

  • WG-64598 출시되지 않은 빌드에 AK_ENABLE_ASSERTS 추가.
  • WG-64601 AssertHook을 WwiseSoundEngine의 WwiseAssertHook 함수로 이동.

기타 수정 사항

  • WG-66542 Unreal Wwise 통합에 Audiokinetic 런처 2023.1.1 또는 이상을 필요로 함.

버그 수정

  • WG-60465 수정됨: iOS, tvOS, Switch에서 Wwise 플러그인을 찾거나 등록할 수 없음.
  • WG-61013 수정됨: Visualize Rooms and Portals 사용자 설정이 활성화된 경우 Portal의 전면 및 후면 Room 이름이 표시되지 않음.
  • WG-66131 수정됨: WAAPI 연결 없이 Wwise Browser를 열면 로그 스팸 발생.
  • WG-66136 수정됨: GetAkAudioTypeUserData에 null 객체를 제공할 때 크래시 발생.
  • WG-66189 수정됨: Wwise Browser에서 다른 폴더와 이름이 같은 폴더를 선택하면 가끔 잘못된 폴더가 선택됨.
  • WG-66232 수정됨: I/O Hook Open이 Write 작업에 대해 콜백을 두 번 잘못 호출하면 정지 또는 크래시 발생.
  • WG-66429 수정됨: 유효하지 않거나 누락된 Wwise 파일을 로드하면 이들에 대한 내부 참조가 유지됨.
  • WG-66466 수정됨: Wwise 요소와 이름이 같은 에셋의 이름을 변경하면 Wwise Browser에서 잘못된 연결이 생성됨.
  • WG-66472 수정됨: Platform SoundBank를 찾을 수 없을 때 전체 경로가 기록되지 않음.
  • WG-66474 수정됨: Wwise 프로젝트에 JSON 파일이 없을 때 로그가 충분한 정보를 제공하지 않음.

커뮤니티에 보고된 버그 수정

  • WG-60514 수정됨: AkAudioMixer를 사용하는 동안 요청된 프레임 크기가 변경되면 assert 발생. 이로 인한 오류 발생.
  • WG-63893 수정됨: UAkGameplayStatics::ReplaceMainOutput이 AK_INVALID_UNIQUE_ID를 수신하면 종료됨.
  • WG-64185 수정됨: 실시간 편집을 위해 Wwise Authoring이 게임에 연결된 경우 WAAPI 구독이 지워지지 않음.
  • WG-64323 수정됨: UAkAudioEvent::ExecuteAction이 아무 재생 ID가 수신되지 않으면 종료됨.
  • WG-64838 수정됨: External Sources: 현지화된 소스가 있는 PostEvent 호출에서 소스가 누락됨.
  • WG-65131 수정됨: 무인 모드에서 실행할 때 WAAPIClientConnectionThread에서 크래시 발생.
  • WG-65433 수정됨: Play in Editor 세션을 시작할 때 유효하지 않은 EditorListener에서 크래시 발생.
  • WG-65514 수정됨: StreamMgr 모듈 분해 시 발생하는 데드록.
  • WG-65834 수정됨: 현재 플랫폼 데이터가 존재하지 않을 때 로그에 세부 정보가 부족함.
  • WG-66342 수정됨: (Spatial Audio) AK_INVALID_AUX_ID와 함께 AK::SpatialAudio::SetImageSource를 사용할 때 Early Reflections Auxiliary Send가 할당되지 않은 사운드가, Early Reflections Auxiliary Send가 할당된 동일한 게임 오브젝트에서 재생되는 다른 사운드와 같은 보조 버스로 잘못 전송됨.
  • WG-66360 수정됨: 시작 시 에셋이 두 번 재로드되어 "-game"으로 시작할 때 항상 활성 이벤트를 시작하지 못하게 함. 전체 에셋 재로드시 대리자 추가.


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 Wwise Picker를 Wwise Browser로 대체. 자세한 내용은 Managing Assets with the Wwise Browser 를 참고하세요.
  • 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 GetActiveGameObjects에서 AkGameObjectsList::Term()이 호출되지 않음.
  • WG-65363 수정됨: AkAudio 모듈이 실행되기 전에 Event와 같은 AkAudioTypes 를 로드할 때 "StagePath not set" 오류 발생.
  • WG-65671 수정됨: 아직 재생 중인 음악 미디어를 언로드할 때 크래시 발생.
  • WG-65682 수정됨: 아직 로드중인 스트리밍 에셋을 종료하면 로그 대신 오류 발생.

문서 개선 사항

  • WG-62447 Unreal Engine C++ 프로젝트 에 패키징 요구 사항에 대한 섹션 추가.
  • WG-64544 Wwise Unreal 통합 Introductory 튜토리얼 업데이트 및 확장.
  • WG-65256 Unreal용 Wwise Demo Game의 위치에 대한 세부 정보 추가. Using the Wwise Demo Game 을 참고하세요.


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: Release Notes 2021.1.14.8108.2656

Release Notes 2021.1.14.8108.2656

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. Here is what has changed in the 2021.1.14.8108.2656 release of the integration (in addition to upgrading to the new Unreal build).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.26, 4.27, 5.0, 5.2 및 5.3 에서 컴파일되었습니다. Unreal Engine 버전 4.27.2 및 5.3.1에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정

새로운 기능

  • WG-66138 Unreal Engine 5.2 지원 추가.
  • WG-67089 Unreal Engine 5.3 지원 추가.

기타 수정 사항

  • WG-66542 Wwise Unreal Integration requires Audiokinetic Launcher 2023.1.1 or later.
  • WG-66817 Windows용 기본 Visual Studio 버전 2022 사용.

버그 수정

  • WG-63820 수정됨: 레벨 스트리밍 도중 포털 열기/닫기를 호출할 때 UpdateConnectedRooms에서 발생하는 Unreal 크래시.
  • WG-66661 수정됨: (Spatial Audio) Box Collision에 배치된 Late Reverb 요소의 볼륨이 올바르지 않음.
  • WG-67418 수정됨: 다른 레벨 안에 레벨을 추가한 후 실행 취소를 했을 때 발생하는 Unreal 크래시.
  • WG-68221 Fixed: Crash in switch container loading when changing levels.

커뮤니티에 보고된 버그 수정

  • WG-58615 수정됨: Event-Based Packaging을 사용할 때 유효하지 않은 약한 포인터에서 발생하는 크래시.
  • WG-64770 수정됨: UAkMediaAsset에서 발생하는 BulkDataIORequest 누수.
  • WG-66952 수정됨: 중지를 일으키는 Switch Container의 길이를 확인할 때 "Mixed" DurationType이 누락됨.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.13.8036.2580

릴리즈 노트 2021.1.13.8036.2580

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2021.1.13.8036.2580 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.26, 4.27, 5.0 및 5.1 에서 컴파일되었습니다. Unreal Engine 버전 4.27.2 및 5.1.1에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 커뮤니티에 보고된 버그 수정
  • 문서 개선 사항

새로운 기능

  • WG-63815 UE5.2 초기 브랜치(early branch)를 위한 컴파일 지원 추가.

커뮤니티에 보고된 버그 수정

  • WG-55294 수정됨: 빈 맵에서 Play in Editor 세션을 시작할 때 크래시 발생.
  • WG-56795 수정됨: (Spatial Audio) 지오메트리 브러쉬 편집 모드를 사용하여 변경된 AkSurfaceReflectorSet에서 구성된 공간(Room)의 크기가 정확하지 않음.
  • WG-64787 수정됨: (Spatial Audio) Spatial Audio Unreal Detail Customization 클래스에서 충돌 발생.

문서 개선 사항

  • WG-65256 Unreal용 Wwise Demo Game의 위치에 대한 세부 정보 추가. Using the Wwise Demo Game 을 참고하세요.


Wwise Unreal Integration Documentation: 릴리즈 노트 2021.1.12.7973.2505

릴리즈 노트 2021.1.12.7973.2505

이 통합의 각 버전은 특정 빌드의 Unreal Engine과 대응합니다. 다음은 통합의 2021.1.12.7973.2505 릴리즈에서 변경된 내용입니다 (새로운 Unreal 빌드로 업그레이드하는 것 외에).

참고: 이 통합은 Unreal Engine의 실험 기능을 지원하지 않습니다.
참고: 이 통합은 Unreal Engine 버전 4.26, 4.27, 5.0 및 5.1 에서 컴파일되었습니다. Unreal Engine 버전 4.27.2 및 5.1.1에 대해 테스트되었습니다. 앞서 언급한 것보다 최신인 모든 메이저 Unreal Engine 버전은 현재 지원되지 않지만 후속 패치 릴리즈에 포함될 것입니다.

이전 버전을 보시려면 이전 버전 릴리즈 노트 를 참고하세요.

  • 새로운 기능
  • 작동 방식 변경 사항
  • 기타 수정 사항
  • 버그 수정
  • 커뮤니티에 보고된 버그 수정

새로운 기능

  • WG-62790 Unreal Engine 5.1에 대한 정식 지원 추가.
  • WG-63770 Wwise SDK에서 제공하는 새로운 기능을 기반으로 Advanced Initialization Settings(고급 초기화 설정)에 uMaxSystemAudioObjects 추가.

작동 방식 변경 사항

  • WG-63047 수정됨: Unreal Engine 5.1과 함께 사용할 때 Integration에 뜨는 사용 중단 경고.

기타 수정 사항

  • WG-63832 Windows에서 Unreal Project에 Wwise를 통합할 때 더 이상 macOS용 Wwise SDK를 설치하지 않아도 됨.

버그 수정

  • WG-63448 수정됨: 외부 음원 미디어가 언로드될 수 없는 상태로 들어감.
  • WG-63731 수정됨: 현지화된 미디어가 로드되는 중에 레벨이 언로드되면 async PostEvent functions에 발생하는 크래시.
  • WG-63884 수정됨: PostEventAsync 블루프린트에서 StopWhenAttachedToDestroyed 를 true로 설정하면 월드가 언로드될 때 이벤트가 중지되지 않음.

커뮤니티에 보고된 버그 수정

  • WG-60362 수정됨: FAkUnrealIOHook의 일부 작업이 신뢰할 수 없는 UObject 참조에 의존하기 때문에 스레드로부터 안전하지 않음.
  • WG-60972 수정됨: (Spatial Audio) 포털 사이를 이동할 때 발생하는 패닝 이슈.
  • WG-62961 수정됨: 일부 장치의 스피커에서 Wwise에서 나오는 사운드가 다른 사운드보다 작게 들림. 이 기기들에서 낮은 레이턴시 오디오 재생을 비활성화하는 새로운 플랫폼 옵션이 추가되었습니다.
  • WG-63417 수정됨: Spatial Audio Geometry와 Portal을 스트리밍할 때 발생하는 성능 문제.
  • WG-63483 수정됨: SpawnAkComponentAtLocation의 AutoDestroy 옵션이 컴포넌트를 파기하지 않음.


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

공간 음향 포털

  • 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로의 연결도 활성화됩니다. 더 자세한 내용은 Wwise 프로젝트 변경 사항 를 참고해 주세요.

참고: 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 콜백을 표시함. 더 자세한 정보는 Blueprint에서 콜백 사용하기 을 참고해 주세요.
  • 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 Fixed: SetMultiplePositions is now exposed in 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 오브젝트 를 참고해 주세요.
  • 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 Fixed: Show project supported platforms as "Available Platforms" in the "Generate Sound Banks" window.
  • 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 Fixed: Show project supported platforms as "Available Platforms" in the "Generate Sound Banks" window.
  • 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 Fixed: Match the list of available platforms for SoundBank generation to the Supported Platforms under the Unreal project settings.
  • 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 노드를 추가함. 더 자세한 정보는 제거되고 더 이상 사용되지 않는 함수 를 참고하세요.
  • UI-193 수정됨: 드래그하여 UAkAudioEvents 를 생성할 경우 UAkAudioEventFactory 를 직접 가져옴.
  • UI-194 수정됨: 위치에서 AkReverbVolumes 찾기를 최적화함.
  • UI-195 수정됨: blueprint_actor_posteventbyname, features_blueprintsoundbanks_removed, 제거되고 더 이상 사용되지 않는 함수 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 관련 구현 정보 및 자주 겪는 문제

디버깅

문제가 발생하면 Log, Warning, Error 메시지 뜰 것입니다. 그러나 에셋 로드 및 패키징 문제를 정확히 파악하기가 어려울 경우 관련된 모든 Wwise 모듈의 로그를 Verbose나 VeryVerbose로 설정하세요.

메모리 사용과 성능에 문제가 있는 경우 더 낮은 계층의 Wwise 구조에 Stat이 많이 추가되었을 것입니다. Unreal Frontend를 사용하여 프로파일링 세션을 시작하거나 Stats 메뉴를 사용하여 통계를 실시간으로 시각화하는 설정을 활성화할 수 있습니다. 예를 들어 WwiseFileHandler 통계에는 현재 로드된 모든 에셋에 대한 정보가 있습니다.

GeneratedSoundBanks 폴더는 일반적으로 프로젝트 루트 폴더에 상대적인 위치에 있습니다. -Game 옵션과 함께 에디터를 사용하는 경우 작업 폴더는 .uproject 파일이 있는 루트와 동일한 폴더에 설정해야 합니다.

Editor 로드 시간

이 코드는 로드 시간 성능을 고려하여 비동기식으로 설계되었습니다. 그러나 이러한 최적화는 2022.1에 적용되지 않습니다. 따라서 모든 SoundBank 정보 파일은 Editor 시작 시 파싱되며 하드웨어와 프로젝트 크기에 따라 시간이 많이 소요될 수 있습니다.

쿠킹 및 패킹징하기

반복적 쿠킹은 현재 2022.1에서 지원되지 않습니다. Unreal은 이러한 Wwise의 특정 사례를 지원하지 않으며, Audiokinetic이 문제를 최대한 해결하기 위해 노력하고 있습니다. 지금으로서 가장 간단한 해결 방법은 스테이징된 파일을 수동으로 삭제하는 것입니다. https://issues.unrealengine.com/issue/UE-167603을 참고해 주세요.

현재 자동적으로 패키지별로 에셋을 분리하는 방법은 없습니다. 언어를 다른 패키지로 분할하거나 특정 에셋을 독립적으로 로드하는 것은 불가능합니다. 이러한 기능은 계획에 포함되어 있지만 기본 설정의 범위에서 가장 적절한 환경에서 개발할 수 있도록 특정 사용 사례에 대한 여러분의 피드백이 필요합니다. 쿠킹 기능을 특정 요구에 맞게 조정하기 위해서 다른 라이브러리를 덮어쓰는 것은 가능하다는 점을 기억하세요. 또한 Unreal의 Game - Asset Manager 프로젝트 환경 설정에서 Staging 폴더의 다양한 Wwise 에셋을 포함하는 특정한 규칙을 작성할 수도 있습니다.

Unreal Engine 5.1

Unreal Engine 5.1은 현재 지원되지 않습니다.

Unreal Stat (Mac 전용)

Unreal 프로젝트가 최신 버전이 아닌 경우 Mac의 Unreal Stat 메뉴에서 Wwise 통계에 접근하지 못할 수 있습니다. Wwise Stat 카테고리를 보려면 Unreal 프로젝트를 업데이트하세요.

자주 겪는 문제

  • 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=


Wwise Unreal Integration Documentation: Android 관련 정보

Android 관련 정보

이 페이지에는 Unreal 통합을 사용해서 Android용 애플리케이션을 제작하는 개발자를 위한 요구 및 고려 사항이 포함되어 있습니다.

Unreal 4.25 이상으로 업그레이드하기

  • Unreal Engine 4.25의 Android 툴체인이 변경되었습니다. 이전 버전의 언리얼에서 4.25 버전 이상으로 마이그레이션하는 경우 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: iOS 관련 정보

iOS 관련 정보

이 페이지에는 Unreal 통합을 사용해서 iOS용 애플리케이션을 제작하는 개발자를 위한 요구 및 고려 사항이 포함되어 있습니다.

Windows에서 원격으로 빌드하기

Remote Build Options를 사용하면 Windows 시스템에서 iOS용 프로젝트를 빌드할 수 있습니다. 그러나 모든 파일이 기본적으로 원격 macOS 시스템에 복사가 가능한 것은 아니기 때문에 일부 추가 구성이 필요합니다.

이러한 빌드 기능이 제대로 작동하도록 하려면 /Build/Rsync/ 경로에 Unreal이 필요한 파일을 강제 복사하는 RsyncProject.txt 파일을 만들어야 합니다. 해당 파일은 다음 줄을 포함해야 합니다.

+ /Plugins/Wwise/ThirdParty/include/**
+ /Plugins/Wwise/ThirdParty/iOS/**

Using 오디오 사용하기

iOS에서 Wwise와 Unreal 기본 오디오를 함께 사용하면 게임이 크래시되거나 Wwise가 로드되지 않는 오류가 발생할 수 있습니다. 이 경우 Unreal 오디오를 비활성화하거나 Using the AkAudioMixer Module 를 사용해야 합니다.

Unreal 오디오를 비활성화하려면 IOSEngine.ini 파일을 업데이트해야 합니다.

<UE_ROOT>/Engine/Config/iOS/IOSEngine.ini에서 다음 줄을 찾으세요.

AudioDeviceModuleName=IOSAudio

다음으로 바꿔주세요.

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: 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: 관련된 페이지

관련된 페이지
다음은 관련된 모든 문서화 페이지들의 목록입니다.: