読者です 読者をやめる 読者になる 読者になる

いんでぃーづ

個人でゲーム開発してる上で吸収したモノたち紹介。UnityからGIMPまでなんでも。デザインとかゲーム論まで語っちゃうよ的なアレ。

MENU
{スポンサーリンク}

Unity : AnimationClipに合わせて処理をしたいなら

Unity Tips

ジャンプに合わせて効果音をならしたり、足元に煙を出したい! 私はしたい。

そんなときに役立つのがアニメーションイベントです。

  • アニメーションイベントとは

アニメーションの途中のある地点で、スクリプトに設定した関数を呼び出せる機能です。 この動きのタイミングちょうどで処理したい! という場合にめっさ便利です。

モデルにスクリプトをアタッチしておく

下準備として、以下のようなスクリプトをモデルにつけておきます。

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {

    void Start () {

    }

    void Update () {

    }

    void OnPlayerLand () {
        // 着地した!
    }
}

OnPlayerLandが今回呼び出す関数です。private 関数で問題ないです。

アニメーションを設定してAnimationウインドウを開く

こちらの記事を参考にしてくだされ。 また、アニメーションのリストの名前にRead Onlyとついていて編集できない場合、http://indie-du.com/entry/2016/05/13/200000を参考にしてくだされ。

設定したいアニメーションの位置を探す

モデルを選択した状態でAnimationウインドウを見ると、モデルに設定してあるアニメーションがリストから選択できます。

ボタンを押すとアニメーションの動きが確認できます。

f:id:sugar_affordance:20160516201402g:plain

もう一度を押すと途中で停止します。 で1フレームずつ動かして、イベントを発生させたい位置を探しましょう。

f:id:sugar_affordance:20160516201417p:plain

をクリックしますと

f:id:sugar_affordance:20160516201427p:plain

こんな感じでマークがつきます。 このマークをクリックすると

f:id:sugar_affordance:20160516201429p:plain

こういうウインドウが出るので、リストから、最初に作成したスクリプトのOnPlayerLandを選択します。 これでイベントの準備は完了です。

動かしてみる

OnPlayerLandの中身を実装したら、Editorで実行してみましょう。

f:id:sugar_affordance:20160516201432g:plain

着地に合わせてまっくろくろすけみたいなのが出てきましたね。まあパーティクルなんですけど。 使えばこんな感じでアニメーションと処理の同期を取れます。

Amazon.co.jpアソシエイト