vrdVRDevice

クラス vrdVRDevice

(vrdObject を継承)

コントローラやトラッカーなどの VR デバイスを表します。このデバイスは、実際のデバイスがシステムに接続される前に作成できます。デバイスが接続されると、VRED は既に作成されているオブジェクトに物理デバイスをマップします。これにより、事前にマッピングを定義できます。

ご注意ください。実際のハードウェア デバイスを接続する前に vrDeviceService.getVRDevice(name)vrDeviceService.getVRDeviceBySerialNumber(serialNumber) の両方を呼び出すと、2 つの異なる vrdVRDevice オブジェクトが取得されます。ハードウェアが使用可能になる前に、それらが同じ物理デバイスに属しているかどうかを確認することはできません。

ハードウェアが接続されると、これらのデバイス ノードは内部的に正しい物理デバイスに解決されますが、2 つの個別のオブジェクト インスタンスになるため、「==」演算子を使用してこれらのノードを比較することはできません。

vrdVRDevice.getName() または vrdVRDevice.getSerialNumber() を使用して比較する方が安全です(ノードを取得するために名前を使用するかシリアル番号を使用するかに応じて)。

概要

関数:

関数

vrdVRDevice.addVirtualButton(button, physicalButton)

ボタンの位置を新しい信号にマッピングする仮想ボタンをコントローラに追加します。

パラメータ:
  • button (vrdVirtualTouchpadButton): 仮想ボタン。
  • physicalButton (string): 仮想ボタンが関連付けられている物理ボタンの名前。

vrdVRDevice.disableRay()

現在アクティブなポインティング レイを無効にします。

vrdVRDevice.enableRay(axis)

コントローラから放出されるポインティング レイを有効にします。

パラメータ:axis (string): ポインティング レイの軸。可能な値は、コントローラーの座標系のそれぞれの軸を表す「x」、「y」、「z」、「ポインタ」インタラクションの軸を表す「custom」、「テレポート」インタラクションの軸を表す「teleportaxis」、コントローラーハンドルを通る軸を表す「controllerhandle」、手の視覚化において左右の人差し指をそれぞれ通る軸を表す「leftfinger」と「rightfinger」です。

vrdVRDevice.getButtonState(button)

現在のボタンの状態を取得します。

パラメータ:button (string): ボタンの名前。
戻り値:現在のボタンの状態。ボタンの名前が VR デバイスにとって不明である場合は、この状態が無効になることがあります。
戻り値の型:vrdButtonState

vrdVRDevice.getName()

デバイスの名前を取得します

戻り値:デバイスの名前。デバイスが無効な場合は空白になります。
戻り値の型:string

vrdVRDevice.getNode()

VR デバイスの原点にあるノードを取得します。このノードはシーングラフの一部ではありません。デバイスに一部のジオメトリをアタッチする必要がある場合、コンストレイント(vrConstraintService::createParentConstraint(const QList<vrdNode> &,const vrdNode &,const bool)を参照)を使用する必要があります。例: vr/attachToController.py

戻り値:VR デバイスの原点にあるノード。
戻り値の型:vrdNode

vrdVRDevice.getSerialNumber()

デバイスのシリアル番号を取得します。

注: API の制限により、OpenXR モードでは Vive トラッカーでのみ使用できます。
戻り値:シリアル番号。デバイスが名前を使用して作成されていて、物理デバイスがまだ接続されていない場合は、この値が空白になることがあります。
戻り値の型:string

vrdVRDevice.getTrackingMatrix()
戻り値:現在のトラッキング マトリックス
戻り値の型:QMatrix4x4

vrdVRDevice.getVisualizationMode()

現在の表示モードを取得します。

戻り値:モードの ID: 0 = コントローラ、1 = 手、2 = コントローラと手、3 = 初期化されていない
戻り値の型:integer

vrdVRDevice.getVisualizationNode()

コントローラ可視化のルート ノードを取得します。コントローラが現在表示されていない場合や、トラッキング システムで検出されない場合、この関数は空のノードを返します。

戻り値:VR デバイスのルート ノード。
戻り値の型:vrdNode

vrdVRDevice.getWristOrientationAngle()

手首の方向の角度を返します。手首が静止位置にある場合は 0 です。これは、VRED に組み込まれているテレポートの向きを決定する場合に使用される角度と同じです。

戻り値:手首の角度(角度数)。
戻り値の型:float

vrdVRDevice.isVisible()

デバイスの可視性を取得します。

戻り値:true = 表示、false = 非表示
戻り値の型:bool

vrdVRDevice.pick()

ポインティング レイとシーンの交点で、シーン内のオブジェクトの選択を試みます。

戻り値:交差のデータ。
戻り値の型:vrdRayIntersection

vrdVRDevice.removeVirtualButton(button, physicalButton)

物理ボタンに関連する仮想ボタンを削除します。

パラメータ:
  • button (vrdVirtualTouchpadButton): 仮想ボタン。
  • physicalButton (string): 仮想ボタンが関連付けられている物理ボタンの名前。

vrdVRDevice.removeVirtualButton(virtualButton, physicalButton)

物理ボタンに関連する仮想ボタンを削除します。

パラメータ:
  • virtualButton (string): 仮想ボタンの名前。
  • physicalButton (string): 仮想ボタンが関連付けられている物理ボタンの名前。

vrdVRDevice.setButtonPressed(state, button)

ボタンの押下をシミュレートします。

パラメータ:
  • state (bool): True = 押した状態、False = 放した状態。
  • button (string): 「menu」、「grip」、「touchpad」、「trigger」

vrdVRDevice.setButtonTouched(state, button)

ボタンの押下をシミュレートします。

パラメータ:
  • state (bool): True = タッチした状態、False = タッチしていない状態
  • button (string): 「menu」、「grip」、「touchpad」、「trigger」

vrdVRDevice.setTrackingMatrix(matrix)

トラッキング位置の変更をシミュレートします。

パラメータ:matrix (QMatrix4x4): トラッキング マトリックス。

vrdVRDevice.setVisible(visible)

VR デバイスの表示/非表示を設定します。

パラメータ:visible (bool): 表示の場合は true、非表示の場合は false。

vrdVRDevice.setVisualizationMode(mode)

可視化モードを設定します。

パラメータ:mode (integer): モードの ID: 0 = コントローラ、1 = 手、2 = コントローラと手

vrdVRDevice.signal()

トリガ可能な信号を取得します。

戻り値:信号オブジェクト。
戻り値の型:Q_SLOTvrdVRDeviceSignal

vrdVRDevice.vibrate(milliseconds, axisId)

デバイスのバイブレーション機能が利用可能な場合は、この機能をトリガします。

パラメータ:
  • milliseconds (integer): バイブレーションの期間(ミリ秒単位)。
  • axisId (integer): 振動するコントローラの軸注: このパラメータは OpenXR では無視されます。Oculus Touch、HTC Vive、および Windows MR コントローラは、このパラメータを無視するか、OpenVR では 0 と見なします。