前回までの作業でステージが完成したので仕上げとしてライティングのベイクという作業を行います。初めての方には耳慣れない作業だと思いますが、そんなに難しくないのでぜひチャレンジしてみてください。
「ライティングをベイクする」とは?
さて「ライティングをベイクする」というのは、簡単に言えば「陰影をテクスチャ化して毎回計算しなくてもいいようにする作業」です。
なぜわざわざそんなことをするのかといえば、陰影の描画計算は重い処理だからです。まあ今回のように小さなステージではこの作業をしなくてもそれほど支障はありませんが、例えばオープンワールドゲームなど広大なフィールドを扱う場合はライティングを事前にベイクしておく作業が非常に重要になります。覚えておいて損はない作業なのでここで実際にやってみましょう。
シーンのライティングをベイクするための手順
では早速ですがライティングをベイクしていきます。作業手順は次の3ステップです。
- ライティングの自動生成をOFFにする
- 絶対に動かないゲームオブジェクトを「静的なゲームオブジェクト」にする
- ライティングを手動でベイクする
ライティングの自動生成をOFFにする
まず、おそらくデフォルトではライティングの自動生成機能(=ライティングを自動的にベイクする機能)がONになっていると思うのでそれをOFFにします。もちろんライティングのベイクは自動でやっても良いのですが、手動に切り替えたほうが何かと都合が良いのでサクッと切り替えておきましょう。
やり方は簡単で、ライティング設定ウィンドウを開いたら右下の「自動生成」のチェックをOFFにするだけです(下図)。
※もし最初からOFFになっている場合はそのままでOK。
絶対に動かないゲームオブジェクトを「静的なゲームオブジェクト」にする
次にゲーム中で絶対に動かないゲームオブジェクトを「静的なゲームオブジェクト」にします。
ゲーム中で絶対に動かないものといえばステージの壁や床といったオブジェクトですよね。これらはいちいちライティングの計算をするのは無駄なので(※動かないなら事前に一度だけ計算すればよい)、ライティングのベイクを行う対象としてはピッタリです。
ただしUnity側では「どのゲームオブジェクトが動かないのか」は自動で判断できないため、制作者側でそれらのゲームオブジェクトを指定してあげる必要があります。そこでUnityがライティングをベイクできるように手動でベイク対象のゲームオブジェクトを「静的なゲームオブジェクト」にしましょう。
やり方は簡単で、ベイク対象にしたいゲームオブジェクトをインスペクターで表示し、名前の右側の「静的」チェックをONにするだけです(下図)。
ちなみに今回のゲームではステージを構成するゲームオブジェクトは「Stage」オブジェクトの子になっているので、このStageオブジェクトの静的チェックボックスをONにすれば子も全部静的オブジェクトになります。
ライティングを手動でベイクする
ここまでできたら、最後にライティングのベイク処理を実行します。ライティング設定ウィンドウの右下の「ライティングの生成」ボタンをクリックしましょう。お使いのPCの性能によっては処理が終わるまで数十秒~数分程度かかりますのでお待ちください。
処理が完了するとシーンのファイルと同じ場所に新しいフォルダが作られます。その中に生成したライティングの情報が入っているので、誤って削除しないように注意してください。
さて、ここまでの一連の作業でステージが完成しました!もし追加のステージを作りたい場合は同様の手順でステージを作っていってください。