Blender: テクスチャをベイクする方法

Blenderでテクスチャのベイクをする方法を紹介します。

目次

1 テクスチャをベイクする手順

ここでは例として初めからある立方体を使用してテクスチャのベイクをする方法を紹介します。
それ以外のメッシュを使用する場合は、UV展開が済んでいることマテリアルが追加されていることを確認してください。
また、この記事ではベイクするテクスチャについてはディフューズ(Diffuse)のみ取り上げます。

手順1

ベイクはCyclesを使用時のみ可能なので、プロパティ(Properties)>レンダ―プロパティ(Render Properties)レンダ―エンジン(Render Engine)Cyclesに切り替えます(画像1参照)。

blender bake texture
画像1

手順2

3Dビューポート(3D Viewport)で立方体を選択したらシェーダーエディター(Shader Editor)で画像2のようにノードをつなぎます。

blender bake texture
画像2

左のチェッカーテクスチャ(Checker Texture)ノードは追加(Add)>テクスチャ(Texture)から追加できます。
プリンシプルBSDF(Principled BSDF)ノードとマテリアル出力(Material Output)ノードは初めからあったものです。

ノードをつないだら3Dビューポート(3D Viewport)3Dビューのシェーディング(Viewport Shading)レンダ―(Render)にすると(画像3参照)、

blender bake texture
画像3

立方体は画像4のようになっています。

blender bake texture
画像4

立方体はこの後の手順でも選択したままにしておきます。

手順3

シェーダーエディター(Shader Editor)追加(Add)>テクスチャ(Texture)から画像テクスチャ(Image Texture)ノードを追加します(画像5参照)。
画像テクスチャ(Image Texture)ノードの配置場所はどこでも構いませんが、どのノードともつなげないでおきます。

blender bake texture
画像5

画像テクスチャ(Image Texture)ノード内にある新規(New)をクリックします(画像6参照)。

blender bake texture
画像6

新規画像(New Image)というメニューが表示されるので、名前と解像度を好みの値に設定して(ここでは名前は「無題(Untitled)」、解像度は1024*1024にしておきます)、OKをクリックします(画像7参照)。

blender bake texture
画像7

画像テクスチャ(Image Texture)ノードに上で作成した「無題(Untitled)」というテクスチャ名が表示されていることを確認します(画像8参照)。

blender bake texture
画像8

画像テクスチャ(Image Texture)ノードは選択した状態にしてこの後の作業を行ってください。

手順4

プロパティ(Properties)>レンダ―プロパティ(Render Properties)ベイク(Bake)ベイクタイプ(Bake Type)ディフューズ(Diffuse)に設定して、影響(Influence)直接照明(Direct)間接照明(Indirect)のチェックを外します。設定ができたらベイク(Bake)のボタンをクリックします(画像9参照)。

blender bake texture
画像9

手順5

画像エディター(Image Editor)またはUVエディター(UV Editor)のヘッダーの画像10の部分で「無題(Untitled)」を選択します。

blender bake texture
画像10

すると画像11のようにベイクされたテクスチャが確認できます。

blender bake texture
画像11

手順6

画像エディター(Image Editor)またはUVエディター(UV Editor)のヘッダーの画像(Image)>名前を付けて保存(Save As)をクリックします。

Blenderファイルビュー(Blender File View)というウィンドウが表示されたら、保存場所と保存する画像の形式などを設定して、右下にある画像を別名保存(Save As Image)をクリックして画像を保存します。

保存する画像の形式はデフォルトで画像12のようになっていますが、このまま保存するとテクスチャの背景が透過した状態になります。
透過情報が扱えない画像形式で保存するとテクスチャの背景は黒くなります。

blender bake texture
画像12

手順7

最後に作成したテクスチャをつないで確認してみます。

シェーダーエディター(Shader Editor)で画像13のようにチェッカーテクスチャ(Checker Texture)ノードを外して画像テクスチャ(Image Texture)ノードをつなげます。

blender bake texture
画像13

3Dビューポート(3D Viewport)では画像14のように、チェッカーテクスチャ(Checker Texture)ノードをつないでいたときと画像テクスチャ(Image Texture)ノードをつないでいたときの結果が同じになっていることが確認できます。

blender bake texture
画像14

2 補足

2.1 ディフューズBSDF(Diffuse BSDF)

手順2と手順3で紹介したようにノードをつないでベイクする場合、プリンシプルBSDF(Principled BSDF)ノードのベースカラー(Base Color)以外の設定を変更していると、ベイクしたテクスチャにも影響が残る場合もあるようです。確認した限りではサブサーフェス(Subsurface)メタリック(Metallic)などは影響が残ります。

影響を残さないようにするにはプリンシプルBSDF(Principled BSDF)ノードの設定をリセットするか、ベイクするときだけプリンシプルBSDF(Principled BSDF)ノードの代わりにディフューズBSDF(Diffuse BSDF)ノードを使用するのもいいと思います。

2.2 ベイク(Bake)ができない場合に確認すること

2.2.1

「No active image found in material …」というエラーが表示される場合には、手順3のところで画像テクスチャ(Image Texture)ノード(画像5の枠で囲んだノード)が選択されているか確認してください。

2.2.2

「No valid selected objects」というエラーが表示される場合は、手順4でベイク(Bake)のボタンを押す際にオブジェクトが選択されているか確認してください。

2.2.3

「Object is not enabled for rendering」というエラーが表示される場合には、選択中のオブジェクトのレンダリングの設定がオンになっていることを確認してください。レンダリングの設定については下記の記事で紹介をしています。

2.3 画像の追加

手順3では画像テクスチャ(Image Texture)ノードを追加してベイク用の画像を追加という手順にしましたが、画像エディター(Image Editor)またはUVエディター(UV Editor)でベイク用の画像を追加した後で画像テクスチャ(Image Texture)ノードを追加して追加した画像を設定という順番でも同じ結果になります。

2.4 ふたつ以上のマテリアルを設定している場合

ひとつのオブジェクト内でふたつ以上のマテリアルを設定している場合、全てのマテリアルで手順3の作業を行ってからベイクすると、全てのマテリアルがひとつのテクスチャとしてベイクされます。
このとき画像テクスチャ(Image Texture)ノードで設定する画像はすべてのマテリアルで同じ画像にしてください。

2.5 余白(Margin)

プロパティ(Properties)>レンダ―プロパティ(Render Properties)ベイク(Bake)で設定できる余白(Margin)は、デフォルトでは16pxですが、他のUVマップと重なってベイクされてしまうような場合には値を小さくしてください。

画像15は余白(Margin)を16pxにしてベイクしたものです。

blender bake texture
画像15

画像16は余白(Margin)を3pxにしてベイクしたものです。

blender bake texture
画像16

余白(Margin)の値をあまりに小さくしすぎるとUVマップの内側にベイクされてしまう場合もあるので、最低でも2か3あたりがいいかもしれません。

2.6 複数のUVマップを使用している場合

ひとつのオブジェクト内で複数のUVマップを使用している場合は、プロパティ(Properties)>オブジェクトデータプロパティ(Object Data Properties)>UVマップ(UV Maps)で選択中のUVマップを使用してベイクします。

2.7 解像度・頂点数・アンチエイリアス

この記事ではテクスチャの解像度を1024*1024に設定しましたが、4096*4096などのように解像度を上げるときれいにベイクできる場合もあります。

AOなどはベイクに使用しているメッシュの頂点数が少ないときれいにベイクできないことが多いです(ハイポリからローポリへのベイクも含む)。

Blenderのデフォルトの機能ではアンチエイリアスが使用できないようなので、アドオンを使用するかxNormalやSubstance 3D Painterなどの別のソフトを使用するのもいいと思います。

以上、Blenderの「テクスチャをベイクする方法」でした。

ここで使用しているのはBlender 3.5.0です。

参考サイト: https://docs.blender.org/manual/ja/3.5/render/cycles/baking.html

  • URLをコピーしました!

コメント

コメントする

CAPTCHA

目次