HappyTrigge開発ブログ・ゲーム制作

ゲーム制作団体HappyTrigger(ハッピートリガー)のゲーム制作記録です。同人ゲームやインディーズゲームの制作に関して書いていきます。

【開発】Unityでアニメーション再生ができない

   

■表題の通り、アニメーション再生ができず苦戦中。
ゲームのモックテスト版素材が粗方揃ったため、
UnityにSpriteStudioのプロジェクト(.sspj)をインポートする。

今回、PSDtoSSというPhotoshopからSpriteStudioに構成をそのまま移せるツールを通しているため、
アニメーションファイル(.ssae)1つに対して1アニメーション作成されるかたちとなる。
そのためインポートしたデータは『アニメーション名_Control』と名前付けられた制御プレハブが大量に生成された。

SpriteStudioのカメラプレハブ『Camera2D Pixel(1080p)』をヒエラルキーに放り込み、
Viewの直下に、インポートした制御プレハブを置き再生すると見事アニメーションが再生された。やった!

……しかし問題はこの後。

//なっがいのでいろいろと省略してる
public class SScontrol : MonoBehaviour {
    //アニメーション制御クラス 
    private Script_SpriteStudio_Root ScriptRoot;
    enum AnimationType
    {
        //待機
        WAIT_HP8 = 0,
        WAIT_HP7 = 1,
        WAIT_HP6 = 2,
        WAIT_HP5 = 3,
        WAIT_HP4 = 4,
        WAIT_HP3 = 5,
        WAIT_HP2 = 6,
        WAIT_HP1 = 7,
        //以下略
    }
        //中略
    void Update()
    {
        //spritestudioルートクラスの取得.
        //spriteStudioRootを使用してアニメーションの制御を行います.
        if (null == ScriptRoot)
        {
            ScriptRoot = Library_SpriteStudio.Utility.Parts.RootGetChild(gameObject);
            //アニメーション再生
            ScriptRoot.AnimationPlay((int)AnimationType.WAIT_HP8, 1, 0, 1.0f);
        }
        //Zキー入力によってモーションを変更する
        if (Input.GetKey("z"))
        {
            if (press == false)
            {
                motion = AnimationType.WAIT_HP7;
                ScriptRoot.AnimationPlay((int)AnimationType.WAIT_HP7, 1, 0, 1.0f);
            }
            press = true;
        }
        else
        {
            press = false;
        }

    }

viewの直下にgameobjectを作成、
上のスクリプトで列挙したアニメーションを呼び出そうとするも失敗する。
どうやら列挙はアニメーションファイル(.ssae)の中に複数アニメーションが設定されていないと使用できない模様。他の制御プレハブを読み込む方法は見つからず……

結局1日調べてもアニメーションを切替える方法が見つからず時間切れ。
ネットで検索してもまともな情報は公式かGitHubしかないし、
内容は専門的過ぎてどうやって実装すれば良いのかちんぷんかんぷん。
個人で利用するにはSpriteStudioの敷居は非常に高いことを感じた。

このままツールで躓いているのはアホらしいので、
場合によっては連番PNGに移行することも検討しなきゃなー…

 - ■開発, 開発:テンタクルガーデン