Unity の空間サウンドSpatial Sound in Unity

このページでは、Unity mixed reality プロジェクトで Microsoft HRTF spatializer を使用および設計する際に役立つリソースにリンクしています。This page links to resources to help you use and design with the Microsoft HRTF spatializer in your Unity mixed reality projects.

Spatialization を有効にするEnable spatialization

プロジェクトのオーディオ設定でMS HRTF Spatializerを有効にします。Enable the MS HRTF Spatializer in your project's audio settings. 詳細については、 Unity の spatializer のドキュメントを参照してください。For more details, see Unity's spatializer documentation.

階層内のオブジェクトにオーディオソースをアタッチし、 [enable spatialization] チェックボックスをオンにして [空間 Blend] スライダーを [1] に移動して、spatialization を有効にします。Attach an Audio Source to an object in the hierarchy, and enable spatialization by checking the Enable spatialization checkbox and moving the Spatial Blend slider to '1'. 詳細については、 Unity のオーディオソースのドキュメントを参照してください。For more details, see Unity's audio source documentation.

Spatialization を使用した設計Design with spatialization

距離ベースの減衰Distance-based attenuation

Unity の既定の距離ベースの減衰には、最小距離は1メーター、最大距離は500メートル、対数のロールアウトがあります。Unity's default distance-based decay has a minimum distance of 1 meter and a maximum distance of 500 meters, with a logarithmic rolloff. これは、シナリオによっては機能します。また、ソースが急激に減少したり、速度が低下したりする可能性があります。This may work for your scenario, or you may find sources attenuate too quickly or too slowly. 距離の減衰曲線の推奨設定については、「 mixed reality のサウンドデザイン」を参照してください。 unity でこれらの曲線を設定する方法の詳細については、 unity のオーディオソースのドキュメントを参照してください。See sound design in mixed reality for recommended settings for distance decay curves, and see Unity's audio source documentation for information on setting these curves in Unity.

環境Environment

MS HRTF Spatializerには、 4 つのリバーブ設定と既定値 "small" を持つ部屋リバーブコンポーネントが含まれています。The MS HRTF Spatializer includes a room reverb component with four reverb settings and a default of 'small'. ルーム設定は、spatialized オーディオソースを持つ Unity の各オブジェクトに次C#のスクリプトをアタッチすることで、プログラムによってオーディオソースごとに変更できます。The room setting can be changed programmatically for each audio source by attaching the following C# script to each object in Unity that has a spatialized Audio Source:

using UnityEngine;
   using System.Collections;
   public class SetHRTF : MonoBehaviour    {
       public enum ROOMSIZE { Small, Medium, Large, None };
       public ROOMSIZE room = ROOMSIZE.Small;  // Small is regarded as the "most average"
       // defaults and docs from MSDN
       // https://msdn.microsoft.com/library/windows/desktop/mt186602(v=vs.85).aspx
       AudioSource audiosource;
       void Awake()
       {
           audiosource = this.gameObject.GetComponent<AudioSource>();
           if (audiosource == null)
           {
               print("SetHRTFParams needs an audio source to do anything.");
               return;
           }
           audiosource.spatialize = 1; // we DO want spatialized audio
           audiosource.spread = 0; // we dont want to reduce our angle of hearing
           audiosource.spatialBlend = 1;   // we do want to hear spatialized audio
           audiosource.SetSpatializerFloat(1, (float)room);    // 1 is the roomsize param
       }
   }

Unity の空間サウンドの例Unity spatial sound examples

Mixed Reality Toolkit (MRTK) には、mixed reality でオーディオ効果を適用する方法の例が含まれています。 Mrtk のデモです。The Mixed Reality Toolkit (MRTK) includes examples of ways to apply audio effects in mixed reality: MRTK demos.