スポンサーリンク
スポンサーリンク
UnityUnityメモ

Unity オーディオの音量を徐々に下げる

Unity

はじめに

今回は、Unityでオーディオの音量を徐々に下げていくスクリプトを作ります。スタートしてすぐに音量が少しずつ下がるように設定します。初心者にも分かりやすく説明するので、ぜひ一緒にやってみましょう!

1. 新しいプロジェクトの作成

まず、Unityを開いて新しいプロジェクトを作成しましょう。プロジェクトの名前は「VolumeFade」にしましょう。

2. オーディオクリップの準備

次に、音を鳴らしたいオーディオクリップ(音楽ファイル)を用意します。これをUnityのプロジェクトにインポートします。

  1. オーディオファイルをプロジェクトウィンドウにドラッグ&ドロップします。

オーディオソースの設定

オーディオクリップを再生するために、オーディオソースを設定します。

  1. メインカメラ選択し、インスペクターウィンドウで「Add Component」をクリックします。
  2. 「Audio Source」を検索して追加します。
  3. インスペクターウィンドウのAudio Sourceコンポーネントに、先ほどインポートしたオーディオクリップをドラッグ&ドロップします。

スクリプトの作成

次に、音量を徐々に下げるスクリプトを作成します。

  1. プロジェクトウィンドウで右クリックし、「Create」→「C# Script」を選びます。
  2. スクリプトの名前を「SoundManager」とします。
  3. スクリプトをダブルクリックして開き、以下のコードを入力します。

コード全体の説明

このスクリプトは、音の管理をする「SoundManager」というクラスです。このクラスは、オーディオの音量を徐々に下げる機能を持っています。

各部分の説明

  • 名前空間とクラス宣言
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SoundManager : MonoBehaviour
  1. using System.Collections;using System.Collections.Generic; は、コルーチンとコレクションを使うためのものです。
  2. using UnityEngine; は、Unityの基本的な機能を使うためのものです。
  3. public class SoundManager : MonoBehaviour は、このクラスがMonoBehaviourを継承していることを示しています。MonoBehaviourは、Unityのすべてのコンポーネントの基本クラスです。
  • 変数の宣言
AudioSource audioSource;
  1. AudioSource audioSource; は、オーディオソースを参照するための変数です。オーディオソースは、音を再生するためのコンポーネントです。
  • Startメソッド
void Start()
{
    audioSource = GetComponent<AudioSource>();
    VolumeChange();
}
  1. void Start() は、スクリプトが最初に実行されるときに呼び出されるメソッドです。
  2. audioSource = GetComponent<AudioSource>(); は、このオブジェクトにアタッチされているオーディオソースコンポーネントを取得します。
  3. VolumeChange(); は、音量を変更するメソッドを呼び出します。
  • VolumeChangeメソッド
public void VolumeChange()
{
    StartCoroutine("VolumeDown");
}
  1. public void VolumeChange() は、音量を変更するためのメソッドです。
  2. StartCoroutine("VolumeDown"); は、コルーチンを使ってVolumeDownメソッドを開始します。
  • VolumeDownメソッド
IEnumerator VolumeDown()
{
    while(audioSource.volume > 0)
    {
        audioSource.volume -= 0.01f;
        yield return new WaitForSeconds(0.1f);
    }
}
  1. IEnumerator VolumeDown() は、コルーチンメソッドです。コルーチンは、一定の間隔で処理を繰り返すためのものです。
  2. while(audioSource.volume > 0) は、オーディオの音量が0より大きい間、以下の処理を繰り返します。
  3. audioSource.volume -= 0.01f; は、音量を0.01ずつ減らします。
  4. yield return new WaitForSeconds(0.1f); は、0.1秒待ってから次のループを実行します。

全体の動き

  1. ゲームが始まると、Startメソッドが呼ばれます。
  2. Startメソッド内で、このオブジェクトのオーディオソースを取得し、VolumeChangeメソッドを呼び出します。
  3. VolumeChangeメソッドは、VolumeDownという名前のコルーチンを開始します。
  4. VolumeDownコルーチンは、音量が0になるまで0.1秒ごとに音量を0.01ずつ下げ続けます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SoundManager : MonoBehaviour
{
    AudioSource audioSource;
    
    void Start()
    {
        audioSource = GetComponent<AudioSource>();
        VolumeChange();
    }

    public void VolumeChange()
    {
        StartCoroutine("VolumeDown");
    }
    
    IEnumerator VolumeDown()
    {
        while(audioSource.volume > 0)
        {
            audioSource.volume -=0.01f;
            yield return new WaitForSeconds(0.1f);
        }
    }
}

5. スクリプトのアタッチ

最後に、作成したスクリプトをオーディオソースがアタッチされているオブジェクトにアタッチします。

  1. ヒエラルキーウィンドウで先ほど作成したキューブを選択します。
  2. プロジェクトウィンドウから「SoundManager」スクリプトをドラッグして、メインカメラにドロップします。

6. 実行して確認

これで準備完了です!Unityエディタ上部の再生ボタンをクリックして、音量が徐々に下がっていくのを確認しましょう。

まとめ

このチュートリアルでは、Unityでオーディオの音量を少しずつ下げる方法を学びました。オーディオソースの設定からスクリプトの作成まで、一歩一歩進めていけば、簡単に実装できます。ぜひ他のプロジェクトでも試してみてくださいね!

おすすめのアセット

「Master Audio 2022: AAA Sound」は、高品質なサウンド管理ツールです。簡単に使えるインターフェースで、音楽や効果音を効率的に管理できます。主な特徴として、音量の自動調整、音のフェードイン・アウト、複数の音声トラックの管理などがあります。また、ゲーム内の状況に応じた動的な音声制御も可能です。初心者でも使いやすく、プロのゲーム開発者にも対応しています。

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました