4。動的なコンテンツの配置とソルバーの使用4. Placing dynamic content and using solvers

ホログラムは HoloLens 2 で現実のものとなります。ホログラムは直感的にユーザーを追跡し、滑らかで洗練された操作ができるように物理環境に配置されます。Holograms come to life in the HoloLens 2 when they intuitively follow the user and are placed in the physical environment in a way that makes interaction seamless and elegant. このチュートリアルでは、複雑な空間配置のシナリオを解決するために、ソルバーと呼ばれる MRTK の利用可能な配置ツールを使用して、ホログラムを動的に配置する方法について説明します。In this tutorial, we explore ways to dynamically place holograms using the MRTK’s available placement tools, known as solvers for the way they solve complex spatial placement scenarios. MRTK では、ソルバーはスクリプトと動作のシステムであり、UI 要素がシーン内のユーザー、ユーザー、またはその他のゲームオブジェクトに従うことを許可するために使用されます。In the MRTK, solvers are a system of scripts and behaviors that are used to allow UI elements to follow you, the user, or other game objects in the scene. また、特定の場所にすばやくスナップして、アプリケーションをさらに直感的にするために使用することもできます。They can also be used to snap to certain positions quickly, making your application more intuitive.

目的Objectives

  • MRTK ソルバーの紹介Introduce the MRTK's solvers
  • ソルバーを使用して、ボタン コレクションにユーザーを追跡させるUse solvers to have a collection of buttons follow the user
  • ソルバーを使用して、追跡されているユーザーの手をゲーム オブジェクトに追跡させるUse solvers to have a game object follow the user's tracked hands

手順Instructions

MRTK でのソルバーの場所Location of solvers in the MRTK

自分のプロジェクト内で利用できるソルバーを見つけるには、次の図に示されているように、MRTK SDK フォルダー ([MixedRealityToolkit.SDK] フォルダー) の [Utilities] (ユーティリティ) フォルダー内の [Solvers] (ソルバー) フォルダーを確認します。To find the available solvers in your project, look in the MRTK SDK folder (MixedRealityToolkit.SDK folder), then under the utilities folder you will see the solvers folder, as shown in the image below.

ソルバー

注:このレッスンでは、回転ソルバーと放射 Alview ソルバーの実装についてのみ説明します。Note: In this lesson we will only go over the implementation of the Orbital solver and the RadialView solver. MRTK で利用できるすべてのソルバーについて学ぶには、次を参照してください。 https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_Solver.htmlTo learn more about the full range of solvers available in the MRTK, please visit: https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/README_Solver.html

ソルバーを使用してユーザーを追跡するUse a Solver to Follow the User

この章の目的は、以前に作成されたボタンコレクションを拡張して、ユーザーの見つめ方向に従うようにすることです。The goal of this chapter is to enhance the button collection that was previously created so that it follows the user’s gaze direction. MRTK と HoloToolkit の以前のバージョンでは、これは tagalong いう機能と呼ばれていました。In previous version of the MRTK and HoloToolkit, this was referred to as a tagalong functionality.

  1. 以前のレッスンから、[Button Collection] (ボタン コレクション) 親オブジェクトを選択します。Select the Button Collection parent object from the previous lesson.

Lesson3 Chapter2 Step1im

  1. [インスペクター] パネルで [コンポーネントの追加] ボタンをクリックし、回転を検索します。In the Inspector panel, click the Add Component button and search for orbital. [Orbital] コンポーネントが表示されます。The orbital component should appear. これを選択して、[Button Collection] (ボタン コレクション) ゲーム オブジェクトに [Orbital] コンポーネントを追加します。Select it to add the orbital component to the Button Collection game object.

Lesson3 Chapter2 Step2im

注:コンポーネントを追加すると、システムにより [Inspector] (インスペクター) タブに [Orbital (Script)] と [Solver Handler (Script)] が追加されます。これは必須コンポーネントです。Note: When you add the component you will notice that the system adds the orbital script and the solver handler script in the inspector tab, which is a required component.

  1. ユーザーに従うようにボタンコレクションを構成するには、次の調整を実装する必要があります (以下の図を参照してください)。In order to configure the button collection to follow the user, we need to implement the following adjustments (refer to the image below):
  • 回転スクリプトで、[方向の種類] ボックスの一覧を [ヨーのみ] に設定します。In the Orbital script, set the Orientation Type drop-down list to Yaw Only. これを設定するのは、ユーザーを追跡する際にオブジェクトの 1 つの軸だけが回転するようにするためです。This makes it so that only one axis of the object rotates as it follows the user.
  • すべての軸で [Local Offset] (ローカル オフセット) を 0 に設定します。Set the local offset to 0 on all axes. [World Offset] (ワールド オフセット) を、x = 0、y = -0.1、z = 0.6 に設定します。Set the World Offset to x = 0, y = -0.1 and z = 0.6. こうすることでオブジェクトの動きを次のように固定できます。つまり、ユーザーが高さを変えると、オブジェクトは物理環境内で固定された高さにとどまりながら、ユーザーが環境内で移動する際にユーザーを追跡することができます。This locks movement of the object such that when the user changes height, the object will remain at a fixed height in the physical environment, while still allowing it to follow the user as the user moves about the environment. これらの値を調整して、さまざまな動作を実現できます。These values may be adjusted to achieve a wide range of behaviors.
  • ユーザーが自分のヘッドの位置を十分に変えた後に、ボタンがユーザーのビューにのみ表示されるようにするための動作については、[ワールドオフセットの角度をステップ実行する] チェックボックスをオンにすることができます (注:次の図と同じように、画面によってはこのテキストは一部表示されません)。たとえば、オブジェクトに 90 度ごとにユーザーを追跡させるには、ステップの数を 4 に設定します (左の例で緑の矢印で示されている)。For a follow behavior whereby the buttons only follow the user’s view after the user turns his or her head sufficiently far, you could select the Use Angle Stepping for world offset checkbox (Note: This title may be truncated on some screens, as it is in the image below.) For example, to have the object follow the user only every 90 degrees, set the number of steps equal to 4 (marked by a green arrow in the example to the left).

Lesson3 Chapter2 Step3im

追跡したハンドに従ってオブジェクトを有効にするEnabling objects to follow tracked hands

このセクションでは、RadialView ソルバーを使用してユーザーの追跡対象の手を追跡するために、以前に作成した cube ゲーム オブジェクトを構成します。In this section, we will configure the cube game object previously created to follow the user’s tracked hands using the RadialView solver.

  1. [BaseScene] 階層内で [Cube] オブジェクトを選択します。Select the cube object in the BaseScene hierarchy. [インスペクター] パネルの [コンポーネントの追加] をクリックします。Click Add Component in the Inspector panel.

Lesson3 Chapter3 Step1im

  1. 検索ボックスに「」と入力し、[放射型] コンポーネントを選択してキューブに追加します。Type in RadialView in the search box and select the RadialView component to add it to the cube. [Solver Handler] コンポーネントも自動で cube に追加されます。The solver handler component will also be automatically added to the cube.

  2. ラジアル ビューを、頭ではなく左手を追跡するように変更します。Change the radial view to not follow the head but follow the left hand. [参照するオブジェクトの追跡] オプションの横にあるドロップダウンメニューを選択します。Select the dropdown menu next to the Tracked Object to Reference option. メニューから [手の接合] を選択します。Then select Hand Joint Left from the menu.

Lesson3 Chapter3 Step3im

  1. 手の関節を選択したら、cube に追跡させる手の部分を選択できます。Once you select the hand joint, you can choose which part of the hand you want the cube to follow. この例では、手首を使います。For this example, we are going to use the wrist. [追跡されたハンドジョイント] オプションの横にあるドロップダウンメニューを選択し、[手首] を選択します。Next to the option Tracked Hand Joint select the dropdown menu and select Wrist.

Lesson3 Chapter3 Step4im

  1. cube とユーザーの手首との間隔がなくなるように、最小距離と最大距離を 0 に設定します。Set the maximum and minimum distances to 0 so that the cube will not have any distance between it and the user’s wrist. 設定すると、cube は完全に手首を追従するようになります。Once set, the cube will be perfectly aligned with the wrist. また、[参照方向] フィールドを調整して、キューブの向きの動作を調整することもできます。たとえば、オブジェクトをユーザーの手首で回転できるようにする場合は、参照の方向を [追跡対象オブジェクト] に設定します。You might also adjust the Reference Direction field to adjust the behavior of how the cube is oriented, such as if you want to allow the object to rotate with the user's wrist by setting the reference direction to Orient with Tracked Object.

Lesson3 Chapter3 Step5im

結論Congratulations

このチュートリアルでは、MRTK のソルバーを使用して、UI を直感的にユーザーに従う方法を学習しました。In this tutorial, you learned how to use the MRTK’s solvers to have a UI intuitively follow the user. また、ソルバーをゲーム オブジェクト (cube) に追加して、ユーザーの追跡対象の手を追跡させる方法についても学びました。You also learned how to attach a solver to a game object (i.e., cube) to follow the user’s tracked hands. MRTK に含まれるこれらのソルバーや他のソルバーについて学ぶには、MRTK ソルバーに関するドキュメントを参照してください。To learn more about these and other solvers included with the MRTK, feel free to visit the MRTK solvers documentation page.

次のレッスン:5。 3D オブジェクトの操作Next Lesson: 5. Interacting with 3D objects