jaijai’s blog

Cities Skylinesアセット作成に関するメモ・考察

Cities Skylinesにおけるノーマルマップ

ノーマルマップ(Normalmap)とは

テクスチャ(ディフューズマップ)と同じ空間に法線情報を色としてマップしたテクスチャのことです。法線マッピングバンプマップとも呼ばれます。ノーマルマップを使えば面単位ではなくピクセル単位で凹凸を表現できます。

ノーマルマップは必要?

アセットはゲーム内では基本的に上方から眺められます。横から見ることもありますが少なくとも下から見上げる場面というのはまずありません。よって、ディフューズマップに影を入れる場合も上から見た場合を想定して描けば概ね正しくなります。しかし、横方向の影は光源(主に太陽)の位置によって変化するため陰影が真逆になることもあります。車両のタイヤのようにゲーム内で向きが変化するものについてはどうしても違和感を生みます。ノーマルマップを適切に設定するとそのような場合でも正しい影と光が得られます。

ノーマルマップの効果

CSLでのライティングは簡素です。間接光?なにそれ?の世界です。Blender上でどれだけかっこよく見えようとも意味はありません。よって、ディフューズマップで影を描くことは必須です。さもなくばいかにもCGぽい安っぽい絵面になります。ノーマルマップを描けばそれらがすべて解決とはいきませんが立体感は大幅に増すので見た目の印象は大きく向上します。

ノーマルマップの得手不得手

  • メッシュは変わらない
    あくまでテクスチャで表現するものなので見えない面が見えるようになったりしません。
  • 大きな凹凸は苦手
    メッシュは変わらないので大きくなるほど見る角度がきつくなるほど違和感が増します。
  • 細かい凹凸表現は得意
    どれだけ細かく描こうがポリ数は増えません。メッシュで表現すると必要以上にエッジが立つ場合でも柔らかく表現できてジャギーもでません。
  • テクスチャ解像度に依存する
    ノーマルマップ解像度はディフューズマップと同一にしなければならずUVマップも共有します。よって、ノーマルマップを詳細に描きたいほどその面に割り当てるテクスチャ面積も大きくする必要があります。
  • 少なからず劣化する
    ノーマルマップもテクスチャの一種なのでアセットエディタでインポートした段階でテクスチャ圧縮により劣化します。

どこまでノーマルマップで表現するべきか

ノーマルマップを使えば面の構成上メッシュを触りたくない部分でも凹凸を表現できます。すべての凹凸をメッシュで表現するほうがモデリング的には正しいのかもしれませんが、ノーマルマップの利点もまた大きいです。慣れてくると「これはメッシュでやったほうが」「これはノーマルマップでいけるな」と想定しやすくはなります。それでも両方試してみて納得の行く方を選ぶこともしばしばあります。

既存アセットのノーマルマップを手っ取り早く見てみたい場合は渋滞情報や地価モードなどに切り替えることで確認できます。それらの表示モードではほぼノーマルマップとスペキュラマップだけの表示になるので簡単に確認できます。