
Blenderでテクスチャをベイクする方法
Base Color、Normal、Roughness、MetallicをBlenderで画像にベイクし、真っ黒や空の結果を避けるための手順。
Blenderのテクスチャベイクは、マテリアルや高解像度メッシュの情報を、UV展開された2D画像に書き出す作業です。GLBに埋め込まれたマテリアルを個別の画像として管理したい場合や、複雑なノードをゲーム用の軽いマテリアルにまとめたい場合に使います。
ベイクは「ボタンを押せば終わり」ではなく、UV、対象オブジェクト、アクティブ画像、カラースペースを一つずつ合わせる必要があります。
ベイク前の準備
- GLBまたは作業用ファイルをBlenderで開く
- メッシュにUVがあることをUV Editorで確認する
- Render EngineをCyclesに設定する
- 出力画像を保存するフォルダとファイル名を決める
同じ場所に複数のUVアイランドが重なっていると、異なる部位が同じ画素に書き込まれます。ミラー用の意図的な重なり以外は修正します。
出力用画像を作成する
UV EditorのNew Imageから、ベイク先の画像を作成します。ゲーム用小物なら1Kまたは2Kから試し、ヒーローアセットで細部が必要な場合だ4Kを検討します。解像度を倍にするとメモリ使用量は縦横の積で増えるため、必要以上に大きくしないようにします。
マテリアルのShader EditorにImage Textureノードを追加し、作成した画像を選択します。このノードはPrincipled BSDFに接続しなくても構いませんが、ベイク実行時にアクティブになっている必要があります。
Base Colorをベイクする
Base Colorだけを書き出したい場合は、光と影の影響を混ぜないようにDiffuseベイクを使い、DirectとIndirectを外してColorだけを有効にします。
より確実な方法は、ベイクしたい色をEmissionにつなぎ、Bake TypeをEmitにする方法です。複雑なノード構成の結果をそのまま色画像にしたいときに役立ちます。
Base Color画像は通常、Color SpaceをsRGBにします。
RoughnessとMetallicをベイクする
RoughnessやMetallicは、グレースケールの値をEmissionにつないでEmitとして書き出すと安定します。
- Principled BSDFのRoughnessに入っている値またはテクスチャをEmission Colorに接続
- 出力先のImage Textureノードをアクティブにする
- Emitでベイク
- Metallic用の別画像で同じ手順を繰り返す
これらは色ではなく数値データなので、Color SpaceはNon-Colorに設定します。
Normalをベイクする
高解像度モデルから低解像度モデルへ焼き込む場合は、低解像度側をアクティブにし、Selected to Activeを使います。Ray DistanceまたはCageが小さすぎると穴が開き、大きすぎると近くの別パーツの情報を拾います。小さい値から調整します。
NormalマップもNon-Colorとして保存します。ゲームエンジンによってDirectX形式が必要な場合は、インポート側の設定または緑チャンネルの反転を確認します。
ベイク後は必ず画像を保存する
Blender内に表示されたベイク結果は、自動的にPNGとして保存されるとは限りません。Image EditorのImage > Save Asから、マップごとにファイルへ書き出します。
例:
asset_basecolor.pngasset_normal.pngasset_roughness.pngasset_metallic.png
真っ黒な画像や何も書かれない画像が出た場合は、まず「出力用Image Textureノードがアクティブか」「対象オブジェクトを選択しているか」「Cyclesになっているか」の3点を確認すると、多くの問題を切り分けられます。
著者

その他の記事

GLBモデルにテクスチャを追加する方法
GLBのマテリアル構造、UV、PBRマップを確認し、テクスチャ適用済みモデルを保存するまでの実践手順。


AIで3Dモデルにテクスチャを付ける方法
UV展開済みのGLBを用意し、プロンプトや参考画像からPBRテクスチャを生成する手順を解説します。


Standard・Detailed・Extremeを比較——AIテクスチャの品質の選び方
同じアニメーション付きGLBを3つの品質で生成し、マップ解像度、ファイルサイズ、用途の違いを整理します。
