読者です 読者をやめる 読者になる 読者になる

夏までにiPhone アプリつくってみっか!

趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。

【Unity】テクスチャのインポート設定で色々な見た目の問題を解決

Unity オープンワールドレーシングゲーム

今回はUnityのテクスチャインポート設定がモデルの表示品質にどのように影響するか検証してみました。
なお、テスクチャのインポート設定は、プロジェクトパネルでテクスチャを選ぶとインスペクタに表示されまます。

その1
前回、ノーマルマッピングを施したナンバープレートがUnity上で見るとグニャグニャなのが気になったのでまずはこれを修正したいと思います。

tf.hateblo.jp

ご覧のとおり、クラッシュして潰れたナンバープレートを叩いて直したような悲惨な感じになっています。

f:id:takujidev:20151023193816p:plain

これを新車同様にするためには、テクスチャの取り込み設定でCompressedになっているのをTruecolorに変更します。
その結果、このように綺麗な平面が得られました。
なお、文字のフチがギザギザなのはテクスチャの解像度が足りないせいなのでこれでは改善されません。
Truecolorは、テクスチャの圧縮を使わない設定なのでメモリ使用量が増加します。圧縮フォーマットのPVRTC 4bitsから非圧縮のRGB24 bitになるとこのテクスチャのメモリの使用量は6倍になります。

f:id:takujidev:20151023194447p:plain

表示品質を取るかメモリを節約するか悩ましいところです。
将来的にメモリ使用量が厳しくなったら圧縮に戻す可能性ありです。

その2
次にテクスチャの色漏れの問題を解決したいと思います。
白いバックランプをよく見ると分かりますが、上の方が赤色ににじんでいます。

f:id:takujidev:20151023195315p:plain

これはAlbedo用テクスチャを圧縮をしない設定にするか、Mip Mapの生成を解除すると治りました。
なお、Mip Mapの設定は標準ではインスペクタに表示されず、Texture TypeをAdvanceに設定することで表示されるようになります。
デフォールトではGenerate Mip Mapsのチェックボックスがチェックされていますので、チェックを外します。
すると、このようににじみがなく綺麗に表示されます。

f:id:takujidev:20151023195852p:plain

Mip Mapは何段階かに縮小したテクスチャをあらかじめ用意しておくことでテクスチャを縮小するときの品質やパフォーマンスが向上する技術らしいですが、今回は逆に色がにじんで品質が低下結果となりました。
Mip Mapを使わない場合は小さいテクスチャが生成されなくなるのでその分若干のメモリの節約になります。
テクスチャの非圧縮よりは悪影響が少なそうなので、今回はMip Mapの設定を変えました。

その3
最後にスペキュラーマッピングの不具合です。

非常に見えにくいですが、黄色の丸をつけた部分に艶感が違う四角い部分があります。

f:id:takujidev:20151023201107j:plain

このボツボツはいたるところにあって、太陽が反射するとボディが全体的にザラついた質感に見えます。
これはスペキュラーマップ用テクスチャの圧縮によるノイズによるもので、インポートでTrueColor設定にすると消えました。

f:id:takujidev:20151023202824p:plain

以上、3つの不具合をテクスチャのインポート設定で解決しました。
表示品質は良くなったのですが、メモリ使用量の増加やパフォーマンスの低下がゲームにどの程度影響するか現時点では不明なので、チューニングの過程で設定を戻す可能性はあります。