XACT コード主導 API
Microsoft Cross-Platform Audio Creation Tool (XACT) API には、XACT で作成されたコンテンツの統合および再生に使用されるコンテンツ主導型 XACT API 関数の他に、一連のコード主導型関数が用意されています。コード主導型関数により、ゲーム開発者は、ゲームにおけるオーディオ コンテンツを操作し、制御できるため、ディスクのストリーミングやデータ構築などの作業に XACT を使用します。コード主導型関数は、XMA のように複雑な形式の抽象化にも役立ちます。
XACT API のコード主導型関数には、オーディオ データを再生するための使いやすいメソッドが含まれています。オーディオ ファイルは、XACT GUI で作成して Wave バンクに格納することもできれば、単純に .wav ファイルとして操作することもできます。
XACT API は、ローレベル オーディオ ソフトウェア エンジン上に構築され、置き換えられない点に注意してください。オーディオ データを低レベルで管理する必要がある場合は、XAudio2 でオーディオ エンジンの機能に直接アクセスすることもできます。
注 XMA のブロック サイズは可変で、コマンド ライン エンコーダーを使用して設定することができます。XACT コード主導型関数を使用する場合は、64 KB のブロック サイズでデータをエンコードする必要があります。
コード主導型関数を Wave バンクと共に使用する
コード主導型関数を Wave バンクと組み合わせて使用するには、まず、XACT API を使用して Wave バンクを作成する必要があります。詳細については、IXACT3Engine の Wave バンクの作成メソッドを参照してください。
作成したウェーブ バンク オブジェクトに含まれるウェーブは、次のいずれかの方法で再生できます。それらは、再生してから消去するまたは準備してから再生する方法です。
再生方法 1:再生してから消去する
再生してから消去する方法は、Wave バンク内の Wave のプロパティを変更する必要がない場合に使用します。
再生してから消去する方法で Wave バンクから Wave を再生するには、IXACT3WaveBank::Play を呼び出します。
再生方法 2:準備してから再生する
準備してから再生する方法は、Wave のプロパティを変更する必要がある場合に使用します。
準備してから再生する方法で Wave バンクから Wave を再生するには、IXACT3Engine::PrepareWave を使用して IXACT3Wave オブジェクトを作成します。
メモリー内 Wave の場合は、IXACT3Engine::PrepareWave は瞬時に行われるものではありません。IXACT3Engine::PrepareWave で再生されるストリーミング Wave の場合、Wave データがディスクから取得されるため、若干時間がかかることがあります。
Wave が準備されてから、プロパティ (ピッチやボリュームなど) を設定できます。Wave を再生するには、IXACT3Wave::Play を呼び出します。
コード主導型関数を Wave バンクなしで使用する
XACT コード主導型関数を Wave バンクと組み合わせずに使用するには、2 とおりの方法があります。
.wav ファイルを使用する
コード主導型関数を使用して、メモリー内 Wave またはストリーミング Wave を .wav ファイル形式で直接再生できます。直接 Wave を再生するには、IXACT3Engine::PrepareWave メソッドを使用して IXACT3Wave オブジェクトを作成します。IXACT3Wave オブジェクトはメモリー内に完全に読み込まれるか、ストリーミングに指定されます。準備の整った Wave がこれらのメソッドで返されます。IXACT3Engine::PrepareWave は非同期です。通知または IXACT3Wave::GetState を使用して、Wave が準備できたかどうか判断します。
Wave データはディスクから取得されるため、準備に若干時間がかかる場合があります。Wave を作成した後で、ピッチやボリュームなどの Wave プロパティを設定することができます。Wave を再生するには IXACT3Wave::Play を、停止するには IXACT3Wave::Stop を、一時停止するには IXACT3Wave::Pause を呼び出します。
未処理の Wave データを使用する
コード主導型関数を使用して、メモリー内にある未処理のデータか、よりサイズの大きい wad ファイルの一部としての未処理のデータから、メモリー内 Wave またはストリーミング Wave を再生できます。未処理のデータまたは wad ファイルを使用するには、IXACT3Engine::PrepareInMemoryWave または IXACT3Engine::PrepareStreamingWave を使用して IXACT3Wave オブジェクトを作成します。ピッチやボリュームなどの Wave プロパティを設定できます。IXACT3Wave::Play を呼び出すと、Wave が再生されます。
コード主導型メソッド
次のメソッドは、XACT のコード主導型関数を使用する際に使用できます。