Player settings for the Android platform
Android の Gradle

Android の 2D テクスチャ オーバーライド

このページでは、特に Android に関して、テクスチャ オーバライド の詳細を説明しています。テクスチャオーバーライドの一般的な説明は、こちらを参照してください。

このページの情報は読者が DXT と ETC のテクスチャ圧縮、OpenGL ES と Android 開発の実用的な知識を持っているという前提に基づいています。

テクスチャ圧縮と OpenGL ES に関する詳細な情報は以下のページを参照してください。

Android 2D Texture Override 設定
Android 2D Texture Override 設定
Format 説明
        RGB Compressed DXT1 圧縮 RGB テクスチャ。 Nvidia Tegra が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。
        RGB Crunched DXT1 圧縮 RGB テクスチャー。Nvidia Tegra が対応。Crunch 圧縮は、DXT テクスチャ圧縮上で使用できる損失のある圧縮形式です。テクスチャは CPU で DXT1 に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、通常の DXT1 圧縮よりもより小さくテクスチャを圧縮できます。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。4 ビット/ピクセル (出力サイズはテクスチャによって異なります。256x256 のテクスチャで 1 KB から)。
        RGBA Compressed DXT5 圧縮 RGBA テクスチャ。 Nvidia Tegra が対応。8 ビット/ピクセル (256x256 のテクスチャで 62 KB)。
        RGBA Crunched DXT5 圧縮 RGBA テクスチャ。Nvidia Tegra が対応。Crunch 圧縮は、DXT テクスチャ圧縮上で使用できる損失のある圧縮形式です。テクスチャは CPU で DXT5 に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、通常の DXT5 圧縮よりも著しく小さい、ただし、低品質のテクスチャを作成します。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。8 ビット/ピクセル (出力サイズはテクスチャによって異なります。256x256 のテクスチャで 1 KB から。
        RGB Compressed ETC 4 bits 圧縮 RGB テクスチャ。Unity の Android 用プロジェクトのデフォルトのテクスチャ形式。 ETC_RGB4 は OpenGL ES 2.0 の一部であり、全ての OpenGL ES 2.0 GPU が対応しています。アルファには非対応です。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。
        RGB Crunched ETC 圧縮 RGBA テクスチャ。Nvidia Tegra が対応。Crunch 圧縮は、DXT テクスチャ圧縮上で使用できる損失のある圧縮形式です。テクスチャは CPU で DXT5 に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、通常の DXT5 圧縮よりも著しく小さい、ただし、低品質のテクスチャを作成します。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。8 ビット/ピクセル (出力サイズはテクスチャによって異なります。256x256 のテクスチャで 1 KB から)。
        RGB Compressed ETC2 4 bits 圧縮 RGB テクスチャ。ETC2 は OpenGL ES 3.0 の一部であり、全ての OpenGL ES 3.0 GPU が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。
        RGB + 1-bit Alpha Compressed ETC2 4 bits 1 ビットパンチスルーアルファを持つ圧縮 RGB テクスチャ。ETC2 は OpenGL ES 3.0 の一部であり、全ての OpenGL ES 3.0 GPU が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。
        RGBA Compressed ETC2 8 bits 圧縮 RGBA テクスチャ。 全ての OpenGL ES 3.0 GPU が対応。8 ビット/ピクセル (256x256 のテクスチャーで 62 KB)。
        RGBA Crunched ETC2 圧縮 RGBA テクスチャ。Crunch 圧縮は、ETC テクスチャ圧縮上で使用できる損失のある圧縮形式です。テクスチャは CPU で ETC2_RGBA8 に解凍され、ランタイムに GPU に読み込まれます。Crunch 圧縮は、通常の ETC2_RGBA8 圧縮よりも著しく小さい、ただし、低品質のテクスチャを作成します。Crunch テクスチャは、圧縮するのにかなり時間がかかりますが、ランタイムでの解凍は高速です。全ての OpenGL ES 3.0 GPU が対応。8 ビット/ピクセル (出力サイズはテクスチャによって異なります。256x256 のテクスチャで 1 KB から)。
        RGB Compressed PVRTC 2 bits 圧縮 RGB テクスチャ。 Imagination PowerVR GPU が対応。2 ビット/ピクセル (256x256 のテクスチャで 16 KB)。
        RGBA Compressed PVRTC 2 bits 圧縮 RGBA テクスチャ。Imagination PowerVR GPU が対応。2 ビット/ピクセル (256x256 のテクスチャで 16 KB)。
        RGB Compressed PVRTC 4 bits 圧縮 RGB テクスチャ。 Imagination PowerVR GPU が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。
        RGBA Compressed PVRTC 4 bits 圧縮 RGBA テクスチャ。Imagination PowerVR GPU が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。
        RGB Compressed ATC 4 bits 圧縮 RGB テクスチャ。Qualcomm Snapdragon が対応。4 ビット/ピクセル (256x256 のテクスチャで 32 KB)。
        RGBA Compressed ATC 8 bits 圧縮 RGBA テクスチャ。Qualcomm Snapdragon が対応。8 ビット/ピクセル (256x256 のテクスチャで 64 KB)。
        RGB Compressed ASTC 4x4 block

        RGB Compressed ASTC 5x5 block

        RGB Compressed ASTC 6x6 block

        RGB Compressed ASTC 8x8 block

        RGB Compressed ASTC 10x10 block

        RGB Compressed ASTC 12x12 block
圧縮 RGB テクスチャ。OpenGL ES 3.2、OpenGL ES 3.1+AEP GPU のすべてと、OpenGL ES 3.0 GPU の一部が対応。この圧縮形式は固定の 128 ビットブロックサイズを使用します。ピクセルブロックサイズ (4x4 から 12x12) によって、各ピクセルに 8 から 0.89 ビットを利用します。圧縮テクスチャのサイズは256x256 のテクスチャで 64KB (4x4 ブロック、最高品質) から、256x256 のテクスチャで 7.6KB (12x12 ブロック、最高圧縮率) 。
        RGBA Compressed ASTC 4x4 block

        RGBA Compressed ASTC 5x5 block

        RGBA Compressed ASTC 6x6 block

        RGBA Compressed ASTC 8x8 block

        RGBA Compressed ASTC 10x10 block

        RGBA Compressed ASTC 12x12 block
圧縮 RGBA テクスチャ。OpenGL ES 3.2、OpenGL ES 3.1+AEP GPU のすべてと、OpenGL ES 3.0 GPU の一部が対応。この圧縮形式は固定の 128 ビットブロックサイズを使用します。ピクセルブロックサイズ (4x4 から 12x12) によって、各ピクセルに 8 から 0.89 ビットを利用します。圧縮テクスチャのサイズは256x256 のテクスチャで 64 KB (4x4 ブロック、最高品質) から、256x256 のテクスチャで 7.6 KB (12x12 ブロック、最高圧縮率) 。
        RGB 16 bit アルファなしの 65000 色。圧縮された形式よりもメモリを消費しますが、UI やグラデーションのないくっきりとしたテクスチャにより適しています。256x256 のテクスチャで 128 KB。
        RGB 24 bit アルファ なしのトゥルーカラー。256x256 テクスチャで 192 KB。
        Alpha 8 bit カラーなしの高品質アルファチャンネル。256x256 テクスチャで 64 KB。
        RGBA 16 bit 低品質のトゥルーカラー。アルファチャンネルありのデフォルトのテクスチャ圧縮。256x256 テクスチャで 12 KB。
        RGBA 32 bit アルファチャンネルありのトゥルーカラー。アルファチャンネルありのテクスチャ圧縮では最高品質。256x256 テクスチャで 256 KB。
Compression quality パフォーマンスを最速にしたい場合は Fast、画像を最高質にしたい場合は Best、その 2 つの中間を取りたい場合は Normal を選択します。

使用しているテクスチャ圧縮形式に対応していないデバイスにアプリケーションをインストールする場合、Unity は、アプリケーションの実行時にテクスチャを RGBA 32 に解凍し、圧縮されたテクスチャと共にデバイスのメモリに保存します。これは、Unity がテクスチャを解凍し、使用するテクスチャの 2 つのバージョン (圧縮と非圧縮) を保存する必要があるため、ロード時間が長くなりメモリ使用率が高くなる原因となります。これは読み込み時間の増加とメモリ使用量の増加につながります。これは特に古い、遅いデバイスでのレンダリングパフォーマンスに大きな影響を与える場合があります。

Use ETC2 compression unless you are targeting specific hardware (like Nvidia Tegra). ETC2 supports Textures with and without an alpha channel and is supported by all OpenGL ES 3 devices. To avoid software decompression, set the minimum graphics API to OpenGL ES 3 in the Android Player settings by removing OpenGL ES 2 from the Graphics APIs list and setting the Minimum API Level to 18+.

To target OpenGL ES 2 and OpenGL ES 3 devices, you can create two different APKs by first building an APK targeting OpenGL ES 3, as shown above, and then building an APK targeting OpenGL ES 2 by removing OpenGL ES 2 and Vulcan from the Graphics APIs section of the Player settings. You can then publish both of these APKs to the Google Play Store. When a user downloads your app, the Google Play Store will automatically install the most relevant APK for their device. For more information about publishing multiple APK files, see Android Developer documentation on Publishing Multiple APKs and Google Play Store APK filtering.

OpenGL ES 2 をターゲットとする APK を構築するときは、ETC1 テクスチャ圧縮を使用します。

The Texture compression format for OpenGL ES2-targeted APK can be ETC1. Unity can use ETC1 for Textures with Alpha, provided they are placed on an Atlas (by specifying the packing tag) and the build is for Android. You can opt in for this by setting the Compress using ETC1 checkbox for the Texture. Under the hood Unity splits the resulting atlas into two Textures, each without alpha and then combine them in the final parts of the render-pipeline.

どうしてもテクスチャにアルファチャンネルを保存したい場合は、RGBA16 ビットがすべてのハードウェアベンダーによってサポートされている圧縮形式です。


  • 2017–09–18 限られた 編集レビュー で修正されたページ

  • Unity 2017.1 のアップデート機能

  • Crunch 圧縮形式は Unity 2017.3 で更新NewIn20173

Player settings for the Android platform
Android の Gradle