Meta XRカメラの設定 更新日時: 2026/04/02
Meta XR Core SDK には、
OVRCameraRig prefabが含まれています。これには、Unityの従来の
メインカメラ に代わるカスタムXRリグが含まれています。
OVRCameraRig は、ヘッドセットのトラッキングスペースを表す
Transform オブジェクトを提供します。
OVRCameraRig 直下の子である
TrackingSpace ゲームオブジェクトの下には、
CenterEyeAnchor (メインのUnityカメラのアンカーGameObject)、
RightEyeAnchor と
LeftEyeAnchor (それぞれの目のアンカー)、
LeftHandAnchor と
RightHandAnchor (コントローラーのアンカー)があります。
UnityでVRサポートを有効にすると、ヘッドセットは頭と位置のトラッキング参照をUnityに自動的に渡し、カメラの位置と向きを現実世界のユーザーの位置と向きと正確に一致させることができます。ヘッドトラッキングされたポーズ値は、カメラのTransform値を上書きします。つまり、カメラは常にプレイヤーオブジェクトに対して相対的な位置にあります。
典型的な一人称または三人称セットアップの場合、静止カメラではなく、カメラをプレイヤーオブジェクトをフォローしたりトラッキングしたりできるようにするとよいでしょう。プレイヤーオブジェクトは、アバターや自動車など、動くキャラクターにすることができます。カメラをプレイヤーオブジェクトの子にするか、オブジェクトにプレイヤーをトラッキングさせて、カメラにプレイヤーオブジェクトをフォローさせることができます。今度はカメラがそのオブジェクトをフォローします。アプリの設計によっては、プレイヤーオブジェクトを参照するスクリプトを作成し、そのスクリプトをOVRCameraRig に添付する必要があるかもしれません。
OVRCameraRig prefabには、
OVRCameraRig.csと
OVRManager.csという2つのメインスクリプトが添付されています。
OVRCameraRig.csスクリプトは、ヘッドセットからの入力を使用して、シーン内のカメラの位置と回転を変更します。
OVRManager.csを使用すると、カメラ、トラッキング、および表示設定をさらに設定して、最適なパフォーマンスを得ることができます。
これらのスクリプトを使用してOVRCameraRig を設定するには、プロジェクトの[Hierarchy (階層)] で[OVRCameraRig] を選択し、[Inspector (インスペクター)] ウィンドウで各スクリプトの設定を確認します。
OVRCameraRig.csは、ステレオレンダリングとヘッドトラッキングをコントロールするスクリプトです。子アンカーTransformを3つ保持します。1つは左目と右目のそれぞれのポーズ、もう1つは両目の間にある仮想センターアイです。
OVRCameraRig.csは、Unityとカメラとの間のメインインターフェイスです。
次のOVRCameraRig.cs設定によってカメラをコントロールします。
Use Per Eye Camera (片目カメラを使用) : このオプションは、左右の目のそれぞれに別のカメラを使用する場合に選択します。Use Fixed Update For Tracking (トラッキングに固定アップデートを使用する) : このオプションは、物理的忠実度を高めるため、Update() メソッドではなくFixedUpdate() メソッドで、トラッキング対象の全アンカーをアップデートする場合に選択します。固定アップデートレートがレンダリングフレームレート(OVRManager.display.appFramerateから派生)と一致しない場合、アンカーは視覚的に激しく振動します。Disable Eye Anchor Cameras (アイアンカーカメラを無効にする) : このオプションは、アイアンカーのカメラを無効にする場合に選択します。このオプションを選択すると、メインカメラがVRレンダリングを提供し、トラッキングスペースアンカーが更新されて参照ポーズが提供されます。OVRManager.csは、VRハードウェアとのメインインターフェイスです。これは、Meta XR SDKをUnityに公開するシングルトンであり、
OVRManager.csには、保存されたMeta変数を使用してカメラの動作を設定するヘルパー関数が含まれています。任意のアプリオブジェクトの一部とすることが可能で、宣言は1回だけにします。
Meta Questヘッドセットをターゲットとするアプリはすべて、Meta Quest 3上で実行するための互換性があります。ただし、デフォルトのターゲットデバイス の選択では、Meta XR SDKを使ってアプリが実行されているヘッドセットがどれなのかを正確に特定することはできないかもしれません。
ターゲットのヘッドセットをより正確に特定したい場合は、利用可能なデバイスタイプをすべてターゲットデバイスとして選択します。アプリがすべての対応ヘッドセットをターゲットにしている場合、ヘッドセットタイプをチェックしてヘッドセットに合わせてアプリを最適化できます。アプリを実行しているヘッドセットタイプを返すには、
OVRManager.systemHeadsetType()を呼び出します。
注 : Metaは、ターゲットヘッドセットに基づいて、適切な<meta-data/>要素を自動的に追加します。Androidマニフェストファイルを手動でアップデートする必要はありません。
パフォーマンスと品質の以下の設定が利用可能です。
Use Recommended MSAA Level (推奨MSAAレベルを使用) : デフォルトはtrueです。このオプションは、Metaデバイスに応じて適切なMSAAレベルをOVRManagerに自動的に選択させる場合に使用します。例えば、Meta QuestではMSAAレベルが4xに設定されます。現在のところ、Unityのビルトインレンダーパイプラインでのみサポートされています。
注 : ユニバーサルレンダーパイプライン(URP)の場合は、
MSAAレベルを手動で設定 して4xにします。URPがMSAAレベルを自動的に設定しないという既知の問題があります。この修正については提供され次第
リリースノート ページでお知らせする予定です。
Monoscopic (モノスコピック) : trueの場合、左右の目にセンターアイポーズからレンダリングされる同じ画像が見えるため、ローエンドのデバイスでパフォーマンスを確保できます。VRにおいては適切なエクスペリエンスが提供されないため、この設定は推奨されません。Enable Adaptive Resolution (アダプティブ解像度を有効にする) : アプリの解像度を、GPUの使用率が85%を超えた場合はスケールダウンさせ、85%を下回った場合はスケールアップさせるように設定できるようにします(範囲は0.5~2.0、1は通常の解像度)。解像度を変更するたびに最低2秒間の遅延が発生しますが、これにより、認知されるアーティファクトを最小限に抑えることができます。
注 : この機能はLink PC-VRアプリのみで利用可能です。
Min Dynamic Resolution Scale (最小動的解像度スケール) : 適応解像度の下限を設定します(デフォルト値は1.0)。Max Dynamic Resolution Scale (最大動的解像度スケール) : 適応解像度の上限を設定します(デフォルト値は1.0)。Head Pose Relative Offset Rotation (ヘッドポーズ相対オフセット回転) : ヘッドポーズの相対オフセット回転を設定します。Head Pose Relative Offset Translation (ヘッドポーズ相対オフセット移動) : ヘッドポーズの相対オフセット移動を設定します。Profiler TCP Port (プロファイラーTCPポート) : OculusプロファイラーサービスのTCPリスニングポート。デバッグまたは開発ビルドで有効化されます。アプリがエディターまたはデバイス上で実行されているときにリアルタイムのシステム指標を表示するには、Quest開発ワークフローを効率化するデスクトップコンパニオンツールであるMeta Quest開発者ハブのパフォーマンスアナライザーの使用 のセクションをご覧ください。Tracking Origin Type (トラッキング原点タイプ) : トラッキング原点タイプを設定します。
[Eye Level (アイレベル)] は、デバイスの位置を基準とした相対値として位置と向きをトラッキングします。
[Floor Level (フロアレベル)] は、床(境界設定で高さが決まる)からの相対的な位置と方向をトラッキングします。
[Stage (ステージ)] は、床からの相対的な位置と方向もトラッキングします。Questでは、[Stage (ステージ)] トラッキング原点はユーザーの再センタリングに直接反応しません。
注 :
[Stage (ステージ)] トラッキング原点を使用することは、どのアプリでも推奨されません。完全没入型のVRアプリでは、
[Eye Level (アイレベル)] または
[Floor Level (フロアレベル)] を使用してください。これにより、コンテンツがユーザーを中心に定義され、ユーザーの再センタリングに応じて位置が変更されます。アプリに
境界線 が必要か、それとも必要ない(つまり
境界なし )かにかかわらず、複合現実アプリで一貫したトラッキングスペースを確保するためには、
[Floor Level (フロアレベル)] トラッキング原点を使用し、
空間アンカー と組み合わせてトラッキングスペースを同期させるか、または
[Stationary (静止)] トラッキング原点(現在は
試験中機能 )を使用することをおすすめします。
[Stationary (静止)] (現在は
試験中機能 )は、現実世界の固定位置との相対的な位置と向きをトラッキングします。
[Stationary (静止)] トラッキング原点は、そのID(
OVRPlugin.GetStationaryReferenceSpaceIdで取得)が同じである限り、複数のアプリセッションをまたいでも同じ固定位置に留まります。アプリはセッションをまたいでIDを記憶しチェックすることができ、IDが同じであれば、トラッキング原点に基づいて配置されたコンテンツをそのまま使用できます。IDが変更された場合、コンテンツの位置や向きが現実世界では任意のものとなる可能性があるため、アプリはコンテンツをもう一度配置する必要があります。
[Stationary (静止)] トラッキング原点は、アプリセッションの間に(例えばトラッキングが失われたことにより)変更される場合があります。アプリは、
OVRManager.TrackingOriginChangePendingイベントに登録することで、このようなケースを検知し、それに応じた処理(コンテンツの再配置など)を行うことができます。詳しくは、
テスト機能 をご覧ください。
既知の問題 : [Stationary (静止)] は試験中機能であるため、UnityのOpenXRプラグインではまだ完全にサポートされていません。そのため、[Stationary (静止)] を設定した場合、XR OriginやTracked Pose DriverなどのUnityコンポーネントでは、正確なポーズが得られない可能性があります。[Stationary (静止)] は、OVRCameraRigなどのMeta Core SDKコンポーネントでのみ動作します。
Use Position Tracking (位置トラッキングを使用) : 有効にした場合、ヘッドトラッキングが仮想カメラの位置に影響を与えます。Use IPD in Position Tracking (位置トラッキングでIPDを使用) : 有効にすると、ユーザーの左目と右目の間の距離が、各OVRCameraRigのカメラの位置に影響を与えます。Reset Tracker on Load (読み込み時にトラッカーをリセット) : 有効にすると、シーンごとにヘッドポーズがリセットされます。無効にすると、後続シーンの読み込み時にトラッカーがリセットされなくなります。これによりシーンが変わってもトラッカーの向きは同じになり、磁気計の設定もそのままに保たれます。
注 : この機能はLink PC-VRアプリのみで利用可能です。
Allow Recenter (再センタリングを許可) : このオプションは、ユーザーがユニバーサルメニューから[Reset View (ビューをリセット)]オプションをクリックした際に、ポーズをリセットする場合に選択します。仮想世界に静止位置を持つアプリでは、このオプションを選択し、[Reset View (ビューをリセット)]オプションによって、ユーザーが事前定義済みの場所(コックピット席など)に戻れるようにしてください。ロコモーションシステムがある場合、ビューのリセットによってユーザーが無効な場所にテレポートしてしまうことがあるため、このオプションは選択しないでください。OVRManager.display.RecenterPose()は、頭のポーズとトラッキング対象のコントローラーのポーズ(存在する場合)を再センタリングします。トラッキングコントローラーについて詳しくは、
マップコントローラー をご覧ください。
Tracking Origin TypeがFloor Levelに設定されている場合、OVRManager.display.RecenterPose()はx、y、z軸の位置を原点にリセットします。Eye Level (アイレベル)に設定されている場合、x、y、z軸はすべて原点にリセットされ、yの値は、Oculus設定ユーティリティで実行された高さ調整に対応した値になります。どちらの場合も、yの回転は0にリセットされますが、xとzの回転は変更されず、一貫した基平面が維持されます。
Late Controller Update (遅延コントローラーアップデート) : このオプションは、現実の世界と仮想コントローラーの動きの間の遅延を低減するため、レンダリング直前にコントローラーのポーズをアップデートする場合に選択します。コントローラーのポーズがシミュレーション/物理演算に使用される場合、その位置はレンダリングに使用される位置よりも若干遅れる可能性があります(10ms以内)。シミュレーション時に行われるすべての計算は、コントローラーのレンダリングされた位置に完全には一致しない可能性があります。ランタイムで特定の色空間を設定すると、色のばらつきが防げます。
[Color Gamut (色域)] リストから、特定の色空間を選択します。使用可能な色域の基本要素について詳しくは、特定の色空間の設定 のトピックをご覧ください。以下の設定は、Meta Questにのみ適用されます。
Focus Aware (フォーカス検知) : このオプションは、ユーザーがアプリからコンテキストを切り替えないでシステムUIにアクセスできるようにする場合に選択します。フォーカス検知の有効化について、詳しくはシステムオーバーレイでのフォーカス検知の有効化 のトピックをご覧ください。Hand Tracking Support (ジェスチャーコントロールサポート) : リストからアプリのインプットアフォーダンスのタイプを選択します。ジェスチャーコントロールの設定について詳しくは、ジェスチャーコントロールの設定 のトピックをご覧ください。Hand Tracking Frequency (ジェスチャーコントロールの頻度) : リストからジェスチャーコントロールの頻度を選択します。頻度が高いほどジェスチャーの検出が向上し、遅延も短くなりますが、アプリの予算からパフォーマンスのヘッドルームを使うことになります。詳しくは、高頻度のジェスチャーコントロールの設定 のセクションをご覧ください。Requires System Keyboard (システムキーボードの使用) : このオプションは、ユーザーがシステムキーボードで操作できるようにする場合に選択します。詳しくは、Unityでキーボードオーバーレイを有効にする のトピックをご覧ください。System Splash Screen (システムスプラッシュスクリーン) : [Select (選択)] をクリックして2Dテクスチャーのリストを表示し、スプラッシュスクリーンに設定したい画像を選択します。Allow Optional 3DoF Head Tracking (3DoFヘッドトラッキングオプションの許可) : このオプションは、6DoFと同時に3DoFをサポートし、低照明モードの場合などにヘッドトラッキングなしでアプリを動作させる場合に選択します。アプリが3DoFをサポートしている場合、MetaはAndroidマニフェストの<uses-feature android:name="android.hardware.vr.headtracking" android:version="1" android:required="false" />を変更することで、ヘッドトラッキングの値を自動的にfalseに設定します。チェックボックスが選択されていない場合、つまり6DoFのみに対応している場合は、ヘッドトラッキングの値がtrueに設定されます。シェーダーストリップ機能を使用すると、使用されていないシェーダーをコンパイルから除外することができ、それによりプレイヤーのビルド時間を大幅に短縮できます。シェーダーストリップ機能を有効にするには、
[Skip Unneeded Shaders (不要なシェーダーをスキップ)] を選択します。さまざまな層について、またシェーダーの除去について詳しくは、
使用していないシェーダーのストリップ のトピックをご覧ください。
Custom Security XML Path (カスタムセキュリティXMLパス) : MetaでセキュリティXMLを生成するのではなく、開発者独自のXMLを使用する場合、そのXMLファイルパスを指定します。Disable Backups (バックアップを無効にする) : このオプションを選択することで、ユーザーの非公開情報が未承認の者に対して、あるいはセキュリティの確保されていない場所に誤って漏洩してしまうことを防ぐことができます。このオプションが選択されると、AndroidManifest.xmlファイルの中にallowBackup="false"のフラグが追加されます。Enable NSC Configuration (NSC構成を有効にする) : このオプションを選択することで、アプリや埋め込みSDKが平文HTTP接続を開始しないようにするとともに、アプリが必ずHTTPS暗号化を使用するように設定できます。Meta Questビルド用に設定されたUnityプロジェクトで、テスト機能のサポートを有効にするには、次の手順に従います。
OVRCameraRig オブジェクトが含まれるシーンを開きます。[Hierarchy (階層)] タブで、[OVRCameraRig] を選択します。[Inspector (インスペクター)] タブで、[OVRManager] > [Quest Features (Quest機能)] セクションの[Experimental (テスト)] タブを選択します。[Experimental Features Enabled (実験機能が有効)] にチェックマークを付けます。注 : [Experimental Features (テスト機能)] の設定は、現在開いているプロジェクトにのみ適用されます。
複合現実キャプチャ(MRC)はVR内に現実世界のオブジェクトを配置します。MRCでは現実世界のイメージをバーチャル世界のものと組み合わせることができます。ミックスドリアリティサポートを有効にするには、
[Show Properties (プロパティの表示)] を選択した後、
[enableMixedReality] を選択します。ミックスドリアリティキャプチャの設定について詳しくは、
Unityミックスドリアリティキャプチャ のガイドをご覧ください。
Meta XR Interaction SDKには、次のXRリグのprefabが含まれています。これは、OVRCameraRig に似ていますが、以下の相違点があります。
OVRCameraRigInteraction は、Meta XR Core SDKのOVRCameraRig を、インタラクション用にコントローラーとジェスチャーコントロールで拡張するXRリグのprefabです。詳細については、Interaction SDKとUnity XRの利用を開始する をご覧ください。OVRCameraRigInteractionComprehensive は、インタラクション用のコントローラーとジェスチャーコントロールのサポートを既存のXRリグに追加するprefabです。詳細については、カメラレスリグprefabの使用 をご覧ください。