Notifications
Article
Unityで設定できるテクスチャの圧縮フォーマットについて
Published 3 months ago
284
0
「Unityお学びグループ」で解説してきた「テクスチャ」の流れで、Unityで設定できるテクスチャの圧縮フォーマットについて紹介します。

テクスチャの圧縮フォーマットを知る

Unityで各プラットフォームごとにテクスチャのインポート設定をする際、Formatの項目を見ると似たような名前だけど非なるたくさんの選択肢があります。それらを紹介していきます。
まず「RGB」と「RGBA」と頭に書かれているものがほとんどですが、これは色情報を持つチャンネルのこと。R=Red G=Green B=Blueの光三原色に、A=Alphaという主に透過情報で使うチャンネルの4つですね。なので透過画像を使う場合は「RGBA」と書かれた圧縮フォーマットを使うと良いでしょう。
次に「Compressed ~」「Crunched ~」と書かれていない、たとえば「RGB 24bit」や「RGBA 32bit」などについて。この2つは使える色数が約1678万色(RGBAはプラス透過情報)と色再現度が一番高い設定です。当然ファイルサイズも巨大になります。「RGB 16bit」「RGBA 16bit」は色や透過情報を16ビット=約65000色の範囲で表現する設定です。もちろんファイルサイズは「RGB 24bit」などより減りますが、グラデーションのある画像に適用すると汚くなりやすいので、使う際は要注意です。
一方「Compressed ~」「Crunched ~」と書かれているものは、いわゆる圧縮を使用する設定です。圧縮フォーマットを見ると「DXT1」「DXT5」「BC4」「BC5」「BC6H」「BC7」「PVRTC」「ASTC」「ETC」「ETC2」「ATC」とあります。

「DXT1」「DXT5」

DXTC = DirectX Texture Compressionということで、Unity的にはDirectX 9以降のデバイス向けの圧縮フォーマットです。PC、Macなどはもちろん、各種ゲーム機やNvidia Tegra搭載機にも対応します。DXT5と比較して、DXT1のほうがファイルサイズが小さくなりますが、劣化しやすいケースがあります。 https://www.webtech.co.jp/blog/optpix_labs/format/4013/ https://www.webtech.co.jp/blog/optpix_labs/format/4569/

「BC4」「BC5」「BC6H」「BC7」

BC = Block Compressionというフォーマットで、「BC4」「BC5」はDirectX 10以降、「BC6H」「BC7」はDirextX 11以降のデバイス向けです。ただ初心者でこの圧縮設定を使うことはあまりないと思うので、詳しく知りたい方はリンク先で情報をご確認を。 https://www.webtech.co.jp/blog/optpix_labs/format/6993/ https://www.webtech.co.jp/blog/optpix_labs/format/7006/

「PVRTC」「ASTC」

PVRTC = PowerVR Texture Compressionということで、iOSデバイスのGPUとして採用されているPowerVR向けの圧縮フォーマットです。したがって、iOSをターゲットにするならこの圧縮フォーマットを使うわけですが、最近はASTC = Adaptive Scalable Texture Compressionという圧縮フォーマットもA8チップ以降のiOSデバイスでは使えるようになっています。(A8チップ以降のiOSのCPUはARMとの共同開発で、ASTCもARMが開発したからだと思います) https://www.webtech.co.jp/blog/optpix_labs/format/4930/ http://tsubakit1.hateblo.jp/entry/2016/09/28/235632 http://blog.techlab-xe.net/archives/3567

「ETC」「ETC2」

ETC = Ericsson Texture Compressionというフォーマットで、ETCはOpenGL ES 2.0以上に対応する端末なのでAndroid 2.2以降、ETC2はOpenGL ES 3.0以上に対応する端末なのでAndroid 4.3以降の端末が主な対象です。 https://www.webtech.co.jp/blog/optpix_labs/format/5882/ http://tsubakit1.hateblo.jp/entry/2017/11/22/001941 https://techblog.kayac.com/unity_advent_calendar_2016_10 http://d.hatena.ne.jp/nakamura001/20171225/1514203072

「ATC」

Qualcomm Adrenoを搭載したAndorid端末でしか利用できません。ちなみにATC = ATI Texture Compressionの略で、ATIは2006年ごろにAMDに買収されるも、一部チップセットの事業はAMD、そしてQualcommに売却された・・・という経緯があります。
ということで、ターゲットデバイスに合わせて圧縮フォーマット設定していきましょう。
( Unityお学びグループでの解説記事バックナンバーはこちら:http://bit.ly/omanabi-back )

Tags:
tamtam
Community Evangelist - Marketer
8
Comments