Unityでgifアニメを分解して一枚づつ順番に表示してgifアニメに戻す。


※Unityにはちゃんと、連番アニメーションする仕組みがあります!!

正式な方法はこちらをご覧ください

まあ、Unityでやるのにまったく意味ない事なんだけども
まったく意味ない事でも使い方によっては意味がある事もあります。

まず、用意したgifアニメ画像をバラバラに分解するのにImage Magicを使おうと思います。
インストールするには色々な方法があるようですが、
今回はCactuslabさんが提供しているインストーラーを使いました。

インストーラーはこちらを使っています。

無事にインストールできたら、目的のgifを分解してみましょう。
convert +adjoin -coalesce 指定の画像名.gif 変更後の画像名.gif
これで分解できましたね。

こいつをunityにドラック&ドロップで持って行きます。
それから、planeにマテリアルを設定してgif画像を貼っても動かないので少しスクリプトを書きました。

ちなみに、こんな感じで走っている連番画像になります。

gifアニメ風スクリプト
using UnityEngine;
using System.Collections;

public class gifAnim : MonoBehaviour {
    public Texture[] PlayerTexture;
    public float gifNum = 0;
    public float fps = 24;

    void Update () {
        gifNum = Time.time * fps;
        gifNum = gifNum % PlayerTexture.Length;
        renderer.material.mainTexture = PlayerTexture[(int)gifNum];
        Debug.Log( Mathf.Floor(gifNum));
    }
}

連番の画像はインスペクターの方で設定しています。

はい!これで完成。
再生するとこんな感じでアニメーションします。
モックマン走る