LoginSignup
12

More than 5 years have passed since last update.

UnityでPVRTC画像に対応する

Last updated at Posted at 2017-02-09

前置き

Unityでビルドしたときに、APKは50MB、IPAは250MBというとんでもないサイズの差が起きた。
調べてみると、ほとんどが画像リソースによるサイズ肥大化で画像を調整することでサイズが抑えられることを確認できた。
色々無知だったのでiOS用に画像用意するときに注意したことをメモ。

前提

Unityに配置する画像リソースは、そのままExportされない。
Platformに最適なフォーマットとして格納される。

Unity は、アセットを独自の内部フォーマットに変換してインポートするため、元となるアセットの種類はさほど関係ありません。
例えば、プロジェクトでマルチレイヤーの Photoshop のテクスチャを持っている場合、ビルドされる前に平坦化され、圧縮されます。
PNGファイルのテクスチャをエクスポートしても、ビルドサイズに違いはないので開発時に最も便利なフォーマットにするべきです。

iosでscene内で利用するSpriteについては、pngquantなどでいくら減色を頑張ってもあまり効果がない。

PVRTC

iOSではPVRTCフォーマットに変換することで効率的にExport時のサイズ圧縮ができる。

PVRTCのメリット

  • メモリへの展開サイズが抑えられる. GPUが圧縮されたまま参照できる
  • Export後の画像サイズが抑えられる (1/5くらいになったりする)

PVRTCのデメリット

  • 画像の種類によっては劣化が見られる
  • POT (Power Of Two: 2の累乗)サイズの画像しか扱えない (256x256, 512x512など)
  • 正方形じゃなきゃ駄目

PVRTC対応

SwitchPlatformでiOSを選択

buildsettings.png

Inspectorで見たときに、PVRTCと表示されていれば対応OK

pvrtc512.png

逆に NPOT (NonPowerOfTwo) などと表示されていればPVRTC化はできていない.

npot511.png

サイズが2の累乗の正方形であれば、Spriteに関しては自動でPVRTCにしてくれる。

参考

もっと詳しく書かれていて、良記事でした

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
12