識ログ

超絶プログラミング初心者のUnity開発備忘録

【Unity】画像リソースの色数と変換

 

 

 

自分用の備忘録として、いままで勘違いしていたUnityのRGBA16変換の話を適当な文章で。

 

(まあだいたい、ここ↓見ればわかるけど。)

 

自分で作った画像はそのままの色では使われず、必ずUnityさんに変換されてしまうので、自分はできる限り色が変わらないように使う色を選んでいる。

 

RGBA16変換がよくつかわれる変換方式とどこかで見た気がするので、それを使う前提で色を選んでいました。なんとなーく、16変換なんだから、RGBAの値を0,16,32,48...,240,255にしておけばええやろ、とおもって画像を作っていたけど、いざUnityに取り込んでみると様子がおかしい。

 

例えば、上がR255G240B240、下がR255G255B255のマップチップを読み込んでRGBA16変換を

 

すると、真っ白になってしまう。

 

つまり、

こいつが

f:id:shiki4020:20170507122337p:plain 

 

こうなってしまう。

f:id:shiki4020:20170507122424p:plain

今度は上はR255G239B239、下をそのままでやってみると 、今度ははっきりと差がわかるようになる。

なので単純に16の倍数を使えばいいというわけでもなさそう。

 

上のリンク先にも書いてあるけど

0~15,16~31,32~47,........,240~255でひとまとめになっているので、240と255は一緒のようなものだということですね。

 

少し疑問に思うのが、

240~255は全部255扱いで、上の方に揃えられる?

0~15は全部0扱いで下に揃えられる、R0G0B0なら真っ黒になってる?

じゃあ、16~31だとどこに揃えられるのでしょう?上?下?

 

まあここから(というより全部)想像なんですが、おそらく17の倍数に揃えられてるのかな?

0~15⇒0

16~31⇒17

32~47⇒34

48~63⇒51

//

224~239⇒238

240~255⇒255

だとすると、ドット絵描くときに17の倍数を積極的に使うと、RGBA16変換した時、あまりがっかりせずに済むはずなんですが、もう少し調べたほうがよさそうですね。

 

まあ見切り発車で17の倍数説を信じてリソース作ってみます。