BlenderでNormalマップを作る

Blenderに限らずハイポリオブジェクトを一つのシーンに並べると重くて作業にならない事がありますし、ハイポリにする必要のないものもたくさんあります。特に壁や地面など変形を伴わないものはモデリングでハイポリにして凸凹を作らず、Cloudマップを使ったバンプマッピングなどで擬似的にざらついた凸凹が有るかのようなマテリアルを設定する場合が多いと思います。

Cloudマップやノイズマップを使ったものはランダムに生成された模様なのでそれはそれで使いやすいのですが、レンガなどを表現したい時に表面が均一にザラザラではないはずです。一部分はつるつる、かたやザラザラの場所もある。などといった具合です。コレを表現させるためにBlenderのMultiresolutionモディファイアを使用してNormalマップを作成することができます。

このチュートリアルでは正方形のレンガの表面(1面)を作ってみようと思います。

1.ベースのオブジェクトを作る

初めにオブジェクトが必要です。今回は正方形なので正方形のオブジェクトを作り、角が鋭角にならないようにBevelで適当に丸みを付けます。
1

今回は地面に敷き詰められるレンガを想定してるので1面のみ必要です。その為不要な面は全て削除します。そしてオブジェクトにsubsurfを適当にかけ、スムース化しておきます。
20141020231826_1

またUVマップを作成しておきます。※写真はオブジェクトを複写した後になっていますが、「2」に進む前にUVマップを作成しておくことでNormalマップ以外の作成も簡単になりますのでおすすめします。
20141020233643_1

2.Multiresolutionオブジェクトの作成

subsurfまで掛けたベースオブジェクトをshift+Dで複写します。複写したオブジェクトはMultiresolutionで使用するオブジェクトです。ここからMultiresolutionオブジェクトをメインで使うのでベースオブジェクトはHキーで非表示にしておきます(もしくはOutlinerで非表示にしておきます)。
マシンパワーなどに合わせ適度にMultiresolutionのsubdivideをあげます。とりあえず今回の例ではLevel6です。
20141020232059_1

スカルプトモードに移行し、Cloudテクスチャを利用したりして凸凹ザラザラ感を納得行くまでスカルプトします。私はこんな感じでとりあえず終了しました。
20141020233443

3.NormalマップのBake(焼付け)

ここで非表示にしていたオブジェクトを再び表示させて、ベースオブジェクトとMultiresolutionオブジェクトと2つ表示された状態です。この時この2つのオブジェクトを選択します。ポイントは「multiresolutionオブジェクト」→「ベースオブジェクト」の順で選択して下さい。
そしてBake設定値をNormal、Tangentにして、Distanceなどを適当に設定します。ここでBake中におちると怖いのでCtrl+Sで一応保存しておきましょう。準備ができれば「Bake」を押して下さい。
20141020233826_1

するとUVにNormalマップがBakeされました。深く浅く、がうまくBakeされない時はDistaanceをかまってみてください。一番深い場所から、一番浅いところまでBakeされると思います。
20141020234223_1

完成

最後にUVエリアで「F3」キーでNormalマップを保存して下さい。
試しに出来上がったNormalマップを使用してレンダリングしてみます。
20141020234814

こちらが出来上がったNormalマップです。
test-uv

今回使用したBake機能ではNomalマップだけでなくカラーマップもできますので結構幅広く使うことができますよ。

3DCGソフトウェア「Blender」を使ったあれこれ+PHOTOGRAPH