リアルタイム 3D オーディオエフェクトの作成

Tutorial

·

foundational

·

+0XP

·

20 mins

·

(64)

Unity Technologies

リアルタイム 3D オーディオエフェクトの作成

リアルタイム 3D のサウンドは、現実世界でのサウンドと同じように振る舞わなければなりません。音はソースに近づくほど大きくなり、オブジェクトに跳ね返ることもあります。このチュートリアルでは、オーディオを生き生きとさせる Unity の機能を最初に見てみましょう。

このチュートリアルでは、以下のことが学べます:

  • 3D サウンドを定義します。
  • シーンにおけるオーディオリスナーの役割を説明します。
  • オーディオクリップをループするように設定します。
  • バックグラウンドの音声を 3D サウンドに変換します。

Languages available:

1. 概要

追加したバックグラウンドミュージックは、シーン内のどこにいても同じ音量で再生されます。また、実際の空間での音の挙動と同じように、シーン内のどこに移動しても音量や音程が変化するオーディオを追加することができます。これを 3D サウンドと呼びます。

Unity で 3D サウンドがどのように機能するかを詳しく知るには、シーン内でオーディオがどのように再生されるか、またどのように受信されるかを理解することが重要です。カメラがユーザーの目として機能するように、オーディオリスナーは耳として機能します。オーディオリスナーは、指定された場所で聞こえる音を検出し、ユーザーに向けて再生します。注意すべき点は、1 つのシーンに 1 つのオーディオリスナーしか存在できないということです。すべてのデフォルトの Unity シーンには、メインカメラにオーディオリスナーが接続されているので、ユーザーの「目」と「耳」が一緒になっています。

2. オーディオリスナーの役割

このシーンでは、キッチンを移動するユーザーを表現するために、Character というゲームオブジェクトを用意しました。Character ゲームオブジェクトは、メインカメラ(目)と内蔵のオーディオリスナー(耳)、カプセルコライダー(本体:カプセルプリミティブのようなものだが見えません。また、コライダーとして、他のゲームオブジェクトを通過するのではなく、他のゲームオブジェクトにぶつかるようになっています) で構成されています。

1. Hierarchy ウィンドウで、Character ゲームオブジェクトを選択します。

2. キャラクターの横にある左矢印を選択すると、キャラクターのゲームオブジェクトが展開され、その子のゲームオブジェクトが表示されます。

3. Main Camera ゲームオブジェクトが表示されない場合は、CharacterRoot の横にある左矢印を選択すると、メインカメラが表示されます。

4. Character ゲームオブジェクトをよく見てみましょう。コライダーの輪郭と、メインカメラの位置がキャラクターの頭の位置とほぼ一致しているのが分かります。

5. Hierarchy で、メインカメラのゲームオブジェクトを選択します。

6. Inspector ウィンドウには、Audio Listener コンポーネントが表示されます。このコンポーネントにはプロパティがないことにご注意ください。

3. 3D オーディオの作成

3D オーディオでは、シーン内のオーディオリスナーの位置によって、オーディオクリップの音が異なります。このサンプルシーンでは、3D オーディオを実際に示すために音を出すゲームオブジェクトを提供しています。

1. Hierarchy ウィンドウで、BoilingPot ゲームオブジェクトを選択します。


2. Inspector ウィンドウで、BoilingPot の Name フィールドの左にあるチェックボックスを選択して、ゲームオブジェクトをシーンで有効にします。

3. プレイボタンを選択してテストしてください。シーンの中で銅製の鍋がお湯を沸かす音を出していることに気づくでしょう。しかし、シーン内のどこに移動しても、オーディオは同じ音量になります。

4. プレイモードを終了します。Hierarchy ウィンドウで、BoilingPot ゲームオブジェクトを展開してゲームオブジェクトの子を確認します。

5. BoilingPot の子である BoilingWaterAudio ゲームオブジェクトを選択します。

6. Inspector ウィンドウで、Audio Source コンポーネントのプロパティを見てみましょう。このオーディオソースでは、Loop 設定を有効にして、沸騰した音を連続的に出すようにしています。

7. このオーディオソースを 3D サウンドに変換するには、Spatial Blend スライダーを選択して右端までドラッグするか、値を 1 に設定します。

8. プレイモードに入り、キャラクターをキッチンコンロに近づけたり遠ざけたりしてください。BoilingPot ゲームオブジェクトに近づくほど、BoilingPot の音声の音量が大きくなります。

4. オーディオの Rolloff を設定

オーディオクリップの rolloff は、3D 空間での範囲を定義し、より遠くに行くとフェードして聞き取れなくなる速度を定義します。サウンドの rolloff を設定して、異なるサウンドの伝達方法をシミュレートすることができます。

1. AudioSource ゲームオブジェクトを選択した状態で、3D Sound Settings の左にある矢印を選択して、Inspector のプロパティを展開します。

これらの設定は、オーディオソースとオーディオリスナーの位置に基づいて、音量とピッチを変更する方法を制御します。

10. Min Distance を 0.5 に、Max Distance を 1 に設定します。Min Distance 内では、オーディオソースは最大音量でクリップを再生します。この距離を超えると、Max Distance までボリュームが減少し、ユーザーはオーディオを聞くことができなくなります。

Scene ビューでは、Min Distance と Max Distance は、2 つの青いワイヤーフレームの球体で表されます。これは、シーンのどこでユーザーがオーディオを聞くことができるかを視覚的に表示します。

11. プレイモードに入り、変更点を確認します。キャラクターが一定の距離にいるときに BoilingPot の音が非常に大きくなったり、かろうじて聞こえたりするように、Rolloff を試してみてください。

5. 次のステップ

3D シーンに BGM と 3D サウンドの 2 種類のオーディオを追加しました。次に、このプロジェクトや他のプロジェクトに追加したいオーディオアセットを見つけましょう。

Complete this tutorial