menu
 
버전
2022.1.19.8584

2024.1.5.8803

2023.1.13.8732

2022.1.19.8584

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 SDK 2022.1.19
C++ 프로젝트 설정 정의하기

C++14 컴파일러 요구 사항

Wwise SDK 헤더는 유효한 C++14 (또는 그 이상) 컴파일러를 필요로 합니다. 사용하고 있는 컴파일러가 C++14 코드를 파싱할 수 있는지 확인하세요. 지원되는 컴파일러 목록은 플랫폼 요구 사항 을 참고하세요.

릴리즈 구성 설정

최적화를 위해 프로젝트의 릴리스 구성에는 개발 구성과 약간 다른 요구 사항이 있습니다.

AK_OPTIMIZED 심볼 정의하기

프로젝트의 릴리즈 설정(이는 개발한 게임의 출시 버전을 빌드할 때 사용되는 설정에서 'Ship', 'Retail' 등으로도 불릴 수 있음)에서 AK_OPTIMIZED 심볼을 정의해줘야 합니다.

해당 심볼은 릴리즈 버전에서 불필요한 코드 컴파일을 피하기 위해 다양한 곳에서 사용됩니다.

Communication 코드 제외

Wwise 사운드 엔진을 사용하면 Wwise와 게임 간의 커뮤니케이션을 활성화하여 Wwise 사용자가 게임 내에서 믹싱과 프로파일링을 수행할 수 있습니다. 그러나 이 커뮤니케이션은 성능상의 이유로 릴리즈(release) 설정에서는 작동하지 않습니다.

게임 내에서 커뮤니케이션을 활성화하는 경우, #ifndef AK_OPTIMIZED / #endif 로 코드를 감싸 게임의 릴리스 버전에서 이 코드를 제외시킵니다.

Windows 관련 고려 사항

이 섹션의 권장 사항 및 요구 사항은 Windows를 기반으로 하는 개발에만 적용됩니다.

wchar_t 사용하기

Wwise 사운드 엔진에서 wchar_t 타입을 사용하는 함수를 호출하려면, 사운드 엔진 라이브러리에 알맞게 연결되도록 프로젝트 설정에서 "Treat wchar_t as Built-in type" 옵션을 활성화해야 합니다. 그러기 위해서는 Configuration Properties > C/C++ > Language로 이동해서 "Treat wchar_t as Built-in Type"을 "Yes"로 설정합니다. 이렇게 하면 "/Zc:wchar_t" 컴파일 플래그가 설정됩니다.

그러나 wchar_t 타입을 사용하는 사운드 엔진의 어떠한 함수도 호출하지 않는다면 이 옵션이 필요하지 않습니다. 모든 함수는 wchar_t 대신에 char 타입을 사용하는 대응 관계의 함수를 갖는다는 점을 명심하세요.

프로젝트에서 "Treat wchar_t as Built-in Type" 설정을 활성화하지 않고 wchar_t 를 사용하는 함수를 호출하는 경우 다음과 유사한 링크 오류가 발생합니다. unresolved external symbol "enum AKRESULT __cdecl AK::SoundEngine::LoadBank(unsigned short const *,long,unsigned long &)" 이는 컴파일러가 AK::SoundEngine::LoadBank(const wchar_t *,long,unsigned long &) 함수를 AK::SoundEngine::LoadBank(unsigned short const *,long,unsigned long &)으로 잘못 해석하기 때문입니다.

dangerous

주의: 프로젝트에서 "Treat wchar_t as Built-in Type" 설정을 활성화하길 추천합니다. 이 옵션을 활성화하지 않겠다면 다음 내용을 확인하세요.

일부 플랫폼에서는 wchar_t의 typedef를 갖는 AkOSChar 타입에 특별히 주의하세요. 이 타입은 디스크 I/O와 관련된 함수에서 사용됩니다. 좀 더 구체적으로, Stream Manager (AK::IAkStreamMgr) 와 Low-Level I/O (AK::StreamMgr::IAkFileLocationResolver) 인터페이스에서 사용됩니다.

게임 전체에서 Audiokinetic의 기본 Stream Manager가 I/O 관리자로 사용되는 경우 AkOSCharwchar_t라는 typedef가 있는 플랫폼에서 "Treat wchar_t as Built-in Type" 설정을 활성화해야 합니다. 그러나 일반적으로 Wwise 사운드 엔진은 Stream Manager의 사용자일 뿐입니다. 이러한 경우, 프로젝트에서 "Treat wchar_t as Built-in Type"를 활성화해줘야 할 필요가 없습니다.

"Treat wchar_t as Built-in Type" 설정은 일반적으로 호출하지 않고 대신 구현하기 때문에 하위-레벨 I/O API에서 문제를 일으키지 않습니다.

File Package Low-Level I/O 샘플( 파일 패키지 Low-Level I/O 구현 참조)은 AkOSCharwchar_t의 typedef가 있는 경우 wchar_t 형식을 사용하는 사운드 엔진의 일부 메소드를 호출합니다. "Treat wchar_t as Built-in Type" 설정을 활성화하지 않고 프로젝트에서 이 샘플을 사용하려면 필요한 곳마다 wchar_t 문자열을 char 문자열로 변환하도록 샘플의 일부를 수정해야 합니다. 이를 위해서는 AKPLATFORM::AkWideCharToChar() 헬퍼를 사용합니다. 이 함수는 AK/Tools/Common/AkPlatformFuncs.h에 정의되어 있습니다.

Wwise I/O를 통합하는 방법에 대한 자세한 내용은 스트리밍 / 스트림 매니저 를 참조하세요.

단일 DLL 요구 사항

AkSoundEngineDLL 프로젝트 예제와 같이(아래 내용 참조), Windows용 게임에서 Wwise 사운드 엔진과 관련된 모든 라이브러리를 DLL로 만들어 사용하려면, 사운드 엔진 API의 심볼을 올바르게 가져오기 위해 게임 실행 또는 다른 DLL에 의존하는 프로젝트에서 AKSOUNDENGINE_DLL을 정의해야 합니다.

Wwise 사운드 엔진의 라이브러리와 정적으로 연결한 프로젝트는 AKSOUNDENGINE_DLL을 정의하면 안 됩니다.

AkSoundEngineDLL 샘플 프로젝트

사운드 엔진 통합 과정은 기본 통합 및 단계별 작업, 초기화, 개별 모듈 처리를 통해 안내해줍니다. 예제 DLL 프로젝트로 작업하기를 선호한다면, SDK에 DLL 하나를 포함해야 합니다. AkSoundEngineDLL 프로젝트는 "Initialize"나 "Terminate"처럼 일부 통합 작업을 상위 레벨 호출로 감싸놓았습니다. 이번 예제에서는 사용되지 않았으나 각 단계를 개별적으로 볼 수 있는데, 게임에서 DLL이나 수정된 버전의 DLL을 사용할 수 있습니다. 해당 DLL을 어떻게 사용하는지는 AkCube 사운드 엔진 통합 예제 프로젝트 를 참고하세요.

info참고: Windows에서 AkSoundEngineDLL을 사용하기 위해서는 Visual Studio 2017 패키지를 설치해야 합니다.


또한, AkSoundEngineDLL 프로젝트는 하위 레벨 I/O의 구현을 포함하고 있다는 점을 명심하세요. 이는 원하는 대로 교체가 가능합니다. Low-Level I/O와 관련해 더 많은 정보는 Low-Level I/O를 참고하세요.


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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요