目次

Wwise SDK 2018.1.11
C++プロジェクト各種設定の定義

サウンドエンジンのReleaseコンフィギュレーション使用時にAK_OPTIMIZEDを定義

プロジェクトのReleaseコンフィギュレーションで AK_OPTIMIZED シンボルを定義する必要があります("Ship"や"Retail"などと呼ばれることがあり、ゲームのリテールバージョンをビルドするために使用されるコンフィギュレーションです)。

このシンボルは、Releaseバージョンへの一部のコードのコンパイルを回避するために様々な場所で使用されます。

通信コード

Wwiseサウンドエンジンは、Wwiseとゲームを通信させ、Wwiseユーザーによるゲーム内ミキシングとプロファイリングの実行を可能にします。しかし、この通信はパフォーマンス上の理由からReleaseコンフィギュレーションでは使用できません。

ゲーム内で通信を可能にしている場合、 #ifndef AK_OPTIMIZED / #endif のようにコードを囲んでゲームのReleaseバージョンから除外する必要があります。

wchar_t 型サウンドエンジンAPI関数を使用の場合、wchar_t をビルトイン型として扱う(Windowsのみ)

1つまたは複数のwchar_t型を使用するWwise サウンドエンジン関数を呼び出す場合、サウンドエンジンライブラリへ適切にリンクするために、プロジェクトの設定で"Treat wchar_t as Built-in type(wchar_t をビルトイン型として扱う)" オプションを有効にする必要があります。このためには、Configuration Properties(コンフィギュレーションプロパティ)> C/C++ > Language(言語)に移動し、"Treat wchar_t as Built-in Type(wchar_t をビルトイン型として扱う)" を "Yes(はい)" に設定します。これにより、 "/Zc:wchar_t" コンパイルフラッグが指定されます。

しかしながら、wchar_t 型を使用するサウンドエンジン関数を呼び出さない場合には、この操作は必要がありません。これらの関数は、 char型を使用する対応型を持つことに注意してください。

wchar_t型を使用する関数を呼び出す場合に、プロジェクトの設定で"Treat wchar_t as Built-in Type"の有効化を省略すると、以下に類似したリンクエラーが発生します:unresolved external symbol "enum AKRESULT __cdecl AK::SoundEngine::LoadBank(unsigned short const *,long,unsigned long &)", the function AK::SoundEngine::LoadBank(const wchar_t *,long,unsigned long &) being erroneously interpreted as AK::SoundEngine::LoadBank(unsigned short const *,long,unsigned long &) by the compiler.

Warning: プロジェクトの"Treat wchar_t as Built-in Type" 設定を有効にすることをお勧めします。有効にしない場合は、以下の手順をお読みください。

いくつかのプラットフォームで、wchar_t にtypedefされているAkOSChar 型に特に注意を払う必要があります。このタイプは、ディスクI/Oを伴うメソッドで使用されます。より具体的には、Stream Manager(ストリームマネージャ) (AK::IAkStreamMgr) およびLow-Level I/O(低レベル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"を有効にする必要はありません。

低レベルI/O APIでは、一般的にこれを 呼び出す代わりに実装する ので、"Treat wchar_t as Built-in Type" 設定は問題とはなりません。

File Package Low-Level I/O(ファイルパッケージ低レベルI/O)サンプル(ファイルパッケージ低レベルI/Oの実装 をご覧ください)は、AkOSCharwchar_tにtypedefされている場合、 wchar_t型を使用するいくつかのサウンドエンジンメソッドを呼び出すことに注意してください。"Treat wchar_t as Built-in Type" 設定を有効化せずにこのサンプルをプロジェクトで使用したい場合は、必要とされる場所で wchar_t 型文字列のchar 型文字列への適切な変換を行うために、その一部を変更する必要があります。このためには、AKPLATFORM::AkWideCharToChar() ヘルパーの使用が可能です。これは、AK/Tools/Common/AkPlatformFuncs.hで定義されています。

I/Oに関するWwiseの統合方法に関する詳細は、 ストリーミング/ストリームマネージャ をご覧ください。

DLLへサウンドエンジンライブラリをラップする場合に、プロジェクトでAKSOUNDENGINE_DLLを定義(Windowsのみ)

Windowsゲームで、AkSoundEngineDLLサンプルプロジェクト(下記参照)のように、Wwiseサウンドエンジンに関連する全てのライブラリをラップするためにDLLを使用している場合、サウンドエンジンAPIのシンボルを正常にインポートできるよう、DLL(ゲーム実行可能ファイルまたは別のDLL)に依存するプロジェクトにおいて AKSOUNDENGINE_DLLを 定義する必要があります。

Wwiseサウンドエンジンのライブラリと静的にリンクするプロジェクトは AKSOUNDENGINE_DLL を定義するべきではありません。

AkSoundEngineDLL プロジェクト(Windowsのみ)

このサウンドエンジン統合の手引きは、基本的な統合をステップバイステップでガイドするもので、初期化やいくつかのモジュールの個別取り扱いなどを説明しています。サンプルDLLプロジェクトで作業したい場合は、SDKにこれが1つ含まれています。AkSoundEngineDLLプロジェクトは、統合タスクの一部を、"Initialize(初期化)" や "Terminate(終了)" のような高レベルの呼び出しにラップします。これは、各ステップを個別にご覧いただけるよう、この例では使用されていませんが、実際のゲーム内ではDLLやその変更バージョンを使用することができます。このDLLの使用例は AkCube サウンドエンジン統合サンプルプロジェクト をご覧ください。

Note: WindowsでAkSoundEngineDLLを使用するためには、Visual Studio 2013パッケージをインストールする必要があります。

AkSoundEngineDLL プロジェクトには低レベルI/Oが実装されていますが、必要に応じてこれを置き換えることができます。低レベルI/Oに関する詳細は、低レベル I/O をご覧ください。