MR Learning ベース モジュール - 旧暦モジュール アセンブリ サンプル エクスペリエンスMR Learning Base Module - Lunar Module Assembly Sample Experience

このレッスンでは、一意のサンプルのエクスペリエンスを作成する前のレッスンから学習した複数の概念を結合します。In this lesson, we will combine multiple concepts learned from previous lessons to create a unique sample experience. ユーザーの必要があります旧暦モジュールのパーツを取得する追跡対象の手を使用して、旧暦モジュールをアセンブルしようとしています。 これにより旧暦モジュール アセンブリのアプリケーションを作成します。We will create a lunar module assembly application whereby a user will need to use tracked hands to pick up lunar module parts and attempt to assemble a lunar module. Pressable ボタンを使用して、経験をリセットする領域に、旧暦モジュールを起動して、配置ヒントを切り替えます。We will use pressable buttons to toggle placement hints, to reset our experience, and to launch our lunar module into space! 今後のチュートリアルでは、いく予定に強力なマルチ ユーザーのユース ケースの空間配置 Azure 空間アンカーを利用しているを含む、このエクスペリエンスに基づいています。In future tutorials, we will continue to build upon this experience, including powerful multi-user use-cases that leverages Azure Spatial Anchors for spatial alignment.

目標Objectives

  • 一意のエクスペリエンスを作成する前のレッスンから複数の概念を組み合わせるCombine multiple concepts from previous lessons to create a unique experience
  • オブジェクトを切り替える方法について説明しますLearn how to toggle objects
  • Pressable ボタンを使用して複雑なイベントをトリガーTrigger complex events using pressable buttons
  • Rigidbody 物理学や強制を使用して、Use rigidbody physics and forces
  • ツール ヒントの使用法を調べるExplore the use of tool tips

手順Instructions

構成Configuring the Lunar Module

この章では、私たちは、サンプルのエクスペリエンスを作成するために必要なさまざまなコンポーネントに導入されます。In this chapter, we will be introduced to the various components needed to create our sample experience.

  1. 旧暦モジュール アセンブリのプレハブは、基本シーンに追加します。Add the lunar module assembly prefab to your Base Scene. これを行うには、[プロジェクト] タブに、"Rocket Launcher_Tutorial"を検索します。To do this, in your project tab, search for "Rocket Launcher_Tutorial." アセットのプレハブを検索することも可能性があります。 > BaseModuleAssets > プレハブします。You may also find the prefab in Assets>BaseModuleAssets>Prefabs. 可能性があります。 2 つのロケット ランチャー プレハブを参照してください。名前「チュートリアル」のいずれかと別の名前を「完了します。」You may see two rocket launcher prefabs; one with the name "tutorial" and another with the name "complete." "Rocket Launcher_Tutorial"プレハブは、基本シーンにドラッグします。Drag the "Rocket Launcher_Tutorial" prefab to your Base Scene. 自由に、シーンのプレハブの配置を配置できます。Feel free to position the placement of the prefab in your scene. 注:"Rocket Launcher_Complete"プレハブは、完了した、起動、参照用ツールです。Note: The "Rocket Launcher_Complete" prefab is the completed launcher, provided for reference.

Lesson6 第 1 章 Step1im

階層内の"Rocket Launcher_Tutorial"ゲーム オブジェクトを展開し、さらに「旧暦モジュール」オブジェクトを拡張する場合は、「x 線」と呼ばれるマテリアルをいくつかの子オブジェクトが表示されます。If you expand the "Rocket Launcher_Tutorial" game object in your hierarchy, and further expand the "Lunar Module" object, you will see several child objects that have a material called "x-ray." 「X 線画像」マテリアルは、ユーザーの配置のヒントとして使用する少し半透明の色になります。The "x-ray" material allows for a slightly translucent color which we will use as placement hints for the user.

Lesson6 第 1 章 Noteaimは次の図に示すように、対話するユーザーが移動する旧暦モジュールに 5 つの部分があります。Lesson6 Chapter1 Noteaim There are five parts to the lunar module that the user is going to interact with, as shown in the image below:

  1. Rover エンクロージャThe Rover Enclosure
  2. タンク燃料The Fuel Tank
  3. エネルギー セルThe Energy Cell
  4. ドッキング ポータルThe Docking Portal
  5. 外部センサーThe External sensor

Lesson6 第 1 章 Notebim

注:シーン内のオブジェクトの名前には、基本のシーンの階層構造で表示されるゲーム オブジェクト名は対応していません。Note: The game object names that you see in your base scene hierarchy do not correspond to the names of the objects in the scene.

手順 2:オーディオのソースを追加します。Step 2: Add an audio source to the lunar module. 基本のシーンの階層構造が選択されているかどうかを確認し、"コンポーネントの追加 をクリックします。Make sure the lunar module is selected in your base scene hierarchy and click "Add Component." 「オーディオ ソース」を検索し、オブジェクトに追加します。Search for "Audio Source" and add it to the object. 空白のままに今のところです。Leave it blank for now. 後で起動したサウンドを再生するのにこれを使用します。We will use this to play the launching sound later. Lesson6 第 1 章 Step2im手順 3。"切り替えの配置ヒントの"スクリプトを追加します。Lesson6 Chapter1 Step2im Step 3: Add the script "toggle placement hints." 「コンポーネントの追加」と「切り替え配置ヒント」を検索 をクリックします。Click "Add Component" and search for "Toggle Placement Hints." これは、オンとオフは、前に説明した、半透明のヒント (x 線画像資料オブジェクト) を有効にするカスタム スクリプトです。This is a custom script that allows you to turn on and off the translucent hints (objects with the x-ray material) mentioned earlier. Lesson6 第 1 章 Step3im手順 4。5 つのオブジェクトがあるため、ゲーム オブジェクト配列のサイズの「5」で入力します。Lesson6 Chapter1 Step3im Step 4: Since we have 5 objects, type in "5" for the game object array size. 5 つの新しい要素を含めるを表示する必要があります。Then you should see 5 new elements appear.

Lesson6 第 1 章 Step4bim

半透明オブジェクトの各を"None (ゲーム オブジェクト) です"というボックスにドラッグしますDrag each of the translucent objects into the boxes that say "None (Game Object)." 基本シーンで旧暦モジュールから、次のオブジェクトをドラッグします。Drag the following objects from the lunar module in your base scene:

• Backpack• Backpack

• GasTank• GasTank

• Topleftbody• Topleftbody

• 鼻• Nose

• LeftTwirler• LeftTwirler

Lesson6 第 1 章 Step4aim

「配置のヒントを切り替え」スクリプトが構成されているようになりました。Now the "toggle placement hints" script is configured. これにより、ヒントを有効または無効にすることができます。This will allow us to turn the hints on and off.

手順 5:「旧暦モジュールの起動」スクリプトを追加します。Step 5: Add the "launch lunar module" script. 「コンポーネントの追加」ボタンをクリックして、「起動旧暦モジュール」を検索し、それを選択します。Click the "Add Component" button, search for "launch lunar module" and select it. このスクリプトを起動するにはなります。This script will be responsible for launching the lunar module. 構成されているボタン キーを押すと、ときに旧暦モジュールの rigidbody コンポーネントに上向きの力を追加し、モジュール上で起動すると、します。When we press a configured button, it will add an upward force to the lunar module's rigid body component and will cause the module to launch upwards. 室内にいる場合、ceiling メッシュに対してがクラッシュします。If you are indoors, the lunar module may crash against your ceiling mesh. ただし、屋外場合は、その操縦領域を無制限にします。But if you are outdoors, it will fly in to space indefinitely.

Lesson6 第 1 章 Step5im

手順 6:正常に飛んでように、スロットルを調整します。Step 6: Adjust the thrust so that the lunar module will fly up gracefully. 0.01 の値をお試しください。Try a value of 0.01. "Rb"フィールドは空白のままにします。Leave the "Rb" field blank. Rb の略剛体、および実行時にこのフィールドに自動的に表示されます。Rb stands for rigid body, and this field will be automatically populated during runtime.

Lesson6 第 1 章 Step6im

旧暦モジュールのパーツの概要Lunar Module Parts Overview

旧暦モジュールのパーツの親オブジェクトは、ユーザーが対話するオブジェクトのコレクションです。The Lunar Module parts parent object is the collection of the objects that the user will interact with. 下の一覧では、(ラベル名を括弧でシーン) をゲーム オブジェクト名が用意されています。The game object names (with scene labeled names in paretheses) are provided in the list below:

  • Backpack (燃料タンク)Backpack (Fuel Tank)
  • GasTank (エネルギー セル)GasTank (Energy Cell)
  • TopLeftBody (Rover エンクロージャ)TopLeftBody (Rover Enclosure)
  • 鼻 (ドッキング ポータル)Nose (Docking Portal)
  • LeftTwirler (外部センサー)LeftTwirler (External Sensor)

レッスン 4 で説明したように操作ハンドラー、これらの各オブジェクトに注意してください。Notice that each of these objects has the manipulation handler, as discussed in lesson 4. 操作ハンドラー、ユーザーが取得して、オブジェクトを操作できます。With the manipulation handler, users are able to grab and manipulate the object. 設定の「2 つの操作が渡される型」が「移動および回転します」に設定されているにも注意してください。Also note that the setting "two handed manipulation type" is set to "move and rotate." これには、オブジェクトを移動し、そのサイズは、アセンブリ、アプリケーションの目的の機能は、変更するユーザーのみが許可します。This only permits the user to move the object and not change its size, which is the desired functionality for an assembly application. さらに、相手側の操作は、モジュールのパーツの直接の対話のみを許可するチェックではありません。In addition, far manipulation is unchecked to allow only for direct interaction of module parts.

Lesson6 Chapter2im

一部のアセンブリ デモ スクリプト (上記参照) をユーザーに配置するオブジェクトを管理するスクリプトです。The part assembly demo script (shown above) is the scrip that manages the objects to be placed on to the lunar module by the user.

「オブジェクトを場所」フィールドは、オブジェクトに接続できることを使用 (n 上の図 backpack/燃料タンクの大文字と小文字) を選択したの変換です。The "Object To Place" field is the transform that is selected (n the case of the image above, the backpack/fuel tank) with the object that it can connect to.

"近く Distance"および「までの距離」設定は、近接性をパーツにスナップされますまたは解放を判断する責任を負います。The "Near Distance" and "Far Distance" settings are responsible for determining the proximity to which parts will snap in place or be released. たとえば、backpack/燃料タンクが 0.1 単位に揃えるに旧暦モジュールから必要があります。For example, the backpack/fuel tank would need to be 0.1 units away from the lunar module to snap into place. 「までの距離」は、オブジェクトからデタッチする必要がある場所を設定します。The "Far Distance" sets the location where the object needs to be to detach from the lunar module. この場合、ユーザーの手は backpack/燃料タンクを取得し、所定の位置に戻すスナップから削除してから、0.2 の単位をプルすること必要があります。In this case, the user’s hand must grab the backpack/fuel tank and pull it 0.2 units away from the lunar module to remove it from snapping back into place.

「ツール ヒントのオブジェクト」は、シーンのツール ヒント ラベルです。The "Tool Tip Object" is the tool tip label in the scene. オブジェクトは、インプレース基準としてスナップされますが、ラベルが無効になります。When the objects are snapped in place, the label will be disabled.

オーディオ ソースは自動的に取得します。The Audio Source will be automatically grabbed.

配置のボタンをヒントします。Placement Hints Buttons

レッスン 2、配置して、アイテムの色の変更などを行うまたはにプッシュされるときにサウンドを再生ボタンを構成する方法について説明しました。In Lesson 2, you learned how to place and configure buttons to do things like change the color of an item or make it play a sound when it is pushed. これらの原則を使用して、配置ヒントを切り替えるボタンを構成しましたにいく予定です。We will continue to use those principles as we configure our buttons for toggling placement hints.

目標では、半透明の配置のヒントの表示を切り替えるは、ユーザーは、配置ヒント ボタンを押すと、毎回ように、ボタンを構成します。The goal is to configure our button so that every time the user presses the placement hint button, it will toggle visibility of the translucent placement hints.

手順 1:基本のシーンの階層構造で、配置ヒント オブジェクトが選択されている間をインスペクターのパネルで「ランタイムのみ」の空のスロットに移動します。Step 1: Move the Lunar Module to the empty "runtime only" slot in the inspector panel while the Placement Hints object is selected in your base scene hierarchy. Lesson6 第 3 章 Step1im手順 2。これで書かれている場所、「機能はありません」ドロップダウン リストをクリックします。Lesson6 Chapter3 Step1im Step 2: Now click the dropdown list where it says, "no function." "TogglePlacementHints、"とそのメニューの下に移動「ToggleGameObjects ()」を選択しますGo down to "TogglePlacementHints," and under that menu select "ToggleGameObjects ()." ToggleGameObjects() オフが切り替わります、配置ヒント オン/オフ ボタンが押されるたびに、表示または非表示が、ように。ToggleGameObjects() will toggle the placement hints on and off so that they are visible or invisible every time the button is pressed. Lesson6 第 3 章 Step2imLesson6 Chapter3 Step2im

[リセット] ボタンを構成します。Configuring the Reset Button

ユーザーが誤り、または誤ってがスローされます、オブジェクト、または単したいと rest 操作を行う場合があります。There will be situations where the user makes a mistake, or accidently throws the object away, or just wants to rest the experience. [リセット] ボタンは、エクスペリエンスを再起動する機能を追加します。The reset button will add the ability to restart the experience.

手順 1:[リセット] ボタンを選択します。Step 1: Select the reset button. 基本のシーンでは、"ResetRoundButton"という名前します。In the base scene, it’s named "ResetRoundButton."

手順 2:「ボタンが押された」の下の空のスロットに基本のシーンの階層をドラッグして、[inspector] パネル。Step 2: Drag the lunar module from the base scene hierarchy into the empty slot under "button pressed" the inspector panel. Lesson6 第 4 章 Step2imLesson6 Chapter4 Step2im

手順 3:「機能はありません」と書かれたドロップダウン メニューを選択して、"LaunchLunarModule"ポインターを合わせるStep 3: Select the dropdown menu that says, "no function" and hover over "LaunchLunarModule." 「ResetModule ()」を選択するようになりましたNow select "resetModule ()."

Lesson6 第 4 章 Step3im

注:既定で"GameObject.BroadcastMessage"は"ResetPlacement"に構成が表示されます。Note: You will notice that by default the "GameObject.BroadcastMessage" is configured to "ResetPlacement." これにより、RocketLauncher_Tutorial のすべての子オブジェクトの"ResetPlacement"と呼ばれるメッセージをブロードキャストします。This will broadcast a message called "ResetPlacement" for every child object of RocketLauncher_Tutorial. "ResetPlacement()"のメソッドを持つ任意のオブジェクトは、位置をリセットすることでそのメッセージに応答します。Any object that has a method for "ResetPlacement()" will respond to that message by resetting it's position.

起動します。Launching the Lunar Module

この章では、起動ボタンを構成します。This chapter we will be configuring the launch button. これにより、ボタンを押すし、領域を起動するユーザーが許可されます。This will permit the user to press the button and launch the Lunar Module into space.

手順 1:起動ボタンを選択します (基本シーンでという名前が"LaunchRoundButton")。Step 1: Select the launch button (in the base scene it’s named "LaunchRoundButton"). インスペクター ウィンドウを「タッチ エンド」の下の空のスロットにドラッグします。Drag the Lunar Module to the empty slot under "Touch End" in the inspector panel. Lesson6 第 5 章 Step1im手順 2。「機能はありません。」と書かれたドロップダウン メニューを選択します。Lesson6 Chapter5 Step1im Step 2: Select the dropdown menu that says, "no function." "LaunchLunarModule"ポインターを合わせるし、「StopThruster ()」を選択します。Hover over "LaunchLunarModule" and select "StopThruster ()." これは、スロットルが、ユーザーを付与する量を制御します。This will control how much thrust the user wants to give to the Lunar Module. Lesson6 第 5 章 Step2im手順 3。"ButtonPressed()"の下には、空のスロットに旧暦モジュール (クリック数、保留、およびドラッグ) を追加します。Lesson6 Chapter5 Step2im Step 3: Under "ButtonPressed()", add the Lunar Module (click, hold, and drag) to the empty slot.

手順 4:「機能はありません」と書かれたドロップダウン メニューをクリックし、"LaunchLunarModule"をポイントし、「StartThruster ()」を選択します。Step 4: Click the dropdown menu that says, "no function" and hover over "LaunchLunarModule" and select "StartThruster ()." Lesson6 第 5 章 Step4im手順 5。音楽が再生されますが、ロケット、ときにするために、音楽を追加します。Lesson6 Chapter5 Step4im Step 5: Add music to the Lunar Module so that when the rocket takes off, the music will play. これを行うには、"ボタン Pressed()"の下で [次へ] の空のスロットをドラッグします。To do this, drag the Lunar Module to the next empty slot under "Button Pressed()".

手順 6:「機能はありません」と書かれたドロップダウン メニューを選択し、"AudioSource"をポイントし、"PlayOneShot (AudioClip)"を選択します。Step 6: Select the dropdown menu that says, "no function" and hover over "AudioSource" and select "PlayOneShot (AudioClip)." 自由に、さまざまな、MRTK に含まれているサウンドを探索できます。Feel free to explore the variety of sounds included with the MRTK. この例では、ここでは"MRTK_Gem"を使用するにはFor this example, we are going to stick with "MRTK_Gem." Lesson6 第 5 章 Step6imLesson6 Chapter5 Step6im

おめでとうございますCongratulations

このアプリケーションを構成した完全に!You have fully configured this application! ようになりましたプレイを押すと、完全、アセンブル、ヒントを切り替える、旧暦モジュールを起動して、再度実行するをリセットできます。Now when you press play, you can fully assemble the Lunar Module, toggle hints, launch the Lunar Module, and reset it to do it all over again.