1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VR空間上にUIを設置した際、必ず手前に表示させる(OVROverlay)

Last updated at Posted at 2024-08-16

はじめに

ユニバーサルレンダーパイプライン(URP)の環境を利用している場合は、カメラスタッキングを利用してしまうのが楽ですが、ビルトインレンダーパイプラインを利用している場合の手法として、OVROverlayコンポーネントを利用する方法を試してみました。

環境

Unity 2022.3.40f1
Meta XR Core SDK 67.0.0
Meta Quest3

シーン構築

プロジェクト作成などの環境構築は割愛します。

ベースシーンの作成

PlaneとOVRPlayerController、Cubeを追加

  1. 地面として、Planeを追加
  2. Main Cameraを削除して、OVRPlayerControllerを追加
  3. UIが手前に表示されていることを確認するためにCubeを追加
    スクリーンショット 2024-08-16 192807.png

Plane : OVRPlayerControllerを原点に配置するため、Positionを(0, -1, 0)
OVRPlayerController : Positionを(0, 0, 0)
Cube : Positionを(0, 0, 3)

UIとCameraを追加

  1. UIのサンプルとして、銃の照準のImageを追加
  2. UIの専用カメラとして、Cameraを追加し、UI Cameraに名前を変更
    スクリーンショット 2024-08-16 202321.png

Canvas, Image : 画像の通り
UI Camera : Positioinを(0, 0, 0)

※CanvasやUI Cameraは、UI Cameraから対象のUIが映っていれば、Positionはどこでも大丈夫です。

UIを手前に表示

レンダーテクスチャを作成

  1. Assets > Create > Render Textureから作成し、名前をUICameraRenderTextureに変更
    スクリーンショット 2024-08-16 195515.png

UI Cameraの設定を変更

  • Culling Mask : UIのみ
  • 出力先をレンダーテクスチャに変更
  • 背景を透明
  • Audio Listenerを無効化
    スクリーンショット 2024-08-16 200101.png

Background : (0, 0, 0, 0)

Canvasのレイヤーが「UI」になっているため、UI Cameraは、UIレイヤーのみを映すようにする

OVRPlayerControllerのCenterEyeAncyhorの設定を変更

  • Culling Mask : UIを除外
    スクリーンショット 2024-08-16 200903.png

Canvasのレイヤーが「UI」になっているため、UIレイヤーを映さないようにする

OVROverlayコンポーネントを追加

  1. CenterEyeAnchorの下に空のGameObjectを作成し、OVROverlayと名前を変更
  2. OVROverlayコンポーネントを追加
  3. レンダーテクスチャをLeft Eye Textureに設定
  4. CenterEyeAnchorのカメラ表示と重なるため、Positionを(0, 0, 1)に設定
    スクリーンショット 2024-08-16 203237.png

Left Eye Texture に設定すると、自動的にRight Eye Textureに設定されます。

Positionは、(0, 0, 1)でなくても、重ならなければ大丈夫です。

動作確認

OVROverlay.gif

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?