ワールド制作では「見た目のクオリティ」と「動作の軽さ」を両立することが重要です。
特にVRChatでは、多人数接続やQuest対応が求められるため、軽量化の工夫は必須です。
ここでは代表的な技術であるOcclusion Culling(オクルージョンカリング)とBaked Lighting(ベイクドライティング)を、初心者でも理解できるように解説します。
見えないものは描画しないという最適化技術です。
例えば、プレイヤーが建物の中にいるとき、壁の向こう側のオブジェクトはプレイヤーから見えません。通常の描画では、それらもGPUで処理してしまいますが、Occlusion Cullingを有効にすると、カメラから見えないオブジェクトは描画をスキップします。
・メリット:描画負荷の大幅削減、フレームレート向上
・設定ポイント:
・UnityのOcclusion Culling機能を使い、カメラ視界外や壁の裏のメッシュを非表示
・透明オブジェクトや透過マテリアルはカリングが効きにくいので注意
・カリング対象を細かく設定しすぎるとBake時間が増える
光の計算をあらかじめ画像として焼き付け(ベイク)し、リアルタイム計算を減らす技術です。
リアルタイムライトは描画のたびに影や反射を計算するため、負荷が高くなりますが、Baked Lightingを使えば静的なオブジェクトの光と影をLightmapとして保存し、表示時はその画像を貼るだけで済みます。
・メリット:リアルタイムライトの負荷削減、美しい陰影表現
・設定ポイント:
・動かないオブジェクトはStaticに設定してベイク対象にする
・光源もBakedまたはMixedモードに切り替える
・Lightmapの解像度を必要以上に上げない(ファイルサイズ増加を防ぐ)
・カラーや影の濃さを調整して見栄えと軽さを両立
1.シーン構造を整理
・プレイヤーが通らない場所や見えない部分は削除
2.Occlusion Cullingの設定
・大きな壁や地形を活かして見えない範囲をしっかりカット
3.Baked Lightingの適用
・動かない建物・地形の光をすべてベイク
4.動的要素は最小限リアルタイムライト
・プレイヤーの持つライトや特殊演出だけリアルタイムに残す
Occlusion Cullingは「見えないものを描かない」、Baked Lightingは「光を先に描いておく」というシンプルな発想です。
この2つを組み合わせると、見た目はそのままに、軽く快適なVRChatワールドを実現できます。特にQuest対応を目指す場合、これらの技術は必須レベルと言ってよいでしょう。