部屋にライトを置けば明るくなります。ただ、そのライトは実行中ずっと計算され続けます。アバターが何人も入るワールドでは、この計算が重くのしかかります。
動かない床や壁なら、光をあらかじめ計算して表面に保存しておけます。これを ベイク と呼びます。実行中は保存した結果を貼るだけなので、影がきれいに出て、しかも軽くなります。
この記事では、小さな部屋にPoint Lightを1つ置き、Bakedに切り替えて焼き込み、床に影が出るところまでを解説します。
この記事でわかること
- Realtime・Baked・Mixedの違いと、ワールドでの使い分け
- Bakedにした直後に暗くなるのは正常だという理由
- ベイクに必要な3つの設定
- 焼いた光は実行中に消せない、という制約とその回避策
床と壁のある部屋から始めます。まだなければ Cubeで部屋と階段を作る で作れます。
毎回計算するか、写真に焼き込むか
ライトの設定には3つのモードがあります。違いは「いつ光を計算するか」です。

- Realtime は、毎フレーム「いまこの光はどこに当たるか」を計算します。ライトを動かしても、スイッチで消しても、その場で結果が変わります。分かりやすい代わりに、常時点灯させると重くなります
- Baked は、制作中に一度だけ計算して、床や壁の表面に明るさと影を焼き付けます。実行中は写真を貼っているだけなので軽く、影もきれいです。その代わり、動かしたり消したりはできません
- Mixed は、壁には焼き込み、動くものにはリアルタイムで当てる、という混ぜ方です。便利ですがRealtimeの負荷が残るので、最初の1本では使いません
VRChatのワールドでは、部屋の常時点灯はBaked が標準です。Realtimeに残すのは、スイッチで消したいランプや、点滅するネオンのように「動かす必要があるライト」だけにします。Questやスマホにも出すなら、なおさらこの方針になります。
ここで先に知っておいてほしいことがあります。Point Lightを新しく置いたときのModeは、Realtimeです。 Bakedに切り替えるのは自分の操作です。
実践:Point Lightを1つ焼き込む
小さな部屋に照明を1つ置いて、Bakedで焼き込みます。完成すると、ランプの下が明るく、部屋の隅にやわらかい影が落ちます。
1. 天井とライトを置く
「File → Save As」で WorldLab_Lighting.unity として別名保存してから始めます。元のシーンを壊さずに試せます。
天井とライトを追加します。どちらもHierarchyの最上位に置いてください。
| 名前 | 設定 |
|---|---|
Ceiling | Cube。Position (0, 3.1, 0)、Scale (6, 0.2, 6) |
CeilingLight | Point Light。Position (0, 2.6, 0)、Range 6、Intensity 3、Color 白 |
Ceilingの下面はY=3で、高さ3mの壁の上端に接します。CeilingLightは天井に埋めず、部屋の中に少し下げて置きます。Shadow Typeは「Soft Shadows」にしておきます。
2. 太陽と環境光を落とす
このままPlayしても、たぶん違いが分かりません。新規シーンには太陽の役割をする Directional Light が あり、空からの環境光も入っているので、部屋がすでに明るいからです。
比較できるように、周りの光を落とします。
- Hierarchyの
Directional Lightを無効にする - 「Window → Rendering → Lighting」を開き、Environmentタブへ移動する
- Environment Lighting の Source を「Color」にして、Ambient Color を暗い灰色にする
これで、部屋の明るさは CeilingLight だけで決まる状態になります。ClientSimで入ってみて、ランプの下が明るいことを確かめてください。
Ambient(環境光) は、空や周囲から回り込んでくる光です。ライトのIntensityとは別のつまみなので、暗いときに両方を同時にいじると原因が分からなくなります。片方ずつ動かします。
3. Bakedに切り替える(ここで暗くなる)
Playを止めて、CeilingLight のInspectorで Mode を「Baked」 に変えます。
すると、部屋が暗くなります。

これは正常です。 Bakedのライトは、焼き込むまで何も照らしません。ここで「壊れた」と思ってRealtimeに戻してしまう人が多いので、覚えておいてください。暗くなったら、次の手順へ進む合図です。
4. 焼く面を指定する
光を受け取れるのは、「焼く対象」に指定した面だけです。動かない床・壁・天井・階段 を対象にします。
対象を選び、Inspectorの右上にある Static のドロップダウンから Contribute GI にチェックを入れます。
この練習で選ぶのは、Floor・EntranceFloor・各壁(BackWall・LeftWall・RightWall・FrontLeft・FrontRight・Lintel)・Ceiling・階段の各段と Platform です。
GI(Global Illumination) は、直接届く光だけでなく、壁で反射して回り込む光まで含めて扱う考え方です。Contribute GIは「この面をその計算に参加させる」という意味になります。
VRCWorld や SpawnPoint、これから動かすドアや拾える小物には設定しません。動くものを焼き込むと、動かした後で影がずれます。
5. Generate Lightingを押す
Lightingウィンドウの Scene タブを開きます。Lighting Settings Assetがなければ「New Lighting Settings」で作り、WorldLabLighting などと名前を付けます。
最初は次の値にそろえてください。
| 項目 | 値 | 理由 |
|---|---|---|
| Baked Global Illumination | オン | Bakedの光を計算する |
| Lightmapper | Progressive GPU(使えなければCPU) | GPUのほうが速い |
| Lightmap Resolution | 20 | 小さな部屋ならこれで十分 |
| Max Lightmap Size | 1024 | 1枚の画像の上限 |
| Auto Generate | オフ | 自分のタ イミングで焼く |
シーンを保存してから、下部の Generate Lighting を押します。
小さな部屋なら、GPUで数十秒から2分ほどで終わります。CPUだと数分かかります。5分を大きく超えるようなら、設定を疑ってください。 よくある原因は、Lightmap Resolutionが高すぎる(40超)か、部屋のスケールが想定より大きいことです。
焼き終わると、ランプの下が明るくなり、階段や壁ぎわに影が落ちます。これがベイクの完成です。
6. 結果を確かめる
きれいに焼けたか、次を試してみてください。
| 試すこと | 見えるはずの結果 |
|---|---|
Play中に CeilingLight を無効にする | 床と壁は明るいまま。焼いた光は残る |
| Lightmap Resolution を 40 にして焼き直す | 影の輪郭がなめらかになる。時間は長くなる |
| 階段を移動して、焼き直さずにPlayする | 影が元の位置に残ったままになる |
最後の1つが、ベイクの性質をいちばんよく表しています。光は配置と組になっている ので、物を動かしたら焼き直しが必要です。試したら、階段を元に戻して焼き直してください。
焼いた光は、実行中に消せない
ベイクの制約は1つだけ覚えておけば足ります。焼き込んだ光は、実行中に消したり動かしたりできません。

床や壁の明るさは、もう表面の画像に保存されています。Lightコンポーネントを切り替えても、保存された光はそのまま残ります。
この性質は、後で照明スイッチを作るときに効いてきます。「押すと部屋が暗くなるスイッチ」を作りたいなら、そのライトは Realtimeのままにしておく 必要があります。
現実的な設計はこうなります。
- 部屋全体の基本の明るさ → Baked(軽くてきれい)
- スイッチで切り替えるランプ1つ → Realtime(数を絞れば負荷は許容範囲)
Realtimeのライトは、PCワールドで1〜3個までが目安です。Questやスマホにも出すなら、基本は0個、どうしても必要なら影なしで1個にします。全部Realtimeにすると、人が集まった瞬間に重くなります。
もうひとつ、Emission(発光) と混同しないでください。マテリアルのEmissionを上げると面そのものが光って見えますが、それだけで周りを照らすライトになるわけではありません。看板を光らせたいときはEmission、部屋を明るくしたいときはLight、と分けて考えます。
うまくいかないときは
症状ごとに見る場所が違います。
- 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と空間音響 へ進めます。