SpriteStudioのデータをUnityで動かしてみる(SS5Player for Unity)

ayumegu(プログラマー)
よろしくお願いします。

はーい、今回はSpriteStudioで作成したデータをUnityで動かしてみます。

SpriteStudioをUnityで動かすプラグインは現状二つあって

  • SSPlayer for Unity(Asset Storeからダウンロード)
  • SS5Player for Unity(githubからダウンロード)

SSSPlayer for Unityはちょっと前のバージョンのSpriteStudioのやつです。
githubのやつが現在も開発が続いている最新のソースです。
使い方や中の作りが違うので注意が必要です。

ソースのダウンロード

下記のgithubからソースをダウンロード
SS5PlayerForUnity

展開して

プロジェクトを開いたところ

データのインポート

フォルダを適当に作成し、フォルダを選択した状態で

Custom->SpriteStudio->Import SS5

ウィンドウが表示されるので任意でチェックをいれたりして

SpriteStudioで作成した.sspjファイルをインポート

読み込み完了

シーンに配置

カメラも最初からはいっているのでSpriteStudioフォルダの中のCameraをHierarchyにドロップ
モデルはインポートしたフォルダの直下にある_Controlの名前がついたものをドロップ

画面に配置したところ

とりあえずアニメーションさせてみる

アニメーション自体はPrefabについているScript_SpriteStudio_PartsRoot.csに用意されているメソッドで操作します。 詳細なドキュメントはこちらを参照

下記ソースをGameObjectにアタッチしてScript_SpriteStudio_PartsRootをドラッグドロップで設定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
   public Script_SpriteStudio_PartsRoot spriteStudioRoot;

  enum AnimationType
  {
      ATTACK = 0,
      ATTACK2,
      WAIT,
      WALK
  }

  // Use this for initialization
  void Start () {
      spriteStudioRoot.AnimationPlay((int)AnimationType.WAIT, 0, 0, 1);
  }        

AnimationPlayメソッド

  • 第1引数:アニメーションの番号
  • 第2引数:ループ回数 0でループ
  • 第3引数:アニメーションの再生フレーム番号
  • 第4引数:アニメーションの再生速度(負数を設定しても逆再生は行えない)

今回作成したアニメーションは4つでアニメーションの情報はInspectorからみることができます

順番はSpriteStudioで作ったときの順番のまま上から0になる

callback

アニメーションの終了時のコールバックも受け取れる
五回再生したらAnimEndメソッドを呼ぶ例

1
2
3
4
5
6
7
8
9
10
11
12
13
   // Use this for initialization
  void Start () {
      spriteStudioRoot.AnimationPlay((int)AnimationType.WALK, 5, 0, 0.8f);

      spriteStudioRoot.FunctionPlayEnd = AnimEnd;
  }
  

  public bool AnimEnd(GameObject ObjectControl)
  {
      Debug.Log (ObjectControl.name);
      return true;
  }

AnimEndの戻り値でfalseを返すとオブジェクトが削除される
他にも当たり判定のcallbackなども用意されています。

DrawCallがあれれ??

オブジェクトを複製したとき1匹につき1Drawcall増えてるや

AssetStoreにある方だとこんな風にはならないのですがうーむ・・・

と調べていたら githubのQ&Aのところに

おやっ 対応されてるバージョンがあるらしい
つい最近だw

ということで落としてみた

結果・・・


DrawCallが1になってる〜〜やったね

感想

AssetStoreのと比べてSS5の方が使いやすいというかわかりやすい構造になっている。
SpriteStudioDatabaseなどというanimationが管理されているものがなくなってPrefabごとに完結しててわかりやすい。
今後の新しい機能の対応もSS5の方に対応されていくみたいだし、こちらを使った方が良さそうだ^^  

今回はこの辺で。