はじめに
ライティングは、ゲーム開発やデザインにおいて非常に重要な要素です。
特に室内は、窓から差し込む光や、室内の光源など、シーンの雰囲気や表現力を大きく左右する要素がたくさんあります。上手にライティング設定ができれば、シーンのリアリティや没入感を向上させることができます。
また、ライティングは物体やキャラクターの視覚的な表現にも大きく関与し、表面の質感や反射の見え方にも影響するので、ゲーム全体のクオリティに直結します。
本記事では、室内を綺麗にライティングさせる方法やコツについて実際に試しながら紹介します!

事前準備
今回は、こちらの部屋アセットをモデルにして、室内のライティングをしていきます。
デモシーンでは既にライティングされているので、デモシーンのモデルだけをコピーして新しく作成したシーンにペーストしました。


ここからライティングを始めていくよ!
ライティング設定
ライティングは以下の手順で行います。それぞれ解説していきます。
室内のライティング手順
- ライトの配置
- Reflection Probeの配置
- ライトのベイク
- ポストプロセスで仕上げ
ライトの配置
Directional LightのTransform > Rotationを変えて、窓から差し込む光の向きを調整します。部屋の中が明るくなります。


Reflection Probeを使って光の反射を取り入れる
Reflection Probe(リフレクションプローブ)とは?
リフレクションプローブは、ゲームの中で物の表面に映る景色をリアルに見せるための仕組みです。
例えで説明すると
1. 鏡のようなもの
鏡を思い浮かべてみてください。鏡は周りの景色や物を反射して映し出しますよね。リフレクションプローブはゲームの中で、鏡のように周りの景色を物の表面に映し出します。
2. 周りの景色をキャッチするカメラ
リフレクションプローブは、ゲームの中の特定の場所に設置される小さなカメラのようなものです。このカメラは周りの景色を360度ぐるっと全部撮影します。
3. 物に映し出す
撮影した景色の情報を使って、ゲームの中の物にその景色を映し出します。例えば、水たまりに空や周りの建物が映って見えるようにしたり、ピカピカの車に周りの景色が映り込んだりします。
簡単な例
- 学校のプール:プールの水面に空や校舎が映っていますよね。リフレクションプローブを使うと、ゲームの中でも水面に周りの景色がリアルに映るようにできるんです。
- ガラスのビル:大きなガラスのビルは周りの景色を映します。リフレクションプローブを使えば、ゲームの中でもビルのガラスに周りの景色が映り込むようになります。
リフレクションプローブは、ゲームの中で物の表面に周りの景色を映し出して、もっとリアルに見せるための仕組みです。これがあると、ゲームの世界がもっと本物みたいに見えて楽しくなります!
Reflection Probeの配置方法
HierarchyからReflection Probeを作成します。

Reflection Probeは部屋の中心に置き、インスペクターのBox Sizeを変更して、部屋が中に収まるように調整します。

さらに、Box Projection にはチェックを入れておくと、室内の反射の映り込みの品質が上がります。

ここまでできると、全体的に青みがかっていたのが改善し、影がはっきり見えるようになりました。

ライトをベイクしてリアルな光を表現しよう
ライトのベイクとは?
ライティング計算は重い処理なので、ゲームプレイ中にできるだけ計算させたくありません。そのため、あらかじめ計算をさせておく必要があります。これを、ベイクと言います。
簡単に言うと、「ライトのベイク」はゲームの中で明るさをあらかじめ作っておくことです。
これを使うことで、ゲームがもっとリアルに見えて、しかもスムーズに動くようになるんです。
どうやって使うの?
- 光の計算をする
- ゲームの中で、どこに光が当たっていて、どこに影ができるかを計算します。例えば、太陽の光が建物に当たっていると、建物の影が地面にできるのを想像してください。
- 計算結果を保存する
- 計算した光と影の情報をテクスチャという絵のようなものに保存します。これが「ベイクする」ということです。
- ゲームに使う
- 保存した光と影の情報をゲームに使います。これにより、ゲームを動かしている最中にリアルタイムで光の計算をしなくても、きれいな光と影が見えるようになります。
ライトのベイクの下準備
ベイクをさせる前にいくつか準備することがあるので、その手順を説明します。
動かないオブジェクトはStaticにしておく
Staticにチェックを入れておいた物体は、ベイクの対象となります。逆にチェックを入れておかなければ、ゲーム中、リアルタイムにライティングが計算されることになりますので、動く物体でなければ必ずStaticにチェックを入れておきましょう。
Staticにも色々種類がありますが、Contribute GI と Reflection Probe Staticはチェックしておきます。

ライト設定
シーン中のライトはMixedか、Bakedにしておきましょう。

Reflection Probe設定
Reflection ProbeはBakedにしておきます。

ライトのベイク開始
それでは、いよいよベイクを始めます。
Window > Rendering > Lighting から、ライティング設定を開きます。

New Lighting Settings をクリックして、ライティング設定を新規作成します。

Lightingウィンドウの下にあるGenerate Lightingを押すと、ベイクが開始されます。

ベイクに時間がかかる場合は、Lightmapping Settingのクオリティを下げてみましょう。
ベイクが完了すると、室内の光の反射が反映され、リアルになりました。

ただ、室内が暗すぎるので、明るくしてみます。
窓にエリアライトの追加
Area Lightをヒエラルキーから新規作成し、窓におきます。

再びベイクさせると明るくなりました。窓から光が出ているように、エリアライトを窓に配置したため、自然な感じになりますね。

ポストプロセスで仕上げ
ポストプロセスとは?
ポストプロセス(Post-Processing)とは、ゲームや映像のレンダリング後に適用される視覚効果のことを指します。これは、シーンの描画が完了した後に画面全体にかけるフィルターのようなものです。簡単に言えば、ゲームや映像をもっときれいに見せるための最後の仕上げ作業です。
どんな効果があるの?
ポストプロセスにはいろんな効果があります。いくつか例を挙げてみますね。
- ぼかし(Blur)
- 画面の一部や全体をぼかすことで、柔らかい雰囲気を出したり、スピード感を演出したりします。
- 色の調整(Color Grading)
- 画面全体の色を調整して、明るくしたり、暗くしたり、特定の色を強調したりします。
- 輝き(Bloom)
- 明るい部分を輝かせて、光が強く感じられるようにします。太陽の光やライトの光をもっとリアルに見せるために使います。
- 被写界深度(Depth of Field)
- カメラのレンズのように、近くのものにピントを合わせて遠くのものをぼかすことで、立体感を出します。
- フィルムグレイン(Film Grain)
- 古い映画のように画面に少しざらざらした効果を加えることで、特定の雰囲気を演出します。
ポストプロセスのColor GradingとBloomで仕上げをしてみるとこのようになります。ガラッと見栄えが良くなりました。

ポストプロセスのインストール、使い方はこちらをご覧ください。
Color Gradingは、Mode、Temperature、Gamma、Gainをいじって調整しました。この辺りはお好みで色々試してみましょう。

さらに、Ambient Occlusionを追加すると影がはっきりつくようになるので、おすすめです。部屋の隅が暗くなりました。

おわりに
室内のライティング方法の紹介でした!
基本的には以下の流れでライティングを実施し、必要に応じて微調整しながらベイクを繰り返しましょう。ポストプロセスは、ベイクが完了してから仕上げとして最後にやると効率的です。
室内のライティング手順
- ライトの配置
- Reflection Probeの配置
- ライトのベイク
- ポストプロセスで仕上げ
リアルな屋内のおすすめアセットはこちら
Japanese Apartment
