XAudio2 の概要

XAudio2 は、Microsoft Windows および Xbox 360 向けの低レベルのクロスプラットフォーム オーディオ API です。この API は、DirectSound や XAudio などのそれ以前の API と同様に、ゲーム用の信号処理機能およびミキシングの基盤を提供します。Windows のゲーム開発者にとって、XAudio2 は、DirectSound に代わるものとして長い間待ち望まれていました。Xbox 360 開発者にとっては、いくつかの未解決の問題や機能に対する要求に対処した、以前の XAudio API の拡張バージョンです。

XAudio2 は、各種プラットフォームに対応しているため、Windows および Xbox 360 の開発者は、"1 回のみの記述で、2 回コンパイル" というソリューションを実行することができ、これによって、プラットフォーム間の移植に必要な作業が大幅に軽減されます。

ゲーム開発での開発者のパフォーマンスを向上させることができる XAudio2 の機能および新機能は、次のとおりです。

  • DSP エフェクトおよび 1 音声ごとのフィルタリング

    デジタル シグナル処理 (DSP) エフェクトは、オーディオのピクセル シェーダーです。これらは、サウンドの変換 (豚の悲鳴のような高音のサウンドから、低音の恐ろしい怪獣のサウンドへの変換など) や、リバーブおよび閉鎖フィルター、または障害物フィルターを使用したゲーム環境へのサウンドの配置など、あらゆる処理を実行できます。XAudio2 には、Windows プラットフォームと Xbox 360 プラットフォームに共通の、柔軟性のある強力な DSP フレームワークが用意されています。また、効率的なローパス フィルター、ハイパス フィルター、およびバンドパス フィルターのエフェクトに使用できる 1 音声ごとの組み込みフィルターもあります。

    DSP エフェクトおよび 1 音声ごとのフィルタリングの詳細については、「XAudio2 オーディオ エフェクト」および「IXAudio2Voice::SetFilterParameters」を参照してください。

  • サブミキシング

    サブミキシングとは、いくつかのサウンドを単一のオーディオ ストリームに統合することです。たとえば、各種のサウンドをすべて同時に再生して、エンジン音を構成します。同様に、サブミキシングを使用して処理し、ゲームで類似する部分を統合することもできます。たとえば、ユーザーによるボリューム設定を適用すると同時に、別の設定で音楽のボリュームを制御できるように、すべてのゲーム サウンド エフェクトを統合することができます。サブミキシングで、DSP を使用して統合し、現在のゲームに必要な各種データをルーティングしたり、処理したりできます。XAudio2 では、任意のレベルでのサブミシングが可能で、複雑なサウンド作成や、ゲームのミキシングができます。

    サブミキシングの詳細については、「XAudio2 オーディオ グラフ」および「XAudio2 ボイス」を参照してください。

  • 圧縮オーディオのサポート

    DirectSound サウンドに要求される主要な機能の 1 つは、圧縮オーディオのサポートでした。XAudio2 では、実行時に展開できるネイティブな圧縮形式 (ADPCM (Windows のみ)、XMA (Xbox 360 のみ)、WMA) をサポートしています。

  • 拡張マルチチャンネルおよびサラウンド サウンドのサポート

    マルチチャンネル、3D、およびサラウンド サウンドのサポートは、Windows および Xbox 360 の両方に拡張されています。Windows では、3D およびサラウンド サウンドは、柔軟性と透過性が向上しています。Xbox 360 では、XAudio アーキテクチャに引き継がれていたいくつかの制限が撤廃されました。XAudio2 は、マルチチャンネル サウンドにおける 6 チャンネルの制限を廃止し、マルチチャンネル対応オーディオ カードでマルチチャンネル オーディオをサポートしています。このカードではハードウェアで高速化する必要はありません。

  • マルチレート処理

    CPU 使用率を最小限に抑えるため、XAudio2 には、複数の低いレートのオーディオ処理グラフを作成できるテクノロジが備わっています。この機能により、ソース マテリアルのレートが 48 kHz より低い場合に、ゲームがそのレートでオーディオを処理することによって、CPU 使用率を大幅に低く抑えることができます。

  • 非ブロッキング API モデル

    ほとんど例外なく、XAudio2 のメソッド呼び出しでは、オーディオ処理エンジンをブロックしません。これは、長時間実行する呼び出しのブロッキングによる遅延を発生させることなく、クライアントが一連のメソッド呼び出しをいつでも安全に実行できることを意味します。例外は、IXAudio2Voice::DestroyVoice メソッド (破棄されているボイスの処理が完了するまで、エンジンがブロックされる可能性があります) と、オーディオ スレッドを終了する IXAudio2::StopEngineIXAudio2::Release メソッドです。

関連トピック