menu
버전
2024.1.4.8780
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
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
Wwise SDK 2024.1.4
|
Wwise 사운드 엔진의 모든 모듈은 AK::MemoryMgr 인터페이스를 통해 메모리에 접근합니다. 사운드 엔진의 클라이언트는 이 인터페이스의 초기화와 종료 처리를 해야 합니다.
SDK에 정적 라이브러리(AkMemoryMgr.lib)로 기본 구현이 제공돼있습니다. 이 라이브러리를 사용하려면 클라이언트가 AkModule.h 헤더를 포함하고 AK::MemoryMgr::Init 초기화 함수를 호출해야 합니다.
AkMemoryMgr.lib 와 다른 라이브러리의 사용법에 더 자세한 정보는 빌드 환경 설정 를 참고하세요.
기본 구현에서 기본 초기화 설정은 AK::MemoryMgr::GetDefaultSettings 를 이용해 구할 수 있습니다.
기본적으로 모든 메모리는 Wwise에서 내장된 AkMemoryArenas 를 사용하여 할당되며, 각각은 AkMemSettings::memoryArenaSettings
배열을 사용하여 별도로 구성할 수 있습니다. 최대 4개의 AkMemoryArena 를 구성할 수 있습니다.
AkMemoryMgrArena_Primary
: 대부분의 메모리 카테고리에서 사용되는 기본 AkMemoryArena입니다.AkMemoryMgrArena_Media
: 일반적으로 SoundBank를 로딩할 때 Media 메모리 카테고리로 이동하는 메모리 할당에 사용되는 AkMemoryArena입니다.AkMemoryMgrArena_Profiler
: Profiler 및 Monitor Queue 메모리 카테고리에 메모리를 할당할 때 사용되는 AkMemoryArena입니다. 이 AkMemoryArena 는 Release 빌드 설정에 존재하지 않습니다.AkMemoryMgrArena_Device
: 장치별 메모리 할당을 처리하는 데 사용되는 AkMemoryArena 입니다. 이 문제는 오디오 처리를 위해 장치별 메모리를 사용하는 특정 플랫폼, 즉 AK_DEVICE_MEMORY_SUPPORTED
가 정의된 플랫폼에만 나타납니다.AkMemoryArena 가 필요에 따라 메모리 스팬을 확보하고 해제하는 데 사용되므로, 게임 엔진에 통합하기 위해 각 AkMemoryArena 에 대해 다음 콜백을 구현하는 것이 좋습니다.
AkMemoryArenaSettings::fnMemAllocSpan
AkMemoryArenaSettings::fnMemFreeSpan
AkMemoryArenaSettings::uMemReservedLimit
를 사용하면 각 AkMemoryArena 에서 예약하는 메모리 양의 제한을 설정할 수도 있습니다.
AkMemoryArena 구성에 사용할 수 있는 다른 설정에 대한 자세한 내용은 AkMemoryArenas의 환경 설정 및 튜닝 을 참조하세요.
AkMemoryArena 사용을 재정의하고 모든 메모리 할당에 사용자 정의 할당자를 사용하려면 다음 콜백을 모두 재정의합니다.
위의 할당 함수에서 AkMemType_Device
비트가 설정되면 장치 메모리를 반환하여 해당 비트를 지키는 것이 중요합니다.
info | 참고: 사용자 정의 메모리 할당자를 사용하는 경우 Wwise에서 AkMemoryArenas 프로파일링을 사용할 수 없습니다. |
다음 설정을 사용해 추가적인 런타임 디버깅 기능을 활성화할 수 있습니다.
이 불분명한 값으로 커스텀 구현하면 원하는 만큼의 메모리 디버깅을 정의할 수 있습니다. 기본 구현에는 두 개의 레벨이 있습니다.
모든 할당을 파일로 덤프하려면 다음을 사용하세요 (이 때 AkMemSettings::uMemoryDebugLevel 는 1이어야 하며 Release 설정이 아니어야 합니다).
주의: 사운드 엔진은 AK::IAkStreamMgr::CreateStd() 를 이용하는 쓰기를 위해 스트림을 엽니다. Stream Manager의 기본 구현을 사용하고 있다면, Low-Level IO 인터페이스 AK::StreamMgr::IAkLowLevelIOHook::BatchOpen() 의 구현에서 파일 열기가 실행됩니다.
디버깅 목적으로 할당 추적을 수행하려면 다음 설정을 사용합니다 (이 설정은 Release 설정에서는 호출되지 않습니다).
위의 디버그 함수는 할당 함수를 대체하지 않습니다. 이 함수는 다양한 메모리 할당 이벤트에 대한 알림 콜백입니다.
더 자세한 정보는 다음 섹션을 참조하세요.
클라이언트가 직접 AK::MemoryMgr 인터페이스를 커스텀 구현할 수 있습니다. AkMemoryMgr.h 에 정의된 모든 함수가 구현돼야 합니다. AkModule.h 에 정의된 AK::MemoryMgr 네임스페이스의 함수는 메모리 관리자의 기본 구현에 대해 만들어졌기 때문에 따로 구현할 필요가 없습니다.
AkMemSettings
의 다양한 할당 함수를 재정의할 때와 마찬가지로 새로운 AK::MemoryMgr 구현을 작성할 때는 비트가 설정됐을 때 장치 메모리를 반환하여 AkMemType_Device
비트를 지키도록 주의해야 합니다. 장치 메모리 할당은 일부 플랫폼에서만 사용하며, 특정한 매개 변수를 따릅니다. 자세한 내용은 별도의 플랫폼별 섹션을 참고하세요.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요