前回の作業でひとまず脱出ゲーム用のシーンができました。しかしまだ「生成したライティングが汚い」という問題点が残っています。
そこで今回はその点を改善していきましょう。ついでにUnityのライティング設定の各項目についても詳しく説明していくので、脱出ゲームに限らずきれいなライティングが欲しい場合はぜひ参考になさってください。
なぜライティングが汚くなってしまったのか?
では、まずはライティングが汚くなってしまう原因について説明しておきます。まあ一口に「ライティングが汚い」といっても実に色々な原因があると思うのですが、前回生成したライティングを見てみると下の図のように「光が粗く(=ギザギザに)表示されてしまう」という問題があったので、ここではその対処法を説明します。
あくまでもこの場合に限っての話ですが、原因は主に「ライトマップが圧縮されている」ことにあります。ライトマップとは光の当たり具合や陰影の計算結果を焼きこんだテクスチャで、
- 広い範囲のライティング情報を焼きこむ
- ライティングの質をよくするためにライトマップを高解像度にする
ような場合はかなりの容量を食うため通常は圧縮されます。
ただし今回のゲームは非常に狭い範囲でしかライティングを計算しない上にライトマップの解像度も低くてかまわないので、圧縮しなくてもそれほどサイズが大きくなることはありません。そこでライトマップの圧縮を解除してきれいなライティングを得られるようにしましょう。
ライトマップの圧縮を解除してきれいなライティングを得る方法
やり方は簡単で、ライティング設定の「ライトマップを圧縮」のチェックを外すだけです(下図)。
ではこれでベイクし直してみましょう。すると今度は下の図のように光が滑らかに表示されるようになると思います。
これで問題が解決しました!ライトマップのサイズは3倍以上になってしまいましたが、今回の場合はそれでも3MB未満なので特に問題ないでしょう。いずれにしても圧縮するかどうかは見た目とファイルサイズのトレードオフになりますので作るゲームによって適宜変更するようにしてくださいね。
おまけ:ライティング設定内の「ライトマップ設定」について
ではここからはおまけとして、ライティング設定の中の「ライトマップ設定」の主な項目を簡単に紹介しておこうと思います(※全部は説明しきれないので、知っておいた方が良いものだけ紹介)。
- ライトマッパー
- ビュー内優先
- 直接サンプル・間接サンプル・環境サンプル
- アンビエントオクルージョン
ライトマッパー
ライティングのベイクに使用するベイクシステム。通常は「プログレッシブCPU」で十分ですが、もし高性能なグラフィックボードを積んでいる場合は「プログレッシブGPU」にすると短時間でベイクが完了するようになるのでそちらの方がおススメです。
ビュー内優先
ライティングをベイクするときに、いまシーンビューで見ている部分を優先的にベイクします。
直接サンプル・間接サンプル・環境サンプル
直接光・関節光・環境光のそれぞれを計算するときのサンプル数で、値が大きいほどライティングの質が向上します。ただしその分だけベイクに時間がかかるようになるので注意。
アンビエントオクルージョン
チェックをONにすると細い溝などのへこんだ部分に柔らかい影を落とします。凸凹が多いシーンでは有効にした方がリアルな見た目になることが多いですが、ベイクに少し時間がかかるようになります。
次のページ→脱出ゲーム用のカメラ操作処理の作り方