LoginSignup
24
22

More than 5 years have passed since last update.

SpritePackerとLive2Dで配置時のポイント

Last updated at Posted at 2015-04-09

Unity5で解禁になった元Pro版機能の1つ、SpritePackerを触っていてちょっとハマッたのでそのメモです。
SpritePackerは、複数の画像を1つにしドローコール(SetPass calls)を減らす機能です。

SpritePackerの使い方

1)画像ファイルを複数選択し、Sprite画像を作ります。この時必ずPacking Tagを付けます
 ※ Texture TypeはAdvancedでもSprite ModeをNone以外にすればPacking Tagが表示されます
001.png

2)Packing Tagを付ける事で実行時に自動的にPackingしてくれます。
 今回は分かりやすく手動でやるので[Window]-[Sprite Packer]を選択しウィンドウを表示します

3)画像を複数選択した状態でPackボタン押下すると、Packingされます
002.png

TightPackerPolicyにしてPackすると余白の無駄を少なく最適化してくれます
003_.png
※ ちなみにSprite Packer上の配置はドラッグして移動したりできません

4)Sceneに配置して実行してみるとPackingされてる事がわかります。
 SetPass callsの1つはCameraだと思います。あと実行前はSetPass callsが4になってました
005.png

SpritePackerのイマイチな点

標準機能でPakingしてくれるのはありがたいのですが、イマイチな点もありました。

1)Resourcesフォルダ配下だとPakingしてくれない

Unity Forumsでも同じ事で詰まってる人いました。どうやら仕様っぽいですが、SpritePackerを初めて触った時「あれ?Pakingしてくれなんだけど??」って1hぐらいハマった・・・。

2)jpgとpngで同じグループにしてくれない

先ほどのボタン(png)グループに、背景画像(jpg)も追加してPakingしてみました。
006.png
画像サイズのせいかと思ってボタン画像をjpg保存して、Pakingしても同様にグループ分けされました。
同じグループでないので当然SetPass callsも1つ増えました。

NGUIなどでお馴染みのAtlas化すればpngもjpgもまとめて1つになり、SetPass callsもCamera分と合わせて2になりました。
Atlas確認はケットシーウェアさんの簡易SpritePackerを使わせていただきました。
007.png

現状としては、Atlas化した方がいいかな~っと思います。

SpriteをLive2Dに配置する時の注意点

Live2Dを使う時にSpriteを配置すると、Live2Dモデルが前面に表示されメッセージウィンドウなどが奥に表示されてしまいます。
2015-04-09_14h40_35.png
これはLive2Dの描画がOnRenderObject()で行われるため、LayerやSorting Layerを変更しても効果はありません。

解決法としては、UGUIのImageを使うと解決できます。
[Hierarchy]-[Create]-[UI]-[Image]で追加するとこんな感じにメッセージウィンドウなどが前面に表示されます。
008.png
ただ、UGUIのCanvasがOverlayでないと全面に表示されないので注意して下さいね。
009.png

24
22
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
24
22