ゲームにバックグラウンドで流れる音楽やサウンドエフェクトはかかせません。Unity のオーディオシステムは、多くの一般的なオーディオファイルファーマットをインポートでき、3D 空間でサウンドを再生し、さらにエコーやフィルタリングのような任意の効果を適用することができます。Unity はまた、マシンの使用可能なマイクから音声を録音することができ、ゲーム中に使用したり、保存や送信を行うことができます。
実生活では、オブジェクトが音を発し、人々に届きます。音が認識される方法は、多くの要因に依存します。リスナーは音がどの方向から聞こえるのか、その音からおおよその距離を音の大きさと質から測ることができます。動きの速い音源 (落下する爆弾や通り過ぎるパトカーなど) はピッチが変化し、ドップラー効果が発生します。また、サラウンド効果は音の反響方法に影響します。洞窟内では声にエコーがかかりますが、野外では同じ声でもエコーがかかりません。
位置の影響をシミュレートするために、Unity は、オブジェクトに設定された Audio Source から発生する音が必要になります。発生した音は、他のオブジェクト (大抵はメインカメラ) に設定された Audio Listener に取得されます。Unity はリスナーオブジェクトからソースまでの距離と位置の影響をシミュレートし、それに応じて再生された音をユーザーに対して再生します。また、ソースオブジェクトとリスナーオブジェクトの相対速度を使用して、ドップラー効果によるリアリズムを加えることができます。
Unity はシーンのジオメトリから正確なエコーを計算することはできませんが、オブジェクトに Audio Filters を付けることによってシミュレートすることができます。例えば、エコーフィルターを洞窟の中から聞こえるであろう音に付けることができます。オブジェクトが大きなエコーのある場所を出入りするような状況では、Reverb Zone をシーンに加える事ができます。例えば、ゲーム内で車を運転してトンネルを抜けるような状況です。リバーブゾーンをトンネル内に配置するとトンネルに入った時点で車のエンジン音がエコーし始め、出口に向かうにつれてエコーが小さくなっていきます。
Unity Audio Mixer を使うと、さまざまなオーディオソースをミックスしたり、効果を適用したり、マスタリングを行うことができます。
Unity は AIFF、WAV、MP3、Ogg 形式のオーディオファイルを他のアセットと同様に、プロジェクトパネルにドラッグしてインポートすることができます。オーディオファイルをインポートしてオーディオクリップを作成し、Audio Source にドラッグしたり、スクリプトから使用することができます。オーディオクリップのリファレンスページでは、オーディオファイルで使用可能なインポートオプションについての詳細を説明しています。
音楽の場合、Unity はトラッカーモジュールもサポートしています。トラッカーモジュールは、節を演奏するためにアレンジ可能な “楽器” として短いオーディオサンプルを使用します。トラッカー モジュールは、.xm、.mod、.it、.s3m ファイルからインポートして、他のオーディオクリップと同じように使用できます。
Unity はスクリプトからコンピューターのマイクにアクセスでき、直接レコーディングすることでオーディオクリップを作成できます。 Microphone クラスは API を提供し、使用可能なマイクを見つけそれらの機能を照会し、レコーディングセッションを開始し終了します。Microphone のスクリプトリファレンスページに詳しい情報とオーディオレコーディングのサンプルコードがあります。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.