いんでぃーづ

ゲームメインのブレブレブログ。ゲーム,Unity,デザイン,UI/UX

クレイジー・ビート・ジャンクション : on Steam

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

{スポンサーリンク}

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

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

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

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

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

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

using UnityEngine;
using System.Collections;

public class Player : MonoBehaviour {

    void Start () {

    }

    void Update () {

    }

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

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

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

こちらの記事を参考にしてくだされ。 また、アニメーションのリストの名前にRead Onlyとついていて編集できない場合、こちらの記事を参考にしてくだされ。

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

モデルを選択した状態で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

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


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


Amazon.co.jpアソシエイト


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。