チュートリアル - VRとMRでオーディオを空間化する
更新日時: 2024/08/23
このチュートリアルでは、以下の重要なステップについて説明します。
- Meta XR Audio SDKプラグインをUnityプロジェクトにインポートする。
- Meta XR Audio Spatializerプラグインを使ってサウンドを空間化する。
AudioSourceとRoomAcousticsのprefabをシーンに追加する。AudioSourceコンポーネントを使って、音源のサウンドプロパティを調整する。- Meta XR Audio Reflectionをエフェクトとして使うことによって、オーディオミキサーにリバーブを追加する。
RoomAcousticsコンポーネントを使うことによって、音源のリバーブのサウンドプロパティを調整する。- さまざまな音源を組み合わせて環境シーンを作る。
このチュートリアルは、Meta XR Audio SDKを使ってスペーシャルオーディオと音響を手軽に統合することに関する基本参照資料です。Meta XR Audio SDKの全ドキュメントは、
概要ページをご覧ください。
チュートリアルの最後に完成するシーンでは、さまざまなサウンドがそれぞれ異なる方向から聞こえるようになります。水平方向からの音楽とボーカルサウンドが同時に聞こえてきた後に、ユーザーの頭上の部屋で誰かが歌っているというエフェクトもかけます。
このチュートリアルでは、以下に示すトピックをそれぞれカバーしながら、複数のサンプル音声クリップを使ってシーンを作成していきます。
Meta XR Audio SDKをインポートし、Meta XR Audio Spatializerプラグインを使います。Audio Sourceスクリプトを使うことによって、さまざまな音源の音質を調整します。その後、Meta XR Audio Reflectionをエフェクトとして使うことによって、オーディオミキサーを追加します。Room Acousticsスクリプトを使うことによって、反響の音質を調整します。
用語 | 定義 |
サウンド設計 | エンドユーザーを配置する場所となるサウンドスケープを設計するクリエイティブなプロセス。VRヘッドセットにより、没入感あふれる音声体験が生まれる。 |
水平方向の位置決め | 左側または右側から聞こえてくる、ピンポイントで特定できるサウンドを指す。 |
頭の動き | ノイズ発生源をさらにピンポイントで特定するために使う。 |
スペーシャルオーディオ | サウンドが3次元空間内の特定の点に位置するかのように音を再生する。 |
距離モデル化 | 空間内の音源ともう1つの点との間の距離を調べるのに役立つ。 |
サウンドミキシング | ボリュームレベルやその他の要素を調整し、没入感や活気のあるシーンを作り出す。 |
リバーブ効果 | 音が鳴りやんだ後に、壁や家具などの物体からのはね返りにより残存する音(残響)。 |
Audio Source prefab | Meta XR Audio Spatializerプラグインで空間化されたサウンドのプロパティを変更する。 |
オーディオミキサー | |
反響プラグイン | ルーム音響出力を生成するためにオーディオミキサーにエフェクトとして追加される。 |
ルーム音響 | ユーザーのサウンドを作成する際に、リバーブやほかのテクニックを使って家具から反射する音を作り、密室を再現する。 |
Unityアプリで音声にFMODまたはWwiseを使う場合は、Meta XR Audio SDK Plugin for Unityをインストールしないようにしてください。代わりに、対応するFMODまたはWwiseのプラグインパッケージをインストールしてください。 方法1: Unityアセットストアを通じてダウンロードする
Meta XR Audio SDK Unityパッケージは、
Unityアセットストアで入手可能です。ほかのアセットストアパッケージの場合と同じようにして、パッケージをインストールします。
注: Unity IDがない場合は、それを作成してログインする必要があります。詳しくは、
Unityのドキュメントをご覧ください。
[マイアセットに追加]をクリックします。
同じUnity IDを使ってUnityハブにログインし、Unityエディターでプロジェクトを開きます。
Unityパッケージマネージャで、[マイアセット] > [Meta XR Audio SDK]を選択します。
[Install (インストール)]をクリックします。
ダウンロードアイコンをクリックしてから、ライセンス同意書を読み、同意するなら[Agree (同意する)]をクリックします。com.meta.xr.sdk.audio tarballのダウンロードがブラウザーにより開始されます。
Unityエディターで該当プロジェクトを開き、[Window (ウィンドウ)] > [Package Manager (パッケージマネージャ)]を選択します。
パッケージマネージャで[+] > [Install package from tarball (tarballからパッケージをインストール)]をクリックし、ダウンロードしたtarballを開きます。
上記のどちらかの方法でプラグインをインストールした後、手始めにサンプルシーンをインポートして設定を確認できます。そのためには、パッケージマネージャのパッケージ項目に移動します。[Meta XR Audio SDKパッケージ] > [サンプル] > [インポート]をクリックして、新しいシーンとアセットをUnityプロジェクトのフォルダーに追加します。インポートすると、サンプルコンテンツがプロジェクトの中の[アセット] > [サンプル] > [Meta XR Audio SDK] > [バージョン] > [サンプルシーン]のパスに表示されるようになります。フォルダー内のシーンを読み込んで、調べてみてください。それらは、典型的なWASDキーとマウスコントロールを使ったプレイモード専用テストを意図したものです。
すべてのネイティブ音源がMetaプラグインSpatializerを通じて伝播するように、空間化エンジンをMetaに設定します。
- [Edit (編集)] > [Project Settings (プロジェクト設定)] > [Audio (音声)]に移動します。[Audio (音声)]ダイアログが表示されます。
- [Audio (音声)]ダイアログで、Spatializerプラグインとアンビソニックデコーダープラグインとして、Meta XR Audioが選択されていることを確認します。詳しくは、Unityでアンビソニック音声を再生するをご覧ください。
- [Default Speaker Mode (デフォルトスピーカーモード)]を[Stereo (ステレオ)]に設定します。
[DSP Buffer Size (DSPバッファサイズ)]を[Best latency (最適な遅延)]に設定することにより、プラットフォームでサポートされる最小バッファサイズを設定し、全体的な音声の遅延を減らします。
これで、すべての音源がMeta XR Audio Spatializerプラグインを通じて空間化されます。次のステップでAudio Sourceスクリプトを使うことによって、サウンド設定を調整できます。
ステップ2 Audio Sourceスクリプトを立方体に追加する
Meta XR Audio SDKには、GameObjectに追加できるAudio Sourceスクリプトが含まれています。
次の手順に従ってください。
[Project (プロジェクト)]タブで、[Packages (パッケージ)] > [com.meta.xr.sdk.audio] > [Runtime (ランタイム)] > [Scripts (スクリプト)]フォルダーを展開し、Meta XR Audio Sourceスクリプトを[Audio Cube (音声立方体)]の立方体にドラッグします。
- [Hierarchy (階層)]から[Audio Cube (音声立方体)]の立方体を選択し、[Inspector (インスペクター)]で[Audio Source (音源)]に移動します。
- 音声クリップは、Assetsフォルダーに含まれていなければアクセスできません。自分の音声ファイル(
.wav、.mp3、.ogg)をプロジェクトのAssetsフォルダーにドラッグします。 - フィールドAudioClip (Unity 6以降ではAudio Resourceという名前)で、任意の音声を選択します。
- [Spatialize (空間化)]と[Loop (ループ)]のチェックボックスをオンにすることにより、空間化されたサウンドをシーン内で再生できるようになります。
- これは3Dアプリなので、[Spatial Blend (スペーシャルブレンド)]を1に設定します。
- [Audio Source (音源)]コンポーネントに移動し、[Volume (ボリューム)]を.25に設定します。
[Meta XR Audio Source (Script) (Meta XR Audio Source (スクリプト))]に移動し、[Enable Spatialization (空間化を有効にする)]をチェックしてオンにします。
- プロジェクトを保存し、ビルドし、実行します。
正面にある立方体から、音声がループ再生されます。サウンドが空間化されているので、ヘッドセットを動かすと、3D空間内の所定の場所から音が出ているように聞こえます。これにより、現実世界での音の聞こえ方が再現され、音声のエクスペリエンスが没入感のあるものとなります。
ステップ3 左右の音源を使って水平方向の位置決めを試してみる
シーンをもう少し面白いものにするため、ビューポートの左側と右側に異なるサウンドを含めます。
- [Audio Cube (音声立方体)]の立方体を選択します。
[Inspector (インスペクター)]で、その[Position (位置)]を更新して[6, 0.5, 1]にすることにより、立方体ビューポートの右側に移動します。
シーンの[Hierarchy (階層)]の中で[Audio Cube (音声立方体)]の立方体を右クリックし、[Duplicate (複製)]を選択します。これにより、[Audio Cube (音声立方体)]の立方体の設定がコピーされますので、設定作業を省略できます。
- 複製した立方体を右クリックし、[Rename (名前変更)]を選択し、その名前をDistant Soundに変更します。
- Distant Soundの立方体を選択します。
- [Inspector (インスペクター)]で、[Position (位置)]を[-6, 0, 2]に、[Scale (スケール)]を[0.05, 0.05, 0.05]に更新します。これでビューポートの左側の低いところからサウンドが出てくるようになります。
- [Audio Source (音源)]のコンポーネントに移動し、[AudioClip]で音声クリップを選択します。
[Volume (音量)]を.25に設定します。
- プロジェクトを保存し、[File (ファイル)] > [Build and Run (ビルドして実行)]に移動してから、ヘッドセットを装着して、[Audio Cube (音声立方体)]の立方体を確認します。
水平方向の位置決めを使うことにより、ユーザーとして、サウンドがビューポートの左側から来るのか右側から来るのかがわかるようになります。ヘッドセットを動かすと、3D空間での音の聞こえる方向が変わります。
- [Audio Cube (音声立方体)]立方体からは、ビューポートの右側から聞こえる空間化サウンドが再生されます。
- Distant Sound立方体も同じであり、こちらは左側からになります。その音量は低く、立方体のスケールが小さいので、音は遠くから聞こえてくるように感じます。
ステップ4 オーディオミキサーを追加して反響を含める
オーディオミキサーを作成して、それに加えるエフェクトとして反響プラグインを追加します。このオーディオミキサーは空間化された出力すべてをまとめて、反響プラグインを通じてルーム音響出力を生成します。
次のステップでは、Room Acousticsスクリプトを立方体に追加します。このスクリプトは、オーディオミキサーを使って、密室で誰かが歌っているようなサウンドを模倣します。
次の手順に従ってください。
- [Hierarchy (階層)]の中で[Audio Cube (音声立方体)]の立方体を右クリックし、[Duplicate (複製)]を選択します。
- 立方体GameObjectの名前をRoom Acousticsに変更します。
[Window (ウィンドウ)] > [Audio (音声)] > [Audio Mixer (オーディオミキサー)]に移動します。
- [Mixers (ミキサー)]パネルで、プラス記号[+]をクリックしてミキサーを追加します。
ミキサーの名前をMeta XR Audio Mixerに変更します。
新しいミキサーで[Add Effect (エフェクトを追加)]をクリックし、[Meta XR Audio Reflection (Meta XR Audio反響)]を選択します。
- Room Acoustics立方体を選択します。
- [Inspector (インスペクター)]に移動し、[Audio Source (音源)]で[Output (出力)]を更新して、前のステップで作成した[Master (Meta XR Audio Mixer) (マスター(Meta XRオーディオミキサー))]にします。
ステップ5 Room Acousticsスクリプトを追加して反響を調整する
音響(Acoustics)は、音源とリスナーの周囲にある壁、床、天井のパネルによって、また音波の進路を妨げる可能性のある物体によって、音がどんな影響を受けるかを記述します。
近くの部屋で歌っている声のエフェクトを模倣してみましょう。
次の手順に従ってください。
- [Project (プロジェクト)]タブで、[Packages (パッケージ)] > [com.meta.xr.sdk.audio] > [Runtime (ランタイム)] > [Scripts (スクリプト)]フォルダーを展開します。
[Meta XR Audio Room Acoustic Properties Script (Meta XR Audioルーム音響プロパティスクリプト)]をRoom Acoustics立方体にドラッグします。
- Room Acoustics立方体を選択します。
[Inspector (インスペクター)]で[Transform (トランスフォーム)]に移動し、立方体の位置を[-4, 3, 2]に変更します。この音はリスナーの頭上から発しており、ユーザーの頭上の部屋で誰かが歌っているのを模倣しています。
- フィールドAudioClipの[Audio Source (音源)]のコンポーネントで、好きな音声クリップを追加するか選択します。
- [Meta XR Audio Source (Script) (Meta XR Audio Source (スクリプト))]に移動し、[Enable Acoustics (音響を有効にする)]を選択します。
- [Meta XR Audio Room Acoustic Properties (Meta XR Audioルーム音響プロパティ)]コンポーネントを開きます。
- [Width (幅)]を10に、[Height (高さ)]を10に、[Depth (奥行)]を20に変更します。
- [Lock Position to Listener (位置をリスナーにロック)]チェックボックスのチェックを外し、音がビューポートではなく立方体から聞こえるようにします。
Room Acoustics立方体のサウンドが、ビューポートの上から聞こえてくるように感じます。Meta XR Audio Room Acoustic Propertiesコンポーネントにより、サウンドにリバーブが加えられます。サウンドが、ビューポートの上の部屋から聞こえるように感じます。
[Width (幅)]が10、[Height (幅)]が10、[Depth (奥行)]が20の部屋を作成すると、サウンドが大きな部屋から聞こえてくるように感じます。これらの値を変更して、さまざまなエフェクトを模倣することもできます。
- ルーム音響を持つGameObjectで[Width (幅)]を4、[Height (高さ)]を6、[Depth (奥行)]を6に設定し、流水の音を流す別音源を使えば、誰かがシャワーを浴びながら歌っている状況を模倣できます。残響がリスナーに届くまでの移動距離が短くなっています。
- 同じルーム音響コンポーネントで[Width (幅)]を50、[Height (高さ)]を50、[Depth (奥行)]を70に設定すると、多数の観客席の前にあるステージで誰かが歌っているかのようになります。適切な設計の演奏空間では、エコーが抑えられていることに気づくでしょう。