代表技術通信~Unityで点群表示、Oculus Questで表示③ DMM.make AKIBA歩いてみる
こんばんは。代表の草場です。
「代表技術通信~Unityで点群表示、Oculus Questで表示①」「代表技術通信~Unityで点群表示、Oculus Questで表示②」
にて、点群データをUnityで表示してOculus Questで表示しました。
今回は、その中を歩く設定をしていきます。これをやれば、現実に極めて近い世界を歩き回れることができます。もともとは、MESONのプロデューサーの伊藤さんの「【PointCloud】大量の点群データをUnityで読み込んでVR化する!【メタバース】」にモチベートされています。
出来上がったもの
今回は、「[Unity] Oculus Questで3Dキャラクターを眺めよう」をもとに実施しました。
環境と使用ソフト
OS:Windows10 Pro
Unity:2019.4.10f1
Oculus Quest:128GB
①apkファイルを作成できるようにする準備
「代表技術通信~Unityで点群表示、Oculus Questで表示①」で実施した手順に沿ってapkファイをを作成できるようにします。ただし、今回はOVRCameraRigを使うため、5の「Assetsフォルダ内のOculus>VR>Prefabsの「OVRPlayerContoroller」をHierarchyにドラッグ&ドロップし、もとからあったMain Cameraを削除します。」は行いません。
1.File>Build Settingsで、PlatformにあるAndroidをクリック、その後、switch platformをクリック
2.Edit>Project Settings>XR Plug-in Managementで、[Install XR Plugin Management]をクリック。インストールが終わったら、Initialize XR on StartupとPlug-in ProvidersのOculusにチェック。
3.Edit>Project Settings>Player>Other Settings>Identification>Minimum API Levelを「marshmallow」に設定。Package Nameを、com.Companyname(任意).Projectname(任意)の形で設定
4.AssetStoreで「Oculus Integration」を検索し、Import
②Cameraの設定
Aseets->Oculus->VR->PrefabsにあるOVRCameraRigを、Hierarchyにドラッグして配置します。OVRCameraRigは、シーン内の通常のUnityカメラを置き換えるために使用できるカスタムVRカメラです。ここで、シーンに最初からあるMain Cameraを削除します。
※いろいろ調べてみると、前回使用した“OVRPlayerController”に“OVRCameraRig”も入っているので、そちらで十分とのこと(参考 「UnityでOculus Questのコントローラー操作を実装する」)。
さて、Oculus QuestのコントローラーであるTouchを表示させるために、Aseets->Oculus->VR->PrefabsにあるOVRControllerPrefabを、シーンのOVRCameraRig->TrackingSpace->LeftControllerAnchor、RightControllerAnchorにドラッグして配置します。
ここでLeftControllerAnchorのOVRControllerPrefabをクリックしてInspectorを表示させます。OVR Controller HelperのControllerをL Tracked Remoteにします。
が!!!!!!無い。なぜだ。外のサイト見てもL Tracked Remoteにするように書いてあります。仕方がないのでなんとなくL Touchにしました。
次にOVRCameraRigを選択して、Inspector->OVR ManagerのTarget DeviecesでQuestを選択します(すでにデフォルトで入ってました)。
記事によると、Inspector->OVR ManagerのTracking Origin Typeは、標準のEye LevelよりFloor Levelにするほうが、転送直後の動作はうまくそうです。
③apkファイルの作成
これで準備完了。前回同様、Oculus QuestとPCをつないで、File>Build SettingからBuild and Run クリック。Oculus Questで確認すると、Touchが表示されていることがわかります。やった。
④いよいよオブジェクト配置
DMM.make Akibaを動き回りたいので、「代表技術通信~Unityで点群表示、Oculus Questで表示①」の「④Occulus Questで表示」を実施します。
1.Point Cloud Free ViewerをImport、ただし、MaterialsとShadersにだけチェック
2.「③Unityで読み込む」で作ったUnityプロジェクトの、ResourceフォルダにあるPointCloudMeshesを、今回のプロジェクトのResourceフォルダにコピペ
3.Unity画面に戻り、Assets>Resource>PointCloudMeshes内のakibaのPrefabをHierarchyにドラッグ&ドロップ、角度がおかしければInspectorで角度を編集
⑤apkファイル作成
そしていつものごとく、File>Build SettingからBuild and Run!!!
できたっぽい。歩いてみたら以下の感じです。
スティック使って動かしたい、ということでいろいろと調べていたら以下の記事ありました。ありがたや。
「Oculus Go / Quest で、コントローラーで移動できるようにする」
OVRCameraRig に、上記に記載のスクリプトをアタッチすれば、左スティックで動くようになります。
歩いてみました!反転しとる。。
EVENTS