オクルージョンカリングを設定して、ワールドの軽量化をする

投稿者:

「Creators Guide」は、メタバースプラットフォーム「cluster」で「つくる」ことにチャレンジしてみたい方に向けたガイドです。

Creators Guideで読むことができるすべての情報はこちらにまとめています。


今回はワールドの軽量化の1つの手段である「オクルージョンカリング」の設定の仕方を紹介します!

オクルージョンカリングは、家や室内のワールドを制作するときに役立つ場面が多いです。
動かさないオブジェクトがある場合はオクルージョンカリングを試してみてください!

オクルージョンカリングを設定すると、プレイヤーから見えないオブジェクトが非表示になるため、ワールドの軽量化に繋がります。

事前準備

まず、clusterにワールドをアップロードできる環境を事前に用意してください。

準備はこちらを参考にしてください。

はじめてのワールド作成

上記で紹介する方法以外ではテンプレートプロジェクトを利用するのがおすすめです。下記URLからテンプレートプロジェクトをダウンロードして、Unityで開くことで、clusterへアップロードする環境まで一気に準備することができます。
テンプレートワールドって何?って方はこちらの記事で導入方法を解説しているので、ぜひご覧ください。動画でも解説しています。

オクルージョンカリング とは

オクルージョンカリング」は、ゲームオブジェクトが他のオブジェクトに隠されていてビューに表示されない (隠されている) ときに、オブジェクトのレンダリング演算を行わない機能です。下の図で右下の画面で見えていないオブジェクトが消えているのが分かると思います。

ほんの少し設定するだけでワールドに入ったときの負荷を減らすことができます。ぜひ覚えてみてください!

「Occlusion Culling」ウィンドウを表示させる

まず最初に、オクルージョンカリングの設定をするために「Occlusion Culling」ウィンドウを表示しておきましょう。

  • Unity 上部メニュー欄にある「Window」から「Rendering」「Occlusion Culling」を選択してください。

Cube を10,000個配置してみる

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

Cube 10,000個

オクルージョンカリングの設定をして軽量化する

それでは、オクルージョンカリングの設定をして負荷を軽減してみましょう。

  • まず Hierarchy を右クリックまたは、上部メニュー欄の「GameObject」から「Create Empty」を選択して、GameObject を作成します。
  • 見分けが付きやすいように名前を変更しておくことがおすすめです。今回は「Occlusion」に名前を変更しました。
  • まずは「Add Component」から「Occlusion Area」を追加してください。Size の値は Scene に配置したすべての Cube を覆うようにします。
Inspector
Occlusion Area の設定

Occlusion Area の設定が完了したら、次は見える範囲にない Cube オブジェクトが描画されないように設定していきます。

  • 対象としたいすべてのCube オブジェクトを選択して、Inspector の右上にある Static の「▼」ボタンを押してください。
  • 描画されないように「Occludee Static」にチェックマークを入れましょう。
オクルージョンカリングされる Cube

次に追加した Occlusion ウィンドウを選択してください。どの範囲を描画しないのかを計算するために 「Bake」を選択して設定していきます。

「Smallest Occluder」は、他のゲームオブジェクトを遮蔽できる最小のゲームオブジェクトのサイズ を決定します。「Smallest Hole」はカメラが見ることができる最小の隙間の直径です。

  • 今回は「Smallest Occluder」の値は 1、「Smallest Hole」の値は 0.25 に変更します。
Bakeの設定

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

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

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

Occluder Static にしていない場合

これであとは描画範囲を計算するだけです。

  • 設定が完了したら、先程と同様に「Occlusion」ウィンドウの「Bake」タブにある「Bake」ボタンを押して計算を始めてください。
  • 完了したら「Visualization」タブを選択して、Unity の Play ボタンを押してプレビューしてみましょう!
Occluder Static にした場合

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


最後に公式による記事や多くのクリエイターの皆さんによるドキュメントやコミュニティを紹介します。
ぜひ活用して自分だけのワールドを制作してみましょう!

▼ 「Cluster Creator Kit」の全てが分かる公式ドキュメント
Cluster Creator Kit ドキュメントhttps://docs.cluster.mu/creatorkit/

▼ クリエイターによる投稿記事まとめ
ワールド制作部https://note.com/cluster_official/m/m1fd772ab8f45
アバター制作部https://note.com/cluster_official/m/m6b18e343f35c
イベント制作部https://note.com/cluster_official/m/m7155e6f6887f

▼ 分からないことがあればコミュニティを活用してみましょう!
Cluster Creator Community Discord
https://discord.gg/DHQmAfDhkt