[この記事は Nathan Martz、Google Cardboard プロダクト マネージャーによる Android Developers Blog の記事 "Spatial audio comes to the Cardboard SDK" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。]

人間は、消防車が近づいて来る音から飛行機が上空を通過する音まで、あらゆる方向からの音を感じています。先月から、Unity および Android 用の Cardboard SDK に 3D オーディオ機能のサポートが追加され、仮想現実(VR)アプリでも現実のようなオーディオ体験ができるようになりました。必要なのは、スマートフォンと一般的なヘッドフォン、そして Google Cardboard だけです。

現実の音を再現

多くのアプリは、左右それぞれのスピーカーから音声を再生する方式による、3D オーディオの簡易版を用いますが、今回の SDK のアップデートでは、人間が実際に音を聞いているのと同じ方法で、アプリがサウンドを作り出せるようになります。たとえば、
  • 聞き手の頭部の生理機能と仮想的な音源の位置の両方を考慮して、ユーザーに聞こえる音を調整します。たとえば、右側から来る音は、ユーザーの左耳にはわずかに遅れ、高周波域要素が少なくなって届きます(高周波音は、通常、頭蓋骨により減衰されるため)。
  • 音質の向上につながる仮想環境のサイズや素材を指定できるので、狭い宇宙船内での会話と、巨大な地下の洞窟内での会話との違いを(仮想であることに変わりはありませんが)明確に表現できます。

最新のスマートフォンに最適化

今回のアップデートは、パフォーマンスに配慮して設計しました。アプリに 3D オーディオ機能を追加しても、プライマリ CPU (アプリの大部分の作業が行われる場所)への影響は最小限です。以下の 2 つの方法で、これらの結果を実現しました。
  • モバイル CPU(例:SIMD インストラクション)に対して最適化されており、オーディオのリアルタイム計算は別のスレッドで実行するため、処理のほとんどはプライマリ CPU 以外で行われます。
  • サウンドの忠実性を各サウンドごとに制御できるので、重要なサウンドには多くの処理能力を割り当て、それ以外の音声には割り当てを少なくするよう調節できます。

シンプルなネイティブ アプリ連携

この SDK の新しいオーディオ機能を導入するのは実に簡単です。Unity デベロッパーは Android、iOS、Windows、OS X 上にサウンドスケープを作り出す、多彩なコンポーネントを利用できるようになり、Android アプリのデベロッパーは、シンプルな Java API を利用して、仮想サウンドと環境をシミュレーションできるようになります。

デベロッパー向けサンプル アプリで 3D オーディオを体験


Android サンプル アプリ(デベロッパーの参照専用)の体験版を使用して、Cardboard デベロッパー向けサイトのドキュメントを読み、3D オーディオを今すぐ実感してください。デベロッパーの皆さんが創り出す新しいエクスペリエンスを見る(そして聴く)のを楽しみにしています。

Posted by Eiji Kitamura - Developer Relations Team