パラパラアニメ : SimpleAnimation編

パラパラアニメのような複数の画像を切り替えてアニメーションさせることを、Unityではスプライトアニメといいます。

今回は、ボタンを押すとスプライトアニメが再生されるというゲーム?を作ってみます。

ボタンを押すとアニメーションが再生

SimpleAnimation

Unityには、デフォルトでMecanimというステートマシンでアニメを管理する仕組みがあります。これが役立つ場面も多いのですが、単純にアニメを再生・停止するような使いかたをする場合、少しややこしくなります。

アニメの制御を理解する上ではシンプルな構造の方が適していますので、今回はSimpleAnimationという機能を使って再生するやり方で進めます。

SimpleAnimationのセットアップ

UnityTechnologyが公開しているSimpleAnimationを以下のサイトからDLしてきます。

DLしたら、Assetsフォルダ以下のファイルをUnityのProjectに追加します。

SimpleAnimationのAssetsフォルダ以下をUnityに追加する
ProjectにSimpleAnimationComponentを追加

これでセットアップは完了です。

アニメーションクリップの作成

まずはスプライトアニメ(パラパラアニメ)に必要なpngファイルをProjectに追加します。

Projectにアニメ画像ファイルを追加

次にアニメーションクリップを作成します。

ツールバーのWindow>Animation>Animationを選択して、Animationウィンドウを表示させます。

Animationウィンドウ

その後、Createボタンを押して、新規アニメーションクリップを作成します。Projectに、アニメーションクリップが追加されます。

ShootingStarAnimというアニメーションを追加

最後に、アニメの画像ファイルをAnimationウィンドウにDrag&Dropして追加します。アニメの再生フレーム間隔は、Samplesで調整します。

pngをタイムラインに配置。
12fpsで再生させるように設定。

これでアニメーションのデータの準備は完了です。

アニメーションを再生する

ゲームオブジェクトを用意

はじめにアニメを再生させるオブジェクトをSceneに追加します。大抵の場合は、アニメの最初の画像データを追加すればOKかと。

Projectにある画像アセットからSceneに追加

SimpleAnimationコンポーネントを追加

追加したゲームオブジェクトに SimpleAnimation の Component を追加します。そして、SimpleAnimationコンポーネントのAnimationに先ほど作成したアニメーションクリップを指定します。今回は、ボタンを押したタイミングでアニメを再生するので、Play AutomaticallyをOFFにしておきます。

AnimationにAnimationClipを指定
Play AutomaticallyをOFFに設定

再生処理スクリプトを追加

アニメの再生や停止などの制御はスクリプトから行います。

再生処理スクリプトを追加して以下のような再生処理を追加します。

public class ShootingStarAnim : MonoBehaviour
{
    public void StartAnim()
    {
        // SimpleAnimationコンポーネントを取得
        SimpleAnimation anim = GetComponent<SimpleAnimation>();

        // アニメを初期状態に戻す(繰り返し再生させるため)
        anim.Rewind();

        // Defaultに設定されているアニメーションクリップを再生する
        anim.Play("Default");
    }
}

ここで Default という名前を指定してアニメを再生しています。これは、SimpleAnimationコンポーネントで指定した名前です。

Default に ShootingStarアニメクリップを指定

ボタンを押したらアニメを再生する

最後にボタンを押したタイミングでアニメを再生させます。ボタンのOnClickイベントに先ほど追加したスクリプトの再生関数を指定すればOKです。

ボタンクリック時にアニメを再生

これでボタンを押すとアニメーションを再生させることができるようになりました。

ボタンを押すとアニメーションが再生

まとめ

今回はUnityでパラパラアニメを再生させてみました。単純なアニメの再生をする上で、あえてUnityデフォルトのMecanimではなく、SimpleAnimationを使ってみました。学習する上で、最初にシンプルなアニメ再生を理解する方が適切かなと思います。

次回は、同じアニメの再生処理をMecanimを使ってやってみます。