Unity の入力移植ガイドInput porting guide for Unity

2つの方法のいずれかを使用して、入力ロジックを Windows Mixed Reality に移植できます。 Unity の一般的な入力です。複数のプラットフォームにまたがっている GetButton/GetAxis Api、または Windows 固有の XR です。付い.モーションコントローラーと HoloLens ハンド専用の豊富なデータを提供する入力 Api。You can port your input logic to Windows Mixed Reality using one of two approaches, Unity's general Input.GetButton/GetAxis APIs that span across multiple platforms, or the Windows-specific XR.WSA.Input APIs that offer richer data specifically for motion controllers and HoloLens hands.

一般的な入力。 GetButton/GetAxis ApiGeneral Input.GetButton/GetAxis APIs

Unity では、現在、一般的な入力である GetButton/GetAxis Api を使用して、OCULUS sdkopenvr sdkの入力を公開しています。Unity currently uses its general Input.GetButton/Input.GetAxis APIs to expose input for the Oculus SDK and the OpenVR SDK. アプリが既にこれらの Api を入力に使用している場合は、これが Windows Mixed Reality でのモーションコントローラーをサポートするための最も簡単なパスです。入力マネージャーでボタンと軸を再マップするだけで済みます。If your apps are already using these APIs for input, this is the easiest path for supporting motion controllers in Windows Mixed Reality: you should just need to remap buttons and axes in the Input Manager.

詳細については、「 unity のボタン/軸マッピングテーブル」と「共通 unity api の概要」を参照してください。For more information, see the Unity button/axis mapping table and the overview of the common Unity APIs.

Windows 固有の XR。付い.入力 ApiWindows-specific XR.WSA.Input APIs

アプリが各プラットフォームのカスタム入力ロジックを既に作成している場合は、 XR名前空間の下で Windows 固有の空間入力 api を使用することを選択できます。If your app already builds custom input logic for each platform, you can choose to use the Windows-specific spatial input APIs under the UnityEngine.XR.WSA.Input namespace. これにより、位置の精度やソースの種類などの追加情報にアクセスして、HoloLens で両手とコントローラーを区別できるようになります。This lets you access additional information, such as position accuracy or the source kind, letting you tell hands and controllers apart on HoloLens.

詳細については、「 UnityEngine. XR api の概要」を参照してください。For more information, see the overview of the UnityEngine.XR.WSA.Input APIs.

グリップポーズとポインティングポーズGrip pose vs. pointing pose

Windows Mixed Reality では、さまざまなフォームファクターでのモーションコントローラーがサポートされています。各コントローラーの設計は、ユーザーの手の形と、アプリがレンダリングするときに使用する自然な "進む" 方向との間の関係で異なります。コントロール.Windows Mixed Reality supports motion controllers in a variety of form factors, with each controller's design differing in its relationship between the user's hand position and the natural "forward" direction that apps should use for pointing when rendering the controller.

これらのコントローラーをより適切に表現するために、相互作用ソースごとに調査できる2種類の方法があります。To better represent these controllers, there are two kinds of poses you can investigate for each interaction source:

  • グリップは、HoloLens によって検出されたハンドの位置を表します。または、運動コントローラーを持つパームです。The grip pose, representing the location of either the palm of a hand detected by a HoloLens, or the palm holding a motion controller.
    • イマーシブヘッドセットでは、この方法を使用して、ユーザーの手や、剣や銃などのユーザーの手に保持されているオブジェクトをレンダリングすることをお勧めします。On immersive headsets, this pose is best used to render the user's hand or an object held in the user's hand, such as a sword or gun.
    • グリップの位置:コントローラーを自然に保持すると、パーム重心が調整され、グリップ内の位置を中心として左右に調整されます。The grip position: The palm centroid when holding the controller naturally, adjusted left or right to center the position within the grip.
    • グリップの向きの右軸:ハンドを完全に開いて、5つの指が平らになるようにするには、(左側のパームから、右のパームから後方に)、パームに通常ある光線を使用します。The grip orientation's Right axis: When you completely open your hand to form a flat 5-finger pose, the ray that is normal to your palm (forward from left palm, backward from right palm)
    • グリップの向きの前方軸:(コントローラーを保持している場合と同様に) 手を部分的に閉じた場合、非表示の指で形成されたチューブによって "前方" を指します。The grip orientation's Forward axis: When you close your hand partially (as if holding the controller), the ray that points "forward" through the tube formed by your non-thumb fingers.
    • グリップの方向の上位軸:右および順方向の定義によって暗黙的に示される上位軸。The grip orientation's Up axis: The Up axis implied by the Right and Forward definitions.
    • このグリップには、Unity のクロスベンダ入力 API (XR) を使用してアクセスでき ます。InputTracking。GetLocalPosition/Rotation) または Windows 固有の API (TryGetPosition/rotation) を使用して、グリップを要求します。You can access the grip pose through either Unity's cross-vendor input API (XR.InputTracking.GetLocalPosition/Rotation) or through the Windows-specific API (sourceState.sourcePose.TryGetPosition/Rotation, requesting the Grip pose).
  • ポインターは、前方を指し示すコントローラーの先端を表します。The pointer pose, representing the tip of the controller pointing forward.
    • この方法は、コントローラーモデル自体をレンダリングするときにUI をポイントするときに raycast するために使用することをお勧めします。This pose is best used to raycast when pointing at UI when you are rendering the controller model itself.
    • 現時点では、ポインターのポーズは、Windows 固有の API (Sourcestate/Rotation) を介してのみ使用でき、ポインターのポーズを要求します。Currently, the pointer pose is available only through the Windows-specific API (sourceState.sourcePose.TryGetPosition/Rotation, requesting the Pointer pose).

これらの発生座標はすべて Unity のワールド座標で表現されます。These pose coordinates are all expressed in Unity world coordinates.

関連項目See also