TexturePackerで生成したセルの原点がSpriteStudioでズレる問題の解決

概要

  • TexturePackerからSSCEファイルを書き出し、SpriteStudioで読み込ませると原点がズレてしまう問題とその解決方法
  • SpriteStudio のバージョンは 5.8.3.6625 および 6.2.2.1186で確認
  • TexturePacker のバージョンは 4.10.0 で確認
  • TexturePackerToSS のバージョンは Ver 1.0.1
  • windows環境です

具体的な現象

png画像の空白を利用して、原点を設定したいときにおこる問題
TexturePackerで”Crop, keep position”を使いたい人向け

問題が起きる例

以下の様な、左側と上側に透明がある画像をTexturePackerに読み込ませる

 
透明部分はトリミングされ、四角の左上が原点となるはずが・・・

Publishして出たssceを、SpriteStudioに読み込ませると原点が凄いズレてしまう


あーっ><

問題が起きない例

以下のように左側と上側に透明部分がない画像は大丈夫

 

※TexturePackerのVer4.1.0とVer4.2.0以降で仕様が違うせいらしい

TexturePackerToSSを弄って解決

色々方法はあるけど、TexturePackerで吐き出したSSが意図通りになるように、TexturePackerToSSを弄る方法を記載します。

※以下をやる前にバックアップはとっておきましょう!

TexturePackerToSSがある場所を探す

TexturePackerを開いて、File -> Preferences…

Exporter Directory の欄にあるフォルダに保存されているはず。そこを開く

TransformCoords.qsを編集する

上記のフォルダの SpriteStudio\grantlee\0.2\ 内に “TransformCoords.qs” があるはずなのでテキストエディタなどで開く

コードがあるので、以下の赤い部分を消して保存

“- sprite.sourceRect.x” と “- sprite.sourceRect.y” の部分

検証してみる

TexturePackerを再起動して、Publishしなおして戻ってたらGOOD!

筆者の環境では問題なかったが、自身の環境で問題ないかチェックしよう。

リンク