はじめに
今回は、Unityでオーディオの音量を徐々に下げていくスクリプトを作ります。スタートしてすぐに音量が少しずつ下がるように設定します。初心者にも分かりやすく説明するので、ぜひ一緒にやってみましょう!
1. 新しいプロジェクトの作成
まず、Unityを開いて新しいプロジェクトを作成しましょう。プロジェクトの名前は「VolumeFade」にしましょう。
2. オーディオクリップの準備
次に、音を鳴らしたいオーディオクリップ(音楽ファイル)を用意します。これをUnityのプロジェクトにインポートします。
- オーディオファイルをプロジェクトウィンドウにドラッグ&ドロップします。
オーディオソースの設定
オーディオクリップを再生するために、オーディオソースを設定します。
- メインカメラ選択し、インスペクターウィンドウで「Add Component」をクリックします。
- 「Audio Source」を検索して追加します。
- インスペクターウィンドウのAudio Sourceコンポーネントに、先ほどインポートしたオーディオクリップをドラッグ&ドロップします。
スクリプトの作成
次に、音量を徐々に下げるスクリプトを作成します。
- プロジェクトウィンドウで右クリックし、「Create」→「C# Script」を選びます。
- スクリプトの名前を「SoundManager」とします。
- スクリプトをダブルクリックして開き、以下のコードを入力します。
コード全体の説明
このスクリプトは、音の管理をする「SoundManager」というクラスです。このクラスは、オーディオの音量を徐々に下げる機能を持っています。
各部分の説明
- 名前空間とクラス宣言
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SoundManager : MonoBehaviour
using System.Collections;
とusing System.Collections.Generic;
は、コルーチンとコレクションを使うためのものです。using UnityEngine;
は、Unityの基本的な機能を使うためのものです。public class SoundManager : MonoBehaviour
は、このクラスがMonoBehaviourを継承していることを示しています。MonoBehaviourは、Unityのすべてのコンポーネントの基本クラスです。
- 変数の宣言
AudioSource audioSource;
AudioSource audioSource;
は、オーディオソースを参照するための変数です。オーディオソースは、音を再生するためのコンポーネントです。
- Startメソッド
void Start()
{
audioSource = GetComponent<AudioSource>();
VolumeChange();
}
void Start()
は、スクリプトが最初に実行されるときに呼び出されるメソッドです。audioSource = GetComponent<AudioSource>();
は、このオブジェクトにアタッチされているオーディオソースコンポーネントを取得します。VolumeChange();
は、音量を変更するメソッドを呼び出します。
- VolumeChangeメソッド
public void VolumeChange()
{
StartCoroutine("VolumeDown");
}
public void VolumeChange()
は、音量を変更するためのメソッドです。StartCoroutine("VolumeDown");
は、コルーチンを使ってVolumeDownメソッドを開始します。
- VolumeDownメソッド
IEnumerator VolumeDown()
{
while(audioSource.volume > 0)
{
audioSource.volume -= 0.01f;
yield return new WaitForSeconds(0.1f);
}
}
IEnumerator VolumeDown()
は、コルーチンメソッドです。コルーチンは、一定の間隔で処理を繰り返すためのものです。while(audioSource.volume > 0)
は、オーディオの音量が0より大きい間、以下の処理を繰り返します。audioSource.volume -= 0.01f;
は、音量を0.01ずつ減らします。yield return new WaitForSeconds(0.1f);
は、0.1秒待ってから次のループを実行します。
全体の動き
- ゲームが始まると、
Start
メソッドが呼ばれます。 Start
メソッド内で、このオブジェクトのオーディオソースを取得し、VolumeChange
メソッドを呼び出します。VolumeChange
メソッドは、VolumeDown
という名前のコルーチンを開始します。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. スクリプトのアタッチ
最後に、作成したスクリプトをオーディオソースがアタッチされているオブジェクトにアタッチします。
- ヒエラルキーウィンドウで先ほど作成したキューブを選択します。
- プロジェクトウィンドウから「SoundManager」スクリプトをドラッグして、メインカメラにドロップします。
6. 実行して確認
これで準備完了です!Unityエディタ上部の再生ボタンをクリックして、音量が徐々に下がっていくのを確認しましょう。
まとめ
このチュートリアルでは、Unityでオーディオの音量を少しずつ下げる方法を学びました。オーディオソースの設定からスクリプトの作成まで、一歩一歩進めていけば、簡単に実装できます。ぜひ他のプロジェクトでも試してみてくださいね!
おすすめのアセット
「Master Audio 2022: AAA Sound」は、高品質なサウンド管理ツールです。簡単に使えるインターフェースで、音楽や効果音を効率的に管理できます。主な特徴として、音量の自動調整、音のフェードイン・アウト、複数の音声トラックの管理などがあります。また、ゲーム内の状況に応じた動的な音声制御も可能です。初心者でも使いやすく、プロのゲーム開発者にも対応しています。