ベイクとは、平たく言えば、マテリアル情報を画像に変更することです。

マテリアルを画像にするっていう点は、
テクスチャペイントと似てるで
テクスチャペイントの場合は、手描きで画像を作成します。
ベイクの場合は、手描きではなく、ノードで組み上げたマテリアルを元に画像を作成します。
ノードで作成されたマテリアルは、Blender独自のもののため、他の3Dファイル形式には対応していません。
そのため、UnityやUnreal Engine、webサイトといった外部ツールで使えるような形式の3Dファイルにする際は、マテリアルを画像にしておく必要があります。
UV展開
ベイクする際は、テクスチャペイントと同じく、UV展開をしておく必要があります。
ベイクしたいオブジェクトをUV展開しておいてください。
展開したマップが近すぎるとベイク結果が重なってしまうので、適度に余白を残しておきます。


何をベイクするのか
ベイクとは、マテリアル情報を画像にすることと説明しましたが、マテリアルの全ての情報を1つの画像にすることはできません。


基本的には、
プリンシプルBSDFの項目1つにつき、1つの画像が必要となります。
よく使う種類は
- ベースカラー
- メタリック
- 粗さ
- ノーマル
の4種類です。



マテリアルがよく分からん場合は、
この4つをベイクしときゃ大概いける
シェーダーエディターでベイク先の画像テクスチャを用意する
画面を分割し、左側をシェーダーエディターに変更しました。
右側の3Dビューポートで、ベイクしたいオブジェクトを選択すると、左側にそのマテリアルの画面が表示されます。


シェーダーエディター側で、ベイク先になる画像テクスチャを準備します。
シェーダーエディター側の適当な余白で、Shift+A テクスチャ→画像テクスチャを選択します。


画像テクスチャの新規をクリックします。




まずはベースカラーをベイクしたいので、名前を「BaseColor」にします。
名前は何でもいいのですが、「BaseColor」にしておくとあとで設定がやりやすくなります。
任意の名前にしたい場合は「○○○_BaseColor」のようにしておくと便利です。
幅と高さは1:1にします。
一般的に使われているサイズは、512、1024、2048、4096 となります。
大きければ大きいほど画質が綺麗になるので、容量も重くなります。
アルファは、透過を使う場合にチェックします。透過をつかっていなければチェックは外しておきます。
新規画像をクリックすると、ベイク先テクスチャの準備は完了です。
ベイク作業
準備ができましたので、いよいよベイクをします。
ベイク結果が見えるように、更に画面を分割します。
シェーダーエディターを表示している左側を上下に分割し、上をUVエディターに変更しました。


UVエディタで画像アイコンをクリックします。
すると、先ほどシェーダーエディタで用意した画像テクスチャ名が選択欄にありますので、そちらを選択します。




UVエディタの表示が真っ黒になりますが、これでOKです。
次に、レンダープロパティを開き、レンダーエンジンをCyclesにします。
ベイクはCycles以外ではできません。




レンダープロパティ内の下のほうに
ベイク
という項目があるので開きます


ベイクタイプを選択します。
今は、ベースカラーのベイクをしようとしていますので
ディフューズを選択します。



何で「ベースカラー」じゃないんやろな


影響の中の
直接照明と間接照明の
チェックを外します。
チェックを入れたままにしていると、レンダービューで確認できるライトやワールドの光の影響を受けてしまいます。
そういった影響は無しで、良い感じにしてほしいときはこのチェックを外します。


余白はベイクした際の余白のサイズです。
デフォルトで問題ないと思いますが、ベイクした際に問題が発生したらサイズを調整してみてください。
シェーダーエディター側で、先ほど作成した画像テクスチャを選択します。


レンダープロパティのベイクをクリックします。
ベイク中は、画面下部にTexture Bakeという表示が出ます。
現在、何%ベイクできたかを表示してくれます。


ベイクできると、UVエディタの表示がこのように変わります。


このケースの場合、他のパンケーキとお皿もベイクしたいです。
オブジェクトもマテリアルも別なので、次のパンケーキのベイクをします。
次にベイクしたいパンケーキのオブジェクトを選択。
マテリアルの表示が該当のものになっていることを確認します。
1つめと同じように、画像テクスチャを追加します。
1つめのときは、新規から新たな画像を作成しましたが、今回は1つめの続きにベイクするので画像アイコンから「BaseColor」を選択します。




レンダープロパティの設定は、1つめとほぼ同じですが、
今回は、出力の画像をクリアのチェックを外します。



これにチェックが入ってると、1つめのベイクが消えちゃうから要注意!!
これで、1つめと同じように、ベイクボタンをクリックして、ベイクされるのを待ちます。
ベイクが完了したら、3つめのパンケーキ、お皿と、同じ要領でベイクしていきます。
全てのオブジェクトのベースカラーのベイクが完了しました。


せっかくベイクが完了したのですが、「BaseColor」は画像としてはまだどこにも保存されていませんので、Blenderを落とすと消えてしまいます。
「BaseColor」を画像ファイルとして保存します。
UVエディタの画像をクリック、名前を付けて保存をクリックします。


保存設定がポップアップします。
保存先とファイルフォーマットを選択します。


特にこだわりが無ければPNGで良いかと思います。
容量を節約したい場合は、JPEGにします。
画像を保存をクリックします。
PCのフォルダで保存先を開いてみます。


先ほど保存したファイルが確認できれば、成功です。
では他の情報もベイクします。
今回、「メタリック」はどのマテリアルでも使っていないので、ベイクする必要がありませんのでパスします。
「粗さ」をベイクします。
シェーダーエディタで、先ほどBaseColorを作った画像ノードの新規作成アイコンをクリックします。




名前を「Roughness」にして
新規画像をクリックします。


色空間を「sRGB」から「非カラー」に変更します。
ベースカラー以外のベイクは、全て「非カラー」にします。
ベースカラーのときと同様、UVエディタの選択を変更します。


UVエディタの表示が、ベースカラーのときと同様、真っ黒になります。




レンダープロパティのベイクタイプを粗さに変更します。
あとは、ベースカラーのとき同様、ベイクボタンをクリックしてベイクします。
他のパンケーキとお皿も同様に、ベイクします。
ベイクできると、UVエディタの表示がこのようになります。


ベースカラーのときと違って、「粗さ」は、白黒で画像が作成されます。
「Roughness」の画像も、BaseColor同様、保存します。
最後に「ノーマル」をベイクします。
作業工程のほとんどは「粗さ」と同じになりますが、下記3点を変更してください。


画像テクスチャの名前は「Normal」、
色空間は「非カラー」
にします。


UVエディタの画像をNormalに変更します。


レンダープロパティのベイクタイプをノーマルにします。
これで、ベイクを行います。
ノーマルのベイクは、このように、紫っぽい色になります。


今回のマテリアルは、あまり凹凸がないため一色に見えますが、凹凸に応じて色に変化が出ます。
こちらも作成した画像を保存します。
画像テクスチャをマテリアルに反映させる
これで必要な種類のベイクが完了しましたので、マテリアルに反映していきます。
今回は比較のために、オブジェクトを複製しました。
複製したオブジェクトに、ベイクという名前のマテリアルを割り当てます。


シェーディングタブに移動します。
マテリアルがベイクになっていることを確認してから、
プリンシプルBSDFを選択して、Ctrl+Shift+Tを押します。


ポップアップウィンドウが開きますので、ベイクで作成した「BaseColor.png」「Normal.png」「Roughness.png」を選択して、プリンシプルテクスチャセットアップをクリックします。


画像ノードが自動設定されて、ベイクした画像がマテリアルに反映されました。





ベイクの際の画像名を「BaseColor」「Roughness」「Normal」という名称にしたのは、この自動設定を行わせるため
以上で、ベイク完了となります。









