jaijai’s blog

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

ノーマルマップ作成における注意点

どんなツールでノーマルマップを作成する場合でも幾つか抑えておきたいポイントがあります。

どこに影をつけるのか

下の画像はディフューズマップで描いたをノーマルマップで凸表現している例です。

左の画像ではの内側に傾斜があり、右の画像では外側にあります。どっちが良いという問題ではなくどちらを欲しているかということです。ディフューズマップは同じでも受ける印象は変わってきます。場合によっては内外両方にまたがって傾斜が生まれることがあります。生成するツールによってそのへんは変わってきます。

GIMPの場合

GIMPプラグインでは下絵をディフューズマップより1ピクセル小さく(もしくは大きく)する必要があります。GIMPでノーマルマップを作る - jaijai’s blogで使ったサンプルに下絵の文字を重ねてみます。

GIMPプラグインではSobel 3x3を使う場合は最小の幅が2ピクセルの傾斜が生成されます。先の例でいうと内側と外側にそれぞれ1ピクセル、あわせて2ピクセル幅の傾斜が生成されます。よって下絵を重ねると1ピクセルはみだします。
CSL自体は1ピクセル幅の傾斜も十分に認識してくれるので1ピクセル幅にしたい場合は上記の例の場合下絵でマスクして内側をくり抜けば幅1の傾斜ができあがります。
右側の画像は1ピクセル化したものです。ノーマルマップがなんだかぼんやりする、シャープさに欠けると感じる場合この処理で改善する場合があります。

「明度=強さ」ではない

多くのノーマルマップ生成ツールではグレースケールを元絵に生成しますが元絵の明度は絶対的な傾斜を決定しません。傾斜の強さはあくまで近傍のピクセルと明度を比較して決まります。次の2つの元絵は同一のノーマルマップに成ります。
生成されたノーマルマップです。

また、右上の2つのグラデーション部分はそれぞれ単一の色に変換されています。どちらも線形グラデーションなので明度の変化量は一定です。よって同じ色になっています。