メモ的な何か

Animationコンポーネントだけを使ってシンプルにアニメーションを再生する

モチベーション

Animatorは使わないでスクリプトからシンプルにアニメーションを再生したい。

手順

  1. 必ず最初にオブジェクトにAnimationコンポーネントをアタッチ

最初にAnimationコンポーネントを作らないと2の手順で勝手にAnimatorコンポーネントがアタッチされたりAnimatorControllerファイルが生成されるため、必ず最初にオブジェクトにAnimationコンポーネントをアタッチする。

  1. Hierarchyでオブジェクトを選択したまま、AnimationウインドウのCreateを選択する

Animation Clipが作られると同時に、AnimationコンポーネントのAnimationsにAnimation Clipファイルが勝手に設定される。(このままでOK)

既存のAnimationクリップを使用する場合はAnimationコンポーネントのAnimationsにAnimation Clipファイルをセットした後、手順4へ。

  1. アニメーションを作る

白い木が回転して攻撃するTreeAttackアニメーションを作った

  1. Play Automaticallyをオフにする

実行時に勝手に再生されないようにPlay Automaticallyをオフ

  1. スクリプトを記述

キーボードのスペースキーを押すたびにアニメーションが再生されるスクリプトを書いてオブジェクトにアタッチする。

anim.Play() の引数には Animation Clip ファイル名を入力する。

Animation anim;

void Start()
{
    anim = gameObject.GetComponent<Animation>();
}

void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        anim.Play("TreeAttack");
    }
}
  1. 実行して動作を確認する

スペースキーを押すたびにアニメーションが再生される。

複数のアニメーションを制御したい場合は Animation コンポーネントのAnimationsAnimation Clip を追加したあと、anim.Play()の引数に Animation Clip 名を指定すればOK。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です