この記事ではBlenderでマテリアルをテクスチャにベイクする方法について紹介します。
私自身もまだBlender初心者ですが特にベイク関係で悩むことが多かったので、情報の整理も兼ねてアウトプットしておきます。
同じような初心者の方の助けになればと思います。
Blenderのバージョンは3.1.2を使用しています。
テクスチャのベイク方法
1.シェーダーを設定
立方体のオブジェクトを使って説明していきます。

マテリアルを設定します。
例として、ボロノイテクスチャを追加してベースカラーにつなげてみました。

2.UV展開する
「UV Editing」を開きます。
右側の画面でTabキーを押して編集モードに切り替え、Aキーで全選択します。

左側の画面の上部にある「新規」をクリックします。
名前を付けてOKをクリックし、新規画像を作成します。

OKをクリックすると表示が少し変わりました。
念のためこの状態で画像を保存しておきます。
「画像 > 名前をつけて保存」で任意の場所に保存しましょう。

3.ベイクする
再度Shadingを開きます。
Shift + Aを押してテクスチャから画像テクスチャを追加します。
画像テクスチャノードの写真のアイコン(新規ボタンの左側)をクリックし、先ほど作成した画像の名前を選択します。

ベイクするためにレンダープロパティの設定を変更します。
レンダーエンジンを「Cycles」に変更します。

レンダーエンジンを変更すると下の方にベイクが表示されているので、クリックして展開します。
ベイクタイプを「ディフューズ」に変更し、影響の中にあるチェックボックスは「カラー」のみチェックが入っている状態にします。

ここまで設定出来たら、画像テクスチャを選択した状態でベイクをクリックします。

ベイクが完了すると左下のビューにベイクした画像が表示されます。

テクスチャ画像は必ず保存しておきましょう。
三本線が並んだアイコンをクリックして、「画像 > 名前を付けて保存」から保存できます。
これでマテリアルのベイクは完了です。

4.テクスチャの表示を確認してみる
ちゃんとベイクできているか確認してみます。
もう一つ立方体を追加しました。

新規をクリックしてマテリアルを追加し、さらに画像テクスチャノードを追加します。
「開く」をクリックし、保存したテクスチャ画像を選択します。

画像テクスチャのカラーとプリンシプルBSDFのベースカラーをつなぎます。
立方体が最初にボロノイテクスチャで設定した方と同じ見た目になりました!

Unityでも表示できるか確認
fbx形式でエクスポートして、fbxファイルとテクスチャ画像をUnityに持っていきます。

Projectウィンドウで立方体のモデルを選択します。
InspectorウィンドウのMaterialsを表示し、「Extract Materials」をクリックします。
マテリアルの保存場所を聞かれるので、Assets下の任意の場所を選択してください。

マテリアルが追加されます。

マテリアルを選択します。
Inspectorウィンドウに「Albedo」という部分があるので、ここにテクスチャ画像をドラッグアンドドロップします。
するとオブジェクトにマテリアルが反映され、Blenderと同じ見た目になりました。

5.注意点
メタリックの値が「0」以外になっている状態でベースカラーをベイクしようとすると、色が黒っぽくなった状態でベイクされます。
回避するにはメタリックをいったん「0」にした状態でベイクしてください。

おまけ:ベースカラー以外のベイク
粗さやノーマルなど、ベースカラー以外のベイクをする場合はベイクタイプを変更します。
ベースカラーの場合はディフューズを選択しましたが、ベイクタイプのリストの中には「粗さ」や「光沢」などもあるのでベイクするものに応じてタイプを変更する必要があります。

試しに粗さを「1.0」に変更し、ベイクタイプを「粗さ」にしてベイクしてみました。
粗さは白黒で0~1の値が表現されます。

ベイクタイプには「メタリック」がありません。
調べてみたところ、メタリックをベイクしたい場合はベイクタイプで「放射」を選択するようです。
複数のマテリアルを1つのテクスチャにベイク
複数のマテリアルを1つのテクスチャ画像にまとめてベイクする方法についても紹介しておきます。
例として、異なるマテリアルを設定した2つのオブジェクトを使用して説明します。

1つの時と同じようにUV EditingからUV展開した画像を作成していきます。
このとき、少し大きめのサイズで作成します。

この中に他のオブジェクトもUV展開していくため、先ほど展開された図の大きさと位置を変更しておきます。
操作はオブジェクトの編集モードと同じようにAで全選択、Sで拡大縮小、Gで移動などができます。

次のオブジェクトもUV展開します。
複数選択するには、Tabを押してオブジェクトモードに切り替え、Shiftを押しながらオブジェクトを選択してTabキーで編集モードへ切り替えます。
Aを押して全選択し、先ほどと同じようにUV展開した画像の位置を調整します。
全てのオブジェクトがUV展開できたら画像を保存しておきましょう。

Shadingへ移動します。
それぞれのオブジェクトのマテリアルに画像テクスチャノードを追加し、保存したUV展開画像を指定します。
このとき、各マテリアルで画像テクスチャノードを選択状態にしておいてください。

ベイク設定をし、オブジェクトを全て選択した状態でベイクをクリックします。

ベイクが完了すると、選択したオブジェクトのマテリアルがそれぞれベイクされました。

画像テクスチャのカラーとプリンシプルBSDFのベースカラーをつないでベイクが正しく実行できたか確認しておきましょう。

まとめ:UV展開→画像テクスチャノードを追加→ベイク!
マテリアルをテクスチャにベイクしたい場合、ざっくり以下の手順でできました。
・UV展開して画像を保存しておく
・画像テクスチャノードを追加し、UV展開時に保存した画像を設定
・画像テクスチャノードを選択した状態でベイク
ベースカラー以外をベイクする場合はベイクタイプを変更すればOKです。
複数のマテリアルを1つのテクスチャにまとめる場合は、1つにまとめたいオブジェクト全てをUV展開し、ベイクするときにオブジェクトを全て選択した状態でベイクすればできました。
Blenderで作成してUnityで使用する場合にテクスチャが必要になるので、テクスチャにベイクする方法は必ず押さえておきたいところですね。
コメント