カメラに写ってないオブジェクトを隠す・削除してシーンを軽くするツール。
大量のオブジェクトがシーン内にあって、レンダリングが重いとかメモリ不足になる場合に威力を発揮する。
ふつうなら、Sceneタブで不要なオブジェクトをHideしたり削除したりしてシーンを軽くするところを、スクリプトで一括Hide/削除ができる。シンプルな機能ながら強力なツールと言えるだろう。
UltraScatterPro みたいなツールで、シーン内に大量のオブジェクト・インスタンスをばらまくようなケースで役に立つんじゃないだろうか。あとはやたら小物が多い室内シーンに有効だ。
オブジェクト数が少ないシーンを軽くする目的なら、Scene Optimizerでテクスチャを軽くする方が有効だと思う。
場合によっては、Decimatorでポリゴンを削減する方が有効なケースも。
付属物
Camera View Optimizer本体と解説のPDFの構成。シンプルだ。
機能
- Camera View Optimizerを起動すると、カメラを選ぶ画面。まずカメラを選ぶ。
- カメラからの距離を設定。カメラ角度に入ってても、遠すぎるものは対象にできる。
- オブジェクトを隠す(Hide)か、シーンから削除(Delete)するか選ぶ。通常オブジェクトとグループインスタンスの場合とで、処理を分けることができる。
常に表示したいオブジェクトなど、対象外にしたいアイテムはFilter Settingsで名前を設定。カンマ区切りで複数選べる。名前がバラバラすぎるとツライかも。
Optimizeをクリックで、実行。待ち時間は10~20秒程度。
オブジェクトごとに、Ignored(無視)、Hidden(非表示)、Delete(削除)の結果が表示される。
マウスクリック2~3回のアクションで、カメラのビューポートに表示されていないオブジェクトを自動的に削除するのはとても便利。
公式ページでは例として、オブジェクト8万8千個ある重い森のシーンのレンダリング時間が、8分58秒から6分40秒になったとあった。
約6万個のオブジェクトを削除した結果だが、高速化の効果は微妙。
オブジェクトが多すぎてGPUのメモリに乗らずCPUレンダリングになってしまう…だけど、このツールでオブジェクトを減らしたらGPUメモリに収まって爆速に!というケースでは有効かも。
困った点
グループ化しているライトの扱い
ライトをグループ化していると、問答無用で対象外にしてしまうっぽい。
Filter SettingsのSpecify objects usingでライト名を指定して対象外にしよう。
Deleteを指定すると、即削除していまう
Delete指定にしてOptimizeをクリックすると、即オブジェクトを削除してしまう。
「この設定だと、削除対象はこちらになりますが」とか、確認がほしい。
でも、とりあえずCtrl+Zで削除したアイテムを戻せるので一応よしとする。けど、念のためこのツールを使う前には保存しておいた方がいいかもしれない。
詳細ページ
大量の背景オブジェクトが重くてレンダリングに時間がかかるとか、レンダリング自体できないというときに役立つツール。
カメラ内のオブジェクト自体が重い場合には効果が無いので注意。