SpriteStudioのデータをUnityで動かしてみる(SS5Player for Unity)
はーい、今回はSpriteStudioで作成したデータをUnityで動かしてみます。
SpriteStudioをUnityで動かすプラグインは現状二つあって
- SSPlayer for Unity(Asset Storeからダウンロード)
- SS5Player for Unity(githubからダウンロード)
SSSPlayer for Unityはちょっと前のバージョンのSpriteStudioのやつです。
githubのやつが現在も開発が続いている最新のソースです。
使い方や中の作りが違うので注意が必要です。
##ソースのダウンロード
下記のgithubからソースをダウンロード
SS5PlayerForUnity</a>
展開して
プロジェクトを開いたところ
##データのインポート
フォルダを適当に作成し、フォルダを選択した状態で
Custom->SpriteStudio->Import SS5
ウィンドウが表示されるので任意でチェックをいれたりして
SpriteStudioで作成した.sspjファイルをインポート
読み込み完了
##シーンに配置
カメラも最初からはいっているのでSpriteStudioフォルダの中のCameraをHierarchyにドロップ
モデルはインポートしたフォルダの直下にある_Controlの名前がついたものをドロップ
画面に配置したところ
##とりあえずアニメーションさせてみる
アニメーション自体はPrefabについているScript_SpriteStudio_PartsRoot.csに用意されているメソッドで操作します。 詳細なドキュメントはこちらを参照
下記ソースをGameObjectにアタッチしてScript_SpriteStudio_PartsRootをドラッグドロップで設定
###AnimationPlayメソッド
- 第1引数:アニメーションの番号
- 第2引数:ループ回数 0でループ
- 第3引数:アニメーションの再生フレーム番号
- 第4引数:アニメーションの再生速度(負数を設定しても逆再生は行えない)
今回作成したアニメーションは4つでアニメーションの情報はInspectorからみることができます
順番はSpriteStudioで作ったときの順番のまま上から0になる
##callback
アニメーションの終了時のコールバックも受け取れる
五回再生したらAnimEndメソッドを呼ぶ例
AnimEndの戻り値でfalseを返すとオブジェクトが削除される
他にも当たり判定のcallbackなども用意されています。
##DrawCallがあれれ?? オブジェクトを複製したとき1匹につき1Drawcall増えてるや
AssetStoreにある方だとこんな風にはならないのですがうーむ・・・
と調べていたら githubのQ&Aのところに
おやっ 対応されてるバージョンがあるらしい
つい最近だw
ということで落としてみた
##結果・・・
DrawCallが1になってる〜〜やったね
##感想
AssetStoreのと比べてSS5の方が使いやすいというかわかりやすい構造になっている。
SpriteStudioDatabaseなどというanimationが管理されているものがなくなってPrefabごとに完結しててわかりやすい。
今後の新しい機能の対応もSS5の方に対応されていくみたいだし、こちらを使った方が良さそうだ^^
今回はこの辺で。