バージョン
コーデックプラグインを使用すると、コンパイル時にオーディオファイルフォーマット形式(ADPCM、PCM、Vorbisなど)のいくつかを除外し、サウンドエンジンのメモリ使用量を減らすことができます。このドキュメントには、開発者がゲーム内で特定のコーデック形式を使用するために必要な情報が含まれています。
|
Note: 現在、プラガブルビヘイビアをサポートするコーデックは、Vorbis形式のみです。 |
サウンドデザイナーが、開発対象ゲームのWwiseプロジェクトで、コーデック形式の使用を決定した場合、その解凍プラグインをコードに統合し、ランタイム時にサウンドエンジンがこれを使用できるようにしなければなりません。
各コーデックプラグインは、ゲームにリンクする必要のある個別ライブラリ(.libファイル)として提供されます。例えば、Vorbis形式デコーダライブラリは、AkVorbisDecoder.libです。また、AKSoundEngine::RegisterCodec() SDK関数を使用して、コーデック形式を登録する必要があります( コーデックプラグインの登録 参照).。
ダイナミックライブラリをサポートするプラットフォーム(PCなど)では、AkSoundEngineDLLプロジェクトによって、全てのサウンドエンジンモジュールのバンドルをコンパイルすることができます。デフォルトでは、このプロジェクトはVorbisコーデックを登録し、そのスタティックライブラリとリンクします。ゲームで Vorbis コーデックを使用したくない場合は、プロジェクトから AkVorbisDecoder.lib へのリンク依存を削除し、サウンドエンジン初期化関数のコーデックプラグイン登録をコメントアウトすればよいだけです。(詳細は、コーデックプラグインの登録 を参照してください)。
コーデックプラグインは、その使用に先立ってゲームコードによる登録が必要です。コーデックプラグインの登録は、次のように定義される AK::SoundEngine::RegisterCodec() への呼び出しで実行可能です:
// Register codec plug-in to the plugin manager and set callbacks to create new file source or bank source node. AKRESULT RegisterCodec( AkUInt32 in_ulCompanyID, // Company identifier (as declared in the plug-in description XML file) AkUInt32 in_ulCodecID, // Plugin identifier (as declared in the plug-in description XML file) AkCreateFileSourceCallback in_pFileCreateFunc, // Pointer to the codec file source creation function AkCreateBankSourceCallback in_pBankCreateFunc // Pointer to the codec bank source creation function ) = 0;
1番目と2番目のパラメータは、登録するコーデックプラグインの識別にのみ使用されます。Company ID と Plug-in ID は、プラグイン開発者によって定義されます。Vorbis コーデック形式の例として、SDK の "AK/Plugin/AkVorbisFactory.h" を参照してください。 3番目と4番目のパラメータは、メモリまたはストリーミングファイルからのソース再生用コーデックプラグインのインスタンスを作成するためにサウンドエンジンによって使用されます。
|
Note: コーデックプラグインの登録は、初期化時に一度のみ行う必要があります。 |
Vorbisコーデック形式を登録するためのサンプルコードです。
#include <AK/Plugin/AkVorbisFactory.h> // ... Sound engine initialization ... // Register Vorbis codec AK::SoundEngine::RegisterCodec( AKCOMPANYID_AUDIOKINETIC, AKCODECID_VORBIS, CreateVorbisFilePlugin, CreateVorbisBankPlugin );