Unity-オーディオ入門

ゲームがオーディオに重点を置く理由があります。ゲームに美的価値を加えることは非常に重要です。最初からPong、ボールがパドルに交互に当たるときのビープ音とブープ音が聞こえます。当時は本当にシンプルな短い方形波のサンプルでしたが、すべてのビデオゲームの祖父にこれ以上何が欲しいですか?

実生活では、多くのことが音の知覚方法に影響を与えます。オブジェクトの速度、オブジェクトのシナリオのタイプ、およびオブジェクトがどの方向から来ているか。

エンジンに不要な負荷をかける要因はたくさんあります。代わりに、ゲーム内でサウンドがどのように機能するかについてのアイデアを作成し、それを中心に構築しようとしています。これは、3つの軸を処理する3Dゲームで特に顕著になります。

Unityには、音声の知覚と再生専用のコンポーネントがあります。これらのコンポーネントが連携して、ゲームに自然に感じられる信頼できるサウンドシステムを作成します。

Unityは、リバーブ、ドップラーエフェクト、リアルタイムのミキシングとエフェクトなど、さまざまな便利なツールとエフェクトを提供します。これらについては、次の章で学習します。

オーディオコンポーネント

このセクションでは、Unityのオーディオに関連する3つの主要なコンポーネントについて学習します。

AudioSource

AudioSourceコンポーネントは、サウンドを再生するためにGameObjectにアタッチする主要なコンポーネントです。再生しますAudioClip ミキサー、コード、またはデフォルトでトリガーされたとき、起動したとき。

AudioClipは、AudioSourceにロードされる単なるサウンドファイルです。.mp3、.wavなどの標準的なオーディオファイルにすることができます。AudioClipは、それ自体のコンポーネントでもあります。

AudioListener

AudioListenerは、 listensシーンで再生されているすべてのオーディオに転送し、コンピューターのスピーカーに転送します。それはのように機能しますearsゲームの。聞こえるすべてのオーディオは、このAudioListenerの位置の観点からのものです。正しく機能するには、1つのAudioListenerのみがシーンに含まれている必要があります。デフォルトでは、メインカメラにはリスナーが接続されています。リスナーには、デザイナーが気にしたい公開プロパティがありません。

オーディオフィルター

AudioSourceの出力またはAudioListenerの取り込みは、オーディオフィルターを使用して変更できます。これらは、リバーブ、コーラス、フィルタリングなどを変更できる特定のコンポーネントです。それぞれの特定のフィルターは、それがどのように聞こえるかを微調整するために公開された値を持つ独自のコンポーネントとして提供されます。

音を出す

クリックすると音が鳴るボタンを作ってみましょう。開始するには、Create サークルスプライト、そしてそれを赤にします。

さて、添付しましょう Audio Source このスプライトに。

オブジェクトがサウンドを再生するには、オブジェクトにサウンドを与える必要があります。この効果音を私たちの目的に使用しましょう。

http://www.orangefreesounds.com/ding-sfx/

効果音をダウンロードして、アセットにドラッグします。

Unityがこのアセットをサウンドファイルとしてインポートすると、自動的にに変換されます AudioClip。したがって、このサウンドクリップをアセットからスプライトのオーディオソースのオーディオクリップスロットに直接ドラッグできます。

サウンドクリップをアセットからスプライトのオーディオソースのオーディオクリップスロットに直接ドラッグした後、オーディオソースのプロパティで[スリープ解除時に再生]の選択を解除することを忘れないでください。そうしないと、ゲーム開始時にサウンドが再生されます。

それでは、コードに飛び込んでみましょう。「BellSound」という新しいスクリプトを作成して開きます。

私たちのオーディオソースはコードによって制御されているので、最初にそれへの参照を取得したいと思います。以前と同様にGetComponentメソッドを使用します。

public class BellSound : MonoBehaviour {
   AudioSource mySource;
   // Use this for initialization
   void Start () {
      mySource = GetComponent<AudioSource>();
}

次に、クリックされているオブジェクトを検出するメソッドを設定しましょう。MonoBehaviourは、OnMouseDownという名前の必要なメソッドを提供します。このメソッドは、マウスがaの範囲内でクリックするたびに呼び出されます。collider そのgameObjectの。

ボタンにはまだコライダーを取り付けていないので、今すぐ取り付けましょう。

これにはリジッドボディは必要ありません。また、コードでこのコライダーにアクセスする必要もありません。メソッドが機能するには、そこにある必要があります。

メソッドをテストして、機能しているかどうかを確認しましょう。スクリプトに次のコードを記述し、ボタンに添付します。

void OnMouseDown() {
   Debug.Log(“Clicked!”);
}

スクリプトを保存して添付したら、ゲームをプレイします。ボタンをクリックすると、コンソールにメッセージが表示されます。

これで、サウンドの再生から一歩離れました。あなたが今しなければならないのは電話することだけですPlay オーディオソースインスタンスのメソッド。

void OnMouseDown() {
   mySource.Play();
}

スクリプトを保存して、ゲームで実行します。ボタンをクリックすると、音が鳴ります!

Note−クリックするたびにピッチが上がるボタンを作成することを検討してください。使用するmySource.pitch とカウンターとあなたがそれを理解できるかどうかを確認してください。)