第57章 ユニティミキサー

この章では、さまざまなオーディオ ソースをミキシングし、均一に制御したり、オーディオ ソースにさまざまなエフェクトを適用したりできる Unity ミキサー (オーディオ ミキサー) について紹介します。Unity のミキサーはリソース ファイルです。[作成] を右クリックして AudioMixer ファイルを作成できます。これはファイルですが、Unity はこのファイルを編集するためのグラフィカル インターフェイスを提供します。シーン内にはBGM、特殊効果音、NPCの音など、たくさんの音が存在し、それらを分類して管理する必要があります。これらのサウンドは 1 つ以上の AudioMixer で管理できます。すべての AudioMixer にはクラス定義の階層があり、AudioMixer では AudioGroups と呼ばれます。必要なのは、さまざまなカテゴリに従ってオーディオ ソースを AudioGroup に出力することだけであり、残りは、AudioGroup を通じてこれらのオーディオ ソースの再生制御を操作することです。

次に、オーディオ ミキサー (オーディオ ミキサー) の使用方法を例を使用して説明します。まず、シーン内の音を 2 種類に分けます。1 つは背景音 (例: 夜に虫が鳴く音.mp3)、もう 1 つは特殊効果音 (例: の音声) です。 run.mp3 を実行しているプレーヤー)。私たちが実現したい効果は、シーンがデフォルトで夜間に鳴く昆虫の背景音を再生し、その後スペースバーを押すと、背景音を低減しながらプレーヤーの走行音を再生することです。

次に、ミキサーリソースファイルを作成しましょう。プロジェクトウィンドウの下のアセットディレクトリの空白部分を右クリックし、「作成」→「オーディオミキサー」を選択します。ファイル名は「NewAudioMixer」です。

次に、このファイルをダブルクリックして、グラフィカル編集ウィンドウを開きます。

上の図では、左側に「Groups」グループが表示され、その下に「Master」という名前のメイン グループがあり、右側にも「Master」という名前のメイン グループが表示されます。次に、「マスター」をクリックして選択し、「グループ」の右側にあるプラス記号をクリックして、BgSound と EffectSound という 2 つの新しいグループを追加します。

Master がメイン グループであり、BgSound と EffectSound がその下の 2 つのサブグループであることに注意してください。同時に、右側に 2 つの新しく追加されたサブグループが表示されます。つまり、Master は BgSound と EffectSound を全体的に制御することができます。また、BgSound と EffectSound はそれぞれのサウンドを制御できます。次に、右側の 3 つのマスター、BgSound と EffectSound を紹介します。3 つのグループの操作インターフェイスは同じであることがわかりました。この操作インターフェイスで最も印象的なのは音量スケールとスライダーで、言うまでもなく、このスライダーは音の音量を制御するために使用されます。スケールから、音の最大値は 0、最小値は dB (デシベル) で -80 であることがわかります。次は「S」「M」「B」の3つのボタンです。S ボタンはシャッフルされたグループのサウンドを再生し、他のグループのサウンドはすべてミュートされます。M ボタンを押すと、そのグループのすべてのサウンドがミュートされます。B ボタンを押すと、そのグループ内のすべてのエフェクトがキャンセルされます。一番下の「追加」ボタンは現在のグループにエフェクトを追加するためのものなので、ここでは詳しく紹介しません。

ミキサーを使用して音量を制御するにはどうすればよいですか? コードを使用してサウンドのボリュームを制御できるように、ミキサー (Expose) のボリューム パラメーター (ボリューム) を公開する必要があります。もちろん、他のパラメータを公開して、コードを通じて実際の対応するエフェクトを制御することもできます。ボリュームパラメータを公開するにはどうすればよいですか? まず、「BgSound」グループをクリックし、次に示すように、その Inspector 検査パネルを表示します。

 

ボリュームパラメータ「ボリューム」が表示されます。「ボリューム」の上にマウスを置き、右クリックします

最初のオプション「「音量(of BgSound)」をスクリプトに公開する」を選択します。これは、このパラメータをスクリプトに公開することを意味します。

露光が完了すると、元の「ボリューム」の右側に矢印のロゴが表示されます。同時に、以下に示すように、公開されているパラメータの数もミキサー編集ウィンドウの右上隅に表示されます。

以下に示すように、右上隅にあるドロップダウン三角形をクリックします。

公開したパラメータ名が「MyExusedParam」であることが示されています。名前は変更できます。この名前を右クリックします。

次に、「名前の変更」を選択して名前を変更し、新しい名前「BgSoundVolume」を入力します。

同様に、「EffectSound」の Volume パラメータを「EffectSoundVolume」として公開します。

ここでは、とりあえずミキサーファイルを設定します。

シーン内の Audio Source コンポーネントに戻りましょう。空のオブジェクト ( BgGameObject に名前変更) をシーンに追加し、その空のオブジェクトに Audio Source コンポーネントを追加しました。このコンポーネントの最初のオプション Audio Clip にも、「night.mp3」サウンド ファイルが割り当てられます。次に、2 番目の出力オプションに注目します。ミキサー(オーディオミキサー)の設定を行います。

次に、「出力」オプションの右側にあるドットをクリックして、作成したばかりのミキサーを追加しましょう。

ポップアップ ダイアログ ボックスで、「BgSound」サブグループを選択します。「night.mp3」サウンドファイルはバックグラウンドサウンドなので、「BgSound」に渡して管理します。

同様に、引き続き新しい空のオブジェクト (EffectGameObject という名前) を追加し、オーディオ ソース コンポーネントも追加します。次に、最初のオプションのオーディオ クリップで「run.mp3」サウンド ファイルを割り当て、2 番目の出力オプションで「EffectSound」を設定します。 " グループ。

ここでは、「ru​​n.mp3」サウンドが自動的に再生されないように、「Play On Awake」オプションをキャンセルしました。次に、先ほど述べた効果を実現するために、スクリプト ファイル SoundController.cs を作成する必要があります。コードは以下のように表示されます

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;

public class SoundController : MonoBehaviour
{
    // 混音器
    public AudioMixer audioMixer;

    // 跑步声音源组件
    public GameObject effectGameObject;
    private AudioSource audioSource;
    
    // Start is called before the first frame update
    void Start()
    {
        // 获取跑步声音源组件
        audioSource = effectGameObject.GetComponent<AudioSource>();
    }

    // Update is called once per frame
    void Update()
    {
        // 空格按下,播放跑步声音,减低背景声音
        if (Input.GetKeyDown(KeyCode.Space))
        {
            audioMixer.SetFloat("BgSoundVolume", -20.0f);
            audioMixer.SetFloat("EffectSoundVolume", 0.0f);
            audioSource.Play();
        }

        // 空格按上,停止跑步声音,恢复背景声音
        if (Input.GetKeyUp(KeyCode.Space))
        {
            audioMixer.SetFloat("BgSoundVolume", 0.0f);
            audioMixer.SetFloat("EffectSoundVolume", -80.0f);
            audioSource.Stop();
        }
    }
}

次に、このスクリプトをメインカメラ「Main Camera」にアタッチします。

スクリプトでは、2 つのパブリック変数を定義します。1 つはミキサー audioMixer で、もう 1 つは空のオブジェクト effectGameObject です。これら 2 つの変数を初期化するには、インスペクター パネルにドラッグ アンド ドロップする必要があります。ミキサー ファイル NewAudioMixer をプロジェクトのアセット ウィンドウから audioMixer 変数にドラッグし、次に、effectGameObject ゲーム オブジェクトを階層パネルからeffectGameObject 変数にドラッグします。

上のスクリーンショットに示すように。audioMixer 変数はミキサーであり、その SetFloat メソッドを呼び出してサウンドの音量を設定できます。公開した 2 つのパラメーターを覚えていますか? それは、背景音変数 BgSoundVolume と特殊効果音変数 EffectSoundVolume です。SetFloat メソッドの最初のパラメータは公開されたパラメータ変数の名前で、2 番目のパラメータはパラメータ値です。0 は最大音量を表し、-80 は最小音量を表します。スペースバーを押すと、次のコードを渡すことができます。

audioMixer.SetFloat("BgSoundVolume",-20.0f);
audioMixer.SetFloat("EffectSoundVolume", 0.0f);

効果音を大きくしながら背景音を小さくします。では、もう 1 つのeffectGameObject ゲーム オブジェクトは何のためにあるのでしょうか? 実際には、オーディオ ソース audioSource コントロールを取得するためです。なぜなら、effectGameObjectゲームオブジェクトのaudioSourceコントロールに走行音「run.mp3」を配置しているからです。したがって、オーディオ ソースの再生は、audioSource コントロールを使用して実装する必要があります。これは比較的単純で、再生するには Play メソッドを直接呼び出し、停止するには Stop メソッドを呼び出します。次に、プロジェクト全体を実行すると、シーンでバックグラウンド サウンド night.mp3 ファイルが自動的に再生されます。スペースを押すと、バックグラウンド サウンドが減少し、実行中の特殊効果サウンド run.mp3 ファイルが再生されます。同時。

このコースに含まれるコンテンツは Baidu Netdisk に共有されています: https://pan.baidu.com/s/1e1jClK3MnN66GlxBmqoJWA?pwd=b2id

おすすめ

転載: blog.csdn.net/konkon2012/article/details/130634447