Wwise SDK 2024.1.1
|
Wwise SDKヘッダに、有効なC++14以降のコンパイラが必要です。ご利用のコンパイラがC++14コードをパースできることをご確認ください。対応コンパイラの一覧が プラットフォーム要件 にあります。
最適化のため、プロジェクトのリリースコンフィギュレーションの要件は、開発コンフィギュレーションとやや異なります。
プロジェクトのリリースコンフィギュレーションで AK_OPTIMIZED
シンボルを定義する必要があります(「Ship」や「Retail」などと呼ばれることがあり、ゲームのリテールバージョンをビルドするために使用されるコンフィギュレーションです)。
このシンボルは、リリースバージョンへの不要なコードのコンパイルを回避するため、さまざまな場所で使用されます。
Wwiseサウンドエンジンでは、Wwiseとゲーム間の通信が可能なため、Wwiseユーザはゲーム内でミキシングやプロファイリングを実行できます。しかし、この通信はパフォーマンス上の理由からリリースコンフィギュレーションでは使用できません。
ゲーム内で通信を可能にしている場合は #ifndef
AK_OPTIMIZED / #endif
のようにコードを囲み、ゲームのリリースバージョンから除外します。
本セクションの推奨事項および要件はWindowsでの開発にのみ適用されます。
wchar_t型を使用するWwiseサウンドエンジン関数を1つ以上コールする場合、サウンドエンジンライブラリに適切にリンクするため、プロジェクトの設定で「Treat wchar_t as Built-in type」オプションを有効にする必要があります。このためには、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」を有効にしないと、コンパイラが関数AK::SoundEngine::LoadBank(const wchar_t *,long,unsigned long &)をAK::SoundEngine::LoadBank(unsigned short const *,long,unsigned long &)と誤って解釈するため、以下のようなリンクエラーが発生します: unresolved external symbol "enum AKRESULT __cdecl AK::SoundEngine::LoadBank(unsigned short const *,long,unsigned long &)"
警告: プロジェクトの「Treat wchar_t as Built-in Type」設定を有効にすることをお勧めします。有効にしない場合は、以下の手順をお読みください。 一部のプラットフォームでwchar_tにtypedefされているAkOSChar型に特にご注意ください。この型は、ディスクI/Oを伴うメソッドで使用されます。具体的には、Stream Manager( AK::IAkStreamMgr )およびLow-Level I/O( AK::StreamMgr::IAkLowLevelIOHook )のインターフェースに使用されます。 ゲーム全体を通じてAudiokineticのデフォルトのStream ManagerをI/Oマネージャとして使用する場合、AkOSCharがwchar_tにtypedefされているプラットフォームでは「Treat wchar_t as Built-in Type」設定を有効にする必要があります。しかし、一般的には、WwiseサウンドエンジンはStream Managerの唯一のクライアントです。このような場合には、プロジェクトの設定で「Treat wchar_t as Built-in Type」を有効にする必要はありません。 Low-Level I/O APIでは、通常コールする代わりに実装するので、「Treat wchar_t as Built-in Type」設定は問題を引き起こしません。 File Package Low-Level I/Oサンプル( ファイルパッケージ低レベルI/Oの実装 を参照)は、AkOSCharがwchar_tにtypedefされている場合、wchar_t型を使用するいくつかのサウンドエンジンメソッドをコールすることにご注意ください。「Treat wchar_t as Built-in Type」設定を有効化せずにこのサンプルをプロジェクトで使用する場合、必要に応じてwchar_t型文字列をchar型文字列に変換するため、一部を変更する必要があります。その場合、AKPLATFORM::AkWideCharToChar()ヘルパーを活用できます。これは、AK/Tools/Common/AkPlatformFuncs.hで定義されています。 Wwise I/Oの統合方法に関する詳細については ストリーミング/ストリームマネージャ をご参照ください。 |
Windowsゲームで、AkSoundEngineDLLサンプルプロジェクト(下記参照)のように、Wwiseサウンドエンジンに関連する全てのライブラリをラップするためにDLLを使用している場合、サウンドエンジンAPIのシンボルを正常にインポートできるよう、DLL(ゲーム実行可能ファイルまたは別のDLL)に依存するプロジェクトにおいて AKSOUNDENGINE_DLLを 定義する必要があります。
Wwiseサウンドエンジンのライブラリと静的にリンクするプロジェクトは AKSOUNDENGINE_DLL を定義するべきではありません。
このサウンドエンジン統合の手引きは、基本的な統合をステップバイステップでガイドするもので、初期化やいくつかのモジュールの個別取り扱いなどを説明しています。サンプルDLLプロジェクトで作業したい場合は、SDKにこれが1つ含まれています。AkSoundEngineDLLプロジェクトは、統合タスクの一部を、"Initialize(初期化)" や "Terminate(終了)" のような高レベルの呼び出しにラップします。これは、各ステップを個別にご覧いただけるよう、この例では使用されていませんが、実際のゲーム内ではDLLやその変更バージョンを使用することができます。このDLLの使用例は AkCube サウンドエンジン統合サンプルプロジェクト をご覧ください。
注釈: WindowsでAkSoundEngineDLLを使用するためには、Visual Studio 2017パッケージをインストールする必要があります。 |
AkSoundEngineDLL プロジェクトには低レベルI/Oが実装されていますが、必要に応じてこれを置き換えることができます。低レベルI/Oに関する詳細は、低レベル I/O をご覧ください。