Blender2.8でマテリアルとノーマルマップをベイクする方法

例としてこんな感じの金属小物を作ります。

まずは立方体を追加してR→Z→45で回転させて菱形にします。高さも調整して平たくしましょう。

編集モードで辺を選択、Ctrl+Eでシームをマークします。Aで辺を全選択してUで展開します。

UV Editingで確認。OKです。

Layoutに戻り、立方体を選択してSift+D→Enterで複製、わかりやすいようにそれぞれ「High」「Low」とリネームしておきます。
High:スカルプト用オブジェクト。UV展開されている必要はない
Low:最終的に使用するオブジェクト。ベイクの際に必ずUV展開されている必要がある

Shadingタブを開き、Highを選択して+新規で新しいマテリアルを作ります。(わかりやすいようにMatHighとリネーム)

プリンシプルBSDFのカラー、メタリック、粗さを変更。立方体だとちょっとわかりにくいので、後々スカルプトで凸凹を作ってから数値を調節すると良いと思います。

次にLowを選択して同じように新しいマテリアルを生成(わかりやすいようにMatLowとリネーム)、こちらはプリンシプルBSDFはいじりません。追加→テクスチャ→画像テクスチャでテクスチャノードを追加します。

+追加から新規画像を生成します。ノーマルをベイクする画像なのでNormalとリネーム、アルファのチェックを外してOK。ノードの色空間をNon-colorにしておきます。

MatLow内にもうひとつ画像テクスチャノードを追加、+追加から新規画像を生成します。こちらは見た目(金属の質感や影など)をベイクする画像なのでMetalTexとリネーム、他の設定は変えません。

MatLowはこんな感じになります。
ノードはまだ繋がなくても大丈夫。


スカルプトで模様を彫っていきます。Lowを非表示にしてHighを選択、Sculptingタブを開きます。

右上のDyntopoにチェックを入れて画像のように設定します。
X軸ミラーは好みで。

ゴリゴリ彫ってこんな感じに。スカルプトはあまり触ったことないので下手なのはご勘弁...


ではノーマルマップをベイクしていきます。
Shadingタブから、Lowを表示してMatLowの画像テクスチャノードNormalを選択しておきます。(同一マテリアル内で複数の画像テクスチャノードが存在している場合は選択されている画像テクスチャノードの画像にベイクが行われます。)

Layoutタブに移動し、High→(Siftを押しながら)Lowの順に選択、Scene の設定を画像のようにします。

「レイの距離」というのは凸凹の高さをどこまで再現するかです。
透過表示をオンにして正面から見ると、凹凸は最大でも20cmほどでしょうか。これより小さい値だと天井に押し潰されたようなノーマルマップになってしまうので、20cmと入力します。

ベイクを押すと焼き込みが開始されます。終わったらUV Editingタブで確認してみましょう。

中央が潰れてる!レイの距離を30cmにして再びベイク。

今度は大丈夫でした。
画像→名前をつけて保存でテクスチャフォルダなどに保存しておきましょう。

続いてマテリアルのベイクに移ります。

再びLowを非表示にして右上の表示方法を一番右にします。
ここでの見た目が焼き込まれるので(たぶん...)ライトなどを追加してイメージ通りになるようにします。今回はエリアライトを使いました。

ShadingタブからLowを表示して画像テクスチャノードMetalTexを選択、再びLayoutタブに戻りHigh→(Siftを押しながら)Lowの順に選択します。

Sceneのベイクタイプをノーマル→統合に変更してベイク。
UV Editingタブで確認すると、ライトが当たっているところだけですがベイクできていますね!ノーマルマップと同じように画像→名前をつけて保存でテクスチャフォルダなどに保存しておきましょう。

あとはShadingタブでMatLowにノーマルマップノードを追加(追加→ベクトル→ノーマルマップ)、それぞれのノードを画像のように繋げば完成です!


この記事が気に入ったらサポートをしてみませんか?