CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Unity】ライトマップのベイクが汚い・遅いときの対処法

こんにちは!コチラの記事では、Unity のライトマップのベイクの方法と、ベイクが汚い・遅いときの対処法について解説していきます!
ライトマップのベイクとは
ライトマップのベイクとは、事前計算した光の当たり方の情報をライトマップというテクスチャーにする処理のことです。

なぜこのような処理が必要になるかというと、複雑な光の計算をリアルタイムで行うととても処理負荷がかかってしまうためです。
事前に光の当たり方を計算し、その情報をテクスチャーにしておくことで、処理負荷が軽減され、少ない処理負荷で光を表現することができるのです。
ライトマップのベイクの方法
それではライトマップのベイクの基本的な手順を以下ご紹介します。

ベイクしたい動かないゲームオブジェクトすべてに Static のチェックを入れましょう。


以上がライトマップのベイクの基本的な手順となります。
ライトマップのベイクが汚いときの対処法
ライトマップのベイクをしたもののギザギザしたまだら模様が出てしまったり、ノイズが出てしまったりと、汚くなってしまったときの対処法を以下ご紹介します。
ギザギザとしたまだら模様(バンディング)が出る場合

Format の設定を「 Automatic 」に変更する
このようにまだら模様が出てしまった場合、ライトマップを選択し、Inspector → Default → Format が「 Automatic 」になっているか確認してみてください。
ここが RGB16bit などになっていると、上の画像のようなまだら模様がでてしまうことがあります。
その場合には、Format の設定を「 Automatic 」に変更し、 Apply することで改善することができます。

「 Lighting Compression 」を「 None 」または「 High Quality 」に変更する。

また、ライトマップの圧縮の設定を見直すことでもバンディングを改善することができます。
Window → Rendering → Lighting を選択し Lighting ウインドウを開き、「 Lighting Compression 」を「 None 」または「 High Quality 」に変更してみてください。
斑点のようなノイズが出る場合

このように斑点のようなノイズが出てしまう場合には、まずWindow → Rendering → Lighting を選択し Lighting ウインドウを開きます。
Lightmapping Settings →「 Filtering 」を確認してみてください。

「 None 」になっていると上の画像のようなノイズが出てしまうことがありますので、「 Auto 」に変更することで改善します。
ライトマップのベイクが遅い・終わらないときの対処法
ライトマップのベイクが遅い・終わらないときにはいくつかの対処法があります。
- サンプル数の値を少なくする。
- Max Lightmap Size の値を小さくする。
- LightmapperをGPUに変更する。
- Lightmap Resolution の値を小さくする。
- 素早くベイクできるアセットを購入する。
それでは対処法を順番に解説していきます。
サンプル数を少なくする

Window → Rendering → Lighting を選択し Lighting ウインドウを開き、「 Direct Samples 」「 Indirect Samples 」「 Environment Samples 」の値を確認しましょう。
ここの値が大きすぎるとベイクに時間がかかるので、少ない値に変更しましょう。
Max Lightmap Size を小さくする

Window → Rendering → Lighting を選択し Lighting ウインドウを開き、「 Max Lightmap Size 」の値を確認しましょう。
この値についても大きすぎる場合には、適切な小さい値に変更しましょう。
Light mapper を GPU に変更する

ライトマップのベイク処理には、CPU か GPU を使用します。
GPU を使用したベイクの方が速く処理を終えることができるので、Window → Rendering → Lighting を選択し Lighting ウインドウを開き、「 Lightmapper 」を GPU に変更してみましょう。
コチラは、GPU対応のグラフィックボードが入っている場合に限る方法になります。
また対応しているUnityのバージョンが2023以降のものになりますので、使用している Unity のバージョンを確認してみてください。

Lightmap Resolution の値を小さくする

ライトマップの解像度が高い場合にも、ライトマップのベイクに時間がかかります。
Window → Rendering → Lighting を選択し Lighting ウインドウを開き、「 Lightmap Resolution 」の値を適切な小さい値に変更してみてください。
素早くベイクできるアセットを購入する
サンプル数を変更することによって、ベイクの速度を上げた場合、ライトの計算の精度は落ちてしまいます。
精度を保ったまま、ベイクのスピードを上げたい場合には、有料にはなりますがアセットを導入してみるのもひとつの手段かと思います。

まとめ
- ライトマップのベイクとは、事前計算した光の当たり方の情報をライトマップというテクスチャーにする処理のことである。
- ライトマップのベイクの手順は、
- ベイクしたい動かないゲームオブジェクトを選択し、Inspector 右端上の Static にチェックを入れる。
- ライトを選択し、Inspector → Light → Mode を「 Baked 」に設定する。
- Window → Rendering → Lighting を選択し、「 New Lighting Settings 」をクリックし、右下の「 Generate Lighting 」からベイクを開始する。
- ギザギザとしたまだら模様(バンディング)が出る場合には、
- Format の設定を「 Automatic 」に変更し、 Apply することで改善する。
- 「 Lighting Compression 」を「 None 」または「 High Quality 」に変更することで改善する。
- 斑点のようなノイズが出る場合、Lightmapping Settings → Filtering を「 Auto 」に変更することで改善する。
- ライトマップのベイクが遅い・終わらないときの対処法は、
- サンプル数を少なくする。
- Max Lightmap Size を適切な値まで小さくする。
- Light mapper をGPUに変更する。
- Lightmap Resolution の値を適切な値まで小さくする。
- 素早くベイクできるアセットを購入する。
Unity用アセット販売中!
当メディアで運営しているアセットショップ「NickNackHolic」にてUnity用のアセットを販売しております。
ゲーム制作やVRchat、Clusterなどで使用できる便利なアセットを販売しております。
一部無料のアセットもあるので、ぜひ覗いてみてください!
Nick Nack Holic



VRchatやゲームアセット、映像作品で使える「雑貨」を販売中