質問するログイン新規登録

Q&A

0回答

198閲覧

UnityのXR SimulatorでEnvironmentRaycastManagerが常にNoHitになる

kaguyabito

総合スコア3

MR(Mixed Reality)

MR(Mixed Reality)は、複合現実とも呼ばれるVRとARを融合したような技術。現実世界の形状をデバイスが把握し、仮想世界と座標空間を精密に重ね合わせることで実現します。専用のヘッドセットを装着した人の動きに合わせた環境構築ができる他、同じMR空間を複数人で同時に体験することも可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

AR(Augmented Reality)

AR(Augmented Reality)とは、拡張現実のことです。人が認識する現実の環境で視覚・聴覚などの知覚が感知する情報をコンピュータで拡張する技術、もしくはその環境そのものを表す言葉です。

0グッド

0クリップ

投稿2026/10/06 00:20

0

0

実現したいこと

XR Device Simulatorで壁や床などにRry をヒットさせてそのpositionを参照してPrefabを出現させたいです。

前提

UnityでMeta Quest 3向けのMRアプリを開発しています。

XR SimulatorのSynthetic Environment上で、EnvironmentRaycastManagerを使用して、コントローラーから現実環境を模した壁や床などにRayを飛ばし、ヒットした位置にPrefabを配置したいと考えています。

しかし、EnvironmentRaycastManager.Raycast()が常にfalseを返し、EnvironmentRaycastHit.statusも常にNoHitになります。

確認できていること

EnvironmentRaycastManager.IsSupportedはtrueになっています。

また、コントローラー自体のトラッキングは正常に動作しており、例えば以下のような値を取得できます。

text

1Position: (0.30, 1.40, 0.50) 2Forward: (0.00, 0.00, 1.00)

そのため、コントローラーのTransform自体が取得できていないわけではないと考えています。

また、原因がRayの方向だけなのかを確認するため、

  • 前
  • 後
  • 左
  • 右
  • 上
  • 下

の6方向にもRayを飛ばして確認しましたが、**すべてNoHit**でした。

コントローラーのforwardをそのまま使用した場合もNoHitになります。

現在の問題

以下の状態になっています。

text

1EnvironmentRaycastManager.IsSupported 2 ↓ 3true 4 5Raycast() 6 ↓ 7false 8 9EnvironmentRaycastHit.status 10 ↓ 11NoHit

XR SimulatorのSynthetic Environmentには壁や床などの環境が存在しているため、Environment Raycastでそれらを検出できることを期待しています。

しかし、どの方向にRayを飛ばしてもヒットしません。

質問

特に以下について知りたいです。

  1. MRUK 207.0.0 + XR SimulatorでEnvironmentRaycastManagerは正常に使用できるのでしょうか?
  2. Synthetic Environment側で、Environment Raycast用のDepthデータを有効にするための追加設定が必要でしょうか?
  3. XR SimulatorのMeta Quest 3 Device Profileに追加設定が必要でしょうか?
  4. MRUK 207.0.0では、EnvironmentDepthManagerを手動で追加・設定する必要があるのでしょうか?
  5. XR SimulatorからDepthデータが実際に供給されているか確認する方法はありますか?
  6. EnvironmentRaycastManager + XR Simulator + Synthetic Environmentの組み合わせで、既知の制限や注意点はありますか?
  7. この構成でEnvironment Raycastが動作する最小構成やサンプルがあれば教えていただきたいです。

Rayの方向やTransform自体は正常そうなので、現在はXR SimulatorからDepthデータがEnvironmentRaycastManagerまで正常に渡っているのかを疑っています。

よろしくお願いいたします。

現在のスクリプト

csharp

1using Meta.XR.MRUtilityKit; 2using UnityEngine; 3 4public class InstantPlacementController : MonoBehaviour 5{ 6 public Transform rightControllerAnchor; 7 public GameObject prefabToPlace; 8 public EnvironmentRaycastManager raycastManager; 9 10 private void Update() 11 { 12 if (OVRInput.GetDown(OVRInput.RawButton.RIndexTrigger)) 13 { 14 var ray = new Ray( 15 rightControllerAnchor.position, 16 rightControllerAnchor.forward 17 ); 18 19 TryPlace(ray); 20 } 21 } 22 23 private void TryPlace(Ray ray) 24 { 25 if (raycastManager.Raycast(ray, out var hit)) 26 { 27 var objectToPlace = Instantiate(prefabToPlace); 28 objectToPlace.transform.SetPositionAndRotation( 29 hit.point, 30 Quaternion.LookRotation(hit.normal, Vector3.up) 31 ); 32 33 if (MRUK.Instance?.IsWorldLockActive != true) 34 { 35 objectToPlace.AddComponent<OVRSpatialAnchor>(); 36 } 37 } 38 } 39}

MetaのEnvironment Raycastingのドキュメントを参考に実装しています。

試したこと

ここに問題に対して試したことを記載してください。

開発環境

  • Unity:Unity 6.1
  • 対象HMD:Meta Quest 3
  • 実行環境:Meta XR Simulator
  • Synthetic Environment:XR Simulation Environments 2.1.1
  • Meta XR MR Utility Kit:207.0.0
  • Meta XR SDK All:207.0.0
  • Meta OpenXR:2.5.0
  • OpenXR Plugin:1.16.1
  • XR Plugin Management:4.5.4
  • XR Interaction Toolkit:3.4.1
  • AR Foundation:6.1.1
  • Input System:1.18.0
  • Universal Render Pipeline:17.1.0

XR SimulatorではMeta Quest 3のDevice Profileを使用しています。

Hierarchy

現在のHierarchyは以下のようになっています。

text

1New Scene 2├── Directional Light 3├── [Building Block] Camera Rig 4├── [Building Block] Passthrough 5├── [Building Block] Environment Raycast Manager 6└── Controller

Controllerには必要なスクリプトや参照を設定しています。

  • InstantPlacementController
  • rightControllerAnchor
  • EnvironmentRaycastManager
  • 配置するPrefab

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問