【Unity】2Dスプライトやテクスチャがにじむ場合の対処について

10/02/2018

2Dスプライトやテクスチャがにじむ場合の対処について

まずは、画像を見てください。

にじんでいますねー。原因は、ずばり圧縮です。

設定を見直そう

スプライト(テクスチャ)の設定を見直しします。
わかりやすくするためにドット絵のスプライトで説明します。

ドット絵の場合は、下記のように設定します。

Texture Typeを Sprite(2D and UI)にします。(当然かw) 上記のようにSprite Mode を Multipleにし、Mesh TypeをFull Rectにします。Filter Modeはドット数が少ない場合にPointが綺麗に出ます。

これで、くっきりと表示されます。エッジが立ちます。

次に圧縮です。標準の場合は、たぶんPVRTCになっています。これを変更します。
iOSの場合、ココを弄ります。

設定により、画像の状態とサイズが変わります。ドット絵ぽくみえますが、8pointで四角を形成しています。(圧縮しても4Pointの倍数なら劣化しにくいためです。)

RGBA 16Bit(非圧縮)の場合 2MB

RGBA compressed PVRTC 4bits の場合 0.5MB

RGBA compressed ASTC 8×8 の場合 256KB

RGBA Crunched ETC2 場合 23.6KB

とこんな感じ。今回選択した画像では、RGBA Crunched ETC2が見た目も圧縮率もよく選択することになりました。
ドット絵(1Point)は、圧縮の性質上、劣化する事が多いです。解決策は1Pointを2Pointや4Pointに拡大すると改善します。欠点は、1枚にたくさんの絵が入らないこと。サイズが4倍~8倍になったりします。でも画像サイズも非圧縮よりも小さくできます。
まぁ試行錯誤が必要だと思いますが、どうしても劣化が激しい場合は4Pointを試してみてください。1枚に絵が入るならベストの選択です。

PCやandroidでも基本同じです。

さいごに



参考になりますね。

AMAZON

スポンサーリンク