HoloLens (第 1 世代) 空間 220: 立体音響
重要
Mixed Reality Academy のチュートリアルは、HoloLens (第 1 世代)、Unity 2017、Mixed Reality イマーシブ ヘッドセットを考慮して設計されています。 そのため、それらのデバイスの開発に関するガイダンスを引き続き探している開発者のために、これらのチュートリアルをそのまま残しておくことが重要だと考えています。 これらのチュートリアルは、HoloLens 2 に使用される最新のツールセットや対話式操作を反映して更新されることは "ありません"。また、最新バージョンの Unity には対応していない可能性があります。 これらは、サポートされているデバイス上で継続して動作するように、保守されます。 HoloLens 2 向けには、新しいチュートリアル シリーズが投稿されています。
立体音響では、ホログラムを具現化して、その存在を世界中に示します。 ホログラムは、ライトとサウンドの両方で構成されています。ホログラムが見えなくなったら、立体音響を使用して見つけることができます。 立体音響は、ラジオで聞こえる一般的なサウンドとは異なり、3D 空間に配置されているサウンドです。 立体音響を使用すると、ホログラムが自分の背後、横、さらに頭上にあるかのように聞こえます。 このコースでは、次のことを行います。
- Microsoft の立体音響を使用するように開発環境を構成します。
- 立体音響を使用して相互作用を強化します。
- 空間マッピングと共に立体音響を使用します。
- サウンドの設計とミキシングのベストプラクティスについて理解します。
- サウンドを使用して特殊効果を強化し、ユーザーを Mixed Reality の世界に案内します。
デバイス サポート
コース | HoloLens | イマーシブ ヘッドセット |
---|---|---|
MR 空間 220:立体音響 | ✔️ | ✔️ |
開始する前に
前提条件
- 正しいツールがインストールされている構成済みの Windows 10 PC。
- 基本的な C# プログラミングの能力。
- MR 基本 101 を完了している必要があります。
- 開発用に構成された HoloLens デバイス。
プロジェクト ファイル
- プロジェクトに必要なファイルをダウンロードします。 Unity 2017.2 以降が必要です。
- デスクトップやその他の簡単にアクセスできる場所にファイルをアーカイブ解除します。
Note
ダウンロードする前にソース コードを確認する場合は、GitHub で参照できます。
正誤表と注意事項
- コード内のブレークポイントにヒットするには、[ツール] -> [オプション] > [デバッグ] の下にある Visual Studio で [マイコードのみを有効にする] を無効 (オフ) にする必要があります。
第 1 章 - Unity のセットアップ
目標
- Microsoft の立体音響を使用するように Unity のサウンド構成を変更します。
- Unity のオブジェクトに 3D サウンドを追加します。
Instructions
- Unity を起動します。
- [Open] を選択します。
- デスクトップに移動し、以前にアーカイブしていないフォルダーを見つけます。
- [Starting\Decibel] フォルダーをクリックし、[フォルダーの選択] ボタンを押します。
- Unity にプロジェクトが読み込まれるまで待機します。
- [プロジェクト] パネルで Scenes\Decibel.unity を開きます。
- [階層] パネルで、[HologramCollection] を展開し、[P0LY] を選択します。
- インスペクターで、[Audiosource] を展開し、[空間化] チェックボックスが表示されないことを確認します。
既定では、Unity には Spatializer プラグインが読み込まれません。 次の手順を実行すると、プロジェクトで立体音響が有効になります。
- Unity のトップ メニューで、[編集] > [プロジェクト設定] > [オーディオ] の順に移動します。
- [Spatializer プラグイン] ドロップダウンを見つけて、[MS HRTF Spatializer] を選択します。
- [階層] パネルで、[HologramCollection] > [P0LY] の順に選択します。
- [インスペクター] パネルで、[オーディオ ソース] コンポーネントを見つけます。
- [Spatialize](空間化) チェックボックスにチェックを入れます。
- [空間ブレンド] スライダーを [3D] にドラッグするか、編集ボックスに 1 と入力します。
ここでは、Unity でプロジェクトをビルドし、Visual Studio でソリューションを構成します。
- Unity で、[ファイル] > [ビルド設定] の順に選択します。
- [開いているシーンを追加] をクリックしてシーンを追加します。
- [プラットフォーム] 一覧で [ユニバーサル Windows プラットフォーム] を選択し、[プラットフォームの切り替え] をクリックします。
- HoloLens 向けに特別に開発している場合は、[ターゲット デバイス] を [HoloLens] に設定します。 それ以外の場合は、[任意のデバイス] のままにします。
- [ビルドの種類] が [D3D] に設定され、[SDK] が [最新のインストール] に設定されていることを確認します (SDK 16299 以降である必要があります)。
- [ビルド] をクリックします。
- 「App」という名前の新しいフォルダーを作成します。
- [App] フォルダーを 1 回クリックします。
- [フォルダーの選択] をクリックします。
Unity での作業が終了すると、エクスプローラー ウィンドウが表示されます。
- [App] フォルダーを開きます。
- [Decibel Visual Studio ソリューション] を開きます。
HoloLens に配置する場合:
- Visual Studio の上部ツールバーを使用して、ターゲットを [デバッグ] から [リリース] に変更し、[ARM] から [x86] に変更します。
- [ローカル コンピューター] ボタンの横にあるドロップダウン矢印をクリックし、[リモート コンピューター] を選択します。
- HoloLens デバイスの IP アドレスを入力し、認証モードを [ユニバーサル (暗号化されていないプロトコル)] に設定します。 [選択] をクリックします。 デバイスの IP アドレスがわからない場合は、[設定] [ネットワーク] & [インターネット>の詳細オプション] > を参照してください。
- 上部メニュー バーで [デバッグ] > [デバッグなしで開始] をクリックするか、Ctrl + F5 キーを押します。 初めてデバイスに配置する場合は、Visual Studio を使用してペアリングを行う必要があります。
イマーシブ ヘッドセットに配置する場合:
- Visual Studio の上部ツールバーを使用して、ターゲットを [デバッグ] から [リリース] に変更し、[ARM] から [x64] に変更します。
- 配置ターゲットが [ローカル コンピューター] に設定されていることを確認します。
- 上部メニュー バーで [デバッグ] -> [デバッグなしで開始] をクリックするか、Ctrl + F5 キーを押します。
第 2 章 - 立体音響と相互作用
目標
- サウンドを使用してホログラムのリアリティを高めます。
- サウンドを使用してユーザーの視線入力を誘導します。
- サウンドを使用してジェスチャによるフィードバックを提供します。
パート 1 - リアリティを高める
主要概念
- Spatialize ホログラムのサウンド。
- サウンド ソースは、ホログラムの適切な場所に配置されている必要があります。
サウンドの適切な場所は、ホログラムによって異なります。 たとえば、ホログラムが人間の場合は、サウンド ソースを脚ではなく、口の近くに配置する必要があります。
Instructions
次の手順では、空間化されたサウンドをホログラムにアタッチします。
- [階層] パネルで、[HologramCollection] を展開し、[P0LY] を選択します。
- [インスペクター] パネルの [AudioSource] で、[AudioClip] の横にある円をクリックし、ポップアップから [PolyHover] を選択します。
- [出力] の横にある円をクリックし、ポップアップから [SoundEffects] を選択します。
Project デシベルでは Unity AudioMixer コンポーネントを使用すると、サウンドグループのサウンドレベルを調整できるようになります。 この方法でサウンドをグループ化すると、各サウンドの相対的なボリュームを維持しながら、全体的なボリュームを調整できます。
- AudioSource で、[3D サウンド設定] を展開します。
- [ドップラー レベル] を 0 に設定します。
ドップラー レベルを 0 に設定すると、モーション (ホログラムとユーザーのいずれか) によるピッチの変更が無効になります。 ドップラーの典型的な例は、高速で移動する車です。 静止しているリスナーに車が近づくにつれて、エンジンのピッチが上がります。 リスナーを通過すると、遠ざかるにつれてピッチが下がります。
パート 2 - ユーザーの視線入力を誘導する
主要概念
- サウンドを使用して重要なホログラムに注意を向けます。
- 耳は、目で見える方向に向く際に役立ちます。
- 脳には学習された予測があります。
学習された予測の一例として、一般に鳥は人間の頭上を飛んでいます。 ユーザーが鳥のサウンドを聞くと、最初の反応は見上げることです。 ユーザーの下に鳥を配置すると、サウンドの正しい方向を向きますが、見上げる必要があるという予測に基づいてホログラムを見つけることはできません。
Instructions
次の手順に従うと、サウンドを使用してホログラムを見つけることができるように、P0LY を隠すことができます。
- [階層] パネルで、[マネージャー] を選択します。
- [インスペクター] パネルで、[音声入力ハンドラー] を見つけます。
- [音声入力ハンドラー] で、[隠れる] を展開します。
- [関数なし] を PolyActions.GoHide に変更します。
パート 3 - ジェスチャによるフィードバック
主要概念
- サウンドを使用してユーザーにジェスチャによる肯定的な確認を提供する
- ユーザーを困惑させない - 過度に大きなサウンドは妨げになる
- かすかなサウンドが最適であり、エクスペリエンスに悪影響を与えない
Instructions
- [階層] パネルで、[HologramCollection] を展開します。
- [EnergyHub] を展開し、[ベース] を選択します。
- [インスペクター] パネルで [コンポーネントの追加] をクリックし、[ジェスチャ サウンド ハンドラー] を追加します。
- [ジェスチャ サウンド ハンドラー] で、[ナビゲーションの 開始クリップ] と [ナビゲーション更新クリップ] の横にある円をクリックし、両方のポップアップから [RotateClick] を選択します。
- [GestureSoundHandler] をダブルクリックして、Visual Studio に読み込みます。
ジェスチャ サウンド ハンドラーでは、次のタスクが実行されます。
- AudioSource を作成して構成します。
- 適切な GameObject の場所に AudioSource を配置します。
- ジェスチャに関連付けられている AudioClip を再生します。
ビルドと配置
- Unity で、[ファイル] > [ビルド設定] の順に選択します。
- [ビルド] をクリックします。
- [App] フォルダーをシングル クリックします。
- [フォルダーの選択] をクリックします。
ツールバーに「Release」、「x86」、「x64」、「リモート デバイス」と表示されていることを確認します。 それ以外の場合は、Visual Studio のコーディング インスタンスです。 場合によっては、[App] フォルダーからソリューションを再度開く必要があります。
- メッセージが表示されたら、プロジェクト ファイルを再度読み込みます。
- 以前と同様に、Visual Studio から配置します。
アプリケーションが配置された後:
- P0LY の周りを動き回って、どのようにサウンドが変化するかを確認します。
- 「隠れて」と言うと、P0LY が自分の背後に移動します。 サウンドで見つけます。
- Energy Hub のベースを見つめます。 左または右にドラッグしてホログラムを回転させ、クリック音によってどのようにジェスチャが確認されるのかを確認します。
注: ユーザーにタグ付けするテキスト パネルがあります。 ここには、このコース全体で使用できる音声コマンドが含まれています。
第 3 章 - 立体音響と空間マッピング
目標
- サウンドを使用してホログラムと現実世界間の相互作用を確認します。
- 物理世界を使用してサウンドを遮断します。
パート 1 - 物理世界の相互作用
主要概念
- 通常、物理オブジェクトでは、サーフェイスや別のオブジェクトが現れるとサウンドが鳴ります。
- サウンドのコンテキストがエクスペリエンス内で適切である必要があります。
たとえば、テーブルにカップを置くと、金属片に岩を落とすよりも静かな音がします。
Instructions
- [階層] パネルで、[HologramCollection] を展開します。
- [EnergyHub] を展開し、[ベース] を選択します。
- [インスペクター] パネルで [コンポーネントの追加] をクリックし、[タップしてサウンドとアクションを置く] を追加します。
- [タップしてサウンドとアクションを置く]:
- [タップ時に親を置く] のチェックをオンにします。
- [配置サウンド] を [置く] に設定します。
- [ピックアップ サウンド] を [ピックアップ] に設定します。
- [ピックアップ時のアクション] と[配置時のアクション] の両方の右下にある [+] を押します。 シーンから EnergyHub を [なし (オブジェクト)] フィールドにドラッグします。
- [ピックアップ時のアクション] で、[関数なし] ->[EnergyHubBase] ->[ResetAnimation] の順に選択します。
- [配置時のアクション] で、[関数なし] ->[EnergyHubBase] ->[OnSelect] の順に選択します。
パート 2 - サウンドの遮断
主要概念
- ライトなどのサウンドを遮断できます。
典型的な例は、コンサート ホールです。 リスナーがホールの外に立っていて、ドアが閉じられている場合は、ミュージックがこもって聞こえます。 また、通常はボリュームが小さくなります。 ドアを開くと、サウンドの全周波数帯が実際のボリュームで聞こえます。 一般に、高周波サウンドは低周波よりも吸収されます。
Instructions
- [階層] パネルで、[HologramCollection] を展開し、[P0LY] を選択します。
- [インスペクター] パネルで [コンポーネントの追加] をクリックし、[オーディオ エミッタ] を追加します。
オーディオ エミッタ クラスでは、次の機能が提供されます。
- AudioSource のボリュームの変更を復元します。
- AudioEmitter がアタッチされている GameObject の方向にいるユーザーの位置から Physics.RaycastNonAlloc を実行します。
RaycastNonAlloc メソッドをパフォーマンスの最適化として使用すると、割り当てと返される結果の数が制限されます。
- 発生した IAudioInfluencer ごとに、ApplyEffect メソッドを呼び出します。
- 発生しなくなった以前の IAudioInfluencer ごとに、RemoveEffect メソッドを呼び出します。
AudioEmitter ではフレームごとにではなく、人間の時間スケールで更新されることに注意してください。 通常、人間は 1/4 秒や 1/2 秒よりも頻繁に効果を更新しなければならないほど速く動くことはないため、これが行われます。 ある場所から別の場所に素早くテレポートするホログラムでは、錯覚が壊れる可能性があります。
- [階層] パネルで、[HologramCollection] を展開します。
- [EnergyHub] を展開し、[BlobOutside] を選択します。
- [インスペクター] パネルで [コンポーネントの追加] をクリックし、[オーディオ オクルーダー] を追加します。
- [オーディオ オクルーダー] で、[カットオフ周波数] を 1500 に設定します。
この設定では、AudioSource の周波数が 1500 Hz 以下に制限されます。
- [ボリューム パススルー] を 0.9 に設定します。
この設定では、AudioSource のボリュームが現在のレベルの 90% に減少します。
Audio Occluder では、次の処理を行う IAudioInfluencer が実装されます。
- AudioSource マネージドにアタッチされる AudioLowPassFilter を使用してオクルージョン効果を適用するには、AudioEmitter を購入してください。
- AudioSource にボリュームの減衰を適用します。
- 中間のカットオフ周波数を設定し、フィルターを無効にすることで、効果を無効にします。
中間として使用される周波数は 22 kHz (22000 Hz) です。 この周波数は、人間の耳で聞こえる名目上の最大周波数を超えても、サウンドは目に見えるほどの影響を受けないという理由で選択されました。
- [階層] パネルで、[SpatialMapping] を選択します。
- [インスペクター] パネルで [コンポーネントの追加] をクリックし、[オーディオ オクルーダー] を追加します。
- [オーディオ オクルーダー] で、[カットオフ周波数] を 750 に設定します。
ユーザーと AudioEmitter 間のパスに複数のオクルーダーがある場合は、最も低い周波数がフィルターに適用されます。
- [ボリューム パススルー] を 0.75 に設定します。
ユーザーと AudioEmitter 間のパスに複数のオクルーダーがある場合は、ボリューム パススルーが追加で適用されます。
- [階層] パネルで、[マネージャー] を選択します。
- [インスペクター] パネルで、[音声入力ハンドラー] を展開します。
- [音声入力ハンドラー]で、[チャージする] を展開します。
- [関数なし] を PolyActions.GoCharge に変更します。
- [ここに来る] を展開します。
- [関数なし] を PolyActions.ComeBack に変更します。
ビルドと配置
- 以前と同様に、プロジェクトを Unity でビルドし、Visual Studio に配置します。
アプリケーションが配置された後:
- 「チャージして」と言うと、P0LY がエネルギー ハブに入ります。
サウンドの変化に注意してください。 サウンドがこもって、少し静かになっているはずです。 自分とエネルギー ハブ間に壁やその他のオブジェクトを配置できる場合は、現実世界によるオクルージョンが原因で、さらにサウンドがこもっていることに気付くはずです。
- 「ここに来て」と言うと、P0LY がエネルギー ハブから出て、自分の目の前に配置されます。
P0LY がエネルギー ハブを出ると、サウンド オクルージョンが解除されることに注意してください。 まだオクルージョンが聞こえる場合は、P0LY が現実世界で遮断されている可能性があります。 P0LY への明確な視線を確保するために、動いてみてください。
パート 3 - 部屋モデル
主要概念
- スペースのサイズでは、サウンドのローカライズに役立つサブリミナル キューが提供されます。
- 部屋モデルは AudioSource ごとに設定されます。
- Unity 用 MixedRealityToolkit には、部屋モデルを設定するコードが提供されています。
- Mixed Reality エクスペリエンスの場合は、実際のスペースに最適な部屋モデルを選択します。
Virtual Reality シナリオを作成する場合は、仮想環境に最適な部屋モデルを選択します。
第 4 章 - サウンドの設計
目標
- 効果的なサウンドの設計に関する考慮事項について理解します。
- ミキシングの手法とガイドラインについて説明します。
パート 1 - サウンドとエクスペリエンスの設計
このセクションでは、サウンドとエクスペリエンスの設計に関する主な考慮事項とガイドラインについて説明します。
すべてのサウンドの正規化
これにより、サウンドごとにボリューム レベルを調整するために、特殊なケース用のコードが不要になります。これには時間がかかる可能性があり、サウンド ファイルを簡単に更新する機能が制限されます。
テザリングされていないエクスペリエンスの設計
HoloLens は、テザリングされていない完全包含ホログラフィック コンピューターです。 ユーザーは、移動中にエクスペリエンスを使用できます。 歩き回って、オーディオ ミックスをテストしてください。
ホログラム上の論理的な場所からサウンドを出す
現実世界では、犬は尻尾から吠えず、人間の声は足から聞こえません。 ホログラムの予期しない部分からサウンドが出ないようにします。
ホログラムが小さい場合は、ジオメトリの中心から音が出ることが適切です。
聞き慣れたサウンドが最もローカライズ可能
人間の声と音楽は、非常に簡単にローカライズできます。 自分の名前が呼ばれると、声が聞こえた方向や距離を非常に正確に判断できます。 聞き慣れていない短いサウンドは、ローカライズが難しくなります。
ユーザーの期待に応える
人生経験は、サウンドの位置を識別する能力の一端を担います。 人間の声が特にローカライズしやすい理由の 1 つです。 サウンドを配置する際は、ユーザーの学習された予測に注意することが重要です。
たとえば、鳥の鳴き声が聞こえると、鳥は視線よりも上にいる (飛んでいるか、木に留まっている) 傾向があるため、一般に見上げます。 ユーザーがサウンドの正しい方向を向いているのに、間違った垂直方向で見ているため、ホログラムが見つからずに混乱したり、苛立ちを感じたりすることは珍しくありません。
隠れた音源を避ける
現実世界では、通常、サウンドが聞こえると、サウンドが出ているオブジェクトを識別できます。 経験上でも当てはまるはずです。 サウンドが聞こえ、サウンドが出ている方向がわかるのに、オブジェクトが見えないと非常に混乱する可能性があります。
このガイドラインには、いくつかの例外があります。 たとえば、野原にいるコオロギなどの周辺サウンドを表示する必要はありません。 人生経験があれば、このようなサウンドの出所を確認しなくても、熟知しています。
パート 2 - サウンドのミキシング
HoloLens で 70% のボリュームのミックスをターゲットにする
Mixed Reality エクスペリエンスでは、現実世界のホログラムを見ることができます。 また、現実世界のサウンドを聞くこともできます。 70% のボリュームのターゲットでは、ユーザー周辺の世界がエクスペリエンスのサウンドと共に聞こえます。
HoloLens では 100% のボリュームで外部サウンドがかき消される
ボリューム レベル 100% は、仮想現実エクスペリエンスに近いレベルです。 視覚的には、ユーザーは別の世界に移動されます。 聴覚的にも、同じことが当てはまるはずです。
Unity AudioMixer を使用してサウンドのカテゴリを調整する
ミックスを設計する際に、サウンド カテゴリを作成し、ユニットとしてボリュームを増減する機能を備えると役立つ場合があります。 これにより、各サウンドの相対的なレベルを保持しながら、すばやく簡単にミックス全体を変更できます。 一般的なカテゴリは、音響効果、アンビエント、ボイス オーバー、バックグラウンド ミュージックなどです。
ユーザーの視線入力に基づいてサウンドをミックスする
多くの場合、ユーザーが見ている (または見ていない) 場所に基づいて、エクスペリエンスのサウンド ミックスを変更すると役立つことがあります。 この方法の一般的な用途の 1 つは、ユーザーが目の前の情報に簡単に集中できるように、ホログラフィック フレームの外側にあるホログラムのボリューム レベルを下げることです。 もう 1 つの用途は、ユーザーの注意を重要なイベントに向けるために、サウンドのボリュームを上げることです。
ミックスを構築する
ミックスを構築する際は、エクスペリエンスのバックグラウンド オーディオから始め、重要度に基づいてレイヤーを追加することをお勧めします。 多くの場合、各レイヤーの音量が以前のレイヤーよりも大きくなります。
ミックスを (一番下に最も重要ではない (一般に最も静かな) サウンドがくる) 反転したじょうごとして想像して、次の図のようなミックスを構築することをお勧めします。
ボイス オーバーは興味深いシナリオです。 作成中のエクスペリエンスに基づいて、ステレオ (ローカライズされていない) サウンドを使用するか、またはボイス オーバーを空間化する場合があります。 Microsoft から発行された 2 つのエクスペリエンスでは、各シナリオの優れた例を示しています。
HoloTour では、ステレオ ボイス オーバーが使用されます。 ナレーターが表示されている場所について説明しているときは、サウンドに一貫性があり、ユーザーの場所によって変化しませんます。 そのため、ナレーターは環境の空間化されたサウンドから離れずに、シーンについて説明できます。
フラグメントでは、空間化されたボイス オーバーが探偵の姿で使用されます。 探偵の声は、実際の人間が部屋にいるかのように、ユーザーの注意を重要な手掛かりに向けるために使用されます。 そのため、謎を解くエクスペリエンスへの集中度が非常に高くなります。
パート 3 - パフォーマンス
CPU 使用率
立体音響を使用すると、10 ~ 12 台のエミッタで CPU の約 12% が消費されます。
長いオーディオ ファイルをストリーミングする
オーディオ データは、特に一般的なサンプルレート (44.1 kHz と 48 kHz) で大きくなる可能性があります。 一般的なルールとして、アプリケーションのメモリ使用率を減らすために、5 ~ 10 秒を超えるオーディオ ファイルをストリーミングする必要があります。
Unity では、ファイルのインポート設定でストリーミングするオーディオ ファイルにマークを付けることができます。
第 5 章 - 特殊効果
目標
- 「Magic Windows」に深さを追加します。
- ユーザーを仮想世界に移動させます。
Magic Windows
主要概念
- 隠された世界にビューを作成すると、視覚的に説得力があります。
- 隠された世界にホログラムやユーザーが近づいたときにオーディオ効果を追加して、リアリティを高めます。
Instructions
- [階層] パネルで、[HologramCollection] を展開し、[黄泉] を選択します。
- [黄泉] を展開し、[VoiceSource] を選択します。
- [インスペクター] パネルで [コンポーネントの追加] をクリックし、[ユーザーの音声効果] を追加します。
AudioSource コンポーネントが VoiceSource に追加されます。
- AudioSource で、[出力] を [UserVoice (Mixer)] に設定します。
- [Spatialize](空間化) チェックボックスにチェックを入れます。
- [空間ブレンド] スライダーを [3D] にドラッグするか、編集ボックスに 1 と入力します。
- [3D サウンド設定] を展開します。
- [ドップラー レベル] を 0 に設定します。
- [ユーザーの音声効果] で、[親オブジェクト] をシーンから [黄泉] に設定します。
- [最大距離] を 1 に設定します。
[最大距離] を設定すると、どのくらいユーザーが親オブジェクトに近づけば、[ユーザーの音声効果] の効果が有効になるのかが示されます。
- [ユーザーの音声効果] で、[コーラス パラメーター] を展開します。
- [深さ] を 0.1 に設定します。
- [1 ボリュームをタップ]、[2 ボリュームをタップ]、[3 ボリュームをタップ] を 0.8 に設定します。
- [元のサウンド ボリューム] を 0.5 に設定します。
前の設定では、ユーザーの声に豊富な部分を追加するために使用される Unity AudioChorusFilter のパラメーターを構成しています。
- [ユーザーの音声効果] で、[エコー パラメーター] を展開します。
- [遅延] を 300 に設定します。
- [減衰比] を 0.2 に設定します。
- [元のサウンド ボリューム] を 0 に設定します。
前の設定では、ユーザーの音声をエコーするために使用する Unity AudioEchoFilter のパラメーターを構成しています。
ユーザーの音声効果スクリプトの役割は、次のとおりです。
- ユーザーとスクリプトがアタッチされている GameObject 間の距離を測定する。
- ユーザーが GameObject を接続しているかどうかを判断する。
効果を有効にするには、距離に関係なく、ユーザーは GameObject に接続する必要があります。
- AudioChorusFilter と AudioEchoFilter を AudioSource に適用して構成する。
- フィルターを無効にして効果を無効にする。
ユーザーの音声効果では、Unity 向け MixedRealityToolkit の Mic ストリーム セレクター コンポーネントを使用して、高品質の音声ストリームが選択され、Unity のオーディオ システムにルーティングされます。
- [階層] パネルで、[マネージャー] を選択します。
- [インスペクター] パネルで、[音声入力ハンドラー] を展開します。
- 音声入力ハンドラーで、[黄泉を表示する] を展開します。
- [関数なし] を UnderworldBase.OnEnable に変更します。
- [黄泉を非表示にする] を展開します。
- [関数なし] を UnderworldBase.OnDisable に変更します。
ビルドと配置
- 以前と同様に、プロジェクトを Unity でビルドし、Visual Studio に配置します。
アプリケーションが配置された後:
- 表面 (壁、床、テーブル) に顔を向けて、「黄泉を表示して」と言います。
黄泉が表示され、他のすべてのホログラムは非表示になります。 黄泉が表示されない場合は、現実世界の表面に顔が向いていることを確認してください。
- 黄泉のホログラムの 1 m 以内に近づいて、話し始めます。
オーディオ効果が音声に適用されました。
- 黄泉から離れると、どのように効果が適用されているのかがわかります。
- 黄泉を非表示にするには、「黄泉を非表示にして」と言います。
黄泉が非表示になり、以前に非表示であったホログラムが再び表示されます。
終了です
おめでとうございます。 「MR 空間 220: 立体音響」が完了しました。
世界に耳を傾け、エクスペリエンスをサウンドで活性化させてください。