今回はゲームで使用する音声の設定等について見ていこうと思います。
音声ファイルをUnityに取り込んで使用しますが、その音声ファイルをどのような状態で保持しておくかの設定をする事が出来ます。
また音声ファイルはAudioSource等に設定して再生しますが、そのAudioSourceの設定も見ていく事にします。
↑のような感じで、AudioListenerを持つキャラクターがAudioSourceを設定したゲームオブジェクトに近づいたり遠ざかったりする事で音声の聞こえ方が変わります。
音声ファイルのImport Setting
まずは音声ファイルのインポート設定から見てみましょう。
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 は、モノラル、ステレオ、マルチチャンネル(8つまで)のオーディオアセットをサポートしています。.aif、.wav、.mp3、.ogg のオーディオフ...
ちゃんとした説明で理解されたい方は上記のマニュアルを確認してください。
音声ファイルをAudioSourceに設定して音声を鳴らす
これで音声ファイルのインポート設定が出来たのでこの音声を鳴らしてみましょう。
Main CameraにAdd Component→Audio→Audio Sourceを追加します。
Audio SourceのAudio Clipにさきほど設定した音声クリップをドラッグ&ドロップして設定します。
↑のようにAudio Clipを設定しました。
Audio Sourceの設定項目
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に関してはマニュアルを参考にさせて頂きました。
Audio Source - Unity マニュアルAudio Source は、シーン内で Audio Clip を再生します。クリップは AudioListener や Audio Mixer を通して再生することが可能です。Audio Clipが 3D クリップの場合、ソースは、所定の...
簡単なサンプルを作成してみる
文字ばかりの説明ではちょっとわかり辛いと思いますので、ひとつサンプルを作成してみましょう。
ゲーム空間にAudioSourceコンポーネントを設定したゲームオブジェクトを用意します。
↑のようにCubeでゲームオブジェクトを作成し、インスペクタのAdd ComponentからAudio→Audio Sourceを追加します。
Audio SourceのAudio Clipに鳴らしたい音声を設定してください。
Audio Sourceは↑のように設定しました。
Spatial Blendを1にし3Dサウンドにします。
Doppler Levelを3にし、ドップラー効果が現れるようにしました。
3D Sound SettingsのMin DistanceとMax Distanceを設定し、音の減衰がわかるようにします。
↑のようにMin Distanceが小さい球、Max Distanceが大きい球で表されています。
小さい球の中にいる場合は音声が最大で再生され、その範囲を出ると段々音が小さくなります。
Max Distanceの球を出てもそれ以上は音声が小さくなりません。
サンプルの確認
それでは確認してみてください!
音声を設定したゲームオブジェクトにAudio Listenerを持ったゲームオブジェクトを近づけたり遠ざけたりしてみてください。
音の変化がわかると思います。
最初の動画のサンプルのようにMain CameraのAudio Listenerを削除し、キャラクターにAudio Listenerを取り付けて確認するとわかりやすいかもしれません。
ゲームオブジェクトが発する音声は3D Soundにして近くによったり遠ざかったりで音量が小さくなるのが普通ですが、BGMのように常に同じ音量で再生させたいものもあります。
そんな時はAudio SourceのSpatial Blendを一番左に設定し2Dサウンドにします。
そうするとAudio Listenerが設定されているゲームオブジェクトがどこにあっても同じように聞こえるようになります。
3D Soundのままいつも同じような音量で再生したい時は、キャラクターを映すカメラにAudio SourceとAudio Listenerを設定すれば一緒に動くので音量は変わりません。
これで音のインポート設定と音がどのように鳴るかの確認が出来ました。