OpenXR による入力

OpenXR ランタイムは、できる限り多くのプラットフォームをサポートするコントローラー エミュレーションと、没入感のあるインタラクションを作成するためのコントローラーとハンド ポーズを提供します。

Choose your operating system:

Windows

macOS

Linux

コンテンツ

OpenXR ランタイムは、 インタラクション プロファイル を使用してさまざまなハードウェア コントローラーをサポートし、接続されているコントローラーにアクション バインディングを提供します。Unreal Engine の OpenXR 入力マッピングは、アクションを OpenXR インタラクション プロファイルに接続するために、 アクション マッピング入力システム を活用します。アクション マッピング入力システムの使用方法については、「 新しい入力を作成する 」を参照してください。 Default engine input action mappings OpenXR の入力システムは、Unreal プロジェクトの アクション マッピング で明示的に指定されていないコントローラー マッピングをエミュレートすることで、デバイス間の互換性を提供するように設計されています。コントローラー マッピングをエミュレートする際、OpenXR ランタイムは、ユーザーのコントローラーと緊密に一致するコントローラー バインディングを選択します。 OpenXR では、このような相互互換性が提供されているため、サポートしていて、テスト可能なコントローラーのバインディングのみを追加する必要があります。コントローラーに指定したバインディングは、そのコントローラーに接続されているアクションの内容を定義します。コントローラーにバインディングを部分的にしか適用していない場合は、コントローラーは不明なバインディングを一切サポートしません。 次の例では、プロジェクトに 2 つのアクション、 Jump (ジャンプ) Pickup (ピックアップ) が含まれています。

  • Jump は、 Vive Index (L) Trigger Oculus Touch (L) Trigger などの複数のコントローラーのキーにマッピングされています。

  • Pickup は、 Valve Index (L) A Touch にのみマッピングされています。 この場合、OpenXR ランタイムは他のコントローラーを Pickup アクション用にエミュレートしません。これは、このようなコントローラーに Jump 用のバインディングがあるものの、 Pickup 用のバインディングはないためです。他のコントローラーのキーが Jump から削除された場合、OpenXR ランタイムは Jump および Pickup の両方のコントローラーをエミュレートできるようになります。 Example engine input action mappings

OpenXR はまだベータ版であるため、プロジェクトに実装する場合は注意が必要です。インタラクション プロファイルのエミュレーションは、現在のところ一部のランタイムではサポートされていない場合があります。利用しており、サポートする予定のデバイスの数だけバインディングを追加することをお勧めします。

ポーズ

OpenXR では、ユーザーがアクションを実行する際に手をどのような状態にするかを表現するために、次の 2 つのポーズを提供しています。

  • Grip (グリップ): 仮想オブジェクトを保持するためにユーザーが閉じた手の位置と向きを表します。

  • Aim (指さし): ユーザーの手またはターゲットを指すために使用するコントローラーからの光線を表します。 2 つのポーズの詳細については、OpenXR の The OpenXR Specification を参照してください。Unreal Engine では、これら 2 つのポーズはモーション ソースとして表され、これらのポーズは Enumerate Motion Sources がデバイスで利用可能な場合は、Enumerate Motion Sources を呼び出すと結果として返されます。

Unreal Engine では、OpenXR 仕様に記載されているものとは異なる座標系を使用しています。Unreal では左手の座標系、すなわち+X 前方、+Z 上、+Y 右を使用します。

OpenXRMsftHandInteraction プラグインを有効にすると、 HoloLens などこの拡張プラグインをサポートしているランタイムで、追跡対象の手の OpenXR グリップ ポーズや指さしポーズをレプリケートできます。

Openxr hand interaction plugin

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる