Unityで距離に伴って音量を変える方法

この記事ではUnityでプレイヤーとの距離でサウンドの音量を自動で調節する方法を紹介します。 特定のオブジェクトに近づくほどサウンドが大きくなるような場面に使うことができます。 離れれば離れるほどサウンドも小さくなります。

サンプル

STYLY GALLERYからサンプル空間を体験できます。

 

記事で紹介しているUnityプロジェクトのダウンロードはこちらからできます。 3DSound_Sample  

Audio Sourceを追加する

UnityではAudioを使用するためにコンポーネントを追加します。 音を出したいオブジェクトを選んでAdd Componentします。   Audioで検索をかけるとAudio関係のものが出てくるのでAudio Sourceを選びます。     Audio Sourceが追加されました。 これに設定をしていきます。  

Audio Clipを追加する

使用したいBGMや効果音をAudio Clipに指定します。 ここでは『Don』という効果音を使用します。   再生の仕方を設定しておきます。 Play On Awake: シーンが始まると同時に再生される Loop :ループ再生させる  

3DSoundにする

このままでは一定の音量で再生されるだけなので距離に応じて変わるように設定していきます。 Spatial Blendの数値を1(3D)にします。 これで3DSoundになりました。  

3DSoundの設定

Volume Rolloffで音量の変化をカーブで制御します。 Logarithmic Rolloff : 近づくと急速に音量が大きくなり、離れると急速に音量が小さくなります。   Linear Rolloff : 近づくほどだんだん大きくなり、離れるほどだんだん小さくなります。   この記事ではUnityで3DSoundを使用する方法を紹介しました。 特定のキャラクターに音声をつけておいて近づくと声が聞こえたり、オブジェクトに効果音やBGMをつけておいて 近づくと聞くことができるようなシーンを作るときに使えそうです。 2Dサウンドと3Dサウンドをうまく使い分けていきたいですね。   UnityからSTYLYにアセットをアップロードする方法 この記事を読む