menu
 
버전
2022.1.18.8567

2024.1.4.8780

2023.1.12.8706

2022.1.18.8567

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624


menu_open
Wwise Unreal Integration Documentation
WwiseSoundEngine 모듈

고정 사운드 엔진 브리징

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

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

auto* SoundEngine = IWwiseSoundEngineAPI::Get();
if (UNLIKELY(!SoundEngine)) return;
warning주의: 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에서 실행되어야 하는 사용자 인터페이스 작업에 선호되는 방법입니다.

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

Null SoundEngine

The Wwise Integration for Unreal connects the Wwise SoundEngine to the Unreal Engine. There are valid reasons to disable the SoundEngine at build time:

  • Executing a server: The Wwise Integration for Unreal is client-specific. Avoid running a Wwise SoundEngine on a server.
  • Executing a program: Unreal programs perform various tasks, such as building, packaging, or cooking. Unreal Frontend and Insights are examples of programs with user interfaces. The Wwise SoundEngine is meant to be used exclusively for what Unreal defines as Games, and the Editor.
  • Building for an unsupported platform or platform version: The Wwise SoundEngine includes optimized binaries for many modern platforms, but the binary files might not be installed for a particular platform. There might also be a different platform SDK version installed and selected than the ones used to build the Wwise SoundEngine.

It is therefore impossible to link the actual Wwise SoundEngine to the final executable. In these cases, the build scripts use the null SoundEngine. The null SoundEngine is an empty implementor that sits on top of the SoundEngine abstraction provided in the WwiseSoundEngine bridging module. Most functions return AK_NotImplemented without any side effects.

Because the bridge requires the Wwise SoundEngine type definitions to be accurate for the platform, the ThirdParty/include folder must contain an interface for the platform, even if it is not activated in the current context. It is therefore impossible to guarantee that a build for an unsupported platform will work, even with the null SoundEngine.

There are also valid reasons to disable the SoundEngine at runtime:

  • Using the null SoundEngine from build time.
  • Disabling audio: Multiple options allow a game or the editor to run without sound.
  • Running a commandlet: Editor commandlet operations complete without displaying a user interface. These are specialized programs built inside the Unreal Editor itself.
  • Error in initialization: If the Wwise SoundEngine fails to initialize, or if the SoundBanks were never Generated for the project.

Typically, the Wwise SoundEngine is disabled when the Wwise SoundEngine is linked inside the final executable package. Some of the issues can be fixed without restarting the Editor. Runtime issues do not use the null SoundEngine unless specified.

The logic for a supported target is executed during Unreal's project generation step in WwiseUEPlatform.IsWwiseTargetSupported. You can determine whether the null SoundEngine is used in UBT's logs: The "Wwise SoundEngine is disabled: Using the null SoundEngine instead." log will be displayed along with the reason. This message appears multiple times when building the Wwise SoundEngine as an Engine plug-in. The message is informative, not an error.

To help with debugging, a similar message is also repeated at runtime in the logs during the Wwise plug-in initialization: "Wwise SoundEngine is disabled: Using the null SoundEngine."


이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요