Unityでゲーム、アプリ開発

Unityで初めてゲームやアプリを作る人のための支援ブログです。

Unity アニメーションに合わせて効果音を鳴らしてみよう! Unity学習23

どうもみなさん今日もお元気でしょうか?
ゆうきやんです。

最近のニュースでは、bコロナの影響で収入が減ったとの
夫婦の話をしていて、喧嘩になり、妻を殺してしまった
と言う。

世の中物騒ですね。
そんな収入減るのなんかどうしようもできないんで
別の方法を考えていけばいいのにな、って悲しくなりました。

しょっぱな物騒な話から始まりましたが、本題に入っていきましょう!


アニメーションに合わせて効果音を鳴らしてみよう!

f:id:Phoenix9056:20200407095918j:plain

アニメーションに簡単に効果音を付けれたら楽しいし、
ゲームの演出もかなり華やかになっていきますよね!

Unityを始めた頃、BGMの付け方は簡単なのに効果音は
どうやって付ければいいのか
凄い困った時が僕自身ありました。

※一応ですがBGMの付け方は下記記事を貼っておくので参考にしてください。
www.unityprogram.info


この記事を見ている方は、多分キャラクターと
アニメーションの準備は出来てると思うのでそのつもりで
説明をしていきます。

もし何言ってるか分からないよって方は
下記記事よりUnityちゃんのキャラクターを用意してやって見てください。
www.unityprogram.info


f:id:Phoenix9056:20200407102014j:plain

まず、Hierarchy内にある①の自分が用意したキャラクターをクリックします。
Inspector内にある②のAnimatorの③のControllerにセットしてある
Animator Controllerをクリックします。

そうすると、④のように、Project内に自分が使っている
Animator Controllerが一瞬で表示されるのでそれを
ダブルクリックして⑤のようにAnimatorを表示させてください。

※今の段階でなんのこっちゃ!って方は一度下記記事より
アニメーションを作ってキャラクターを動かすまでやるといいかもしれません。

www.unityprogram.info


f:id:Phoenix9056:20200407103253j:plain

Animator内にある自分が効果音をつけたいアニメーションをクリックします。
今回僕はキックのアニメーションに効果音をつけたいので①のKickを選択します。

Inspector内の②のMotionにセットされたAnimationをクリックすると、
また同じようにProject内に瞬時にセットされた③のAnimationが表示されるので
それをクリックします。


f:id:Phoenix9056:20200407103805j:plain

①のようにAnimation画面が出てきたら、今回コレは
使わないので❌ボタンをクリックして消してしまいましょう。

次に、Inspector内にある②のEditをクリックします。


f:id:Phoenix9056:20200407104634j:plain

Inspector内を見てみると一番上には、
Model,Rig,Animation,Materialsと並んでいるので
Animationを選択して下にスクロールしてください。

そうすると①のEventがあるので▶︎をクリックして展開しましょう。
次に、②の再生ボタンの横にある白い棒があるので、
ドラッグしながら動かすと③のキャラクターがアニメーションの動きをします。
自分がどの部分で効果音を使いたいか動かして決めてください。

場所が決まったら、④の白い棒Add Eventをクリックすると、
⑤のように青い棒が出現します。
⑥のFunction(関数)の所に自分の好きな名前を設定してください。
今回僕は、PlayKicksoundとしました。

最後にInspectorの下にあるApplyをクリックして情報を更新します。


f:id:Phoenix9056:20200407110115j:plain

①のスクリプトProject内に作成しますが、あくまで参考にしてください。
元々キャラクターのアニメーションを動かすスクリプトがあれば
下記のスクリプトを元に足りない部分を追加してみてください。

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

public class KIckMelody : MonoBehaviour
{
    //Animatora型を変数animatorで宣言します。
    private Animator animator;
    //AudioSource型を変数audioSourceで宣言します。
    private AudioSource audioSource;
    //AudioClip型を変数Kicsoundで宣言します。
    //publicで宣言してInspectorで設定できるようにします。
    public AudioClip Kicksound;

    void Start()
    {
        //GetComponentでAnimatorを取得して、変数animatorで参照します。
        animator = GetComponent<Animator>();
        //GetComponentでAudioSourceを取得して、変数audioSourceで参照します。
        audioSource = GetComponent<AudioSource>();
        
    }

    //この部分はアニメーションを動かすだけの処理なので
    //気にしなくていいと思います。
    void Update()
    {
        //Inputされているマウスの左クリックが押された時の処理。
        if (Input.GetMouseButtonDown(0))
        {
            //animatorに設定されたTriggerのKickを実行するよ。
            animator.SetTrigger("Kick");
        }
    }

  //ここの部分が一番重要です!!
   //先程アニメーションイベントで決めたFunctionの名前
   //僕は今回PlayKicksoundなので同じ名前を記述します。
    public void PlayKicksound()
    {
        //イベントが呼ばれたらAudioClip型の変数Kicksoundを
        //流すようにするよ!
        audioSource.PlayOneShot(Kicksound);
    }
}

こんな感じでアニメーションイベントを使って、
効果音を流せる設定にします。

次に②のキャラクタに作ったスクリプト
ドラッグ&ドロップしてアタッチします。

②のキャラクターのinspectorの一番下にある
Add ComponentからAudio Sourceを追加して、
音を出せるようにしましょう。

最後に、③の効果音をInspector内にあるAudio Clip(Kicksound)
にドラッグ&ドロップをして完成です。

今回効果音は下記サイトより、演出、アニメから『とうっ』
って言う声をダウンロードしてきました。
soundeffect-lab.info


f:id:Phoenix9056:20200407113129g:plain

上手くいったでしょうか?

今回僕はキックアニメーションと同時に
効果音をつけて見ました。
Gif画像だと音が出ないので動画で表示できるように
コレからしていきたいと思います。

ご視聴ありがとうございました!


※このままUnity学習していきたい方は下記カテゴリを見て見てください。
www.unityprogram.info

※本格的に3Dを作っていきたい方は下記カテゴリを参考にしてください。
www.unityprogram.info

※初心者編は下記カテゴリから。
www.unityprogram.info

※オススメアセットの紹介は下記より見てください!
www.unityprogram.info