はじめに
Unityではライトを簡単に配置することができますが、光の計算をリアルタイムに処理させるのは重い負荷がかかります。
スマホアプリの場合、スマホによっては熱くなったり、さらに処理が遅くなったりしてしまいます。
これを軽量化するテクニックが「ベイク」です。
ベイクとは?
ベイクとは、あらかじめ光の当たり方をオブジェクトのテクスチャ(画像)に焼き付けておく処理のことです。これによって、リアルタイムに計算されることがなくなり非常に軽くなります。
この焼き付けるテクスチャ(画像)のことをライトマップと呼びます。
ライトマップの分だけ、容量が増えることになるのがデメリットですが、処理の軽量化には必須のテクニックです。
あらかじめ光の当たり方を計算しておくのがベイクなので、動く物体には使えません。
試しにベイクさせてみよう
ベイクさせたいオブジェクトの「Static」をチェック
まず、ベイクさせたいオブジェクトには、インスペクターの上部にあるStaticにチェックを入れておきましょう。動かすオブジェクトはStaticをつけないようにします。
ライトの設定
シーン中のライトのModeをBakedに設定します。
ベイクの開始
Window > Rendering > Lighting を開きます。
下にあるGenerate Lighting を押してベイクを開始しましょう。
ベイクには時間がかかる場合があります。無事完了するとライトマップが出来上がります。Baked Lightmapsから確認できます。
完成
ベイクさせると、ライトを非アクティブにしても物体には光が当たっているように見えます。ベイクの効果が確認できます。
オブジェクトを動かすとどうなるか?
オブジェクトを動かすと、影の位置が変わっていないですね。ベイクは静止したオブジェクトのみにしましょう。
おわりに
ライトをベイクさせる方法の紹介でした!
- ベイクさせるオブジェクトのStaticにチェック
- ライトのMode を Baked に設定する
- Lighting Settings から、Generate Lightingを押してベイクを開始
ライティングの細かい設定などもあるので、今後詳しく取り上げたいと思います。