未来を創る、テックコミュニティー

代表技術通信~Unityで点群表示、Oculus Questで表示③ DMM.make AKIBA歩いてみる

草場代表
2020/09/18

こんばんは。代表の草場です。

代表技術通信~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 に、上記に記載のスクリプトをアタッチすれば、左スティックで動くようになります。

歩いてみました!反転しとる。。

 

この記事を書いた人
草場代表
エディター