(この情報は Unity 5.0 の時点のものであり、最新版とは異なる可能性があります。)
Unity 4 と Unity 5 では iOS/Android 向けテクスチャ圧縮の処理の内容が異なっています。
Unity 4 の時点では次のような処理になっていました。
- PVRTC 変換には PVRTexTool を、ETC 変換には etcpack を用いる。
- etcpack の引数には常に “-s fast” と “-e perceptual” が与えられる(Unity 側の Compression Quality 設定は無視される)。
- PVRTexTool の引数には “-q pvrtcfast”, “-q pvrtcnormal”, “-q pvrtcbest” のいずれかが与えられる(Compression Quality 設定に基づく)。
これが Unity 5 では次のように変更されています。
- PVRTC, ETC ともに PVRTexTool を用いる。
- ETC の場合、PVRTexTool の引数には “-q etcfast”, “-q etcfastperceptual”, “-q etcfastperceptual” のいずれかが与えられる(Compression Quality 設定に基づく)。
- PVRTC の場合、PVRTexTool の引数には “-q pvrtcfast”, “-q pvrtcnormal”, “-q pvrtcbest” のいずれかが与えられる(Compression Quality 設定に基づく)。
- Texture Import Settings の “Alpha Is Transparency” がオンの場合、PVRTexTool の引数に “-l” が追加される(bleed filter を有効にするオプション)。
この仕様変更の影響があらわれやすいのは、ETC 変換にかかる時間です。Compression Quality 設定が反映されるようになったため、デフォルト設定でもそこそこの時間がかかるようになりました。Compression Quality を落とすことにより以前と同等の速度を得られると思われますが、それは画質とのトレードオフになります。
また、Unity 5 では PVRTexTool のバージョンが更新されています。このバージョンアップによって、画質の向上や劣化が生じる可能性もあります。
どうしても以前の PVRTexTool の方が好ましい、という場合は、Unity 4 に同梱されていた PVRTexTool を拾ってきて、Unity 5 の PVRTexTool と無理やり差し替える、というハック的な技も考えられます(もちろん、そのような使い方は推奨しませんし、動作の保証もありません……)。
■2018/09/27 追記
Unity 2017.2より ETC圧縮については、他のツールでの圧縮もサポートされました。
詳しくは下記マニュアルの「ETC Texture Compressor」の項目をご参照ください.
https://docs.unity3d.com/ja/current/Manual/class-EditorManager.html
1 コメント