XAudio 2

Vista 再インストール中暇つぶし編.
特集:Vista買うのはまだ早い!(3)ゲームサウンド編』という記事をご存じの方も多いかと思います.
実際,この記事で取り上げられている「大きな変更」で随分困っている方もおられることでしょうが,その原因が記事では今ひとつはっきりしないものになっていました.

なぜDirectSound HALが消えたのだろうか。また,DirectSound 3Dのサポートが打ち切られた理由は何だろうか?

素直に考えれば,UAAをベースとしてWindowsのサウンド周りが一新され,その影響でDirectSound 3Dの実装が出来なくなったように思える。だが,真相はやや異なるようだ。

今回はサウンドデバイスの大手であり,本稿でもすでに何度かその名を挙げたCreativeの技術担当者にメールインタビューを行う機会を得た。“本題”についてのインタビュー内容は後日お届けするとして,このインタビューから,DirectSound 3Dが廃止された理由に関連したところを拾ってみたいと思う。

さて,Creativeは「Sound Blaster」で,PC用サウンドデバイスにおける,事実上の標準を作り上げたメーカーだ。PCサウンドへの影響力は現在でも決して小さくはなく,Windows Vistaのサウンド設計に関わっているはずである。

実際,Creativeの担当者によると,「過去2〜3年間,マイクロソフトと密に共同作業を行ってきた」とのこと。そのなかで「『Windows Vistaではハードウェアアクセラレーションのサポートを行わない』という決定がなされた」のだそうだ。「なぜMicrosoftがハードウェアアクセラレーションを止めたのか」までは,残念ながら分からない(同社の日本法人であるマイクロソフトにも問い合わせたが,日本には回答できるスタッフがいないとのことだった)が,いずれにせよMicrosoftはハードウェアアクセラレーションのサポートを打ち切った。先述のとおり,DSPによるハードウェアアクセラレーションを実現するのがDirectSound HALなので,ハードウェアアクセラレーションの廃止が,そのままイコールでDirectSound HALの廃止と結びついたという流れが,ことの真相のようである。

実は,この記事が公開される直前に行われていた Game Developers Conference 2007 で,その原因の一端に触れられています.

The Future of Audio on Windows and Xbox 360

As the audio landscape evolves, Microsoft remains committed to a range of audio solutions for programmers and composers that effectively target platforms such as Windows and Xbox 360. Come hear what the future holds for audio APIs and tools from Microsoft. We'll discuss audio on Vista, future APIs, and how audio developers and content creators should be thinking about audio engine design and content authoring in the years ahead.

まあ詳細は PPT を見て頂くとして,ポイントは 2 点.

  • 現在 Xbox 360 で使用されているのは DirectSound ではなく XAudio という API で,これを Windows / Xbox 360 で統一した XAudio 2 という新しい API を展開することで,クロスプラットフォーム戦略を強固にしていきたい
  • DirectSound の弱点を克服しつつ,ソフトウェアベースの処理に移行する.3D 処理も対応.

ちなみに,現在の XNA 開発で,XACT を通して生波形に触れないという問題も,XAudio 2 世代では解消される予定です.逆に言えば今はやっぱり無理と.
なお,なぜソフトウェアかですが,MVP Summit のときのプレゼンを聞く限り,ハードウェアアクセラレーション時の不安定性に Microsoft が愛想を尽かした,という感じでした (あくまで私の印象ですよ).
実際,DirectSound を使ったゲームを配布していると,「何かトラブルが起きたらとりあえずサウンドのアクセラレーションレベルは下げろ」という経験則があります.それが (そこそこの速度で動く) ソフトウェアパイプラインで,どこでも同じように動いてくれると,実は開発者にとっては結構魅力的な話だったりするのです.
というわけで,確かにハードウェアアクセラレーションが使われなくなるのは困る側面もあるのものの,世の中それだけでもなさそうだと.興味を持たれた方は PPT ファイル『The Future of Audio on Windows and Xbox 360』を是非ご覧ください.
英語版 Wikipedia の『DirectSound』の頁も,比較的「分かっていて書いているな」というのが伝わってきます.