【VRChat】ワールドの照明とベイク入門:小さな部屋に光を焼き込む

作成: 2026-09-08最終更新: 2026-09-09

Point Light 1つをBakedにして焼き込み、床に影を出すまで。Realtime・Baked・Mixedの違い、Contribute GIとGenerate Lighting、ベイク直後に暗くなる理由を解説します。

部屋にライトを置けば明るくなります。ただ、そのライトは実行中ずっと計算され続けます。アバターが何人も入るワールドでは、この計算が重くのしかかります。

動かない床や壁なら、光をあらかじめ計算して表面に保存しておけます。これを ベイク と呼びます。実行中は保存した結果を貼るだけなので、影がきれいに出て、しかも軽くなります。

この記事では、小さな部屋にPoint Lightを1つ置き、Bakedに切り替えて焼き込み、床に影が出るところまでを解説します。

小さな部屋にペンダントライトが灯り、床に影が落ちている

この記事でわかること

  • Realtime・Baked・Mixedの違いと、ワールドでの使い分け
  • Bakedにした直後に暗くなるのは正常だという理由
  • ベイクに必要な3つの設定
  • 焼いた光は実行中に消せない、という制約とその回避策

床と壁のある部屋から始めます。まだなければ Cubeで部屋と階段を作る で作れます。

Sponsored


毎回計算するか、写真に焼き込むか

ライトの設定には3つのモードがあります。違いは「いつ光を計算するか」です。

実行中の変化に追従するRealtimeと、固定した床や壁に事前計算した光を使うBakedの比較
  • Realtime は、毎フレーム「いまこの光はどこに当たるか」を計算します。ライトを動かしても、スイッチで消しても、その場で結果が変わります。分かりやすい代わりに、常時点灯させると重くなります
  • Baked は、制作中に一度だけ計算して、床や壁の表面に明るさと影を焼き付けます。実行中は写真を貼っているだけなので軽く、影もきれいです。その代わり、動かしたり消したりはできません
  • Mixed は、壁には焼き込み、動くものにはリアルタイムで当てる、という混ぜ方です。便利ですがRealtimeの負荷が残るので、最初の1本では使いません

VRChatのワールドでは、部屋の常時点灯はBaked が標準です。Realtimeに残すのは、スイッチで消したいランプや、点滅するネオンのように「動かす必要があるライト」だけにします。Questやスマホにも出すなら、なおさらこの方針になります。

ここで先に知っておいてほしいことがあります。Point Lightを新しく置いたときのModeは、Realtimeです。 Bakedに切り替えるのは自分の操作です。

Sponsored

実践:Point Lightを1つ焼き込む

小さな部屋に照明を1つ置いて、Bakedで焼き込みます。完成すると、ランプの下が明るく、部屋の隅にやわらかい影が落ちます。

1. 天井とライトを置く

「File → Save As」で WorldLab_Lighting.unity として別名保存してから始めます。元のシーンを壊さずに試せます。

天井とライトを追加します。どちらもHierarchyの最上位に置いてください。

名前設定
CeilingCube。Position (0, 3.1, 0)、Scale (6, 0.2, 6)
CeilingLightPoint Light。Position (0, 2.6, 0)、Range 6、Intensity 3、Color 白

Ceilingの下面はY=3で、高さ3mの壁の上端に接します。CeilingLightは天井に埋めず、部屋の中に少し下げて置きます。Shadow Typeは「Soft Shadows」にしておきます。

2. 太陽と環境光を落とす

このままPlayしても、たぶん違いが分かりません。新規シーンには太陽の役割をする Directional Light があり、空からの環境光も入っているので、部屋がすでに明るいからです。

比較できるように、周りの光を落とします。

  1. Hierarchyの Directional Light を無効にする
  2. 「Window → Rendering → Lighting」を開き、Environmentタブへ移動する
  3. Environment Lighting の Source を「Color」にして、Ambient Color を暗い灰色にする

これで、部屋の明るさは CeilingLight だけで決まる状態になります。ClientSimで入ってみて、ランプの下が明るいことを確かめてください。

Ambient(環境光) は、空や周囲から回り込んでくる光です。ライトのIntensityとは別のつまみなので、暗いときに両方を同時にいじると原因が分からなくなります。片方ずつ動かします。

3. Bakedに切り替える(ここで暗くなる)

Playを止めて、CeilingLight のInspectorで Mode を「Baked」 に変えます。

すると、部屋が暗くなります。

Realtimeでは置いた時点で明るい、Bakedにすると一度暗くなる、Generate Lightingで影が出る

これは正常です。 Bakedのライトは、焼き込むまで何も照らしません。ここで「壊れた」と思ってRealtimeに戻してしまう人が多いので、覚えておいてください。暗くなったら、次の手順へ進む合図です。

4. 焼く面を指定する

光を受け取れるのは、「焼く対象」に指定した面だけです。動かない床・壁・天井・階段を対象にします。

対象を選び、Inspectorの右上にある Static のドロップダウンから Contribute GI にチェックを入れます。

この練習で選ぶのは、FloorEntranceFloor・各壁(BackWallLeftWallRightWallFrontLeftFrontRightLintel)・Ceiling・階段の各段と Platform です。

GI(Global Illumination) は、直接届く光だけでなく、壁で反射して回り込む光まで含めて扱う考え方です。Contribute GIは「この面をその計算に参加させる」という意味になります。

VRCWorldSpawnPoint、これから動かすドアや拾える小物には設定しません。動くものを焼き込むと、動かした後で影がずれます。

5. Generate Lightingを押す

Lightingウィンドウの Scene タブを開きます。Lighting Settings Assetがなければ「New Lighting Settings」で作り、WorldLabLighting などと名前を付けます。

最初は次の値にそろえてください。

項目理由
Baked Global IlluminationオンBakedの光を計算する
LightmapperProgressive GPU(使えなければCPU)GPUのほうが速い
Lightmap Resolution20小さな部屋ならこれで十分
Max Lightmap Size10241枚の画像の上限
Auto Generateオフ自分のタイミングで焼く

シーンを保存してから、下部の Generate Lighting を押します。

小さな部屋なら、GPUで数十秒から2分ほどで終わります。CPUだと数分かかります。5分を大きく超えるようなら、設定を疑ってください。 よくある原因は、Lightmap Resolutionが高すぎる(40超)か、部屋のスケールが想定より大きいことです。

焼き終わると、ランプの下が明るくなり、階段や壁ぎわに影が落ちます。これがベイクの完成です。

6. 結果を確かめる

きれいに焼けたか、次を試してみてください。

試すこと見えるはずの結果
Play中に CeilingLight を無効にする床と壁は明るいまま。焼いた光は残る
Lightmap Resolution を 40 にして焼き直す影の輪郭がなめらかになる。時間は長くなる
階段を移動して、焼き直さずにPlayする影が元の位置に残ったままになる

最後の1つが、ベイクの性質をいちばんよく表しています。光は配置と組になっている ので、物を動かしたら焼き直しが必要です。試したら、階段を元に戻して焼き直してください。

焼いた光は、実行中に消せない

ベイクの制約は1つだけ覚えておけば足ります。焼き込んだ光は、実行中に消したり動かしたりできません。

焼いた光は消しても残り、Realtimeなら消える

床や壁の明るさは、もう表面の画像に保存されています。Lightコンポーネントを切り替えても、保存された光はそのまま残ります。

この性質は、後で照明スイッチを作るときに効いてきます。「押すと部屋が暗くなるスイッチ」を作りたいなら、そのライトは Realtimeのままにしておく 必要があります。

現実的な設計はこうなります。

  • 部屋全体の基本の明るさ → Baked(軽くてきれい)
  • スイッチで切り替えるランプ1つ → Realtime(数を絞れば負荷は許容範囲)

Realtimeのライトは、PCワールドで1〜3個までが目安です。Questやスマホにも出すなら、基本は0個、どうしても必要なら影なしで1個にします。全部Realtimeにすると、人が集まった瞬間に重くなります。

もうひとつ、Emission(発光) と混同しないでください。マテリアルのEmissionを上げると面そのものが光って見えますが、それだけで周りを照らすライトになるわけではありません。看板を光らせたいときはEmission、部屋を明るくしたいときはLight、と分けて考えます。

Sponsored

うまくいかないときは

症状ごとに見る場所が違います。

  • Bakedにしたら真っ暗のまま → Generate Lightingを押しましたか。押したなら、床や壁の Contribute GI が入っているかを見ます
  • Bakedにしても明るさが変わらない → ライトがRealtimeのままか、Directional Lightと環境光が強すぎて差が埋もれています
  • 焼いても影が出ない → ライトの Shadow Type が「No Shadows」になっていないか。Rangeが部屋に届いているか
  • 壁の向こうから光が漏れる → 壁と天井の角に隙間がないか。Lightmap Resolutionを上げると改善することもあります
  • 動く小物だけ暗い → ライトマップは動かないものにしか焼けません。Light ProbeとReflection Probe が必要です

おまけ:先に知っておくと良いこと

  • 外部モデルを使うときは Generate Lightmap UVs: UnityのCubeは最初からベイク用のUVを持っていますが、Blenderなどから取り込んだモデルは持っていないことがあります。モデルのImport Settingsで「Generate Lightmap UVs」をオンにしないと、焼いても真っ黒や縞模様になります
  • 粗く焼いてから上げる: 最初からResolutionを高くすると、失敗に気づくまでの待ち時間が長くなります。20で焼いて影の位置を確かめ、良ければ上げます
  • 一部だけ細かくできる: 目立つ床だけきれいにしたいときは、全体のResolutionを上げるより、そのオブジェクトの Scale In Lightmap を上げるほうが効率的です
  • にじみやざらつきは、明るさの問題ではない: 影が汚いときにIntensityをいじっても直りません。UVの重なりか、解像度か、壁の隙間を疑います
  • ライトマップは容量になる: 実行中の計算は減りますが、画像そのものはワールドの容量に乗ります。焼く範囲と解像度は、対象の端末を見て決めます

まとめ

ベイクは、光を先に計算して表面に保存する仕組みです。

  • 部屋の常時点灯はBaked、切り替えたいライトだけRealtimeに残す
  • Bakedにした直後に暗くなるのは正常。Generate Lightingで焼くと明るくなる
  • 必要なのは3つ。ライトをBakedに、面にContribute GIを、そしてGenerate Lightingを押す
  • 焼いた光は実行中に消せない。物を動かしたら焼き直す

つまずいたときの問いかけは、「Bakedにして、面を指定して、焼いたか?」 です。この3つのどれかが抜けていることがほとんどです。

床と壁が明るくなったら、次は動く小物とアバターの明るさです。Light ProbeとReflection Probe で、部屋の中を歩く物をなじませます。音も足すなら BGMと空間音響 へ進めます。

VRChat このセクションのノート63