2018/12/05

アプリが重い!!たまらんもっさりする!!
Unity製のアプリがもっさりするのは原因がいろいろあるのですが(帯域とかビルド方法とかシェーダーとかメモリとか云々)
エンジニアさんがいくら努力してもデザイナーが気をつけていないと
結局なんだかんだいちばん容量食ってたのは画像、とかだったりします。
画像の書き出し方法・減量方法についていろいろ調べたものをまとめました。
周知の通りUnityは基本的にPhotoshpで画像を減量して読み込んでも軽くなりません。
いままでのブラウザゲームの減色・軽量化のノウハウが使えないのでまいっちゃってます。
基本は非圧縮のPNGを読み込んでUnity側で圧縮をかけることになります。
ただそんなにきれいに圧縮してくれるわけではないので場合によっては汚く表示されます。特にグラデーションはマッハバンド(しましま)が出て目立つレベルに劣化します。
OptpixでRGBA16bitで減色してからUnityに読み込むと比較的劣化を抑えてきれいに表示することができます
まず画像形式に関してまとめる
ネイティブアプリはいままでと拡張子の勝手がちがうよ!
PVRTC形式 (.pvr)
Apple独自・推奨のファイル形式でモバイル3D用に開発された新ファイル圧縮形式。
メリット
圧縮率が高くメモリ上にロードされた後も圧縮されたままで
メモリと帯域が節約できる=つまりさくさく
デメリット
結構仕上がりが汚い。jpgの低画質版みたいな荒れ方をする。
使い道
d(╹◡╹) b…写真画像・3Dモデルなど動くもののテクスチャ
d(╹◡╹) b…一瞬だけ見える動くエフェクト
(;´༎ຶД༎ຶ`)…2DのUI画像・アニメ塗りのイラスト
ETC形式(.etc)
上記のAndoroid版。アルファがつかえないという残念なチャームポイントがある。このふたつは互換性がない。
iOSでETCは使えないしAndroidでPVTDRは一部の機種を除いてほぼ使えない。仲良くしてよ!!!
あとpvr作った時なんですけど128×128とか256×256 512×512とかに強制的になる。
無理に違うサイズで圧縮すると変な棒が出ます
↑変な棒が出た図
.pvr .etc共に中身をプレビューできるビューワがwin mac共どちらもまだほとんどない。標準のファイラでは開きません。
texturepackerで開けます。
PNG形式
おなじみの形式
ネイティブアプリでjpgとgifは使えなくなったので表示できる形式はpngに限られる
基本重いけど圧縮のしかたによって軽減できる
標準(compressed)
いままでPhotoshopでweb用に書き出していればできたやつ
PNG-24 PNG-32
RGB888
RGBA8888
16bitダイレクトカラー
Unityが使用している方式。
Photoshopではいまのところ書き出せない。使っている色が半分にになるので重さは半分になる
RGB5551
RGBA4444
RGB565
メリット
iOSとAndroidどちらでも使える。
デメリット
圧縮されていてもメモリ上では展開されるようなのでアプリの動作が遅くなるみたい
使い道
基本何でもだけど…
(´・ω・)…写真画像・3Dモデルなど動くもののテクスチャ
(´・ω・)…一瞬だけ見える動くエフェクト
(´・ω・)…画面全体にわたる大きい画像
d(╹◡╹) b…2DのUI画像・アニメ塗りのイラスト
iOS・Androidどちらもワンリソースで対応したい場合はいまのところ.pngで
16bitが無難なのかなーとおもいます。もし認識間違えていたら教えて下さい<(_ _)>
OptPixでUnity用のRGBA16bit減色マクロを組む
デスクトップに[01.入力フォルダ]と[02.出力フォルダ]を作成する
他の場所でもいいけど他の人に渡したりする汎用性を考えるとデスクトップがいいです
[01.入力フォルダ]に減量したいファイルを入れる
マクロの作成
入出力のフォルダの指定
出力先の指定
ログファイルは邪魔になるので出力チェックを外す
以下のとおりに設定
この時サイズはできれば16×16 32×32 64×64 128×128 256×256 512×512 など2の2乗にあわせるのがよい
できた。[実行]を押すと[02.出力フォルダ]の中に減色されたファイルがもりもり書きだされてくるはず
マクロの共有
Optpixのマクロは相対パスなので他の人に渡すときは
エディタで開いて最初のほうにあるこのパス
ここを渡した先の人のデスクトップアドレスに直す
続きを書きました。リソースを最適化したら
つぎはテクスチャアトラスを最適化していこう!
http://8450423.info/qun/unity_atlas_diet/
参考元
ttp://www.webtech.co.jp/blog/game-develop/2562/
ttp://www.webtech.co.jp/blog/wp-content/uploads/2014/09/19fc37500877c90abdcb69dcb8aca05e.pdf