MR 学習ベース モジュール - 3D オブジェクトの操作MR Learning Base Module - 3D Object Interaction

このレッスンでは、基本的な 3D コンテンツとユーザー エクスペリエンスについて説明します。In this lesson, we will go through basic 3D content and user experience. コレクションの一部としての 3D オブジェクトの整理、基本的な操作のための境界ボックス、近距離操作と遠距離操作、および手の追跡によるタッチ ジェスチャとグラブ ジェスチャについて説明します。We will learn how to organize 3D objects as part of a collection, learn about bounding boxes for basic manipulation, learn about near and far interaction, and learn about touch and grab gestures with hand tracking.

目標Objectives

  • MRTK の Grid Object Collection を使用して 3D コンテンツを整理する方法を学習するLearn how to organize 3D content using MRTK's Grid Object Collection
  • 境界ボックスを実装するImplement bounding boxes
  • 基本的な操作 (移動、回転、および拡大縮小) のために 3D オブジェクトを構成するConfigure 3D objects for basic manipulation (move, rotate, and scale)
  • 近距離操作と遠距離操作について確認するExplore near and far interaction
  • グラブやタッチなどのその他の手の追跡のジェスチャについて学習するLearn about additional hand tracking gestures such as grab and touch

手順Instructions

3D オブジェクトをコレクションに整理するOrganizing 3D Objects in a Collection

  1. 階層を右クリックし、[空の作成] を選択します。Right click on your hierarchy and select, “create empty.” これにより、空のゲーム オブジェクトが作成されます。This creates an empty game object. その名前を [3DObjectCollection] に変更します。Rename it to “3DObjectCollection.” ここに、すべての 3 D オブジェクトを保存します。This is where we will put all of our 3D Objects. コレクションの位置が x = 0、y = 0、z = 0 に設定されていることを確認します。Make sure the collection’s positioning is set at x = 0, y = 0, and z = 0.

Lesson4 Chapter1 Step1im

  1. 同じ手順を使用して BaseModule アセットをインポートして、レッスン 1 で説明したカスタム パッケージをインポートします。Import BaseModule Assets Using the same instructions to import custom packages outlined in Lesson1. BaseModule アセットには、このチュートリアル全体を通して使用する 3D モジュールとその他の便利なスクリプトが含まれています。The BaseModule assets include 3D modules and other useful scripts that will be used throughout this tutorial. BaseModule Unity パッケージは https://github.com/Microsoft/MixedRealityLearning/releases/tag/V1.1 で入手できますThe BaseModule unity package can be found here: https://github.com/Microsoft/MixedRealityLearning/releases/tag/V1.1

  2. コーヒー カップのプレハブは、その横にある青色の立方体で見分けることができます。The coffee cup prefab can be recognized by a blue cube next to it. 青色の立方体と小さい白い紙が付いたコーヒー カップは選択しないでください (プレハブではなく、元の 3D モデルを示しています。)Do not select the coffee cup with the blue cube and small white paper (that denotes the original 3D model and not the prefab.)

Lesson4 Chapter1 Noteaim

  1. 選択したコーヒー カップのプレハブを、手順 1 の [3DObjectCollection] ゲーム オブジェクト内にドラッグします。Drag the coffee cup prefab of your choice into the "3DObjectCollection" game object from step 1. これでコーヒー カップはコレクションの子になりました。The coffee cup is now a child of the collection.

Lesson4 Chapter1 Step4ima

  1. 次に、シーンに 3 D オブジェクトを追加します。Next, we'll add more 3D objects into our scene. この例で追加するオブジェクトの一覧を以下に示します。Below is a list of objects we are going to add in this example. オブジェクトを追加すると、オブジェクトがさまざまなサイズでシーンに表示されることがあります。As you add the objects you may find that they appear in your scene in various sizes. 各 3D モデルのスケールは [インスペクター] パネルの変換設定で調整します。Adjust the scale of each 3D model under the transform setting in the inspector panel. この例で推奨される調整とそのオブジェクトを以下に示します。Recommended adjustments for this example are listed with the objects below. [プロジェクト] パネルの検索ボックスで以下の単語を検索し、前の手順と同様に 3D オブジェクトのプレハブを [3DObjectCollection] オブジェクトにドラッグします。Search these words in the search box in your project panel and drag the 3D object prefab into the "3DObjectCollection" object similar to the previous step. これらのプレハブのコレクションは [アセット] > [BaseModuleAssets] > [ベース モジュール プレハブ] にありますYou will find these collection of prefabs in Assets>BaseModuleAssets>Base Module Prefabs
  • [TheModule_BaseModuleIncomplete] を検索します。Search for “TheModule_BaseModuleIncomplete.” シーン内にドラッグします。Drag into scene. スケールを x = 0.03、y = 0.03、z = 0.03 に設定します。Set the scale to x = 0.03, y = 0.03, z = 0.03.
  • [Octa_BaseModuleIncomplete] を検索します。Search for “Octa_BaseModuleIncomplete.” シーン内にドラッグします。Drag into scene. スケールを x = 0.13、Set the scale to x = 0.13. y = 0.13、z =0.13 に設定します。y = 0.13, z =0.13.
  • [EarthCore_BaseModuleIncomplete] を検索します。Search for “EarthCore_BaseModuleIncomplete.” シーン内にドラッグします。Drag into scene. スケールを x = 50.0、y = 50.0、z = 50.0 に設定します。Set the scale to x = 50.0 y = 50.0, z = 50.0.
  • [Cheese_BaseModuleIncomplete] を検索します。Search for “Cheese_BaseModuleIncomplete.” シーン内にドラッグします。Drag into scene. スケールを x = 0.05、y = 0.05、z = 0.05 に設定します。Set the scale to x = 0.05, y = 0.05, z = 0.05.
  • [Model_Platonic_BaseModuleIncomplete] を検索します。Search for “Model_Platonic_BaseModuleIncomplete.” シーン内にドラッグします。Drag into scene. スケールを x = 0.13、y = 0.13、z = 0.13 に設定します。Set the scale to x = 0.13, y = 0.13, z = 0.13.
  • [CoffeeCup_BaseModuleIncomplete] を検索します。Search for "CoffeeCup_BaseModuleIncomplete." シーン内にドラッグします。Drag into scene.

Lesson4 Chapter1 Step5im

  1. 3 つの立方体をシーンに追加します。Add 3 cubes into your scene. [3DObjectCollection] オブジェクトを右クリックして [3D オブジェクト] を選択し、[立方体] をクリックします。Right click the “3DObjectCollection” object, select “3D Object”, then select “Cube.” スケールを x = 0.14、y = 0.14、z = 0.14 に設定します。Set the scale to x = 0.14, y = 0.14, and z = 0.14. この手順をさらに 2 回繰り返して、合計 3 つの立方体を作成します。Repeat this step 2 additional times to create a total of 3 cubes. または、合計 3 つになるよう立方体を 2 回複製します。Alternatively, you may duplicate the cube twice for a total of 3 cubes. また、[アセット] > [BaseModuleAssets] > [ベース モジュール プレハブ] から用意されている 3 つの立方体のプレハブを使用し、GreenCube_BaseModuleIncomplete、BlueCube_BaseModuleIncomplete、および OrangeCube_BaseModuleIncomplete を選択することもできます。You may also choose to use the three prepared cube prefabs from Assets>BaseModuleAssets>Base Module Prefabs and select GreenCube_BaseModuleIncomplete, BlueCube_BaseModuleIncomplete and OrangeCube_BaseModuleIncomplete.

Lesson4 Chapter1 Step6im

  1. MRTK の Grid Object Collection を使用して、レッスン 2 で説明した手順で、オブジェクトのコレクションを整理してグリッドを形成します。Organize your collection of objects to form a grid using the procedure described in Lesson 2 using the MRTK’s Grid Object Collection. 3x3 グリッドでのオブジェクトの構成例については、次の図を参照してください。Refer to the image below to see an example of configuring the objects in a 3x3 grid.

Lesson4 Chapter1 Notebim

注:上の図のオブジェクトのように、一部のオブジェクトが中心から外れている場合があります。Note: You may notice that some of the objects are off-center, such as the objects in the image above. これは、プレハブまたはオブジェクトに整列していない子オブジェクトが含まれている可能性があるためです。This is because prefabs or objects may have child objects that are not aligned. オブジェクトの位置や子オブジェクトの位置に必要な調整を自由に加えることで、グリッドを適切に整列させることができます。Feel free to make any necessary adjustments to object positions or child object positions to achieve a well-aligned grid.

3D オブジェクトの操作Manipulating 3D Objects

  1. 立方体を操作する機能を追加します。Add the ability to manipulate a cube. 3D オブジェクトを操作する機能を追加するには、次の操作を行う必要があります。To add the ability to manipulate 3D objects you must do the following:
  • 階層で操作する 3D オブジェクトを選択します (この例では立方体の 3D オブジェクト)。Select the 3D object you want to manipulate in your hierarchy (in this example, one of your cubes).
  • [コンポーネントの追加] をクリックします。Click “add component.”
  • [操作] を検索します。Search for “manipulation.”
  • [操作ハンドラー] を選択します。Select “manipulation handler.”
  • [3DObjectCollection] オブジェクトそのものではなく、[3DObjectCollection] の下にあるすべての 3D オブジェクトに対して繰り返します。Repeat for all 3D objects under the “3DObjectCollection” object but not the “3DObjectCollection” itself.
  • すべての 3D オブジェクトにコライダーまたはボックス コライダーがあることを確認します ([コンポーネントの追加] > [ボックス コライダー])。Ensure all 3D objects have a collider or box collider (Add Component > box collider).

Lesson4 Chapter2 Step1im

操作ハンドラーは、操作中のオブジェクトの動作の設定を調整できるようにするコンポーネントです。The manipulation handler is a component that will allow you to adjust settings for how objects behave when being manipulated. これには、特定の軸上での回転、拡大縮小、移動、および動きの制限が含まれます。This includes rotation, scaling, moving, and constraining movement on certain axes.

  1. 1 つの立方体を、拡大縮小しかできないように制限します。Restrict one cube so that it can only be scaled. [3DObjectCollection] オブジェクトの 1 つの立方体を選択します。Select one cube in the “3DObjectCollection” object. [インスペクター] パネルで、[両手を使った操作の種類] の横にあるドロップダウン メニューをクリックし、[拡大縮小] を選択します。In the inspector panel, next to “two handed manipulation type,” click the drop-down menu and select “scale.” これにより、ユーザーは立方体のサイズしか変更できなくなります。This makes it so that the user can only change the cube’s size.

Lesson4 Chapter2 Step2im

  1. 立方体を区別できるように、それぞれの色を変更します。Change the color of each cube so that we can differentiate between them.
  • [プロジェクト] パネルに移動し、下にスクロールして、[MixedRealityToolkit.SDK] が表示されたら選択します。Go to the project panel and scroll down until you see “MixedRealityToolkit.SDK” then select it.
  • [標準アセット] フォルダーを選択します。Select the “Standard Assets” folder.
  • [素材] フォルダーをクリックします。Click on the “materials” folder.
  • 立方体のそれぞれに異なる素材をドラッグします。Drag a different material onto each of your cubes.

注:立方体には任意の色を選択できます。Note: You can choose any color for your cubes. この例では、[glowingcyan]、[glowingorange]、および [green] を使用します。For our example, we are going to use “glowingcyan,” “glowingorange”, and "green." さまざまな色を自由に試すことができます。Feel free to experiment with different colors. 立方体に色を追加するには、色を変更したい立方体をクリックして、立方体の [インスペクター] パネルのメッシュ レンダラーの素材フィールドに素材をドラッグします。To add the color to the cube, click the cube you want to change the color of, then drag the material to the mesh renderer's material field in the cube's inspector panel.

Lesson4 Chapter2 Step3im

  1. [3DObjectCollection] オブジェクトの別の立方体を選択して、その動きが頭部から一定の距離に制限されるようにします。Select another cube in the “3DObjectCollection” object and make it so that its movement is constrained to the fix distance from the head. これを行うには、[動きの制限] の右側にあるドロップダウン メニューをクリックし、[頭部から一定の距離] を選択します。To do this, on the right of “constraint on movement,” click on the dropdown menu and select “fix distance from the head.” これにより、ユーザーは視野内でしか立方体を動かせなくなります。This makes it so that the user can only move the cube within their field of vision.

Lesson4 Chapter2 Step4im

次のいくつかの手順の目標:3D オブジェクトに対してグラブと操作ができるようにします。Goal of the next few steps: We will enable grab and interaction with our 3D objects. さまざまな操作の設定を適用します。We will apply different manipulation settings

  1. チーズのオブジェクトを選択し、[インスペクター] パネルで、[コンポーネントの追加] をクリックします。Select the cheese object and in the inspector panel, click “add component.”

  2. 検索ボックスで [近距離操作 - グラブ可能] を検索し、スクリプトを選択します。Search in the search box for “Near Interaction Grabbable” and select the script. このコンポーネントにより、ユーザーは、追跡対象の手で触れてグラブすることができます。This component allows users to reach out and grab the objects with tracked hands. また、[遠距離操作を許可] チェック ボックスをオフにしない限り (下の図の緑色の円で示されています)、オブジェクトを離れた位置から操作することもできます。Objects will also be allowed to be manipulated from a distance, unless the "Allow Far Manipulation" checkbox is unchecked (denoted by green circle in image below.)

Lesson4 Chapter2 Step6im

  1. Octa オブジェクト、Platonic オブジェクト、地球の核、月着陸船、およびコーヒー カップの各オブジェクトに対して手順 5 と 6 を繰り返して、これらのオブジェクトに [近距離操作 - グラブ可能] を追加します。Add “Near Interaction Grabbable” to the Octa object, Platonic object, earth core, lunar module, and coffee cup by repeating step 5 and 6 on those objects.

  2. Octa オブジェクトから遠距離操作ができないようにします。Remove the ability of far manipulation from the Octa object. これを行うには、階層で [Octa] を選択し、[遠距離操作を許可] チェック ボックスをオフにします (緑色の円でマークが付けられています)。To do this, select the Octa in the hierarchy, and uncheck the “allow far manipulation” checkbox (marked by a green circle). これにより、ユーザーは、Octa を追跡対象の手で直接操作することしかできなくなります。This makes it so that users can only interact with the octa directly using tracked hands.

注:操作ハンドラーのコンポーネントとそれに関連する設定の詳細なドキュメントについては、MRTK のドキュメントを参照してください。Note: For the full documentation of the manipulation handler component and it's associated settings, please refer to the MRTK Documentation.

  1. 地球の核、月着陸船、およびコーヒー カップに [近距離操作 - グラブ可能] コンポーネントが追加されていることを確認します (手順 7 を参照)。Ensure that the "Near Interaction Grabbable" component has been added to the earth core, the lunar module and the coffee cup (see step 7).

  2. 月着陸船の場合は、次の図に示すように、近距離操作と遠距離操作の両方でオブジェクトを中心に回転するように、操作ハンドラーの設定を変更します。For the lunar module, change the Manipulation Handler settings so that it rotates about the object's center for both near and far interaction, as shown in the image below.

Lesson4 Chapter2 Step10im

11:地球の核の場合は、離したときの動作を [なし] に変更します。11: For the earth core, change the release behavior to “nothing.” これにより、ユーザーがつかんでいた地球の核が、離した後で移動を続けなくなります。This makes it so that once the earth core is released from the users’ grasp, it doesn’t continue to move.

Lesson4 Chapter2 Step11im

注:この設定は、投げることができるボールの作成などのシナリオに適しています。Note: This setting is useful for scenarios such as creating a ball that you can throw. 速度と角速度を維持することで、物理的なボールの動きと同様に、離したボールが離したときの速度で動き続けます。Keeping the velocity and the angular velocity makes it so that once the ball is released it will continue to move at the velocity it was released at, similar to how a physical ball would behave.

境界ボックスの追加Adding Bounding Boxes

境界ボックスにより、直接操作 (近距離操作) と 光線による操作 (遠距離操作) の両方で、オブジェクトを片手でより簡単で直感的に操作できるようになります。境界ボックスには、グラブすることでオブジェクトを特定の軸に沿って拡大縮小したり回転させたりできる "ハンドル" があります。Bounding boxes make it easier and more intuitive to manipulate objects with one hand for both direct manipulation (near interaction) and ray-based manipulation (far interaction.) Bounding boxes offer "handles" that can be grabbed for scaling and rotating objects along specific axes.

注:オブジェクトに境界ボックスを追加するには、オブジェクト上にコライダー (ボックス コライダーなど) がなければなりません。これについてはこのレッスンの前の方で説明しました。Note: Before you can add a bounding box to an object you first need to have a collider on the object (e.g., a box collider.) As we did previously in this lesson. コライダーを追加するには、オブジェクトを選択し、オブジェクトの [インスペクター] パネルで [コンポーネントの追加] > [ボックス コライダー] を選択します。Colliders can be added by selecting the object, and in the object's inspector panel selecting Add Component>Box Collider.

  1. まだ存在していない場合は、地球の核オブジェクトにボックス コライダーを追加します (BaseModule アセット フォルダーにあるプレハブを、記載されている手順に従って使用する場合、ボックス コライダーとセットアップは必要ありません。)地球の核の場合は、次の図に示すように、地球の核の下にある [node_id30] オブジェクトにボックス コライダーを追加する必要があります。Add a box collider to the earth core object, if one does not already exist (box collider and setup not required if using the prefab provided in the Base Module Assets folder, per the instructions given.) In the case of the earth core, we will need to add the box collider to the "node_id30" object underneath the earth core, as shown in the image below. オブジェクトの [インスペクター] タブで [node_id30] を選択し、[コンポーネントの追加] をクリックし、[ボックス コライダー] を検索します。select node_id30 and in the object's inspector tab, click “add component” and search for “box collider.”

Lesson4 Chapter3 Step1im

Lesson4 Chapter3 Step2im

注:ボックス コライダーは大きすぎたり小さすぎたりしないように視覚化してください。Note: Make sure that you visualize the box collider so that it’s not too big or too small. それが囲むオブジェクト (この例では地球の核) とほぼ同じサイズである必要があります。It should be roughly the same size as the object it’s surrounding (in this example, the earth core). 必要に応じて、ボックス コライダーで [コライダーの編集] オプションを選択してボックス コライダー を調整します。Adjust the box collider as needed by selecting the edit collider option in the box collider. x、y、および z の値を変更するか、エディターのシーン ウィンドウで境界ボックスのハンドラーをドラッグすることができます。You can either changing the x, y, and z values or drag the bounding box handlers in the editor scene window.

Lesson4 Chapter3 Noteim

  1. 地球の核の [node_id30] オブジェクトに境界ボックスを追加します。Add a bounding box to the earth core's "node_id30" object. これを行うには、[3DObjectCollection] から [node_id30] オブジェクトを選択します。To do this, select the "node_id30" object from the "3DObjectCollection." [インスペクター] タブで [コンポーネントの追加] をクリックし、[境界ボックス] を検索します。In the inspector tab, click “add component” and search for “bounding box.” 境界ボックス、ボックス コライダー、および操作スクリプト (操作ハンドラー、近距離操作 - グラブ可能) がすべて同じゲーム オブジェクト上にあることを確認します。Ensure that the bounding box, box collider, and manipulation scripts (manipulation handler, near interaction grabbable) are all on the same game object.

  2. 境界ボックスの [動作] セクションで、[アクティブ化] ドロップダウン リストから [開始時にアクティブ化] を選択します。In the bounding box's "Behavior" section, select “activate on start” from the Activation dropdown list. さまざまなアクティブ化のオプションとその他の境界ボックスのオプションの詳細については、MRTK の境界ボックスのドキュメントを参照してくださいTo review additional details regarding the various activation options and other bounding box options, please see the MRTK's bounding box documentation

次のいくつかの手順では、既定のボックス素材、グラブ中の素材、およびハンドルの視覚エフェクト (コーナーと左右のハンドル) を調整することで、境界ボックスの外観も変更します。MRTK には、境界ボックスをカスタマイズするためのいくつかのオプションが含まれています。In the next few steps, we will also change how the bounding box looks by adjusting the default box material, the material while it’s being grabbed, as well as the visualization of handles (corner and side handles). The MRTK contains several options to customize the bounding box.

  1. [プロジェクト] パネルで [boundingbox] を検索すると、次の図に示すように、検索結果に青い球体で表される素材のリストが表示されます。In the project panel, search for “boundingbox” and you’ll see a list of materials denoted by a blue sphere in the search results, as shown in the image below.

  2. [boundingbox] 素材を、[境界ボックス] コンポーネントの [ボックス素材] スロットにドラッグします。Drag the “boundingbox” material into the box material slot on the bounding box component. また、[Boundingboxgrabbed] 素材も、グラブして、[境界ボックス] コンポーネントの [ボックスでグラブした素材] スロットに入れます。Also grab the “boundingboxgrabbed” material and put that in the box grabbed material slot on the bounding box component.

  3. [MRTK_BoundingBox_ScaleWidget] 素材を [境界ボックス] コンポーネントの [拡大縮小ハンドル プレハブ] スロットにドラッグします。Drag the “MRTK_BoundingBox_ScaleWidget” material into the scale handle prefab slot on the bounding box component.

  4. [MRTK_BoundingBox_RotateWidget] 素材を [境界ボックス] コンポーネントの [回転ハンドル] スロットにドラッグします。Drag the “MRTK_BoundingBox_RotateWidget” material into the rotation handle slot on the bonding box component.

Lesson4 Chapter3 Step4 7Im

  1. 境界ボックスの正しいオブジェクトを対象としていることを確認します。Make sure the bounding box is targeting the right object. [境界ボックス] コンポーネントには、[ターゲット オブジェクト] スクリプトと [境界オーバーライド] スクリプトがあります。In the bounding box component, there is the “target object” and “bounds override” scripts. 必ず、これらのスロットの両方に、周囲に境界ボックスがあるオブジェクトをドラッグしてください。Make sure to drag the object that has the bounding box around it to both of these slots. この例では、次の図に示すように、[node_id30] オブジェクトをこれら両方のスロットにドラッグします。In this example, drag the "node_id30" object to both these slots, as shown in the image below.

アプリケーションを起動または再生すると、オブジェクトが青い枠で囲まれます。When you start or play the application, your object will now be surrounded by a blue frame. そのフレームのコーナーをドラッグすると、オブジェクトのサイズを自由に変更できます。You’re welcome to drag the corners of that frame to resize the object. 拡大縮小ハンドルと回転ハンドルを大きくして見やすくしたい場合は、既定の境界ボックスの設定 (手順 4 ~ 7 を除く) を使用することをお勧めします。If we want the scaling handles and the rotation handles to be larger and more visible, we recommend using the default bounding box settings (avoiding steps 4 - 7.)

Lesson4 Chapter3 Step8im

  1. 既定の境界ボックスの視覚エフェクトに戻すには、境界ボックスのオブジェクトの [インスペクター] パネルで回転ハンドルのプレハブを選択して Delete キーを押すと、次の図のような境界ボックスの視覚エフェクトが表示されます。To return to the default bounding box visualization, in the inspector panel of the bounding box's object, select the rotation handle prefab and press the delete key, you will now see a bounding box visualization similar to the image below. 注: 境界ボックスの視覚エフェクトは、再生モードの場合にのみ表示されます。Note: the bounding box visualizations only appears when in play mode.

Lesson4 Chapter3 Step9im

タッチ エフェクトの追加Adding Touch Effects

この例では、オブジェクトを手でタッチしたときに効果音が再生されるようにします。In this example, we are going to play a sound effect when you touch an object with your hand.

  1. ゲーム オブジェクトにオーディオ ソース コンポーネントを追加します。Add an audio source component to your game object. シーン階層で [octa] オブジェクトを選択します。Select the "octa" object in your scene hierarchy. [インスペクター] パネルで、[コンポーネントの追加] ボタンをクリックして、[オーディオ ソース] を検索して選択します。In the inspector panel, click the "add component" button, search for and select "audio source." 後の方の手順で、このオーディオ ソースを使用して効果音を再生します。We’ll use this audio source to play a sound effect in a later step.

注:[Octa] オブジェクトにボックス コライダーがあることを確認してください。Note: Ensure that the "Octa" object has a box collider on it.

  1. [近距離操作 - タッチ可能] コンポーネントを追加します。Add the “near interaction touchable” component. [インスペクター] パネルで、[コンポーネントの追加] ボタンをクリックして、[近距離操作 - タッチ可能] を検索します。Click the "Add Component" button in the inspector panel and search for “near interaction touchable.” 選択してコンポーネントに追加します。Select it to add the component. 注: スクリーンショットを修正して、ボックス コライダーを強調するだけでなく、コンポーネントを追加していることを強調してください。NOTE: fix screenshot to highlight that we're adding the component, and not just highlighting box collider.

注:[近距離操作 - グラブ可能] は既に追加しています。Note: Previously we added the “near interaction grabbable.” これと [近距離操作 - タッチ可能] の違いは、[グラブ可能] な操作はグラブして操作するオブジェクトを対象としていることです。The difference between this and “near interaction touchable” is that the "grabbable" interaction is intended for an object to be grabbed and interacted with. [タッチ可能] コンポーネントは、タッチするオブジェクトを対象としています。The "touchable" component is intended for the object to be touched. 操作を組み合わせるために両方のコンポーネントを一緒に使用することができます。Both components can be used together for a combination of interactions.

Lesson4 Chapter4 Step1 2Im

  1. [手による操作、タッチ] スクリプトを追加します。Add in the “hand interaction touch” script. このスクリプトは、このデモ パッケージの一部としてインポートした Unity シーンに含まれていて、オリジナルの MRTK には含まれていないことに注意してください。Note that this script is included with the unity scene you imported as part of this demo package and it is not included in the original MRTK. 前の手順と同様に、[コンポーネントの追加] をクリックし、[手による操作、タッチ] を検索して追加します。Just like the previous step, click “add component” and search for “hand interaction touch” to add it. このスクリプトでは 3 つのオプションがあることに注意してください。Notice that you have 3 options with the script:

    • [タッチ完了時]。"On touch completed." これは、オブジェクトをタッチしてから離したときにトリガーされます。This will trigger when you touch and release the object.
    • [タッチ開始時]。"On touch started." これは、オブジェクトがタッチされたときにトリガーされます。This will trigger when the object is touched.
    • [タッチ更新時]。"On touch updated." これは、手がオブジェクトにタッチしているときに定期的にトリガーされます。This will periodically trigger while your hand is touching the object.

    この例では、[タッチ開始時] の設定を使用します。For this example, we will be working with the “on touch started” setting.

  2. 次の図に示すように、[タッチ開始時] オプションの [+] ボタンをクリックします。Click the “+” button on the “on touch started” option, as shown in the image below. Octa オブジェクトを空のフィールドにドラッグします。Drag the octa object into the empty field.

  3. [関数なし] を示すドロップダウン リスト (下の画像の緑の四角形) で、[AudioSource] > [PlayOneShot] の順に選択します。In the drop-down that says "no function" (above green rectangle in the image below), select AudioSource> PlayOneShot. 以下のコンセプトを元に、このフィールドにオーディオ クリップを追加します。We will add an audio clip to this field using the concepts below:

    • MRTK には、オーディオ クリップの小さいリストがあります。The MRTK does provide a small list of audio clips. これらは [プロジェクト] パネルで探すことができます。Feel free to explore these in your project panel. これは、[MixedRealityToolkit.SDK] フォルダーの [標準アセット] フォルダーの下にあります。You will find them under the “MixedRealityToolkit.SDK” folder and then the “standard assets” folder. ここでは、すべてのオーディオ クリップが含まれている [オーディオ] フォルダーが表示されます。There you will see an “audio” folder where all the audio clips are.
    • この例では、[MRTK_Gem] オーディオ クリップを使用します。For this example, we are going to use the "MRTK_Gem" audio clip.
    • オーディオ クリップを追加するには、目的のクリップを [プロジェクト] パネルから [インスペクター] パネルの [AudioSource.PlayOneShot] (上記の例で緑色のボックスでマークされています) にドラッグするだけです。To add an audio clip, simply drag the clip you want from the project panel into the AudioSource.PlayOneShot (marked by green box in the example above) in the inspector panel.

    これでユーザーが Octa オブジェクトに触れてタッチできるようになると、オーディオ トラック [MRTK_Gem] が再生されます。Now when the user reaches out and touches the octa object, the audio track “MRTK_Gem” will play. [手による操作、タッチ] スクリプトは、タッチしたときのオブジェクトの色も調整します。The "Hand Interaction Touch" script will also adjust the color of the object when touched.

Lesson4 Chapter4 Step3 5 Noteim

結論Congratulations

このレッスンでは、3D オブジェクトをグリッド コレクションに整理する方法と、近距離操作 (追跡対象の手で直接グラブ) と遠距離操作 (視線入力または手の光線を使用) を使用して 3D オブジェクトを操作 (拡大縮小、回転、および移動) する方法を学習しました。また、3D オブジェクトの周りに境界ボックスを配置する方法と、境界ボックスのギズモの使用とカスタマイズの方法についても学習しました。In this lesson, you learned how to organize 3D objects in a grid collection and how to manipulate 3D objects (scaling, rotating, and moving) using near interaction (directly grabbing with tracked hands) and far interaction (using gaze rays or hand rays.) You also learned how to put bounding boxes around 3D objects and learned how to use and customize the gizmos on the bounding boxes. 最後に、オブジェクトにタッチしたときにイベントをトリガーする方法を学習しました。Finally, you learned how to trigger events when touching an object.

次のレッスン: 高度な入力Next Lesson: Advanced Input