Unityの音の設定と音の鳴り方を確認してみる

今回はゲームで使用する音声の設定等について見ていこうと思います。

まずは音声ファイルのインポート設定から見てみましょう。

音声ファイルのインポート設定

Force To Monoはモノラル音声にするかどうかですね、通常はチェックしなくていいかもしれません。
Load In Backgroundはバックグラウンドでサウンドの読み込みをするかどうかです。
Preload Audio Dataはシーン読み込み時にサウンドファイルの読み込みをするかどうか。

Load In Backgroundにチェックを入れてあとはデフォルトで大丈夫ですかね。

その下の音声の設定は音声ファイルをあらかじめメモリ内にそのままの状態で保存しておくかとか圧縮した状態で保存しておくかとかの設定です。

出力する形式ごとに設定が出来るみたいで『Override For 形式』の所にチェックを入れると設定を上書き出来るみたいです。

Load Typeから見ていきましょう。

Decompress On Loadはロードされたらメモリに音声ファイルが解凍されるのでファイルサイズが大きくなるけど使う時に早いかも

Compressd In Memoryは音声ファイルを圧縮状態でメモリに入れておき再生する時に解凍するみたいなので効果音には向いてないかも?

Streamingはメモリに音声ファイルを置かずに直接ファイルを再生していくタイプみたいです。BGMはこのタイプがいいのかな?

次はCompression Formatを見ていきましょう。訳すと圧縮の形式です。

PCMは音声の品質が良いがファイルサイズが大きい

Vorbisは圧縮サイズはPCMより小さいけど品質が落ちる

ADPCMはノイズを含んだ効果音に効果的だそうです。効果音はこれがいいのかな?

SampleRate Settingはよくわかりません・・・。

音声クリップの説明はUnityのマニュアルを参考にさせて頂きました。

Unity のマニュアルは、Unityの使い方を学ぶ手助けとなります。Unityを使って 2D や 3D ゲームを作成したり、ゲーム以外のアプリを作成したりして多くの経験を積みましょう。

ちゃんとした説明で理解されたい方は上記のマニュアルを確認してください。

これで音声ファイルのインポート設定が出来たのでこの音声を鳴らしてみましょう。

Main CameraにAdd Component→Audio→Audio Sourceを追加します。

Audio SourceのAudio Clipにさきほど設定した音声クリップをドラッグ&ドロップして設定します。

AudioSourceにAudioClipを設定

↑のようにAudio Clipを設定しました。

Outputはオーディオミキサーを使用する時の出力先です。

他の音声との調整や音声に効果を与えたい時にオーディオミキサーを使用し、Outputに設定します。

Muteは音声を聞こえないようにする設定

Bypassなんちゃらの設定はエフェクトの無効化をするかどうかみたいです(わからん・・・)

Play On Awakeは音声を自動ですぐに再生したい場合はチェック

Loopは繰り返し再生するかどうか

Priorityは音声の優先度で0が最大です。他の音声に邪魔されて音が消えるというような時は優先度を上げるといいのかも。

Volumeは音声の大きさ

Pitchは音声の再生速度

Stereo Panは2Dサウンドの聞こえる位置を設定します。一番右に設定するとパソコンで聴けば右側のスピーカーから音が聞こえます。

Spatial Blendは2Dサウンドと3Dサウンドの比率ですかね?一番右に設定すると3DサウンドになるのでAudioSourceが設定されたゲームオブジェクトにAudioListenerを持ったゲームオブジェクトが近づかないと音声が聞こえません。

逆に一番左に設定すると2Dになるのでどこにいても聞こえます。

Reverb Zone Mixは残響の効果を調整するもの?んーよくわからんです。

3D Sound Settingsを見ていきましょう。

Doppler Levelはドップラー効果のレベル調整ですね、救急車が通り過ぎる時のあれです。3Dサウンドであればそのゲームオブジェクトを通り過ぎる時にウインウイン唸るような音声が聞こえます。

Spreadは3Dサウンドの広がりを設定するみたいです。音声の広がりが設定出来る?

Volume RolloffはAudioListenerが近づいたり遠ざかったりした時の音声の聞こえ具合を調整するグラフの設定です。段々聞こえなくなったり、ある一定の場所に来たら急に聞こえなくなるようにしたい時などに調整します。

Min DistanceはAudio Sourceが設定されているゲームオブジェクトからの距離がこの範囲にAudioListenerがある場合は最大限の音量で音声が再生されます。この範囲を出ると音が弱まっていきます。

Max Distanceは音が弱まるのを止める距離です。

これでAudio Sourceの設定も大丈夫でしょう!(^_^;)

Audio Sourceに関してはマニュアルを参考にさせて頂きました。

Unity のマニュアルは、Unityの使い方を学ぶ手助けとなります。Unityを使って 2D や 3D ゲームを作成したり、ゲーム以外のアプリを作成したりして多くの経験を積みましょう。

文字ばかりの説明ではちょっとわかり辛いと思いますので、ひとつサンプルを作成してみましょう。

ゲーム空間にAudioSourceコンポーネントを設定したゲームオブジェクトを用意します。

AudioSourceを設定するゲームオブジェクト

↑のようにCubeでゲームオブジェクトを作成し、インスペクタのAdd ComponentからAudio→Audio Sourceを追加します。
Audio SourceのAudio Clipに鳴らしたい音声を設定してください。

AudioSourceの設定をいじった後

Audio Sourceは↑のように設定しました。

Doppler Levelを3にし、ドップラー効果が現れるようにしました。
3D Sound SettingsのMin DistanceとMax Distanceを設定し、音の減衰がわかるようにします。

音量の減衰がわかる画像

↑のようにMin Distanceが小さい球、Max Distanceが大きい球で表されています。

小さい球の中にいる場合は音声が最大で再生され、その範囲を出ると段々音が小さくなります。
Max Distanceの球を出てもそれ以上は音声が小さくなりません。

それでは確認してみてください!

動画を作って試しても音声が聞こえないのでサンプルはないです(^_^;)
わたくしのパソコンだとWebGL形式で出力出来ないのとWebPlayerで出力するのもファイル容量が大きすぎてサンプルとしては問題ありなので・・・。

音声を設定したゲームオブジェクトにAudio Listenerを持ったゲームオブジェクトを近づけたり遠ざけたりしてみてください。
音の変化がわかると思います。

ゲームオブジェクトが発する音声は3D Soundにして近くによったり遠ざかったりで音量が小さくなるのが普通ですが、BGMのように常に同じ音量で再生させたいものもあります。
そんな時はAudio SourceのSpatial Blendを一番左に設定し2Dサウンドにします。

そうするとAudio Listenerが設定されているゲームオブジェクトがどこにあっても同じように聞こえるようになります。
3D Soundのままいつも同じような音量で再生したい時は、キャラクターを映すカメラにAudio SourceとAudio Listenerを設定すれば一緒に動くので音量は変わりません。

これで音のインポート設定と音がどのように鳴るかの確認が出来ました。