[無料]見えないエリアのオブジェクトを自動で非表示にできる軽量化ギミック
- 通常版Digital0 JPY
- きのこの山代(中身は同じです)Digital100 JPY
![[無料]見えないエリアのオブジェクトを自動で非表示にできる軽量化ギミック](https://booth.pximg.net/181db917-6994-4a66-9b03-9e1b3fc557a2/i/7458751/dcaea97b-8293-4a95-a5e7-73426d4c613c_base_resized.jpg)
プレイヤーがいるエリア以外のオブジェクトを、簡単に「見た目だけ」非表示にして、 ちょっとだけ軽量化できるギミックです。 各エリアの小物などをまとめた親オブジェクトを指定しておけば、 そのエリアから出たときにまとめて非表示になります。 エリアの判定は複数のコライダーで細かく分けられるので、 範囲を重ねておけば「同時に見える部分」も設定可能! さらに「常に表示したいオブジェクト」を個別に指定することもできます。 ●分かる人向け補足 ------------------------------ Unityには標準で「フラスタムカリング」と「オクルージョンカリング」という機能がありますが、 ・ベイクするのが手間、かつVRだと調整が難しい ・Staticにしていないと重い(ダイナミックオクルージョンはリアルタイム計算のため) ・そもそも判定コストが発生する などの理由からもっと僅かでも軽くしたいなと思って作りました。 このギミックはGameObject自体を非アクティブにはしないので、他のギミックの動作には影響しません。
使い方
1.UnityPackageをインポート 2.「MidnaUdon > Udon > MUZoneVisibility > prefab」をワールドに置きます 3.Manager側 (親オブジェクト) ・「各エリアの親オブジェクト」にエリアの親オブジェクトを指定します ・(任意)常に表示させたい物の親オブジェクト」に↑で入れたけど消したくないオブジェクトを指定します ・(任意)「初期フロア設定」でリスポーン位置を↑の番号に合わせます 4.Zone側 (子オブジェクト) ・必要なエリアの数だけ複製し、「所属するフロア番号」を各エリアに合わせます ・コライダーの位置とサイズをエリアに合わせます (コライダーは複数追加してもOK!) 5.完了!
その他のポイント
・エリア範囲のコライダーは「重ねて」配置できます。 → そうすると跨いだ時に両方表示されるので、物がパッと消えるのを防げます。 ・エリア範囲のコライダーは「Add Component」で複数追加可能です。 → 細かい形状に合わせて範囲指定できます。 ※「Is Trigger」にチェックを忘れずに!
更新履歴
2025/09/23:Ver1.00リリース!
利用規約
改変:OK 商用利用での二次配布:NG