Unityでライトをベイクすると、物の表面の明るさや影を前もって計算し、ライトマップというテクスチャに保存できます。
ベイクした光の計算をゲーム中に繰り返さずに済むため、処理の負荷を抑えられます。
MixedやRealtimeのライト、影などの計算は別に残ります。
ベイクの手順は、次の4つです。
- ベイクする物のMesh Rendererで Contribute Global Illumination をオンにする
- ライトのModeを Baked か Mixed にする
- Window → Rendering → Lighting を開き、Lighting Settingsのアセットを割り当てる
- Lightingウィンドウの下にある Generate Lighting を押す
この記事では、この手順と、ベイクしても暗いときの原因を説明します。
説明は、Unity 6.3 LTSの公式マニュアルに基づきます。
ライトのMode、UV生成、ベイク手順と主なトラブルの説明は2026年10月24日に再確認しました。
画面は、Unity 6.6(6000.6.5f1、URP)で練習用の小さな部屋を作って撮影しました。
ライトのModeの切り替え、Contribute GIの設定、Lighting Settingsのアセットの作成、Generate Lightingでのベイク、ベイク前後の見た目の比較、Light Probe Groupを足した再ベイクは、実機で確かめています。
Unity 6.3 LTSの画面、ライトマップ用のUVの作成、MixedのLighting Modeごとの違い、トラブルシューティングの表のうちContribute GI以外の項目は確かめていません。
画面の名前は英語版の表記です。
2026年10月26日に、ベイク手順とベイクした光が出ない場合の公式資料を再照合しました。
以下の画像とベイク結果は2026年10月20日の記録で、今回は再ベイク・画面確認をしていません。
ベイクで何が変わるか
公式マニュアルでは、ライトマップには直接光と、壁などに跳ね返った間接光の両方を入れられると説明されています。
一方で、ライトマップに焼き込んだ内容は、ゲーム中に変えられません。
マニュアルでは、ライトを動かせなくなる代わりに処理が軽くなり、スマートフォンなどの性能の低い機器に向くと説明されています。
Unityのライトマップは、Progressive Lightmapperで作られます。
ライトのModeを選ぶ
ライトをベイクするかどうかは、LightコンポーネントのModeで決めます。
実機では、InspectorのLightの General に Type と Mode があり、Modeの一覧は Realtime、Mixed、Baked の3つでした。

ModeをBakedに切り替えただけでは、ベイクするまでGameビューの見た目は変わりませんでした。
ベイクの結果が無い間は、Bakedのライトもリアルタイムのライトとして描かれます(スクリプトで読んだライトのベイク結果の種類もRealtimeのままでした)。
見た目がBakedの結果に変わるのは、Generate Lightingでベイクした後です。
| Mode | 直接光 | 間接光 | 向いているもの |
|---|---|---|---|
| Baked | ベイク | ベイク | 背景や環境の光 |
| Mixed | 通常はリアルタイム。Subtractiveでは静的な物への直接光もベイク | ベイク | 動かないライト |
| Realtime | リアルタイム | なし(Enlightenを使う場合を除く) | 動く・壊れる・点滅するライト |
ゲーム中の負荷は、Bakedがいちばん小さく、Realtimeがいちばん大きいとされています。
Bakedのライトは、ゲーム中に位置や色を変えてもベイク済みの結果に反映されません。
リアルタイムのスペキュラーや動く物の影は生成しませんが、ベイクした光をLight Probe経由で動く物に反映することはできます。
動くキャラクターにリアルタイムの直接光や影を与えながら間接光をベイクしたい場合は、Mixedを検討します。
Bakedの光をLight Probeで受け取る手順は後述します。
MixedのライトはLighting Modeで動きが変わる
Mixedのライトの動きは、Lighting Settingsのアセットの Lighting Mode で決まります。
| Lighting Mode | 特徴 |
|---|---|
| Distance Shadowmask | 遠くまで影を表現できるが、負荷がいちばん大きい |
| Shadowmask | Distance Shadowmaskに近いが、リアルタイムの影が少なく負荷も小さい |
| Baked Indirect | 間接光をベイクし、影はリアルタイムで描く |
| Subtractive | 簡単な光と影になるが、負荷が小さい |
どのLighting Modeが使えるかはレンダーパイプラインによって違い、マニュアルでは機能比較のページを確かめるよう案内されています。
ベイクの手順
1. ベイクする物をContribute GIにする
公式マニュアルでは、ライトマップに入るのは、Mesh RendererかTerrainを持ち、Contribute GIが付いている物だけとされています。
- 壁や床など、動かない物を選ぶ
- InspectorのMesh Rendererの Lighting にある Contribute Global Illumination をオンにする
- Receive Global Illumination が Lightmaps になっていることを確かめる
マニュアルでは、Contribute Global Illuminationをオンにすると、Receive Global Illuminationも自動でオンになると説明されています。
実機では、床や壁をまとめた親のオブジェクトを選び、Inspector右上の Static の▼から Contribute GI を選びました。
すると、子のオブジェクトにも付けるかを聞く確認(Change Static Flags)が出ました。
Yes, change children を選ぶと、子の床や壁のMesh Rendererで Contribute Global Illumination にチェックが入り、Receive Global Illumination は Lightmaps になっていました。

Receive Global Illuminationの Light Probes は、小さい物や動く物に使う選択肢で、ライトマップではなく近くのLight Probeから光を受け取ります。
マニュアルでは、ベイクには時間がかかるため、Contribute GIにするのは、くぼみや自分の影で明るさが大きく変わる大きな物に絞り、小さい物はLight Probeで照らすよう勧めています。
2. ライトマップ用のUVを用意する
ライトマップには、重ならないUVが必要です。
Projectウィンドウでモデルを選び、InspectorのModelタブの Geometry にある Generate Lightmap UVs をオンにしてApplyを押すと、Unityがライトマップ用のUVを作ります。
自分でUVを作る場合は、ベイク用のUVを2番目のUVチャンネル(Mesh.uv2、UV1とも呼ばれる)に入れます。
この記事の練習では、Unityの標準の平面と立方体だけで部屋を作ったため、モデルを読み込んでGenerate Lightmap UVsを使う手順は確かめていません。
3. Lighting Settingsのアセットを割り当てる
- Window → Rendering → Lighting を開く
- Sceneタブの Lighting Settings Asset が None なら、右の New を押す
- Baked Global Illumination がオンになっていることを確かめる
- Baked Lighting Settings の Lightmap Resolution で、ライトマップの細かさを決める
実機のUnity 6.6では、新しく作ったシーンの Lighting Settings Asset は None で、Mixed Lighting と Baked Lighting Settings の項目は灰色になっていました。
New を押すと New Lighting Settings というアセットができ、項目が変更できるようになりました。
このアセットは、シーンのあるフォルダーではなく、そのときProjectウィンドウで開いていたフォルダーに作られました。
置き場所を決めたい場合は、先にProjectウィンドウでそのフォルダーを開いておきます。
初期値は、Baked Global Illumination がオン、Lighting Mode が Shadowmask、Lightmapper が Progressive GPU、Max Bounces が 2、Lightmap Resolution が 40 texels per unit、Max Lightmap Size が 1024 でした。

マニュアルでは、Baked Global Illuminationをオフにすると、BakedとMixedのライトはすべてRealtimeとして扱われると説明されています。
このとき、LightコンポーネントのInspectorに警告が表示されます。
4. Generate Lightingを押す
Lightingウィンドウの下にある Generate Lighting を押すと、ベイクが始まります。
エディタの右下に進み具合が表示され、終わるとSceneビューとGameビューが更新されます。
できたライトマップは、Lightingウィンドウの Baked Lightmaps タブで確かめられます。
実機では、ベイク中は Generate Lighting のボタンが Cancel に変わり、ウィンドウの下に作っているライトマップの枚数と大きさが表示されました。
終わると、ウィンドウの下にライトマップの枚数、ベイクに使った機器、Total Bake Time(ベイクにかかった時間)が表示されます。
練習用の部屋(床・壁・天井・箱・柱とPoint Lightが1つ)では、ライトマップは1024×1024が1枚でした。
Total Bake Time は、1回目が47.12秒、Light Probe Groupを足した2回目が37.30秒でした。
この2回は条件が異なるため、Light Probe Groupを追加するとベイクが速くなるという比較結果ではありません。
ベイクに使った機器はノートPCの内蔵GPU(AMD Radeon Graphics)で、Lightmapper は初期値の Progressive GPU のままです。
ベイクの結果は、シーンと同じ場所にできたシーン名のフォルダーに、LightingData.asset とライトマップの画像として保存されました。

マニュアルでは、ベイクを始めた後に行った変更は、そのベイクの結果には入らないとされています。
Unity 6ではAuto Generateが削除された
Unity 6.0へのアップグレードガイドでは、Lightingウィンドウの Auto Generate の設定が削除されたと説明されています。
古い版で自動のベイクに頼っていたシーンは、Unity 6で開くとベイクした光が無くなるため、Generate Lightingで焼き直す必要があります。
同じガイドでは、環境光(Ambient Probe)と空の反射も、既定ではベイクされなくなったと説明されています。
新しいシーンには、既定の空に合わせた環境光のデータが割り当てられますが、環境光の設定を変えた場合は、Generate Lightingを押さないと反映されません。
Lightingウィンドウの Bake on Scene Load は、新しいUnity 6のプロジェクトでは Never が既定です。
実機のUnity 6.6で作ったプロジェクトでも、Lightingウィンドウに Auto Generate の項目は無く、Bake On Scene Load は Never でした。
If Missing Lighting Data にすると、ライトのデータが無いシーンを開いたときに自動でベイクされます。
これは、照明の設定を変更するたびに自動更新するAuto Generateとは別の機能です。
既存の照明データがある状態でライトや配置を変えた場合は、Generate Lightingで再ベイクし、Baked Lightmapsの結果を確認します。
ベイクせずに見た目を確かめたい場合は、Sceneビューの描画モードを選び、Lighting Visualizationのオーバーレイで Lighting Data を Preview にすると、一時的なライトマップで表示されます。
ベイクしても暗いときの原因
公式マニュアルのトラブルシューティングでは、ベイクした光が出ず、影や全体が暗くなる原因として、次のものが挙がっています。
| 確かめる場所 | 見ること |
|---|---|
| Mesh Renderer | Contribute Global Illumination がオンか |
| LightのMode | Baked か Mixed か(Realtimeはベイクに入らない) |
| LightのColorとIntensity | 暗い色や弱い強さになっていないか |
| LightのIndirect Multiplier | 0になっていないか |
| Lighting Settingsのアセット | 割り当てられているか、Baked Global Illumination がオンか |
| Max Bounces と Indirect Intensity | 0になっていないか |
| シェーダー | 自作のシェーダーが原因でないか。標準のLitに替えてベイクできるか |
| URPの設定 | URPのアセットで Mixed Lighting が有効か |
| ライトの位置 | ライトが壁や床の中に埋まっていないか |
同じページでは、GPUでのベイク(Progressive GPU)で失敗してCPU(Progressive CPU)で成功する場合は、GPUやドライバーの問題の可能性があるとされています。
その場合は、GPUのドライバーを更新します。
Preferencesの GI Cache にある Clean Cache でキャッシュを消す方法も案内されていますが、シーンのベイク済みのデータも消えるため、もう一度ベイクが必要です。
動くキャラクターだけが黒い
ライトマップは動かない物にしか使われないため、動く物はLight Probeから光を受け取ります。
マニュアルでは、Light Probeが無いと、動く物はシーン全体の環境光(Ambient Probe)だけで照らされ、黒っぽく見えることがあると説明されています。
- GameObject → Create Empty で空のゲームオブジェクトを作る
- Component → Rendering → Light Probe Group を追加する
- SceneビューのToolsのオーバーレイで Edit Light Probe Group を選び、動く物が通る範囲を囲むようにプローブを置く
- Generate Lighting でもう一度ベイクする
実機で、Contribute GIを付けていない球を部屋に置いて確かめました。
ライトをBakedにしてベイクすると、Contribute GIを付けた壁や床は明るいままでしたが、球は暗くなり、床に落ちていた球の影も消えました。
Contribute GIを付けていない物は、ライトマップに入らないため、Bakedのライトの直接の光を受けず、ベイクした影も落としません。
続けて、手順の1と2で球のまわりにLight Probe Groupを置き、もう一度ベイクすると、球が明るくなりました。
このときのプローブは、Componentから追加したときに置かれる初期の8個のままで、手順3の配置の調整はしていません。

金属のように反射の強い物が黒い場合は、Reflection Probeを置くよう案内されています。
あわせて、その物のMesh Rendererの Probes で、Light ProbesとReflection Probesが Off になっていないかを確かめます。
シーンを読み込んだら暗い
マニュアルでは、複数のシーンを使う場合、ライトのデータを持つシーンがアクティブなシーンになっているかを確かめるよう案内されています。
Unityは、最初に読み込んだシーンをアクティブなシーンにします。
LoadSceneMode.Additiveでシーンを追加で読み込んだ場合は、Light Probeの計算に使うデータが自動では組み直されないため、読み込みが終わった後で LightProbes.Tetrahedralize を呼んで組み直す方法が案内されています。
シーンの読み込み方は、Unityでシーンを切り替える方法で説明しています。
参考にした公式ページ
- Introduction to lightmaps and baking
- Set up your scene and lights for baking
- Bake lighting
- Choose a Light Mode
- Lighting Mode
- Generate lightmap UVs
- Lighting window reference
- Upgrade to Unity 6.0
- Troubleshooting no baked global illumination in the scene
- Troubleshooting objects appearing unlit by Light Probes
- Load Light Probes in multiple scenes
ほかの症状はUnityのエラー一覧で、症状別に先に確かめることをまとめています。
