この記事では、Blender上でノーマルマップを作成し適用することで、見た目上の凹凸感を表現する方法について解説します。
ノーマルマッピングとは?
ノーマルマッピングとは、オブジェクトに通常のテクスチャとは別に高低の情報を持つノーマルマップを指定することで、擬似的に陰やハイライトを作り、メッシュで凹凸をつけていなくても見た目上の凹凸感を表現できる、というものです。
詳しくは以下の記事で解説していますので、ご参照ください。
ここでは、以下の記事の「ノーマルマップを作成する」項の「Blender上でノーマルマップを作成する」について解説していきます。
ノーマルマップをベイクする
ベイクは、あらかじめ陰影をモデルのテクスチャとして焼き付けておくことで演算の負担をなくす、といった用途でよく使われます。
今回は陰影ではなく、高低の情報をノーマルマップとして焼き付けます。
ベイクについて詳しくは以下の記事も参考にしてください。
メッシュを追加してベイクする方法と、スカルプトしてベイクする方法をご紹介しますが、どちらも基本的な考え方は変わりません。
メッシュを追加してベイクする
細かなパーツなどのモデリングをしてポリゴン数が増えてしまった時に、ノーマルマップにベイクすることでポリゴン数を減らせます。
今回は簡単なモデルで試してみましょう。
まずは、以下のように平面に「Edge」→「Subdivide」を何回か適用してポリゴンを細分化した平面を用意します。
この平面を[Shift]+[D]でその場に複製し、[O]→[G]キーからプロポーショナル編集機能を使用して適当なくぼみをつけます。
プロポーショナル編集については以下の記事も参考にしてください。
マテリアルプロパティの、「+」ボタンから新規マテリアルを追加します。
「Shader Editor」の画面を開き、[Shift]+[A]でImage Textureノードを追加します。
「+ New」をクリックして新しいテクスチャを作成しましょう。
ここでは名前を「Untitled」のままにします。
Image Textureは他のノードと接続する必要がありません。
複製して変形させた平面にも、同じマテリアルを割り当てます。
複製して変形させた平面→元の平面の順に[Shift]キーを押しながら選択し、レンダープロパティから、Render Engineを「Cycles」に変更します。(Eeveeにはベイク機能がありません)
下にスクロールして以下のように項目を設定したら、「Bake」をクリックします。
- Selected to Active:別のモデルからテクスチャをベイクする
- Cage:別のモデルからテクスチャをベイクする場合に、ベイクの影響範囲を指定する
- Cage Extrusion:ベイクの影響範囲
ベイク作業が行われるので、終わったら「Image Editor」の画面から確認すると、ノーマルマップが作られているのがわかります。
画面上部から先ほど作ったテクスチャ名を選択するのを忘れないようにしましょう。
ノーマルマップが作成できたら、変形させた平面を非表示にした上で、Normal Mapノードを追加し、以下のように繋げてみましょう。
ただの平面に、凹凸がついたのがわかります。
スカルプトでベイクする
メッシュを細かくしないとスカルプトで作り出せない服の皺なども、ノーマルマップでベイクすることでポリゴン数を抑えることができます。
平面を追加し、複製するまでは先ほどの「メッシュを追加してベイクする」と同様の手順になります。
複製した平面に、「Add Modifier」から「Multiresolution(多重解像度)」モディファイアを追加します。
このモディファイアは単純にモデリングされたオブジェクトを複雑なオブジェクトに見せたい時に使うもので、スカルプトの際によく使われます。
追加したら、「Subdivide(細分化)」ボタンをクリックして、Level ViewportやSculpt、Renderといった項目が1~3になるように調整しましょう。
「Sculpting」ウィンドウに切り替え、先ほど複製した平面にブラシで凹凸をつけていきます。
この後は、先ほどの「メッシュを追加してベイクする」の解説にある、新規マテリアルを追加~と同様の手順になります。
同様に、Normal Mapノードを追加して元の平面に適用すると、凹凸が反映されました。
STYLYにアップロードする方法
3DモデルをSTYLYにアップロードしてみましょう。
アカウント作成方法
STYLYにアップロードする方法