Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity開発】Audioまとめ(3Dサウンド中心)【ひよこエッセンス】

Unity5.0.0f4 Personal(2015年5月)

 

f:id:hiyotama:20150504205926p:plain

 

ひよこエッセンスの時間です〜

今回はAudioの、3Dサウンドに関する部分を記述していきます〜

Audioまとめ(3Dサウンド中心)

  

①下準備

まずはCubeを2つ用意し、名前をListenerにした方にAudioListnerを、名前をSourceにした方にAudioSource&適当なBGMを指定し、Loopをtrueにして下さい〜

また、AudioListnerは1Sceneに1つまでなので、MainCameraに付いているAudioListnerは削除して下さい〜

 

f:id:hiyotama:20150522111620p:plain

MainCameraのAudioListner削除

 

f:id:hiyotama:20150522111725p:plain

Listner(Cube)の設定

 

f:id:hiyotama:20150522112029p:plain

Source(Cube)の設定

 

f:id:hiyotama:20150522111944p:plain

こんな感じ

 

下準備完了です〜

 

②AudioSource(3Dサウンド)解説

 

AudioListenerのInspectorビュー情報を載せます〜今回の解説は赤枠の部分となります〜

 

f:id:hiyotama:20150522112234p:plain

 

Stereo Panは、イヤホン等を使うと分かりやすいのですが、左右の音量比率を調整します〜

例えば1(右側)にすると右耳からしか聞こえず、-1(左側)にすると左耳からしか聞こえません〜もちろん中途半端な左右比にすればその通りの比率で聴こえます〜

 

Spatial Blendは、2Dサウンドの比率と3Dサウンドの比率を0〜1で調整します〜(このページで紹介している内容は2Dサウンドでは機能しないのでご注意下さい〜)

Spatial Blendが0(2D)の状態だと、Audio Listenerの位置に関係なく一定の音量で音が聴こえます〜試しにSource(Cube)のposition.xを10000にしてもらっても、音量が変わらないことが確認できます〜

 

その位置関係のままSpatial Blendを1(3D)にして下さい〜すると、サウンドはほぼ聴こえなくなると思います〜更にSource(Cube)のposition.xを1000、100、10とListener(Cube)に近づけていくと、だんだんと音量が大きくなっていくことが確認できます〜つまり3Dの比率を高めることで、AudioListenerとAudioSourceとの距離が音量に反映されるということです〜

 

ちょっとした小ネタをひとつ〜

先ほどのStereo Panに話を戻します〜Spatial Blendが0.75(3D優勢)の状態で、Source(Cube)のposition.xを10(つまりListener(Cube)から見て右側)、Stereo Panを1(右側)にしましょう〜すると、右耳からはサウンドが聴こえますが、左耳からはサウンドが全く聴こえなくなります〜

この状態でSource(Cube)のposition.xを-10にすると、右耳優勢ですが、両耳から聴こえるようになります〜以下にちょっとまとめてみましたのでご参照下さい〜

 

Stereo PanSourceのposition.x右耳左耳
-1(左側優先) -10(Listener左) 聴こえない 聴こえる
-1(左側優先) 10(Listener右) よく聴こえる 聴こえる
1(右側優先) -10(Listener左) 聴こえる よく聴こえる
1(右側優先) 10(Listener右) 聴こえる 聴こえない

 

3Dサウンドが考慮されていない状態だと単純に左右の音量比の調整のみでしたが、3Dサウンドが考慮された状態だと、AudioListenerとAudioSourceの位置関係が音量に反映されます〜

 

ここらへんをうまく調整することで、左から人がやってきたなど臨場感ある演出が可能となります〜

 

Reverb Zone Mixは Audio Reverb Zoneコンポーネントの影響比率を調整しています〜0〜1.1の範囲で調整できます〜

 

Doppler Levelは皆さんよくご存知だと思いますが、救急車が近づく時音が高くなり、遠ざかるにつれ音が低くなっていくアレです〜

0〜5までで調整でき、デフォルトが10の時は全く影響が無く、5の時に極端にドップラー効果が出ます〜試しにLevelを5にし、ゲームを実行し、SceneビューからSource(Cube)をListener(Cube)を通過するよう動かしてみて下さい〜

 

f:id:hiyotama:20150522122119p:plain

ドップラー効果! ロックマンX3のドップラー博士を思い出します

 

Volume Rolloffは、サウンドがフェードアウトする早さを決定します〜AudioListenerとAudioSourceがどれくらい離れたら音を消すかとか、どんな感じで音を小さくしていくかといったことを調整できます〜Audio Source下の表でいう赤い線です〜

Logiarithmic(対数) Rolloffは、Audio Listenerに近いと大きな音を出し、遠ざかると早い段階で音が小さくなります〜

 

f:id:hiyotama:20150522123053p:plain

すぐに小さくなる

 

Linear(直線) Rolloff直線の形をとり、ゆるやかに音が小さくなっていきます〜

 

f:id:hiyotama:20150522123240p:plain

ゆるやか

 

Custom(カスタム) Rolloffは自分で調整します〜表の赤い線をダブルクリックすると新しい点ができるので、それを使って調整して下さい〜

 

f:id:hiyotama:20150522123838p:plain

自分で調整

 

Min Distanceで指定した半径に入っている時、サウンドは最大音量となります〜Min Distanceから遠ざかるにつれ、音量は下がっていきます〜この半径は、Sceneビューで確認できます〜

 

f:id:hiyotama:20150522124340p:plain

Min Distance:3の例

 

Spreadは音声の広がり角を表しており、0度〜360度で設定できます〜が、よく意味が分かっておりません〜

例えばListenerの右側にSourceが位置しており、Stereo Panが0(中間)、Spatial Blendが1(3D)、Spreadが0であるとします〜この場合、イヤホンから聴こえてくる音は右側のみです〜

この状態でSpreadを360に変更すると、右側は全く聴こえなくなり、左側のみ聴こえるようになります〜ご想像通り、180度にすると両方均等に聴こえます〜

 

もう少し調査してみる必要がありそうです〜

 

Max Distanceはサウンドが聴こえる最長距離で、この範囲を超えると音が全く聴こえなくなります〜注意すべきは、Volume RolloffがLogarithmic RolloffになっているとMax Distanceを超えても微妙〜に音が鳴り続けてしまうという点です〜

音を完全に消したい場合はLinear RolloffかCustom Rolloffにし、赤い線を0.0以下にする必要があります〜

 

f:id:hiyotama:20150522125437p:plain

Logarithmic Rolloffの場合、微妙〜に0.0以上が続いていく

 

f:id:hiyotama:20150522125606p:plain

Linear Rolloffだと500でキッパリと音が消える

 

Audioの基本的な部分の解説はこれで終わりですが、まだまだ奥が深そうです〜

以上、ひよこエッセンスでした〜