エッセイマンガ!オタクビアンカップル同棲日記「よめよめ」

同棲中のレズビアンカップルのゆんとあゆむが、日々の生活の様子をマンガや日記にしてお届けするブログです

Unityで簡単にBGMや発射音・足音などのSEをつける方法!

今日はUnityゲーム制作講座、第十五弾です!

今日はいよいよ最終回かぁ~

そう思ってたんだけど、よく考えたらBGMのことをすっかり忘れてたので、今回はBGMとSEの付け方について解説するよ!

Unityで簡単にBGMやSEをつける方法

BGM、SEをつける前に、適当なフォルダを作成し、音源をまとめて保管できるようにしておきましょう。

フォルダを作成したら、エクスプローラーからドラッグ・アンド・ドロップで、音源を貼り付け、Unityで使えるようにしておきます。

また対応しているファイル形式はこちらを参照してください。

 

BGM

BGMをつける際には、まず空のGameObjectを作成し、AddComponentでAudioSourceを追加し、AudioClip欄に使用したいBGMをドラッグ・アンド・ドロップで貼り付けます。


起動時に再生を開始したい場合はPlayOnAwake、ループさせたい場合はLoopにチェックを入れます。あとはVolumeで音量を適切な大きさに調整して上げればOK。

 

SE

発射音の場合

弾の発射音も、BGMとほぼ同じ手順でつけることができます。

弾のPrefabに、AddComponentでAudioSourceを追加し、AudioClip欄に使用したいBGMをドラッグ・アンド・ドロップで貼り付けます。

発射音は繰り返す必要がないので、Loopのチェックは外しておきます。あとはVolumeで音量を適切な大きさに調整して上げればOK。

 

足音の場合

足音は、BGMや発射音とは違い、鳴らすタイミングがObjectの生成時ではなく、キー操作のときなので、操作されたときに音を鳴らすようにコードを追加する必要があります。

Scriptsフォルダに作成してあるPlayerControllerを開き、中身を以下の内容に書き換え保存します。

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

public class PlayerController : MonoBehaviour
{
    private float speed = 0.05f; // 歩行速度
    private float rotateSpeed = 0.5f; // 回転速度
    private Animator animator;
    private AudioSource audioSource;
    private float horizontalInput, verticalInput;

    [SerializeField] GameObject bulletPrefab;
    [SerializeField] AudioClip moveSE;    

    void Start()
    {
        animator = GetComponent<Animator>();
        audioSource = GetComponent<AudioSource>();
    }

    void Update()
    {
        horizontalInput = Input.GetAxisRaw("Horizontal");
        verticalInput = Input.GetAxisRaw("Vertical");

        if (verticalInput != 0)
        {            
            transform.position += transform.forward * speed * verticalInput;
            animator.SetBool("Run", true);

            if (!audioSource.isPlaying)
            {
                audioSource.PlayOneShot(moveSE);
            }
        }
        else
        {
            animator.SetBool("Run", false);
        }

        transform.Rotate(new Vector3(0, rotateSpeed * horizontalInput, 0));

        if (Input.GetKeyDown(KeyCode.Space))
        {
            Vector3 pos = transform.position;
            Quaternion rot = transform.rotation;
            pos.y += 8;
            Instantiate(bulletPrefab, pos, rot);
        }
    }
}

 

保存するとキャラクターのObjectのInspector上にある、PlayerControllerに

UnityでObjectを選択するイメージ

 

MoveSEという項目が出ているはずなので、ここに足音用の音源をドラッグ・アンド・ドロップで貼り付けます。

 

動作確認を行う

これでBGMとSEが再生されるようになるはずなので、想定通りの動作になっているかを確認しましょう。

イメージどおりに動いてくれていれば完了です。

 

細かい解説は動画の方で行っていますので、合わせて見てもらえたらなと思います。

 

音がつくとすごいゲームっぽい!こんなの忘れちゃダメだよ!

いやぁ、アプリゲーとかいつも無音でやってるからついね……