概要
- 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!
筆者の環境では問題なかったが、自身の環境で問題ないかチェックしよう。