銭洗弁天VRを制作しました龍 lilea (藤原 龍)です。
前回記事では「後処理編」について書かせていただきました。
今回はVR化時のTipsをまとめた「VR化編」です。
※VRは↓こちらから体験いただけます。
連載各回のテーマ
VR化編
Colliderの軽量化
VRにする上でまず必要なのが「歩く」ためのCollider(当たり判定)の作成です。
MeshColliderを使うことで描画用メッシュをそのままCollider化できるので便利ですが、これを使うと「描画用メッシュ」と「Collider用メッシュ」の2つが生成されるため、メッシュが倍になるデメリットがあります。
フォトグラメトリの場合はメッシュ数が大きくなるので、これが倍になると大きな負荷です。
対策としてMeshCollider用のオブジェクトを別途用意します。
ここでは描画用のメッシュに98%のポリゴンリダクションをかけたものを使用しました。Collider用メッシュは描画用ほどディテールは必要ないので極端にリダクションしてしまって問題ありません。
Colliderの調整
銭洗弁天は一部天井の低い所があるため、高身長アバターでも通れるようこの部分のCollider用メッシュを削除しておきます。
その他通行の妨げになりそうな部分も同様に削除します。
Skyboxの編集
広域なフォトグラメトリですとポリゴンに穴が空いているのを見落としてしまう可能性があるため、万が一に備え穴が空いていても気付きづらいようSkyboxの下半球は地面と近似の色にしておきます。
インタラクト要素の追加
歩き回るだけでなく能動的な体験が可能になるとUXは高まります。
銭洗弁天VRでは「銭を洗う」という体験を実装するため、柄杓とザルを別途用意し手に持てるようにしました。
ここではDCCツールにてモデリングしましたが、本来はこれらもフォトグラメトリしておくと良いですね。
環境音の設定
境内各所の音を集音しておき、VR内でもその位置に音源を置きます。
音が空間への接地感を生み、没入感を高めます。
音により人の動線をデザインできます。
※書いておきながら現在の銭洗弁天VRは環境音未実装です
次期アップデート時に実装を予定しています
ジャンプ力は控えめに
銭洗弁天VRでは撮影はアイレベルからのみなので少し高い視点となると空間の破綻がすぐ目に付いてしまいます。そのためジャンプ力は控えめにしておきます。
(ベースが実空間のためあまり高くジャンプ出来てしまうのも違和感がありますしね)
オクルージョンカリングを活用
フォトグラメトリの場合シーン全体を1オブジェクトで制作している事も少なくありませんが、ハイポリゴンモデル全域を常時表示しているのは負荷がかかります。シーン全体を一括生成出来た場合でも、オクルージョンカリングを利用することを踏まえいくつかのオブジェクトに分けておくのが好ましいです。
STYLYアップロード分割アップロードテクニック
STYLYにアップロード出来るサイズは200MBですが、アップロードするSceneの容量が200MBギリギリの場合アップロードに失敗してしまいます。
これはアップロード時にアセットバンドル化された際、容量が若干増えることが原因のようです。
※エラーメッセージには「容量オーバー」との表記はなく「タイムアウト」と表示される
対策は「データを削減する」のが正攻法ですが、以下の方法でも対応出来ます。
「Sceneアップロード」の代わりに「Prefabアップロード」を用いる方法です。
- シーン内の全オブジェクトを2つ以上のPrefabにまとめる
(各Prefabは200MB以下) - 各PrefabをSTYLYへアップロード
- STYLY内で各Prefabを配置
力技ではありますがこれ以上Scene容量を削減出来ないという時には有効な方法かと思います。
建築デジタルアーカイブは続くー
銭洗財天VRは広域フォトグラメトリの初の試みでしたが、多くの可能性や課題が見えてきました。また多くのフィードバックを頂いたことも感謝しております。
当連載はこれで終了ですが、銭洗弁天VRは次期アップデートに向け鋭意制作中ですのでそちらで得られた知見もまた発信していきたいと思います。
つたない文章ではありましたがお読みいただき、本当にありがとうございました。
※銭洗財天に限らず、疑問点等ありましたらお気軽にメンション/DMください!
Written by 藤原龍 (龍 lilea)