【Unity】AudioSource.PlayOneShotで音を鳴らす方法

eyecatch_unity

Unityで音を鳴らしてみる方法です。

この記事の著者
CGブロガー すいみん

CGブロガー

すいみん

Suimin

プロフィール

某美大の油絵科を卒業後、大手CG映像プロダクションに入社。
その後ゲーム業界に転職。
現在は技術系のCGデザイナーをしています。 書籍:Unity デザイナーズ・バイブル
プロフィール詳細はこちら

Unityで使用出来るファイル形式

各拡張子の特徴です。

WAVE, AIFF

無圧縮,音質は良いがファイルサイズが大きい。

実行時にデコードされないのでCPUに負荷を与えずに音を再生することができる、効果音向き。

MP3, OGG

非可逆圧縮で圧縮した場合、音質が劣化してしまうがファイルサイズは小さくできる。

モバイルでは、OggおよびMP3はインポート時にMP3に再エンコードされ、わずかな品質劣化を伴う。

各データ形式の役割

  • AudioClip → 音データ
  • AudioSource →音を鳴らす装置(スピーカー)
  • Audio Listener →音を聞く耳(デフォルトでカメラについている)シーンに一つだけ。

とりあえず音を鳴らす方法

  1. 空のGameObjectを作成してAudio Sourceを追加する。
  2. Audio Source>AudioClipに鳴らしたい音を追加。
  3. Audio SourceのPlay On Awakeのチェックがデフォルトで入っているので、再生すると音が鳴る。

マウスの左と右クリックで別々の音を鳴らす

  1. 空のGameObjectを作成してAudio Sourceを追加する。
  2. 下記のスクリプトをGameObjectに追加する。
  3. 追加したスクリプトの下部のsound01、sound02に鳴らしたい音を追加
  4. 再生。マウスの左と右クリックで別々の音を鳴る。
using System.Collections;
using UnityEngine;
public class PlaySound : MonoBehaviour {
    public AudioClip sound01;
    public AudioClip sound02;
    void Update () {
        if (Input.GetMouseButtonUp (0)) {
            audio.PlayOneShot (sound01);
        }
        if (Input.GetMouseButtonUp (1)) {
            audio.PlayOneShot (sound02);
        }
    }
}

AudioSource.PlayOneShot 

一度だけ音を鳴らす。同じソースの音を重ねられるのでSE再生に向いている

同時発生数には注意。

パラメーターはClipとClumeScale

例 audio.PlayOneShot(AudioClip, 0.7F);

参考 効果音(SE)を再生する方法increment Log

以上、すいみん(@cg_method)でした!