OpenAL
| 作者 | Loki Software |
|---|---|
| 開発元 | クリエイティブテクノロジー |
| 最新版 | 2.1.0.0(2010年2月) |
| 対応OS | クロスプラットフォーム |
| プラットフォーム | API |
| 種別 | サウンドライブラリ |
| ライセンス | LGPL |
| 公式サイト | openal.org |
OpenAL (Open Audio Library)はクロスプラットフォームのオーディオAPIであるフリーソフト。マルチチャンネル3次元定位オーディオを効率よく表現するように設計された。APIのスタイルと慣習は意図的にOpenGLと似せてある。
目次 |
[編集] 歴史
ロキソフトウェア(Loki Software)が商用のWindows用ゲームをLinuxに移植しやすくするためにOpenALを開発したのがオリジナルである。ロキの消滅後、このプロジェクトはしばらくの間フリーソフトウェア/オープンソースのコミュニティで扱われた—しかし現在では、アップルやフリーソフトウェア/オープンソースの熱狂的支持者からサポートされる形でクリエイティブテクノロジーが主催者となっている(そして多くの部分を開発している)。
OpenGLの「アーキテクチャレビュー委員会(ARB)」を手本に、OpenALでもARBの存在が宣言されているが、そのような組織がこれまでに設立されたことはなく、OpenALの仕様は主にメーリングリストで取り扱われ議論されている。
[編集] APIの構成と機能
OpenALの主要機能はソースオブジェクト、オーディオバッファ、単一のリスナーで処理される。ソースオブジェクトは、バッファ、ベロシティ、ポジション、サウンドの方向、サウンドの強度などへのポインタである。リスナーオブジェクトはベロシティ、リスナーの位置と方向、全てのサウンドに対する全体の利得である。バッファは8または16ビットのモノラルまたはステレオのPCM形式のオーディオデータである。レンダリングエンジンは距離による衰弱やドップラー効果などの計算を処理する。
エンドユーザーの視点から見れば、適切に記述されたOpenALアプリケーションであれば、仮想世界の三次元空間をユーザーが移動したものとしてとても自然に聞こえる。プログラマーの視点で見れば、OpenGLベースの既存の3D映像アプリケーションにちょっとした追加をするだけでこれを実現できる。
OpenGLの仕様と異なり、OpenALの仕様はAPIに2つのサブセクションを含む。実際のOpenAL関数コールで構成されるコア部分と、クロスプラットフォームを実現するためのコンテキストのレンダリングやリソースの使用状況やそのロックを管理するALC APIである。また上位レベルの'便利な'機能を提供する'ALUT'ライブラリ—ちょうどOpenGLのGLUTに似ている—がある。
将来的な機能拡張のため、OpenALはエクステンションのメカニズムを有する。これにより各ベンダーはプロプライエタリなハードウェアの追加機能を実装するために独自のエクステンションをOpenALのディストリビューションに含めることができる。エクステンションはARB(アーキテクチャレビュー委員会)に提出して、互換性が維持されるようにエクステンションが標準であることを示せる。ARBエクステンションは一定期間経過後にコアAPIに追加されることが望まれる。
[編集] 移植性
このAPIは下記のプラットフォームで利用可能である。
- Mac OS X
- GNU/Linux (OSSとALSA の両方をサポートする)
- BSD
- Solaris
- IRIX
- Windows PC
- プレイステーション2
- プレイステーション3
- Xbox
- Xbox 360
- ニンテンドーゲームキューブ
- Wii
- MorphOS
[編集] アプリケーション
ゲーム:
- Doom 3、Jedi Knight 2、Jedi Knight: Jedi Academy、Quake 4、Preyなどのid Software エンジンを利用したゲーム。
- Unreal 2、Unreal Tournament 2003、Unreal Tournament 2004、ポスタル²、America's ArmyなどのUnreal Technologyを利用したゲーム。
- バトルフィールド2, フリーダム・ファイターズ, ヒットマン and Psychonauts.
- 数多くのフリーソフトウェアやオープンソースのゲームでもOpenALが利用されている。WarsowやWarzone 2100がその例。
その他のアプリケーション:
OpenALのウェブサイトにてより完璧なリストを確認できる。