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

代表技術通信~Unityで点群表示、Oculus Questで表示④ カクカクあるいはカクる現象

草場代表
2020/09/19

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

前回の記事で、DMM.make AKIBAの点群データ内をなんとなく歩くようにできました。いろいろな方の記事のおかげです。
他のデータで試していますが、点群数が多くなるとカクカク、いわゆるカクる?現象に遭遇。解消の仕方がわからず、、。
そもそも、カメラとして「OVRPlayerController」を用いる場合と「OVRCameraRig」を用いる場合で違いがありました。OVRPlayerControllerを使うと、apkファイルにした場合、Oculus Quest上でうまく表示がされません。表示されいる空間がずっとぶれている感じ?これも「カクる」の一種なのか?

ということで、もう少し詳しく調べていきます。OVRPlayerController、OVRCameraRigは、Oculus Integrationをimportすると、Assetsフォルダ内のOculus>VR>Prefabs から使用が可能となります。
公式の記事を読むと、
OVRCameraRigは、

シーン内の通常のUnityカメラを置き換えるために使用できるカスタムVRカメラです。姿勢をヘッドトラッキングでコントロールできる1つのUnityカメラ、左右の目のための2つの「アンカー」ゲームオブジェクト、ヘッドトラッキング参照フレームと現実の世界との間の関係を微調整できるようにする1つの「トラッキングスペース」ゲームオブジェクトが含まれています。

カメラですね。

OVRPlayerControllerは、

仮想環境内での移動を開始するための最も簡単な方法です。これは基本的に、単純なキャラクターコントローラーにアタッチされるOVRCameraRig prefabです。これには、物理演算カプセル、動作システム、テキストフィールドのステレオレンダリングを含む単純なメニューシステム、クロスヘアコンポーネントが含まれます。

ふむ。「キャラクターコントローラーにアタッチされた」というのキモなのかも?

ではOVRPlayerControllerをからOVRCameraRigを使った場合と、OVRCameraRigのみを使う場合は何が違うのだろうか?
公式に、「重要:すべてのカメラコントロールはこのコンポーネントを通じて行う必要があります。独自のカメラコントロールメカニズムを実装する際には、このスクリプトを理解する必要があります。」という記載があります。OVRCameraRigが必須なのはわかったが、
なぜにOVRPlayerControllerを使うと重くなるのか?
設定を見直します。

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