09 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 11

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【Unity】iOSの画像圧縮・・・orz 

こんにちは!大坂です!

早くも2月中旬~下旬あたりに…ポケガのiOSレビューはじまりませんorz
一回InReviewになりましたが、メタデータリジェクトされ…すぐ出しなおしたんですけどね。
メタデータだとまたすぐレビューしてもらえると思っていたのですが・・・違いましたっけ?
iOS版お待ちいただいてる方々に早くお届けしたいのですが!はよしてApple様!
とまぁ・・・自分たちではどうしようもないのですがもやもやして落ち着かない感じです。

では今週の話題です!
以前画像サイズの話でこんな記事を上げましたがっ!
【Unity】画像サイズがでかくて困ったよ~ ふぇぇぇん って俺はこうしちゃいました。

これiOSだと圧縮されないんですね。
そのまま気づかずにレビュー申請して96Mとかってサイズだったのです・・・。

で、まぁ使える圧縮でやろうとするとRGBA16bitとかRGB16bitになるのですが・・・これすごく汚くなります。
グラデーション使ってると死んじゃいますorz

ということで調べたらこんな記事が
Unityやるには必須!RGBA画像減色の基礎をまじめに書いてみた
なるほどなるほど(わかったふり)。
なんかディザリングってのを使えばいいんですね!

でも・・・絵を全部それで出しなおしてもらうのは大変なのでさらに調べるとなんかありました!
https://github.com/keijiro/unity-dither4444

これを使うと画像入れるときにそのままディザリングしてimportしてくれるみたいなので早速導入。
使い方は簡単ですね。
「Editor」フォルダを「Assets」に入れるだけですね!
そのままのコードだと自分のプロジェクト設定に合わないかもしれないので
以下のところを自分のプロジェクトに合った設定に。

11行目
importer.textureType = TextureImporterType.GUI;

TextureImporterType.GUI; を自分が使いたい形式で設定ですね。
できる設定はこちらですかね。
ポケガは全部「Advanced」なので
importer.textureType = TextureImporterType.Advanced;

ってしました。

あとは13行目と20行目でファイルの末尾の文字列を見ているので自分取り込みたい末尾に。
ここですね。
//13行目
if (assetPath.EndsWith ("Dither.png")) {

//20行目
if (!assetPath.EndsWith ("Dither.png")) {


ポケガは.pngと.jpgのファイルがあってとりあえず全部圧縮したかったので、
//13行目
if (assetPath.EndsWith (".png") || assetPath.EndsWith (".jpg")) {

//20行目
if (!assetPath.EndsWith ("Dither.png") || !assetPath.EndsWith (".jpg")) {

ってしました。ご参考程度に。

最後にもうすでに画像入れちゃってるよ!って人はスクリプトを「Editor」に入れた後に対象の画像を右クリックして
「Reimport」してあげましょう!そうすればスクリプトが動いて圧縮してくれます!
全部圧縮してテストしてみました、とりあえず画像にそこまで劣化が見られずにipaファイルのサイズが抑えられました。
これでiOS版のサイズも 「96M」⇒「70M」位まで落とせそうです。

では、この辺でノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/180-d682c96d
この記事にトラックバックする(FC2ブログユーザー)