VRED 2022 に、Varjo MR のマーカー配置機能と基本設定、手のジェスチャ、手の深度予測機能、さらに XR と VR の[VR]メニューから設定なしですぐに使用できるオブジェクト配置機能を追加しました。また、カスタム バージョンのマーカー トラッキングを実装するための Python インタフェース用の関数も追加されました。これらは、vrImmersiveInteractionService のドキュメントに記載されています。
Varjo XR HMD ユーザのみが使用できます。
: 表示マーカー(別名、原点マーカー)を使用すると、複合現実のシーン内でオブジェクトを簡単に配置できます。座標系は自動的に同期されますが、MR を入力する前にノードを準備しておく必要があります。
[VR]メニューの を使用すると、サポートされている HMD からマーカーを検出することができます。HMD がマーカーを認識すると、ノードに
VarjoMarker
がタグ付けされている場合は、ノードの内容がマーカーの位置に移動します。マーカーの ID 番号は個別のタグとして設定する必要があります。
タグの構文では、大文字と小文字が区別されます。
複数のマーカーを 1 つのマーカーに結合できます。結合すると、トラッキングの安定性が向上します。
たとえば、複数のノードに VarjoMarker
がタグ付けされていて、タグ番号はそれぞれ異なるとします。マーカー トラッキング システムはマーカーを検出し、0.0 から 1.0 の範囲内の信頼度値を各マーカーに割り当てます正しいと判断された場合、ノードの内容がマーカーの位置に移動します。信頼度値の詳細については、バーチャル リアリティの基本設定である[最小のマーカー信頼度]を参照してください。
Varjo XR HMD ユーザのみが使用できます。
MR を開始する前にノードを準備するには、次の手順に従います。部屋に収まらないオブジェクトは、MR を開始する前にスケールダウンする必要があることに注意してください。
タグを追加して、名前を VarjoMarker
に変更します。
オブジェクト ノードをこのタグの上にドラッグ アンド ドロップして、割り当てます。
別のタグを作成し、名前を Varjo マーカーに出力されている番号に変更します。
同じオブジェクト ノードをこのタグにドラッグ アンド ドロップします。
Varjo XR HMD ユーザのみが使用できます。
続行する前に、シーンのノードにタグ付けする必要があります。まだタグ付けしていない場合は、続行する前に、「マーカーのノードを準備する」を参照してください。
MR をサポートする接続済みの Varjo HMD を装着し、VRED で[ビュー] > [表示] > [Varjo HMD]を選択します。VarjoMarker
がタグ付けされたオブジェクトおよび数値のタグが MR に表示されます。
コントローラを使用して[VR]メニューを開き、[マーカーの有効化]を選択します。
ジオメトリがマーカーに直接移動します。
現在、MR では Varjo XR HMD のみがサポートされています。
MR では、VRED によって自分の手が VR X-Ray マテリアルの手に置き換わります。
MR に移行するには、[VR]メニューで ([MR 機能])を選択します。
MR の XR-1 と XR-3 では、サポートされる機能に違いがあることに注意してください。
Python を使用してハンド トラッキングを接続する方法を確認するには、[ファイル] > [サンプルを開く]を選択し、vr
フォルダにナビゲートして externalHandTracking.py
を見つけます。このファイルに、ハンド トラッキングを設定する例が示されています。
vrDeviceService.getLeftTrackedHand()
を使用vrDeviceService.getRightTrackedHand()
を使用返されるオブジェクトのタイプは vrdTrackedHand
です。
現在、MR では Varjo XR HMD のみがサポートされています。
: 複合現実のビデオ内で実世界の手を検出し、これらが仮想オブジェクトよりも手前にある場合は、仮想オブジェクトの前に表示します。無効にすると、実際の手がレンダリングされたオブジェクトよりも手前にある場合でも、VRED からレンダリングしたときに、実際の手は常にオクルードされます。
[VR]メニューでこのオプションを探します。このオプションの既定の動作を設定するには、[バーチャル リアリティ]基本設定 > [HMD]タブ > [Varjo]セクションにアクセスします。
[手の深度予測]: オフ | [手の深度予測]: オン |
---|---|
![]() |
![]() |
現在、MR では Varjo XR HMD のみがサポートされています。
複合現実内にいるユーザの手を表示するには、[手の深度予測]ツールを使用します。
MR をサポートする接続済みの Varjo HMD を装着し、VRED で[ビュー] > [表示] > [Varjo HMD]を選択します。
コントローラのメニュー ボタンを押して、[VR]メニューにアクセスします。
を押して、MR で実世界の手を確認します。
このセクションでは、デジタル デザインの操作でサポートされている VRED の手のジェスチャを示します。手の動きは、人差し指でモデルの一部をタップしてタッチ イベントを開始したり、[VR]メニューからツールを選択したり、HTML 5 HMI 画面を操作したりすると、追跡されます。これらのジェスチャを使用すると、コントローラを使用しなくても、シーンをナビゲートできます。
仮想的な手は、実世界の手に合わせて自動的に調整されます。
人差し指の先端(片手)を使用して、シーンのコンテンツ(xR の[ホーム]メニュー、タッチ センサーを備えたオブジェクト、または HTML 5 HMI 画面など)にタッチして、操作します。
xR の[ホーム]メニューを開く場合、および閉じる場合は、同じジェスチャを使用します。
人差し指を反対側の手のひらに移動します。メニューが開きます。これで、人差し指を使用して、メニューからオプションを選択できるようになります。最初のジェスチャを繰り返して、[VR]メニューを閉じます。
[VR]メニューとそのツールの詳細については、「[VR]メニュー」を参照してください。
手が仮想オブジェクトの前に位置していても、仮想オブジェクトによって手が遮られている場合は、[手の深度予測]を有効にします。
テレポートするには、テレポータを開始し、円弧と矢印の向きを変更して、新しい位置に移動する必要があります。終了したら、テレポータを終了します。
テレポートを開始する場合、および終了する場合は、同じジェスチャを使用します。
手を使って、反対側の手の甲をタップします。これにより、タップされた手からテレポートが開始します。ここで、円弧の方向を変更して、テレポートします。このジェスチャを繰り返して、テレポータを終了します。
テレポート用円弧が表示されている状態で手首を回転して、テレポータの方向を変更します。ここで、テレポートを行います。
テレポート用円弧が現在表示されていない手の人差し指で親指をつまみます。これにより、テレポート円弧の位置と方向が承認されて、テレポートが実行されます。終了したら、テレポートを終了してツールを終了します。
テレポートの詳細については、「テレポート」を参照してください。
レーザー ポインタを使用するには、レーザー ポインタを開始、実行、終了する必要があります。
テレポートを開始する場合、および終了する場合は、同じジェスチャを使用します。
手のひらをカメラの方向に向けて、親指、人差し指、中指で指し示します。ここで、レーザー ポインタを使用して対象を指し示したり、シーン コンテンツの操作をトリガしたりします。このジェスチャを繰り返して、レーザー ポインタを終了します。
人差し指を使用して、シーンのコンテンツを指します。
人差し指で親指をつまんで、シーン コンテンツの操作をトリガします。たとえば、[VR]メニューからツールを選択したり、タッチ センサーをアクティブにしたり、HTML 5 HMI 画面を操作したりします。終了したら、レーザー ポインタを終了してツールを終了します。
MR モードでのみ使用できます。
XR のコラボレーション セッションでは、複数のユーザ間でオブジェクトの位置が同期されます。
オブジェクトを配置し、レーザー ポインタを使用してシーンの地面に沿って移動する場合に使用します。これらのオブジェクトには、
Place
という名前のシーン タグ が割り当てられている必要があります。
配置ツールでオブジェクトを回転する場合は、テレポートと同様な方法を使用して、手首を回転させます。コントローラのグリップ ボタンを押すと、回転角度が 10°になる位置にスナップできます。これは、あるオブジェクトを別のオブジェクトに位置合わせする場合に使用します。オブジェクトを別のオブジェクトの上に配置することもできます。
MR モードでのみ使用できます。
オブジェクトを選択して MR に配置するには、最初にノードを準備する必要があります。部屋に対してオブジェクトが大きすぎたり、小さすぎたりする場合は、MR を開始する前にオブジェクトを適切なサイズにスケーリングする必要があります。
Place
に変更します。X モードでのみ使用できます。
続行する前に、シーンのノードにタグ付けする必要があります。この操作が完了していない場合は、「配置するノードを準備する」の手順に従ってください。
MR をサポートする接続済みの Varjo HMD を装着し、VRED で[ビュー] > [表示] > [Varjo HMD]を選択します。Place
がタグ付けされたオブジェクトが MR に表示されます。
コントローラのメニュー ボタンを押して[VR]メニューを開き、(配置)を選択します。
オレンジ色にハイライト表示されている場合は、ツールが有効です。グレーの場合は、ツールが無効です。コントローラの上に、アクティブなオブジェクトと選択したオブジェクトを示すインジケータが表示されます。
オブジェクトをポイントし、トリガを絞って選択したまま、仮想的な地面に沿って移動します。
手首を回転すると、アップ軸を中心にオブジェクトが回転します。このアクションは、[テレポート]ツールのアクションに似ています。
[グリップ]ボタンを押すと、10 度単位で増分する角度にスナップさせることができます。これは、オブジェクトを別のオブジェクトに位置合わせする場合に役立ちます。
Varjo XR-3 ユーザのみが使用できます。
トラッキング対象の手に対して、ハンド トラッキングの有効化と手の移動オフセットと回転オフセットの設定を行うためのインタラクションの基本設定を、バーチャル リアリティの基本設定に追加しました。
基本設定でハンド トラッキングを有効にすると、VR または MR のハンド トラッキングが自動的にアクティブになります。
Varjo XR-3 ユーザのみが使用できます。
VR 内でハンド トラッキングが有効な場合、既定でハンド トラッキングを常に行うように設定します。トラッカーが Varjo Integrationd Ultraleap に設定されている場合は、サポートされている HMD で XR 内のハンド トラッキングも有効になります。
Varjo XR-3 ユーザのみが使用できます。
ハンド トラッキングに使用する既定のシステムを設定します。
他のデバイスにハンド トラッキングを設定する
[カスタム]トラッカー オプションを使用する場合は、すべてのトラッキング データを VRED の Python インタフェースに提供する必要があります。この方法はデバイスごとに異なります。ただし、Python スクリプトを使用してトラッキング データにアクセスできる場合は、使用したメソッドによって返される
vrdTrackedHand
オブジェクトに、このトラッキング データを設定する必要があります。そのためには、トラッキング対象の手や指のジョイントに関する変換データが必要になります(この仕組みについては、externalHandTracking.py
のサンプル ファイルを参照してください)。テストする場合は、対応する基本設定を行い、スクリプトをロードして、VR を開始します。すべての機能を理解するために、手やジョイントのトランスフォームの値を変更して、スクリプトを変更しなければならない場合があります。
手をトラッキングする場合の既定の移動オフセットを設定します。この機能は、トラッキング対象の手と VR でレンダリングされた手との間のオフセットを調整するために使用します。
手をトラッキングする場合の既定の回転オフセットを設定します。この機能は、トラッキング対象の手と VR でレンダリングされた手との間のオフセットを調整するために使用します。
マーカー トラッキング システムは各マーカーを検出し、0.0 ~ 1.0 の範囲内の信頼度値を割り当てます。
0.0 の場合は、検出された結果(マーカー ID と位置)が 100% 正しくないと判断されます。
1.0 の場合は、検出された結果(マーカー ID と位置)が 100% 正しいと判断されます。
たとえば、値が 0.9 のマーカーは、マーカーの位置と ID の正確性について 90% 信頼できることを意味します。
信頼度値が低いマーカーは、位置が移動している可能性があります。許容できる最小信頼度の設定値を大きくすると、検出された結果の中で信頼性が低いものは無視されるようになります。
検出されたマーカーの信頼度値が高くても、後で最小値を下回る信頼度値が検出された場合、このマーカーは無視され、位置は更新されません。
検出されたマーカー位置が正しいかどうかを判断するために、マーカー トラッキング システムで使用される既定の最小値を設定します。
既定のネイティブ フォービエイテッド レンダリングの状態、開始したモード、および手の深度を設定するための Varjo HMD 固有のオプションを [HMD]タブに追加しました。
視線トラッキングを有効にする必要があります。
[HMD]タブ> [Varjo]セクションで、周辺の要素のレンダリング方法について既定の状態を設定する場合に使用します。有効にすると、周辺領域の解像度(イメージ品質)は低下しますが、視線トラッキングが行われている領域は引き続き高解像度でレンダリングされます。これにより、計算量の多いマテリアルを含むシーンで作業している場合や、リアルタイム アンチエイリアシングを使用している場合は、パフォーマンスが向上します。フォービエイテッド レンダリングおよびさまざまな設定の詳細については、「 カスタム品質 」を参照してください。
[HMD]タブ> [Varjo]セクションで、Varjo HMD の既定の表示モードを設定する場合に使用します。常に複合現実で作業する場合は、これを MR に設定します。
[HMD]タブ> [Varjo]セクションで、MR における実世界の手の既定の状態を設定する場合に使用します。有効にすると、複合現実のビデオ内で実世界の手を検出し、これらが仮想オブジェクトよりも手前にある場合は、仮想オブジェクトの前に表示します。無効にすると、実際の手がレンダリングされたオブジェクトよりも手前にある場合でも、VRED からレンダリングしたときに、実際の手は常にオクルードされます。
[手の深度予測]: オフ | [手の深度予測]: オン |
---|---|
![]() |
![]() |
これらは、カスタム バージョンのマーカー トラッキングを実装するための Python インタフェース用関数です。これらは、vrImmersiveInteractionService のドキュメントに記載されています。
vrImmersiveInteractionService.
createMultiMarker(multiMarkerName, markerNames, markerType)複数の標準マーカーのポーズを平均化することによって、マルチ マーカーを作成します。
パラメータ
戻り値
戻り値の型
vrdMultiMarker
vrImmersiveInteractionService.
getDetectedMarkers(markerType)検出されたすべてのマーカーのうち、指定したタイプのものを取得します。
パラメータ
戻り値
検出されたマーカー
戻り値の型
List[vrdMarker]
vrImmersiveInteractionService.
getMarker(name, markerType) 既に検出されたマーカーを取得します。
パラメータ
戻り値
マーカー(名前とタイプの組み合わせが検出されない場合は null マーカー)
戻り値の型
vrdMarker
vrImmersiveInteractionService.
getMinMarkerConfidence()「setMinMarkerConfidence」も参照してください。
戻り値
最小のマーカー信頼度
戻り値の型
float
vrImmersiveInteractionService.
setMinMarkerConfidence(confidence)最小のマーカー信頼度を設定します。信頼度が低いマーカーが検出された場合、マーカーは無視されます。更新されたデータの信頼度が低い場合、システムで既に認識されているマーカーは更新されません。
パラメータ
vrImmersiveInteractionService.
markersDetected(markers)この信号は、最小のマーカー信頼度以上の信頼度を持つ新しいマーカーが検出されたときにトリガされます。
パラメータ
vrImmersiveInteractionService.
markersUpdated(markers)この信号は、最小のマーカー信頼度以上の信頼度を持つ新しいマーカーが検出されたときにトリガされます。
パラメータ