ノーマルマップのベイクは、細かい凹凸のあるハイポリのモデルの「光の当たり方」を画像に写し、少ない面のローポリのモデルに貼る方法です。
ゲームエンジンで、軽いモデルのまま細かく見せたいときに使います。
- レンダーエンジンを Cycles にする(ベイクは Cycles の機能)
- ローポリに UV を作り、焼き先の画像(色空間は「非カラー」)を置いた画像テクスチャのノードを選んでおく
- ハイポリ → ローポリの順に選び、ベイクタイプ「ノーマル」・「選択物 → アクティブ」で「ベイク」
- 焼いた画像は「ノーマルマップ」のノードを通して、BSDF の「ノーマル」につなぐ
この記事の画像と数値は、2026年9月29日に Blender 5.2.1 LTS で、猿の頭(Suzanne)を使って試した結果です。
操作の名前は、Blender の日本語の表示に合わせています。
試した結果
500面のローポリと、それを細分化して雲模様で凹凸を付けた31,488面のハイポリを用意し、1024×1024 の画像にベイクしました。

ノーマルマップを貼ったローポリには、ハイポリの細かい凹凸の陰影が出ました。
一方で、輪郭(シルエット)はローポリのままで、耳のふちなどの角ばった形は変わりません。
ノーマルマップは光の当たり方を変えるだけで、形そのものは変えないためです。
ベイクにかかった時間は0.8秒でした(CPU、サンプル数32)。
手順
1. 準備
- プロパティの「レンダー」で、レンダーエンジンを Cycles にする
- ローポリに UV を展開する(UV が重なっていないこと)
- ローポリのマテリアルに「画像テクスチャ」のノードを足し、新しい画像(例:1024×1024)を作る
- その画像の色空間を「非カラー」にする
- 画像テクスチャのノードをクリックして、選んだ状態(アクティブ)にしておく
ベイクの結果は、マテリアルの中でアクティブになっている画像テクスチャのノードに書き込まれます。
UV の展開は、BlenderのUV展開の基本で紹介しています。
2. ベイクする
- オブジェクトモードで、ハイポリをクリックし、Shift を押しながらローポリをクリックする(ローポリがアクティブ)
- 「レンダー」→「ベイク」の「ベイクタイプ」を「ノーマル」にする
- 「選択物 → アクティブ」をオンにする
- 「押し出し」(ケージの押し出し)を少し入れる(今回は 0.05)
- 「ベイク」を押す
焼けたら、画像エディターの「画像」メニューから保存します(保存しないと、Blender を閉じたときに消えます)。
3. 貼る
- 焼いた画像の画像テクスチャのノードを、「ノーマルマップ」のノードの「カラー」につなぐ
- 「ノーマルマップ」のノードの「ノーマル」を、プリンシプル BSDF の「ノーマル」につなぐ
- ハイポリは隠すか、消す
うまく焼けないとき
| 症状 | 見直すところ |
|---|---|
| 一部が赤や緑の色になる・模様が抜ける | 「押し出し」「レイの最大距離」を少し大きくする。ハイポリとローポリの位置がずれていないか |
| 画像が更新されない・狙った凹凸が出ない | ハイポリ→ローポリの選ぶ順番(ローポリがアクティブ) |
| つなぎ目に線が出る | 「余白」を大きくする。UV のアイランドの間をあける |
| 陰影が逆に見える | 画像の色空間が「非カラー」か。ゲームエンジンの形式(OpenGL と DirectX で緑の向きが逆) |
今回の結果でも、耳のふちや目のまわりなど、ハイポリとローポリの形の差が大きい所に、赤や緑の点が出ました。
練習用データでベイクして保存する
Blender練習用データをダウンロード(ZIP・約2.1MB)
ZIPを別フォルダーへ展開してから開き、元のファイルを上書きせずコピーで試してください。
Blender 5.2.1 LTSで生成し、背景実行でデータと処理を検証したものです。
GUIのクリック操作とUnityへの取り込みは、今回の検証には含みません。
normal-ready.blend は Low(焼き先500面)と High(焼き元31,488面)、UV、非カラーの1024×1024画像、選択物→アクティブを用意した入力です。
カメラと照明を含まないベイク用データなので、陰影はマテリアルプレビューで確認します。
- Lowをアクティブにし、LowとHighの2つが選択されているか確認する
- Lowの画像テクスチャをアクティブにし、ノーマル・タンジェント空間・押し出し0.05でベイクする
- 画像エディターで結果を確認し、元の画像と別の名前で保存する
- 「ノーマルマップ」を通してBSDFのノーマルへつなぎ、Highを非表示にして陰影を比べる
- 別名でblendファイルも保存する
2026年10月2日に Blender 5.2.1 LTSの背景実行で再検証しました。
ベイクした画像にRGBの変化が入り、Lowの面数は500のままでした。
normal-baked.blend は、結果画像をパックし、ノーマルマップ経由で接続した比較用ファイルです。
タンジェント空間のノーマルマップでは、平坦な部分が青紫になるのは通常の値で、色だけでは選択順の誤りを判定できません。
赤や緑も法線の向きを表す成分なので、点の色だけで失敗と決めず、貼り付け後の不自然な陰影と照合します。
画像が更新されなければアクティブ画像ノードと保存先、模様が抜ける場合はUVと投射距離・位置を順に確認します。
元に戻すには、接続したノーマルマップを外すか、未編集の練習用blendファイルを開き直します。
ゲームエンジンに持っていく
焼いたノーマルマップは、ローポリの FBX と一緒に渡し、エンジン側でノーマルマップとして設定します。
書き出しの設定は、BlenderのFBXをUnityに書き出す設定で紹介しています。
まとめ
- Cycles で、ハイポリ → ローポリの順に選んで「ノーマル」をベイク
- 焼き先の画像は「非カラー」で、画像テクスチャのノードをアクティブに
- 貼るときは「ノーマルマップ」のノードを通す
- 形(輪郭)は変わらない。色だけで失敗を判断せず、実際の陰影とベイク設定を確認する
参考:Blender 5.2.1 LTS でのベイクと描画の結果(2026年9月29日)。
追加確認:Blender公式マニュアル(2026年10月2日取得)と、本文で区別した背景実行の結果。
