ProBuilderでステージを作るときに何か重い…というものの対処についてです。
ProBuilderで作成…あれ重い?
ProBuilderでモデルを作って色々する訳ですが、何かやたらレスポンスが悪かったりSceneViewの視点を動かすのに時間がかかるという事があります。
ライトを焼いてるせい
これは大抵、ライトを焼いてるせいです。
ProBuilderは初期設定でLightmapStaticにチェックが入っているので、最初からライトを焼き付ける設定になっています。
またProgressive LightmapperがとてもCPUを専有するので、エディターのレスポンスが非常に悪くなります。このベイクがオブジェクトを動かす度に発生するので、そりゃあ重いかもしれません。
対策1:自動的にベイクするのを止める
一番手っ取り早いのが、自動的にベイクするのを止める事です。
「まだ編集中なので今はライトが必要ない」というニュアンスで使えます。
LightingSettingsのAuto Generateのチェックを外せばOKです。
勿論、ライトマップを焼かない事で間接光表現が無くなり、遠距離の影が表示されなくなったり、本来明るくなる場所が暗いまま、ビルドしたらなにか違う結果になる…といった問題は残ります。
作業が終わったら一旦GenerateLightmapを実行するのが良いです。
対策2:ライトマップを最初から諦める
対策その2では、ライトマップを最初から完全に諦めます。そのために、ProBuilderの生成するオブジェクトからLightmap Staticのチェックを外す設定を行います。
ProBuilderのStatic Flagsで、生成時のStaticフラグを設定できます。ここでNothingを設定しておけばOKです。
なお、自分の初期設定ではNothing(実際にはEverything)という中々にロックな設定でした。一旦手動でNothingに変更することで明確にNothingになります。
対策3:Enlightenを使用する
Progressive Lightmapperは非常に高いCPU負荷を要求してきますが、Enlightenはそこまでエディターをロックせずベイク出来ます。
ので、設定をEnlightenに変更することで、物凄い負荷を計上してくるのを回避します。
対策4:ライトのベイク負荷を下げる
Progressive Lightmapperを使い続けたい場合、ライトのベイク負荷を下げます。
LightmapResolutionは初期設定では40という、屋内向けの超解像度が設定されています。これを12とか10に設定すると、ライトのベイクは直ぐ終わるしライトのベイクで重い部分は直ぐ流れます。
他にもDirectSamplesやIndirectSamples等を調整することで、10分のベイク時間が3秒になります。
間接光などの表現を維持しつつ、結果を得たいという場合です。