3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SpriteStudio3rdParty/Ss5ConverterForUnity2D をアレコレしたメモ

Posted at

これはなに?

https://github.com/SpriteStudio3rdParty/Ss5ConverterForUnity2D

で公開されている、SpriteStudioのデータをuGUIに変換するスクリプトが素の状態だと

  • 問題1:Unity5.2/5.3で動かない
  • 問題2:手動作業大杉
  • 問題3:プロジェクトのAssetsを汚染する

と色々問題があって使えなかったので、いい感じに使えるようにしたメモ

問題1:Unity5.2/5.3で動かない

  • Animator周りの変更とEditor側のAPIが大きく変更してるので直す。
    • Animator周りは移行先APIがなかったりするのがあり、ちょっと調べないとダメ。
      • そのうち直したやつをブランチでGithubに投げます。

問題2:手動作業大杉、問題3:プロジェクトのAssetsを汚染する

そもそものフロー

  • sspj/ssae をプロジェクトにAssetとして配置する
  • 右クリックでコンバートを選択
  • コンバート後に、別途AnimationControllerを作成
  • AnimationControllerに、コンバートで追加されたAnimationを登録
    • Animation遷移を適宜設定
  • AnimationControllerをコンバートで生成されたPrefabに設定
  • Prefabをヒエラルキーに追加

やってられるか!

改善後のフロー

  • sspjをドラッグ&ドロップで、必要なPrefab,Material...etcのみがプロジェクトに追加される。

どうやっているのか?

基本的なアプローチは

  • オリジナルの拡張をbatchモードで呼べるように改造した上で、別プロジェクトにセットアップ。
  • メインプロジェクトからサブプロジェクトをバッチモードで呼び出して必要な成果物をメイン側にコピー

追加した処理とかなんか色々は下記の通り

  • Assets/Work/ 以下に、指定した sspj/ssae をコピー
  • batchモードでコンバート
  • さらにbatchモードで
    • AnimationControllerをUnity2D/{sspj名}/ に生成
    • animを取得して紐付け
    • Prefabを取得して、AnimationContollerを設定
  • batchのPostProcessで、 Unity2D/{sspj名}/ を共有フォルダにコピー
  • Work, Unity2Dフォルダをクリア
  • メインのプロジェクトからは、共有フォルダを参照して、ディレクトリ指定でコピーしてAssetReloadするエディタ拡張を作っておく。 > 共有ディレクトリを、プロジェクト直下に作っておくと吉か。
    • とりあえず、めんどいのでMakefile拡張で処理した
      • この時の注意として、更新時にヒエラルキーのPrefabが死ぬ。
        • いろいろ弊害はあるが、更新時には、AnimationController/Prefabは上書きしないように。
        • ディレクトリを切っているので、rsyncが差分は放置してくれるし手っ取り早い。更新時はexcludeで除外すればよい。

TODO: Animationの遷移の自動化

その他

  • Canvasに配置するが、Overlayだとスケールがおかしいことになる。(SpriteStudioではよくあること。。
    • ScreenSpace Camera に設定して、Canvas 描画用のカメラを設定するとよい。
      • うちはこのあたり変なことをやってるけど...
  • そもそもCanvas配下におかないてでいいのでは?
    • スケールがめんどくさくなるので、Canvas配下への設置奨励
  • 重ね順は優先度ののプロパティで決まるので、確実に設定する事。(Default - 0 なので確実に設定しないとUIと被る
    • UIのLayer設計によっては、変換する段階で別のレイヤー参照させておいた方がいいかも
  • SpriteStudioより上にUI被せたい
    • CanvasのLayerをより上位のLayerに指定してやるのが無難。
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?