今回はワールドの軽量化の1つの手段である「オクルージョンカリング」の設定の仕方を紹介します!
オクルージョンカリングは、家や室内のワールドを制作するときに役立つ場面が多いです。
動かさないオブジェクトがある場合はオクルージョンカリングを試してみてください!

オクルージョンカリング とは
「オクルージョンカリング」は、ゲームオブジェクトが他のオブジェクトに隠されていてビューに表示されない (隠されている) ときに、オブジェクトのレンダリング演算を行わない機能です。下の図で右下の画面で見えていないオブジェクトが消えているのが分かると思います。
ほんの少し設定するだけでワールドに入ったときの負荷を減らすことができます。ぜひ覚えてみてください!

「Occlusion Culling」ウィンドウを表示させる
まず最初に、オクルージョンカリングの設定をするために「Occlusion Culling」ウィンドウを表示しておきましょう。
- Unity 上部メニュー欄にある「Window」から「Rendering」「Occlusion Culling」を選択してください。

Cube を10,000個配置してみる
それではどのように負荷が軽減されるのか試してみましょう。
今回は検証用に Cube を10,000個配置してみます。

オクルージョンカリングの設定をして軽量化する
それでは、オクルージョンカリングの設定をして負荷を軽減してみましょう。
- まず Hierarchy を右クリックまたは、上部メニュー欄の「GameObject」から「Create Empty」を選択して、GameObject を作成します。
- 見分けが付きやすいように名前を変更しておくことがおすすめです。今回は「Occlusion」に名前を変更しました。
- まずは「Add Component」から「Occlusion Area」を追加してください。Size の値は Scene に配置したすべての Cube を覆うようにします。


Occlusion Area の設定が完了したら、次は見える範囲にない Cube オブジェクトが描画されないように設定していきます。
- 対象としたいすべてのCube オブジェクトを選択して、Inspector の右上にある Static の「▼」ボタンを押してください。
- 描画されないように「Occludee Static」にチェックマークを入れましょう。

次に追加した Occlusion ウィンドウを選択してください。どの範囲を描画しないのかを計算するために 「Bake」を選択して設定していきます。
「Smallest Occluder」は、他のゲームオブジェクトを遮蔽できる最小のゲームオブジェクトのサイズ を決定します。「Smallest Hole」はカメラが見ることができる最小の隙間の直径です。
- 今回は「Smallest Occluder」の値は 1、「Smallest Hole」の値は 0.25 に変更します。

次はCube を遮る壁として青色の Cube を適当に配置しました。

- 先程と同様に、配置した青色の壁を選択して、Inspector の右上にある Static の「▼」ボタンを押してください。
- 今回は描画をさせないために「Occluder Static」にチェックマークを入れましょう。

ここで「Occluder Static」にチェックマークが入っていないときは、下記の gif のように壁設置前と全く変わらない状態になってしまいます。

これであとは描画範囲を計算するだけです。
- 設定が完了したら、先程と同様に「Occlusion」ウィンドウの「Bake」タブにある「Bake」ボタンを押して計算を始めてください。
- 完了したら「Visualization」タブを選択して、Unity の Play ボタンを押してプレビューしてみましょう!

これで壁の裏側が描画されないようになりましたね!
オクルージョンカリングは、家や室内のワールドを制作するときに役立つ場面が多いです。
動かさないオブジェクトにオクルージョンカリングを試してみてください!