1. Lighting Settings
リアルな光や影、間接的な光の反射表現(GI)を実現するためには、レンダリングにある程度の時間が必要です。
インタラクティブに変化するゲーム画面では、予めレンダリングした光の二次的な反射と影をオブジェクトのメッシュに直接テクスチャとして焼き付ける「ライトマッピング」を用います。
デフォルトでは、ライトマッピングの計算はされませんが、Lighting Settings ウィンドウ下部のボタンをクリックすることでライトマップを「ベイク」する(焼き付ける)計算が可能です。
Lighting Settingを表示するには、Window >> Rendering >> Lighting Settings を選択します。
ライトマップ計算の前に、それぞれのオブジェクトのインスペクターで Statik(静的)にチェックする必要があります。
ただし、アニメーション等で動くオブジェクトに関してはStatikにしません。
Lighting Settingsのウィンドウで、図の Generate Lighting をクリックし、ライトマップのベイク計算を開始します。
ライトマップのベイク処理中は、Unity 画面右下に残り時間が表示されます。
最初に表示された残り時間はかなり長めですが、その 半分くらいで完了します。
計算中も他の作業は可能ですが、ライトマップの結果に大きく影響する場合もあります。
計算を一次停止するとき、強制終了するときは下図のボタンをクリックしてください。
2. ライトマップ計算時間の短縮
ライトの設置作業中はクオリティを犠牲にしてレンダリング時間を短くしておきます。
下図のような設定にすると条件にもよりますが、レンダリング時間は 1/20になりました。
図のシーンではデフォルトライト以外にスポット2個、ポイント ライト1個を設置しています。
デフォルト設定では、20分近くかかりましたが、上図の設定では1分程度で完了しました。
下図は、デフォルト設定と上図の設定それぞれのベイク結果です。
Lighting Settings デフォルト設定
Lighting Settings 時間短縮 設定
デフォルト設定に比べて赤い球体を照らしているスポットライトの光がかなり明るくなっていますが、このような点を予測してライトのInspectorでの設定を行うことで作業時間の短縮につながります。
3. ライトの Inspector 設定
ライトのInspector での設定は、Mode プロパティを 「Realtime 」で行います。
デフォルトでは 「Realtime 」になっています。それ以外では設定結果をビューで確認しながらの設定はできません。
ライトのInspector で設定する主なプロパティは、図のとおりです。( Spot Light の設定です。)
注意点としては、Indirect Multiplier (間接反射)の設定結果が、ライトマップのベイク計算が済むまで分からないことです。
下2つの図は、ライトの Mode が「 Realtime」 でベイクした時と Modeを 「 Baked 」に変更してベイクした後の違いを示しています。
Lighting Settingsで時間短縮の設定にしていることもあり、間接反射光が計算された後では、全体としてかなり明るくなります。
ライトの Inspector で Mode が 「 Realtime 」の状態
ライトの方向や強度などを設定後、ライトマップ計算直前に、Modeプロパティを 「 Baked 」に変更します。 その後ベイク計算をし、Indirect Muliplier(間接反射)をビューに反映します。
ライトの Inspector で Mode が 「 Baked」の状態
尚、Mode の Bakedへの変更は、ライトをまとめて選択して一度で行えます。
4. Lighting Settings をデフォルトに戻す
Lighting Settings のレンダリング設定は最終的にデフォルトに戻してライトマップをベイクします。
デフォルトに戻すには、図の小さなギヤアイコンをクリックして Reset を選択します。
5. ライト設定 まとめ
以上をまとめると下記のとおりになります。
- Lighting Settings の設定を時間短縮設定にする。
- メッシュオブジェクトのインスペクターで Statikにチェック。
- ライトオブジェクトを作成・配置。
- ライトオブジェクトのインスペクターで、Mode を Realtime にして設定。
- Lighting Settings で ライトマップのベイク計算を行い、ライティング結果を確認。
- 結果が良ければ、ライトオブジェクトのModeを Bakedに設定。
- Lighting Settings で ライトマップのベイク計算を行う。
- すべてのライトの設定後、Lighting Settings の設定をデフォルトに戻す。
- Lighting Settings で ライトマップのベイク計算を行う。