LiMMの溶解記録

脳を溶かすようなゲームを。

Unityで.pngを読み込むと変な色補間が入るのですが!?

ドットゲー作ってますか?

Unityやってますか? ドットのゲームとか作りますか? こんなこと起きませんか?

「やった! いい感じに打てたぞ!」

f:id:littlemeltmachine:20180723231322p:plain

pngで出力して、Unityにインポートして、SpriteEditorを開いて……ん!?」

f:id:littlemeltmachine:20180723232732p:plain

せっかく可愛く打ったドットがめちゃくちゃになってる!? Unity許さん。俺はUEで行く!

どうか待って頂きたい。これはちゃんと修正できます。

間違った解決策

まず私がやっていた、大いに間違った解決方法です。

それは単純に、元の画像のサイズを大きくするというものでした。

例えば64x64のドット絵であれば、拡大して128x128で出力するという感じです。

一見するとちゃんと出ているように見えますが、よく見るとちょっとだけ絵がつぶれています。

f:id:littlemeltmachine:20180723234306p:plain

しかしこれは、不具合の理由を考えない愚行の行きつく先にある、間違った解決方法です。

こんなのは解決とは言えません。やめようね!

ということでちょっと調べてみました。

原因はデータの圧縮

Unityにデータを取り込む時、自動で圧縮してくれています。

しかしこの画像を軽くするための処理が、今回はドットを潰してしまっていました。

もちろん、これはデータサイズを抑えてくれる役割があるので基本的に従うといいと思います。しかし1ピクセル1ピクセルが大事なドット絵では一切圧縮して欲しくありませんよね。

じゃあそうなると解決策は一つしかありません。

 

圧縮をしないようにしようね

しかし自動で圧縮されているものをどうしたらコントロールできるのでしょうか。

ユニティ・テクノロジー社に殴り込みをかける?

それは最後の手段です。今回は、非常に簡単に対応できますのでやめましょう。

答えは画像データのInspectorにあります。

f:id:littlemeltmachine:20180723235511p:plain

赤線部分『Compression』(訳:圧縮)

ここをいじればいいワケです。

現在Normal Qualityとなっていますが、これをNoneに変えます。

すると……

f:id:littlemeltmachine:20180724000158p:plain

ドットが綺麗に出ました~!

となるわけです。

え? 知ってた?

 

現場からは以上です。