Wwise SDK 2024.1.1
|
2021.1에서의 새로운 기능 중의 일부로 인해서 Wwise 2021.1로 마이그레이션할 때 주의해야 할 사항이 몇 가지 있습니다.
Wwise Spatial Audio가 API와 Authoring 도구에서 모두 전달 손실이라는 용어를 사용하여 공간이나 지오메트리를 통과하면서 소리가 전달됨으로 인해 생기는 차단 요인을 정의합니다. 따라서 AkRoomParams::WallOcclusion이 AkRoomParams::TransmissionLoss로
, AkAcousticSurface::occlusion이 AkAcousticSurface::transmissionLoss로
변경되었습니다.
물리적으로 현실적인 소리 전달의 설계와 구현을 간단하게 만들기 위해서 회절과 전달 처리를 활성화하는 모든 옵션이 한 옵션으로 합쳐졌습니다.
뿐만 아니라 Spatial Audio의 설정을 간소화하기 위해서 AkSpatialAudioInitSettings
에서 다음 영역이 변경되었습니다:
AkDiffractionFlags
가 제거되고 다음으로 교체되었습니다:DiffractionFlags_UseBuiltInParam
이 효율적으로 항상 true로 설정됩니다. 이제 Diffraction 기본 매개 변수를 명시적인 설정 없이 사용할 수 있습니다.DiffractionFlags_UseObstruction
이 동일한 논리를 가진 AkSpatialAudioInitSettings::bUseObstruction 불린으로 교체되었습니다.DiffractionFlags_CalcEmitterVirtualPosition
이 동일한 논리를 가진 AkSpatialAudioInitSettings::bCalcEmitterVirtualPosition
불린으로 교체되었습니다.bEnableDirectPathDiffraction
의 이름이 AkSpatialAudioInitSettings::bEnableGeometricDiffractionAndTransmission으로 변경되어서 옵션을 좀 더 정확히 설명해 줍니다.fDiffractionShadowAttenFactor
와 fDiffractionShadowDegrees
가 제거되었습니다. 이 옵션은 사용하기가 복잡하며 물리적으로 현실적인 소리 렌더링에 권장하지 않습니다.Wwise 2019.2와 그 이전 버전에서는 기본 System Audio Device가 최대 7.1 채널의 오디오를 지원했습니다. 특정 플랫폼에서 지원하는 3d 오디오 출력 기능에 접근하기 위해서는 다양한 플러그인을 사용해서 이 한계를 넘어서야 했습니다.
Wwise 2021.1에서는 이러한 플러그인이 System Audio Device 안으로 통합되었습니다. 이 기능을 새로 제공되는 Audio Objects Bus Configuration과 함께 사용하면 3d 오디오 출력 관리가 굉장히 간단해집니다.
다음 섹션은 이제 추후 버전에서는 지원되지 않는 3d 오디오 플러그인을 사용하는 Wwise 프로젝트를 마이그레이션하여 2021.1에서의 개선 사항을 사용하기 위한 가이드라인입니다.
플랫폼 전용 설명서는 기존의 오래된 플러그인을 설명해 주며 Wwise 2021.1에서 동등한 기능을 어디에서 찾을 수 있는지를 설명해 줍니다.
Spatial과 Passthrough 믹스를 분리하기 위해 이중 출력 방식을 사용하는 Wwise 프로젝트는 단일 System Audio Device를 사용하도록 수정돼야 합니다. 단일 System Audio Device는 이제 하나의 Audio Object 스트림에서 두 믹스를 동시에 생성할 수 있습니다.
3d 오디오 믹서 플러그인 인스턴스를 제거하고 대신 Audio Objects Bus Configuration을 사용하도록 교체해서, Audio Object가 최상위 버스부터 System Audio Device로 흐를 수 있도록 해주어야 합니다. 3D Audio 모드에 있을 때 System Audio Device로부터 Audio Object 설정을 자동으로 상속받기 위해 Same as parent Bus Configuration을 사용할 것을 권장합니다.
3d가 아닌 모노나 스테레오 스트림은 System Audio Device에 의해 자동으로 Passthrough Mix로 전달됩니다. Wwise System Output Settings Metadata에서 Mix Behavior를 Mix To Passthrough로 설정하면 다른 종류의 오브젝트가 Passthrough Mix로 강제로 전송되도록 할 수 있습니다.
3d 오디오를 감지하고 Headphone과 Surround 모드 간을 올바르게 전환하기 위해서는 게임 측에서의 논리가 필요했습니다 (예: 'Bypass all'과 'Passthrough objects' 오브젝트 패닝 설정).
이제는 System Audio Device가 이 감지를 실행하고 3D 오디오가 활성화되었는지의 여부에 따라서 Audio Object와 Passthrough Mix를 자동으로 활성화합니다. 또한 Headphone이나 Surround를 대상으로 할 경우 Main Mix에 별도의 구성을 선택하는 것도 가능합니다. 마지막으로, 어떤 버스이던지 Same as main mix나 Same as passthrough mix Bus Configuration을 사용해서 Main Mix나 Passthrough Mix에서 이어받을 수 있습니다.
Wwise SDK 통합 데모에는 이전 섹션에서 설명한 대상 설정을 설명하는 새로운 페이지가 제공됩니다.
Positioning Demo > 3D Audio Objects and Spatialized Bed를 참고해 주세요.
We announce that Wwise 2021.1 will be the last major version to support the legacy Wwise command line interface, known as WwiseCLI.exe. 2021.1의 마이너 버전도 이 인터페이스를 지원하지만 추후 메이저 버전에서는 지원되지 않습니다. 레거시 Wwise 명령줄 인터페이스를 대체하는 Wwise Console에 대해 더 알아보려면 명령줄 사용하기 을 참고해 주세요.
Wwise 2021.1은 SoundFrame을 지원하는 마지막 메이저 버전입니다. 2021.1의 마이너 버전도 SoundFrame을 지원하지만 추후 메이저 버전에서는 지원되지 않습니다. Refer to Wwise Authoring API (WAAPI, Wwise 저작 API) 사용하기 to learn more about the Wwise Authoring API (WAAPI), which replaces the SoundFrame.
Wwise 2013.1보다 더 이전 버전에서 Wwise 프로젝트의 마이그레이션 지원이 제거되었습니다. 이들 예전 프로젝트를 2019.2로 먼저 마이그레이션한 다음 2021.1로 마이그레이션하는 것은 가능합니다.
리턴 옵션이 알 수 없는 속성인 ak.wwise.core.object.get 을 호출할 경우 아무 결과가 제공되지 않았습니다. 하지만 이제는 WAAPI 오류가 생성됩니다. 이 오류는 XML에서 정의되지 않은 속성을 사용할 경우에 발생합니다. 지원되지 않는 오브젝트에서 알려진 속성을 사용할 경우에는 오류가 발생하지 않습니다.
이제 Wwise SDK 헤드와 소스가 올바르게 컴파일되기 위해서는 C++14가 필요합니다. 지원되는 컴파일러 목록은 플랫폼 요구 사항 을 참고하세요.
Spread와 Focus 곡선은 원래 리스너의 상위 벡터에 의해 정의된 평면에 투영된 이미터-리스너 벡터의 거리에 대해 평가되었지만, 이제는 이미터와 리스너 간의 실제 거리에 대해 평가됩니다.
기존의 작동 방식은 보통 리스너 위/아래로 지나가는 3D 사운드의 확산을 증가시켜서 평면 스피커 구성 (5.1, 7.1 등)에서 패닝을 매끄럽게 만들어주었습니다. 아쉽게도 이 작동 방식은 바이노럴 스테레오나 7.1.4와 같은 3D 구성에서는 그다지 현실적으로 패닝되지 못합니다. 예를 들어 3D 사운드가 리스너를 지나갈 경우 전방향적이게 되어버리죠.
이렇게 평면 구성에서 패닝 중 매끄러운 효과를 잃지 않으면서 실제 거리에 따라 Spread를 평가하기 위해서 Height Spread라는 새로운 속성이 제공됩니다. 이 속성은 패닝이 평면 구성에서 일어날 경우에만 높이에 따라, 패닝이 7.1.4와 같은 반구형 구성에서 일어날 경우에는 음수 높이만 기반으로 최소 확산을 계산합니다.
이 속성은 기본적으로 true로 설정되며 Attenuation Editor 안에 위치해 있습니다. 체크 상자를 비활성화하면 이 작동 방식을 사용하지 않을 수 있습니다. 이를 위해서는 사운드에 감쇠가 없을 경우 평평한 Output Bus 볼륨 곡선이 있는 Attenuation ShareSet를 만들어야 합니다.
이전에 비밀 플랫폼이었던 새로운 플랫폼이 이제 PlayStation 5와 Xbox Series X로 변경되었습니다. 이 플랫폼이 이미 Wwise 프로젝트에 있었을 경우 코드명을 'PS5'와 'XboxSeriesX'로 변경하는 마이그레이션 단계가 실행됩니다. 이름, GeneratedSoundBanks, ExternalSourceFilePaths와 같은 플랫폼에 대한 정의가 기본값으로 설정되었을 경우 알맞은 곳에서 이 정의도 자동으로 이름이 변경됩니다.
이전에 코드명인 'Pellegrino'로 불리던 PlayStation 5는 이제 'PS5'로 불립니다. 특히 다음 사항을 유의해주세요:
AK_PS5로
변경되었습니다.AK::IAkPS5Context로
변경되었습니다.Microsoft Game Core 플랫폼의 이름이 변경되었습니다:
특히 다음 사항을 유의해주세요:
AK_XBOXSERIESX
로 변경되었습니다.AK_XBOXONEGC
가 이제 Xbox One Game Core를 정의합니다.AK::IAkXboxGCContext로
변경되었습니다.Microsoft 플랫폼은 이제 WASAPI만 지원합니다. XAudio2와 DirectSound 지원은 2021.1에서 종료되었습니다.
AkAudioAPIWindows가 제거되었습니다. AkPlatformInitSettings::eAudioAPI가 Windows에서 제거되었습니다.
AkPlatformInitSettings::eAudioAPI가 XboxOne과 XboxOneGC에서 제거되었습니다.
AkAudioAPIGX가 제거되었습니다. AkPlatformInitSettings::eAudioAPI가 XboxGC(이전에 GX라고 불림)에서 제거되었습니다.
AK::MemoryMgr::Falign과 AK::MemoryMgr::dFalign이 제거되었습니다. AK::MemoryMgr::Malign(혹은 dMalign)과 함께 할당된 메모리가 이제 AK::MemoryMgr::Free (혹은 dFree)를 사용해서 자유로워지거나 AK::MemoryMgr::ReallocAligned(혹은 dReallocAligned)를 사용해서 재할당됩니다.
IAkPluginMemAlloc::Malloc과
IAkPluginMemAlloc::Malign이
이제 파일 이름과 행 번호를 사용하여 메모리 할당을 추적합니다. 이 작업은 AK_PLUGIN_ALLOC
과 AK_PLUGIN_ALLOC_ALIGN
매크로에 의해 자동으로 처리되며, 적절한 곳에 이 매크로를 사용할 것을 권장합니다.AK_PLUGIN_REALLOC
과 AK_PLUGIN_REALLOC_ALIGN
이 추가되었으며 각각 IAkPluginMemAlloc::Realloc
과 IAkPluginMemAlloc::ReallocAligned
를 호출합니다.IAkPluginMemAlloc:dMalloc과
IAkPluginMemAlloc::dMalign이
제거되었습니다. 이 함수의 디버깅 버전은 이제 AkMemSettings::uMemoryDebugLevel에 따라 자동으로 호출됩니다.MIDI API 함수에 몇 가지 내용이 추가되었습니다. 추가된 내용은 다음과 같습니다:
IAkGlobalPluginContext::PostMIDIOnEventSync와
IAkGlobalPluginContext::StopMIDIOnEventSync가
이 API 변경 사항을 반영하도록 업데이트되었습니다.
사용되지 않는 일부 플랫폼 전용 정렬 정의가 제거되었습니다:
AK/SoundEngine/Platforms/Android/AkAndroidSoundEngine.h:
AK/SoundEngine/Common/IAkPlugin.h:
IAkPluginContextBase::GetAudioNodeID()로
교체되었습니다.IAkPluginServiceMixer
(PluginServiceType_Mixer
종류의 IAkPluginService
)로 이동하였습니다.AK/SoundEngine/Common/AkSpeakerConfig.h: AK/SoundEngine/Common/AkCommonDefs.h:
AK/Wwise/Utilities.h:
Wwise 2021.1은 새로운 Wwise 저작 플러그인 API를 제공합니다. 재작성된 이 API는 프론트엔드 구분과 이전 버전과의 호환성과 같은 Wwise Authoring 애플리케이션의 많은 기능을 활성화할 때의 일부 오류를 해결해 줍니다. 플랫폼에서의 의존성과 툴셋 전용 기능도 현저히 감소되었습니다. 새로운 API는 이제 <Wwise>/SDK/include/AK/Wwise/Plugin
아래에서 찾을 수 있습니다.
전용 마이그레이션 가이드에서는 여러분의 플러그인을 새로운 API로 이식하는 주요 단계를 설명해 줍니다. Migrating a pre-2021.1 Authoring Plug-in 을 참고해 주세요.
참고: 새로운 C++ API는 C++17이 가능한 컴파일러를 필요로 합니다. |
전환을 보다 쉽게 하기 위해서 이전의 '원본' API가 Wwise 2021.1에서도 동일한 위치(<Wwise>/SDK/include/AK/Wwise
)에서 여전히 제공되며 이를 사용하여 제작된 플러그인도 Wwise 2021.1에 의해 지원됩니다. 하지만 이제 legacy__로 표시되며 추후 Wwise 버전에서는 업데이트를 받지 __않습니다. 모든 플러그인 개발자분들은 제작한 플러그인을 이 새로운 API로 마이그레이션할 것을 권장해드립니다.
예를 들어 <Wwise>/SDK/AK/SoundEngine/Common/IAkPlugin.h
와 같은 사운드 엔진 플러그인 API는 현재로 유지되며 레거시로 간주되지 않습니다. 새로운 API는 Wwise 플러그인의 Wwise Authoring 측면만 다룹니다. 더 자세한 내용은 플러그인 개요 를 참고해 주세요.
Wwise 2021.1의 기존 API에 대한 최종 변경 내용은 다음과 같습니다:
AK::Wwise::IAudioPlugin::NotifyMonitorData의
특징이 새로운 타임 스탬프 인자를 지원하도록 변경되어서 밀리세컨드로 제공됩니다. 이 인자는 미터를 항상 허용하는 새로운 Meter History 기능과 함께 사용됩니다.AK::Wwise::IWriteData::WriteUtf16String과
AK::Wwise::IWriteData::WritePascalString
함수 deprecated가 이제 제거되었습니다. 이제 Wwise 저작 플러그인 API와 상호작용할 때 데이터 문자열에서 UTF-8이 독점적으로 사용됩니다. 새로운 API에서 경로 문자열 인자는 LPCWSTR
에서 일반적인 AkOSChar
버퍼로 마이그레이션되었습니다.iZotope Trash Box Modeler 플러그인에 더 이상 boxmodel.wav 외부 파일이 필요하지 않아 삭제되었습니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요