Amazon11/12まで!スマイルSale開催中!セール会場へ

Unityでライトをベイクする方法|ライトマップの設定と暗くなる原因

Unityでライトをベイクする方法 ライトマップと暗くなる原因

Unityでライトをベイクすると、物の表面の明るさや影を前もって計算し、ライトマップというテクスチャに保存できます。

ベイクした光の計算をゲーム中に繰り返さずに済むため、処理の負荷を抑えられます。

MixedやRealtimeのライト、影などの計算は別に残ります。

ベイクの手順は、次の4つです。

  1. ベイクする物のMesh Rendererで Contribute Global Illumination をオンにする
  2. ライトのModeを Baked か Mixed にする
  3. Window → Rendering → Lighting を開き、Lighting Settingsのアセットを割り当てる
  4. 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つでした。

Point LightのInspectorで、LightのGeneralにあるModeの一覧を開いた画面。選択肢はRealtime、Mixed、Bakedの3つ。左のGameビューでは、リアルタイムのライトで球の下に影が出ている
2026-10-20 撮影。Unity 6.6(6000.6.5f1、URP 17.6.0)、Windows 11。LightコンポーネントのModeの一覧。練習用の部屋のPoint LightはRealtimeで、ここからBakedに切り替えました

ModeをBakedに切り替えただけでは、ベイクするまでGameビューの見た目は変わりませんでした。

ベイクの結果が無い間は、Bakedのライトもリアルタイムのライトとして描かれます(スクリプトで読んだライトのベイク結果の種類もRealtimeのままでした)。

見た目がBakedの結果に変わるのは、Generate Lightingでベイクした後です。

Mode直接光間接光向いているもの
Bakedベイクベイク背景や環境の光
Mixed通常はリアルタイム。Subtractiveでは静的な物への直接光もベイクベイク動かないライト
Realtimeリアルタイムなし(Enlightenを使う場合を除く)動く・壊れる・点滅するライト
Unity 6.3 LTSの公式マニュアル「Choose a Light Mode」をもとに作成

ゲーム中の負荷は、Bakedがいちばん小さく、Realtimeがいちばん大きいとされています。

Bakedのライトは、ゲーム中に位置や色を変えてもベイク済みの結果に反映されません。

リアルタイムのスペキュラーや動く物の影は生成しませんが、ベイクした光をLight Probe経由で動く物に反映することはできます。

動くキャラクターにリアルタイムの直接光や影を与えながら間接光をベイクしたい場合は、Mixedを検討します。

Bakedの光をLight Probeで受け取る手順は後述します。

MixedのライトはLighting Modeで動きが変わる

Mixedのライトの動きは、Lighting Settingsのアセットの Lighting Mode で決まります。

Lighting Mode特徴
Distance Shadowmask遠くまで影を表現できるが、負荷がいちばん大きい
ShadowmaskDistance Shadowmaskに近いが、リアルタイムの影が少なく負荷も小さい
Baked Indirect間接光をベイクし、影はリアルタイムで描く
Subtractive簡単な光と影になるが、負荷が小さい
Unity 6.3 LTSの公式マニュアル「Lighting Mode」をもとに作成

どのLighting Modeが使えるかはレンダーパイプラインによって違い、マニュアルでは機能比較のページを確かめるよう案内されています。

ベイクの手順

1. ベイクする物をContribute GIにする

公式マニュアルでは、ライトマップに入るのは、Mesh RendererかTerrainを持ち、Contribute GIが付いている物だけとされています。

  1. 壁や床など、動かない物を選ぶ
  2. InspectorのMesh Rendererの Lighting にある Contribute Global Illumination をオンにする
  3. 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 になっていました。

左は親のRoomでStaticのContribute GIを選んだときに出た「Change Static Flags」の確認。右はFloorのMesh Rendererで、LightingのContribute Global Illuminationにチェック、Receive Global IlluminationがLightmapsになっている
2026-10-20 撮影。Unity 6.6(6000.6.5f1、URP 17.6.0)、Windows 11。親のオブジェクトでContribute GIを付けると、子にも付けるかを聞かれます(左)。Yes, change childrenを選んだ後の床のMesh Renderer(右)

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のアセットを割り当てる

  1. Window → Rendering → Lighting を開く
  2. Sceneタブの Lighting Settings Asset が None なら、右の New を押す
  3. Baked Global Illumination がオンになっていることを確かめる
  4. 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 でした。

Lightingウィンドウの New で作ったNew Lighting SettingsアセットのInspector。Baked Global Illuminationがオン、Lighting ModeがShadowmask、LightmapperがProgressive GPU、Max Bouncesが2、Lightmap Resolutionが40、Indirect Intensityが1
2026-10-20 撮影。Unity 6.6(6000.6.5f1、URP 17.6.0)、Windows 11。Lighting Settings Asset の New で作ったアセットの初期値。Inspectorで表示しています

マニュアルでは、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 とライトマップの画像として保存されました。

LightingウィンドウのBaked Lightmapsタブ。Lighting Data AssetにLightingData、Index 0、Size 1024x1024のライトマップが1枚。下にGenerate Lightingのボタンと、1 baked lightmap、Baking device AMD Radeon (TM) Graphics、Total Bake Time 00:00:37.30の表示
2026-10-20 撮影。Unity 6.6(6000.6.5f1、URP 17.6.0)、Windows 11。ベイク後のBaked Lightmapsタブと、ウィンドウ下の結果の表示。練習用の小さな部屋で、ライトマップは1枚、ベイクは約40秒でした

マニュアルでは、ベイクを始めた後に行った変更は、そのベイクの結果には入らないとされています。

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 RendererContribute Global Illumination がオンか
LightのModeBaked か Mixed か(Realtimeはベイクに入らない)
LightのColorとIntensity暗い色や弱い強さになっていないか
LightのIndirect Multiplier0になっていないか
Lighting Settingsのアセット割り当てられているか、Baked Global Illumination がオンか
Max Bounces と Indirect Intensity0になっていないか
シェーダー自作のシェーダーが原因でないか。標準のLitに替えてベイクできるか
URPの設定URPのアセットで Mixed Lighting が有効か
ライトの位置ライトが壁や床の中に埋まっていないか
Unity 6.3 LTSの公式マニュアル「Troubleshooting no baked global illumination in the scene」をもとに作成

同じページでは、GPUでのベイク(Progressive GPU)で失敗してCPU(Progressive CPU)で成功する場合は、GPUやドライバーの問題の可能性があるとされています。

その場合は、GPUのドライバーを更新します。

Preferencesの GI Cache にある Clean Cache でキャッシュを消す方法も案内されていますが、シーンのベイク済みのデータも消えるため、もう一度ベイクが必要です。

動くキャラクターだけが黒い

ライトマップは動かない物にしか使われないため、動く物はLight Probeから光を受け取ります。

マニュアルでは、Light Probeが無いと、動く物はシーン全体の環境光(Ambient Probe)だけで照らされ、黒っぽく見えることがあると説明されています。

  1. GameObject → Create Empty で空のゲームオブジェクトを作る
  2. Component → Rendering → Light Probe Group を追加する
  3. SceneビューのToolsのオーバーレイで Edit Light Probe Group を選び、動く物が通る範囲を囲むようにプローブを置く
  4. Generate Lighting でもう一度ベイクする

実機で、Contribute GIを付けていない球を部屋に置いて確かめました。

ライトをBakedにしてベイクすると、Contribute GIを付けた壁や床は明るいままでしたが、球は暗くなり、床に落ちていた球の影も消えました。

Contribute GIを付けていない物は、ライトマップに入らないため、Bakedのライトの直接の光を受けず、ベイクした影も落としません。

続けて、手順の1と2で球のまわりにLight Probe Groupを置き、もう一度ベイクすると、球が明るくなりました。

このときのプローブは、Componentから追加したときに置かれる初期の8個のままで、手順3の配置の調整はしていません。

同じ部屋のGameビューを3つ並べた比較。左はRealtimeのライトで黄色い球に影がある。中央はBakedでベイクした後で、壁と床は明るいままだが、Contribute GIを付けていない球は暗くなり影も消えた。右はLight Probe Groupを置いてもう一度ベイクした後で、球が明るくなった
2026-10-20 撮影。Unity 6.6(6000.6.5f1、URP 17.6.0)、Windows 11。左からベイク前(Realtime)、Bakedでベイクした後、Light Probe Groupを足して再ベイクした後。球だけContribute GIを付けていません

金属のように反射の強い物が黒い場合は、Reflection Probeを置くよう案内されています。

あわせて、その物のMesh Rendererの Probes で、Light ProbesとReflection Probesが Off になっていないかを確かめます。

シーンを読み込んだら暗い

マニュアルでは、複数のシーンを使う場合、ライトのデータを持つシーンがアクティブなシーンになっているかを確かめるよう案内されています。

Unityは、最初に読み込んだシーンをアクティブなシーンにします。

LoadSceneMode.Additiveでシーンを追加で読み込んだ場合は、Light Probeの計算に使うデータが自動では組み直されないため、読み込みが終わった後で LightProbes.Tetrahedralize を呼んで組み直す方法が案内されています。

シーンの読み込み方は、Unityでシーンを切り替える方法で説明しています。

スポンサーリンク

参考にした公式ページ

ほかの症状はUnityのエラー一覧で、症状別に先に確かめることをまとめています。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

Unityのおすすめ書籍

開発PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

須澤 元貴のアバター 須澤 元貴 代表社員

MOTOKI合同会社 代表社員。
アニメ・映像業界とゲーム業界で、2D・UI・3D・アニメーション制作、映像編集、ツール制作に携わってきました。
現在はWordPressを中心にWebサイトの制作とカスタマイズを手がけています。
著書に『Unity デザイナーズ・バイブル』『Unityゲーム プログラミング・バイブル 2nd Generation』(ボーンデジタル)。
岡山県出身、埼玉県在住。

目次