スポンサーリンク
エラー・トラブルシューティング

UnityのLightが効かない原因|シーンが暗い・ライトが反映されない時のチェックリスト

エラー・トラブルシューティング

Unityでライトを置いたのに、シーンが暗いままだと焦りますよね。Intensityを上げても変わらなかったり、Sceneビューでは明るいのにGameビューでは暗かったりすると、「どこを直せばいいの?」と迷いやすいです。

ライティングの不具合は、Lightコンポーネントだけでなく、レイヤー、ベイク、環境光、動くオブジェクトの設定などが関係している場合があります。まずは症状を落ち着いて見比べながら、原因をひとつずつ切り分けていきましょう。


UnityのLightが効かない原因を切り分ける

Lightが反映されないと、「Intensityを上げる」「ライトを追加する」といった対処を試したくなります。しかし、原因が別の場所にあると、設定を変更しても改善しないことがあります。

私もライティングのトラブルに遭遇したときは、まず原因を切り分けるようにしています。順番に確認していけば、多くの場合は短時間で原因を特定できます。

まずは次の5つの順番で確認してみてください。

  1. Lightコンポーネントの設定(Intensity・Range・Culling Maskなど)
  2. ライトの種類(Realtime・Baked・Mixed)
  3. ベイク設定(Generate Lighting・Lightmap Staticなど)
  4. 動くオブジェクトの設定(Light Probeが必要かどうか)
  5. Environment Lightingなどシーン全体の設定

次の表は、症状ごとに最初に確認したい項目です。

症状最初に確認する項目
ライトを置いても全く明るくならないLightコンポーネントの設定
ベイク後だけ暗いGenerate Lighting・Lightmap Static
キャラクターだけ暗いLight Probe
シーン全体が暗いEnvironment Lighting
Sceneビューでは明るいのにGameビューだけ暗いCamera・Environment・Render Pipeline設定

判断に迷ったら、ライトをオブジェクトのすぐ近くに配置し、Intensityを十分高い値にしても変化があるかを確認してみてください。

それでも見た目が変わらない場合は、Lightそのものではなく、ベイク設定や環境ライティングなど別の原因である可能性が高くなります。

まずは最も確認しやすいLightコンポーネントの設定から見ていきましょう。




Light設定が原因か確認する

まず確認したいのは、Lightコンポーネントそのものの設定です。ここが原因の場合は、ベイクや環境光を触らなくても、数値や対象レイヤーを直すだけで改善できることがあります。

特に多いのは、光の強さが足りない光が届く範囲に入っていないCulling Maskで対象を除外しているというパターンです。

IntensityとRangeが不足していないか

Intensityはライトの明るさ、RangeはPoint LightやSpot Lightの光が届く範囲です。Directional Lightはシーン全体に向かって光を当てるタイプですが、Point LightやSpot Lightは距離の影響を強く受けます。

たとえば、部屋の中央にPoint Lightを置いたつもりでも、Rangeが小さいと壁や床まで光が届きません。見た目には「ライトが効いていない」ように見えます。

  • Point Lightを対象オブジェクトの近くに置く
  • Rangeを対象まで届く値にする
  • Intensityを一時的に高めにして変化を見る

確認用として一時的にIntensityを上げるのは有効ですが、最終的な見た目はシーン全体の明るさに合わせて調整しましょう。強くしすぎると、白飛びしたり、影の雰囲気が失われたりすることがあります。

Culling Maskで除外していないか

IntensityやRangeに問題がないのに特定のオブジェクトだけ明るくならない場合は、Culling Maskを確認します。Culling Maskは、そのライトがどのLayerのオブジェクトに影響するかを決める設定です。

ここで対象オブジェクトのLayerが外れていると、ライトはそのオブジェクトを照らしません。初心者のうちはTagとLayerを混同しやすいですが、ライトの対象判定で見るのは基本的にLayerです。

TagとLayerの違いがあいまいな場合は、先にこちらを確認しておくと理解しやすくなります。

判断基準としては、ライトを対象のすぐ近くに置き、Range内に入れて、Culling Maskにも対象Layerが含まれているかを見ます。

この状態でも暗いままなら、Lightコンポーネント単体ではなく、ライトの種類やベイク設定が関係している可能性があります。次は、Realtime・Baked・Mixedの違いを確認していきましょう。




Realtime・Baked・Mixedを確認する

Lightコンポーネントの設定に問題がなさそうなら、次はライトのModeを確認します。Unityのライトには、主にRealtimeBakedMixedがあります。

ここを見落とすと、「数値を変えたのに反映されない」「再生中に色を変えたのに思った通りにならない」といった状態になりやすいです。

Realtimeなら即時反映されるか

Realtimeは、実行中や編集時にライトの変化が反映されやすいモードです。ライトを動かしたり、Intensityを変えたりした時に見た目がすぐ変わるなら、Realtimeとしてはおおむね正常に働いていると考えられます。

ただし、RealtimeでもCulling MaskやRangeの影響は受けます。Modeだけを見て「Realtimeだから大丈夫」と判断せず、前のセクションで確認した項目とセットで見てください。

BakedならGenerate Lightingが必要

Bakedは、ライトの情報を事前に計算してライトマップに焼き込む方式です。設定を変えただけでは見た目が更新されないことがあり、必要に応じてGenerate Lightingを実行します。

確認手順は次の通りです。

  1. LightのModeがBakedになっているか確認する
  2. 照らしたい床や壁がベイク対象になっているか確認する
  3. LightingウィンドウでGenerate Lightingを実行する
  4. 完了後にSceneビューとGameビューの見た目を確認する

Baked Lightは、動かない背景や建物のようなオブジェクトに向いています。一方で、動くキャラクターを直接ライトマップで明るくする用途には向きません。

Mixedは間接光が残る場合がある

Mixedは、RealtimeとBakedの中間のような扱いになるライトです。直接光や影の一部はリアルタイムに扱いつつ、間接光はベイク結果を使う場合があります。

そのため、実行中にライトの色を変えても、壁や床に残っている間接光の色はすぐに変わらないことがあります。たとえば、赤いライトでベイクしたあとにライトを緑に変えても、壁の反射光が赤っぽく残ることがあります。

これは必ずしも不具合ではなく、ベイク済みの情報が残っているために起きる見え方です。

判断基準としては、ライトの設定変更がすぐ見た目に出ない場合は、ModeがBakedやMixedになっていないかを確認します。

Modeを確認してもベイク結果がうまく反映されない場合は、次にStatic設定やLighting Settingsを見ていきましょう。




Baked Lightが反映されない時の対処

Baked Lightを使っているのに見た目が変わらない場合は、Lightそのものよりもベイク対象の設定ライティングの生成状態を確認します。

「ライトは置いた」「ModeもBakedにした」だけでは、ベイク結果が正しく反映されないことがあります。特に床や壁のような動かないオブジェクトが暗いままなら、このセクションを確認してみてください。

Lightmap Staticを確認する

Baked Lightを反映したい床・壁・建物などは、基本的にLightmap Staticの対象にします。これは「このオブジェクトは動かないので、ライトマップに焼き込んでよいですよ」という指定です。

確認手順は次の通りです。

  1. Hierarchyで対象のオブジェクトを選択する
  2. Inspector右上付近のStatic設定を確認する
  3. Lightmap Staticが有効になっているか確認する
  4. 必要に応じて、床や壁など複数の静的オブジェクトにも同じ設定を行う

ただし、プレイヤーや敵、移動するドアのようなオブジェクトに無理にStaticを付けるのは避けた方がよいです。動くものをStatic扱いにすると、見た目や最適化の面で意図しない結果になることがあります。

Generate Lightingを実行する

Lightmap Staticを設定したら、LightingウィンドウでGenerate Lightingを実行します。Baked Lightは事前計算を使うため、設定を変えたあとにライティングを再生成しないと、古い状態のまま見えてしまう場合があります。

操作は次の流れです。

  1. メニューから「Window」→「Rendering」→「Lighting」を開く
  2. LightingウィンドウでLighting Settingsを確認する
  3. Generate Lightingをクリックする
  4. 処理が終わったあと、SceneビューとGameビューを見比べる

Auto Generateが有効な環境では自動で更新される場合もありますが、意図したタイミングで確認したい時は手動でGenerate Lightingを実行した方が原因を追いやすいです。

Lighting Settingsを確認する

Generate Lightingを押しても変化がない場合は、シーンにLighting Settingsが正しく割り当てられているか確認します。Lighting Settingsは、ベイクの品質や環境ライティングなどを管理する設定です。

ここが未設定だったり、別の設定アセットを参照していたりすると、思った通りのライティングにならないことがあります。

  • Lighting Settingsアセットが割り当てられているか
  • ベイク対象のライトがBakedまたはMixedになっているか
  • 対象オブジェクトがLightmap Staticになっているか
  • Generate Lighting後に見た目が更新されているか

判断基準としては、Staticな床や壁が暗いまま、またはベイク後も見た目が変わらない場合は、Lightmap Static・Generate Lighting・Lighting Settingsの3点を優先して確認します。

ここまで確認して床や壁は明るくなったのに、キャラクターや敵だけ暗い場合は、次に動くオブジェクト側のライティングを見ていきましょう。




動くオブジェクトだけ暗い時の対処

床や壁は明るいのに、プレイヤーや敵キャラクターだけ暗く見える場合は、Lightそのものではなく動くオブジェクトへの光の当たり方を確認します。

特にBaked Lightを使っているシーンでは、背景はきれいに明るくなっているのに、キャラクターだけ浮いたように暗くなることがあります。これは設定ミスというより、ライティングの仕組みを知らないと起きやすい状態です。

Lightmapは動く物には基本使えない

Lightmapは、床や壁、建物のような動かないオブジェクトに光の情報を焼き込む仕組みです。そのため、プレイヤーや敵のように移動するオブジェクトには、基本的に同じ方法でベイク光を当てることはできません。

たとえば、部屋のライトをベイクして壁や床が明るくなっても、移動するキャラクターがその明るさを自然に受け取れないことがあります。その結果、背景だけ明るく、キャラクターだけ暗いように見えてしまいます。

この状態でキャラクターに無理にStaticを付けるのはおすすめしません。動く予定のオブジェクトをStatic扱いにすると、移動や描画、ライティングの結果が意図とずれる場合があります。

Light Probeを配置する

動くオブジェクトに周囲の明るさをなじませたい場合は、Light Probeを使います。Light Probeは、空間内の明るさ情報をサンプルして、動くオブジェクトに近いライティングを与えるための仕組みです。

設定の流れは次の通りです。

  1. Hierarchyで空のGameObjectを作成する
  2. Light Probe Groupコンポーネントを追加する
  3. キャラクターが移動する範囲を囲むようにProbeを配置する
  4. 床付近だけでなく、高さ方向にもProbeを置く
  5. Generate Lightingを実行して見た目を確認する

Light Probeは、平面に並べるだけでは効果が分かりにくいことがあります。キャラクターの頭上や足元など、移動する空間を立体的に囲むように配置すると、明るさの変化を拾いやすくなります。

判断基準としては、床や壁は明るいのに、プレイヤー・敵・移動するアイテムだけ暗い場合は、Light Probeの不足を疑います。

動くオブジェクトまで自然に見えるようになったら、次はシーン全体の暗さに関係するEnvironment Lightingを確認していきましょう。




シーン全体が暗い時の対処

ライト本体やベイク設定に問題がなさそうなのに、シーン全体が暗く見える場合は、Environment Lightingを確認します。これは、シーン全体にかかる環境光の設定です。

Point LightやSpot Lightを追加しても全体の印象があまり変わらない時は、個別のライトではなく、空や背景、環境光の明るさが影響していることがあります。

Environment Lightingを確認する

Environment Lightingは、Lightingウィンドウから確認できます。

  1. メニューから「Window」→「Rendering」→「Lighting」を開く
  2. Environmentの項目を確認する
  3. SourceがSkybox、Gradient、Colorのどれになっているか見る
  4. Intensity Multiplierが極端に低くなっていないか確認する

たとえば、SourceがColorで暗い色になっていたり、Intensity Multiplierがかなり低い値になっていたりすると、シーン全体が重く暗い印象になります。

Skyboxを使っている場合は、Skybox自体の明るさや見た目も影響します。空が暗い設定だと、環境光も暗く感じやすくなります。

Gameビューだけ暗い場合は別原因も見る

Sceneビューでは明るいのにGameビューだけ暗い場合は、Lightだけが原因とは限りません。CameraやPost Processing、Render Pipelineの設定が見た目に影響していることがあります。

  • CameraのClear FlagsやBackground
  • Post Processingの露出や色調補正
  • URPやHDRPのRender Pipeline設定
  • SceneビューとGameビューの表示条件の違い

このあたりはライティング単体の問題から少し外れるため、深く触りすぎると原因の切り分けが難しくなります。画面全体の暗さを詳しく確認したい場合は、こちらの記事も参考になります。

また、URPとBuilt-inではライトや環境設定の見え方が変わることがあります。レンダーパイプラインの違いが気になる場合は、こちらで整理しておくと判断しやすいです。

判断基準としては、すべてのオブジェクトが暗い、ライトを増やしてもシーン全体の印象が変わらない場合は、Environment Lightingを優先して確認します。

ここまで確認してもLightが効かないように見える場合は、ライティング以外の原因に切り分けた方がよいケースもあります。




まとめ

Lightが効かない時は、感覚で設定を増やすよりも、症状に合わせて確認場所を分ける方が解決しやすくなります。

まずはシンプルなライトで見た目が変わるかを試し、そこからベイク、動くオブジェクト、環境光、表示まわりへ順番に切り分けてみてください。原因を1つずつ確認できるようになると、今後のシーン作りでも迷いにくくなります。

Unityの基礎から整理して学び直したい場合は、入門書を手元に置いておくのもおすすめです。

Unityの教科書
✅ Amazonでチェックする✅ 楽天でチェックする


よくある質問(FAQ)

Q
UnityでLightを置いても明るくならない時、最初に見る場所は?
A

まずはLightコンポーネントのIntensityRangeCulling Maskを確認します。ライトを対象オブジェクトの近くに置き、Range内に入っているか、対象のLayerがCulling Maskに含まれているかを見てください。

この状態でも明るさが変わらない場合は、Light本体ではなく、BakedやMixedなどのMode、Generate Lighting、Environment Lightingが関係している可能性があります。

Q
床や壁は明るいのにキャラクターだけ暗いのはなぜ?
A

床や壁にはBaked Lightのライトマップが反映されていても、プレイヤーや敵のような動くオブジェクトには同じ光の情報が反映されにくい場合があります。

この場合は、キャラクターをStaticにするのではなく、Light Probeを配置して周囲の明るさを受け取れるようにします。移動範囲を囲むように、平面ではなく高さも含めて配置するのが判断の目安です。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク