ライトベイクについて
こんにちは、小さな塩です。
前回Unityでのライティングについてお話しした際、「ライトベイク」という言葉が出てきたことを覚えていますか?
データを軽くすることができると少しだけ触れたライトベイクですが、Unityを使う上では避けては通れない道なので、今回は少し詳しくお話ししていきます。
ライトベイクとは
ライトベイクとは一言で説明すると「ライト情報をテクスチャに焼き付ける」です。
ライトは物体の形状や金属、プラスチックなどの質感を計算して影を落としたり、光を反射させたりするのですが、この計算がとにかく重いです。
思ったようなライティングを再現するには、たくさんのライトが必要になる場面も多く、どんどん重くなっていってしまうので、ベイクで予めライトの情報を焼き付けておくことが重要になってきます。
文字ばかりの説明ばかりだと分かりづらいと思うので、実際にUnityで一連の流れを説明していきます。
まずはシーン上に適当にオブジェクトを並べていきます。
静的にチェックをいれる
各オブジェクトのインスペクター右上の「静的」にチェックをいれます。
ベイクは静的なオブジェクト、つまり動かないオブジェクトに対して行うことができます。
ライトのモードをベイクにする
デフォルトではライトのモードが「リアルタイム」になっているのですが、この部分を「ベイク」に変更します。他にも「混合」というものもあるのですが、今回は省略します。
ライティング設定を行う
ウィンドウ→レンダリング→ライティングから専用のウィンドウを開きます。
一番上にある「ライティング設定」の新規からLighting Settings Assetを作成します。名前は何でも大丈夫です。
各サンプル値の設定やライトマップの解像度など色々と調整できるところがあるのですが、ここでは説明しきれないので、デフォルトのままで進めます。
ライティングの生成
あとは専用ウィンドウの右下にある「ライティングの生成」をクリックするだけで、ベイクされます。
数値や解像度を上げるとベイクに時間がかかるので、テストの時は数値を下げて何回も試行錯誤し、この設定で決定となったら数値を上げて、きれいにベイクするのが良いかと思います。
ベイクが終わりこんな感じになりました。
何が変わったのかよく分からない方もいるのではないでしょうか。
一旦赤と青のオブジェクトを動かしてみます。
影がオブジェクトに残り、ライトの情報が焼き付けられているのが分かりますね。
上記でもお話ししたように、動かないオブジェクトに対してのみベイクを行えるのですが、動くもの、例えばキャラクターや車などはどうするのか、と思いますよね。
それに関しましては別で設定しなければならないことがあるので、次の機会にお話しします。
弊社で開発している「バーチャルCOMCOM」にはベイクしてあるシーンとしていないシーンがあり、現在全てのシーンでベイクの設定を進めています。
今の状態のバーチャルCOMCOMを見られるのはあと少しかもしれないので、ぜひ一度遊びに来てみてください。
↓メタバース「バーチャルCOMCOM」リンク↓
https://comfort-inc.co.jp/metaverse/