5-5 ノーマルマップベイク
今回は、TexToolsを使ったノーマルマップベイクについて学習していきましょう。
目次
ノーマルマップ
ノーマルマップについては、1-2-4サーフェスアピアランスで解説した通りです。
ノーマルまたはサーフェスマップはR、G、BでそれぞれX、Y、Z方向のテクスチャの凹凸を表現したものです。
どのようにしてノーマルマップを作るかというと、ハイポリゴンモデルとローポリゴンモデルを用意して、ハイポリ→ローポリに表面の凹凸の情報を焼き付けて作ります。
ゲームなどで使用するアセットにはポリゴン数の制限があり、ハイポリゴンモデルをそのまま使うことは出来ないけれど、
かといってローポリモデルではディテールの表現が足りないというときにノーマルマップは大活躍します。
Robloxでも、メッシュ1つ当たりのポリゴン数を10000以下に抑える必要があり、ポリゴン数10000以下だと表現できないようなディテールを再現するために使います。
ノーマルマップベイク
ノーマルマップを作成するためには以下の2つを用意する必要があります。
- ローポリゴンモデル
- ハイポリゴンモデル
ハイポリモデルには、ローポリモデルを複製して細分化を50ほどして、”ノイズテクスチャ”ノードと”ディスプレイスメント”ノードを使用して変形させましょう。
ただし、メッシュがある程度細かくないと凹凸が反映されないので注意しましょう。出力側は、”マテリアル出力”ノードの”ディスプレイスメント”に繋ぎましょう。
また、デフォルトではディスプレイスメントの結果が見えないので、レンダープロパティからレンダーエンジンをCyclesに変更し、マテリアルプレビューの設定→サーフェス→ディスプレイスメント→ディスプレイスメントとバンプにして、ショートカット”Z”でシェーディングをレンダープレビューにする必要があります。
準備ができたら、ハイボリモデルの名前の後ろには”_hp”、ローポリモデルの名前の後ろには”_lp”と付けましょう。
ローポリモデルはUV展開されている必要があります。
これはBlenderにハイポリとローポリを識別させるために必要です。
ハイポリとローポリのモデルを複数選択したら、
UV編集タブに移り、TexToolsのBakingを開き、ベイクの種類を”Tangent Normal”に変更します。
ケージを押し出しの数値を1程度に設定しておきましょう。
ケージはベイクの影響範囲のことで、ケージがハイポリゴンモデルの凹凸を包み込むような値にする必要があるので各自調節しましょう。
では”Bake”を押しましょう!
するとこのようなRGBの3色で構成された画像が生成されます。
これがノーマルマップです。
生成した画像は忘れずに保存しましょう。
ノーマルマップの適用
ローポリモデルのマテリアルを、
“画像テクスチャ”ノード→”ノーマルマップ”ノード→”シェーダー”ノード
というようにノードを繋いで、”画像テクスチャ”ノードには生成したノーマルマップを割り当てましょう。