注意

Mixed Reality Academy チュートリアルでは、HoloLens として設計された (第 1 世代) と混在の現実イマーシブ ヘッドセットに注意してください。The Mixed Reality Academy tutorials were designed with HoloLens (1st gen) and Mixed Reality Immersive Headsets in mind. そのため、これらのデバイス向けの開発にガイダンスがまだ必要な開発者のための場所でこれらのチュートリアルのままにすることが重要と思われます。As such, we feel it is important to leave these tutorials in place for developers who are still looking for guidance in developing for those devices. これらのチュートリアルは いない 最新のツールセットや相互作用が使用されている HoloLens 2 で更新されます。These tutorials will not be updated with the latest toolsets or interactions being used for HoloLens 2. サポートされているデバイスで作業を続行するが保持されます。They will be maintained to continue working on the supported devices. 一連の新しい HoloLens 2 を開発する方法を示すチュートリアルは、今後投稿があります。There will be a new series of tutorials that will be posted in the future that will demonstrate how to develop for HoloLens 2. この通知が投稿されるときにこれらのチュートリアルへのリンクが更新されます。This notice will be updated with a link to those tutorials when they are posted.

MR 入力 210:視線入力MR Input 210: Gaze

視線入力の最初のフォームであり、ユーザーの意図と認識が表示されます。Gaze is the first form of input and reveals the user's intent and awareness. MR 入力 210 (プロジェクト エクスプ ローラーとも呼ばれます) は、Windows Mixed Reality の視線の先に関連する概念に詳しく知るです。MR Input 210 (aka Project Explorer) is a deep dive into gaze-related concepts for Windows Mixed Reality. 追加される予定コンテキストの認識をカーソルやホログラム、ユーザーの視線入力について知っている、アプリをフル活用します。We will be adding contextual awareness to our cursor and holograms, taking full advantage of what your app knows about the user's gaze.

ここにあるわかりやすい「宇宙飛行士視線の先の概念を学習するためです。We have a friendly astronaut here to help you learn gaze concepts. MR 基本 101、単純カーソルだけ、視線の先に従う必要があります。In MR Basics 101, we had a simple cursor that just followed your gaze. 今すぐ歩単純カーソルを移動するとき。Today we're moving a step beyond the simple cursor:

  • 行ったカーソルと、ホログラム視線の先に注意してください: - ユーザーが検索している、またはユーザーのいるに基づいてどちらも変更されますいない検索します。We're making the cursor and our holograms gaze-aware: both will change based on where the user is looking - or where the user is not looking. これにより、コンテキストに対応しています。This makes them context-aware.
  • フィードバックは、カーソルと何が対象の詳細なコンテキストを付与するためにホログラムを追加します。We will add feedback to our cursor and holograms to give the user more context on what is being targeted. このフィードバックは、音声と視覚的に指定できます。This feedback can be audio and visual.
  • 小規模なターゲットにユーザーを対象とする手法を紹介します。We'll show you targeting techniques to help users hit smaller targets.
  • 方向インジケーターで、ホログラムにユーザーの注目を集める方法について説明します。We'll show you how to draw the user's attention to your holograms with a directional indicator.
  • 彼女は、世界中の周りが移動すると、ユーザーと、ホログラムを実行するための手法を学ぶ。We'll teach you techniques to take your holograms with the user as she moves around in your world.

重要

以前のバージョンの Unity と Mixed Reality Toolkit を使用して、以下の各章に埋め込まれたビデオが記録されています。The videos embedded in each of the chapters below were recorded using an older version of Unity and the Mixed Reality Toolkit. 詳細な手順については、正確かつ最新ですが、スクリプトとは、無効な対応するビデオの中でビジュアルを表示があります。While the step-by-step instructions are accurate and current, you may see scripts and visuals in the corresponding videos that are out-of-date. ビデオでは、後生のために含まれる保持され、概念説明のため、引き続き適用されます。The videos remain included for posterity and because the concepts covered still apply.

デバイスのサポートDevice support

コースCourse HoloLensHoloLens イマーシブ ヘッドセットImmersive headsets
MR 入力 210:視線入力MR Input 210: Gaze ✔️✔️ ✔️✔️

開始前の作業Before you start

前提条件Prerequisites

プロジェクト ファイルProject files

  • ダウンロード、ファイルプロジェクトに必要です。Download the files required by the project. Unity 2017.2 またはそれ以降が必要です。 Requires Unity 2017.2 or later.
  • 解除アーカイブをデスクトップまたは場所に到達する簡単なその他のファイル。Un-archive the files to your desktop or other easy to reach location.

注意

をダウンロードする前に、ソース コードを検索する場合があるGitHub で入手できますします。If you want to look through the source code before downloading, it's available on GitHub.

正誤表と注意事項Errata and Notes

  • 「マイ コードのみ」を Visual Studio では、する必要がある無効 (オフ) ツール オプション-> コードにブレークポイントをヒットするにはデバッグ-> です。In Visual Studio, "Just My Code" needs to be disabled (unchecked) under Tools->Options->Debugging in order to hit breakpoints in your code.

第 1 章 - Unity のセットアップChapter 1 - Unity Setup

目標Objectives

  • HoloLens の開発のためには、Unity を最適化します。Optimize Unity for HoloLens development.
  • アセットをインポートして、シーンをセットアップします。Import assets and setup the scene.
  • HoloLens、飛行士を表示します。View the astronaut in the HoloLens.

手順Instructions

  1. Unity を起動します。Start Unity.
  2. 選択新しいプロジェクトします。Select New Project.
  3. プロジェクトに名前をModelExplorerします。Name the project ModelExplorer.
  4. として場所を入力、視線フォルダー アーカイブされた以前のことです。Enter location as the Gaze folder you previously un-archived.
  5. 必ず、プロジェクトに設定されて3Dします。Make sure the project is set to 3D.
  6. クリックしてプロジェクトを作成するします。Click Create Project.

HoloLens の unity の設定Unity settings for HoloLens

Unity をエクスポートしようとしましたが、アプリが作成することを把握できるようにする必要があります、没入型ビュー 2D ビューではなく。We need to let Unity know that the app we are trying to export should create an immersive view instead of a 2D view. そのために、HoloLens を仮想現実デバイスとして追加します。We do that by adding HoloLens as a virtual reality device.

  1. 移動して編集 > プロジェクトの設定 > Playerします。Go to Edit > Project Settings > Player.
  2. インスペクター パネルPlayer の設定の選択、 Windows ストアアイコン。In the Inspector Panel for Player Settings, select the Windows Store icon.
  3. 展開、 XR 設定グループ。Expand the XR Settings group.
  4. レンダリング セクションで、チェック、仮想現実サポート新しいを追加するチェック ボックスをオン仮想現実 Sdk一覧。In the Rendering section, check the Virtual Reality Supported checkbox to add a new Virtual Reality SDKs list.
  5. いることを確認Windows Mixed Reality一覧に表示されます。Verify that Windows Mixed Reality appears in the list. そうでない場合は、選択、 + 一覧の下部にあるボタンをクリックし、選択Windows Holographicします。If not, select the + button at the bottom of the list and choose Windows Holographic.

次に、.NET に、スクリプトのバックエンドを設定する必要があります。Next, we need to set our scripting backend to .NET.

  1. 移動して編集 > プロジェクトの設定 > Player (する必要がありますもこれ前の手順から)。Go to Edit > Project Settings > Player (you may still have this up from the previous step).
  2. インスペクター パネルPlayer の設定の選択、 Windows ストアアイコン。In the Inspector Panel for Player Settings, select the Windows Store icon.
  3. その他の設定構成セクションで、必ずScripting バックエンドに設定されている .NETIn the Other Settings Configuration section, make sure that Scripting Backend is set to .NET

最後に、HoloLens の高速なパフォーマンスを実現するために、品質設定を更新します。Finally, we'll update our quality settings to achieve a fast performance on HoloLens.

  1. 移動して編集 > プロジェクトの設定 > 品質します。Go to Edit > Project Settings > Quality.
  2. 下向きの矢印をクリックして、既定Windows ストア アイコンの下の行。Click on downward pointing arrow in the Default row under the Windows Store icon.
  3. 選択非常に低いWindows ストア アプリします。Select Very Low for Windows Store Apps.

プロジェクトのアセットをインポートします。Import project assets

  1. 右クリックして、資産フォルダーで、プロジェクトパネル。Right click the Assets folder in the Project panel.
  2. をクリックしてパッケージ インポート > カスタム パッケージします。Click on Import Package > Custom Package.
  3. ダウンロードしたプロジェクト ファイルに移動し、をクリックしてModelExplorer.unitypackageします。Navigate to the project files you downloaded and click on ModelExplorer.unitypackage.
  4. [開く] をクリックします。Click Open.
  5. パッケージが読み込まれると後でをクリックして、インポートボタンをクリックします。After the package loads, click on the Import button.

シーンのセットアップSetup the scene

  1. 階層では、削除、 Main Cameraします。In the Hierarchy, delete the Main Camera.
  2. HoloToolkitフォルダーを開き、入力フォルダーを開き、プレハブフォルダー。In the HoloToolkit folder, open the Input folder, then open the Prefabs folder.
  3. ドラッグ アンド ドロップ、 MixedRealityCameraParentからプレハブ、プレハブフォルダーに、階層します。Drag and drop the MixedRealityCameraParent prefab from the Prefabs folder into the Hierarchy.
  4. 右クリックし、指向性光階層し、削除します。Right-click the Directional Light in the Hierarchy and select Delete.
  5. ホログラムフォルダーにドラッグ アンド ドロップは次のアセットのルート、階層:In the Holograms folder, drag and drop the following assets into the root of the Hierarchy:
    • AstroManAstroMan
    • ライトLights
    • SpaceAudioSourceSpaceAudioSource
    • SpaceBackgroundSpaceBackground
  6. 開始再生モード▶、飛行士を表示します。Start Play Mode ▶ to view the astronaut.
  7. クリックして再生モードをもう一度 ▶停止します。Click Play Mode ▶ again to Stop.
  8. ホログラムフォルダー、検索、 Fitbox資産のルートにドラッグし、階層します。In the Holograms folder, find the Fitbox asset and drag it to the root of the Hierarchy.
  9. 選択、 Fitboxで、階層パネル。Select the Fitbox in the Hierarchy panel.
  10. ドラッグ、 AstroManコレクションから、階層ホログラム コレクションで Fitbox のプロパティ、インスペクターパネル。Drag the AstroMan collection from the Hierarchy to the Hologram Collection property of the Fitbox in the Inspector panel.

プロジェクトを保存しますSave the project

  1. 新しいシーンを保存します。ファイル > としてシーンを保存します。Save the new scene: File > Save Scene As.
  2. クリックして新しいフォルダーフォルダーの名前とシーンします。Click New Folder and name the folder Scenes.
  3. ファイルに名前を"ModelExplorer"で保存し、シーンフォルダー。Name the file “ModelExplorer” and save it in the Scenes folder.

プロジェクトをビルドしますBuild the project

  1. Unity では、次のように選択します。ファイル > Build Settingsします。In Unity, select File > Build Settings.
  2. をクリックして開くシーンを追加シーンを追加します。Click Add Open Scenes to add the scene.
  3. 選択ユニバーサル Windows プラットフォームで、プラットフォームを一覧表示し、クリックしてスイッチ プラットフォームします。Select Universal Windows Platform in the Platform list and click Switch Platform.
  4. 具体的には、HoloLens の開発中、設定ターゲット デバイスHoloLensします。If you're specifically developing for HoloLens, set Target device to HoloLens. それ以外の場合、残して任意のデバイスします。Otherwise, leave it on Any device.
  5. 確認ビルド タイプに設定されているD3DSDKに設定されているインストールされている最新(16299 またはそれ以降の SDK がある必要があります)。Ensure Build Type is set to D3D and SDK is set to Latest installed (which should be SDK 16299 or newer).
  6. [Build] をクリックします。Click Build.
  7. 作成、新しいフォルダー "App"という名前です。Create a New Folder named "App".
  8. 1 回のクリック、アプリフォルダー。Single click the App folder.
  9. キーを押してフォルダーを選択しますします。Press Select Folder.

Unity を完了すると、ファイル エクスプ ローラー ウィンドウが表示されます。When Unity is done, a File Explorer window will appear.

  1. 開く、アプリフォルダー。Open the App folder.
  2. 開く、 ModelExplorer Visual Studio ソリューションします。Open the ModelExplorer Visual Studio Solution.

HoloLens へのデプロイ: 場合If deploying to HoloLens:

  1. デバッグからターゲットを変更する Visual Studio で、上部のツールバーを使用してリリースを ARM からx86します。Using the top toolbar in Visual Studio, change the target from Debug to Release and from ARM to x86.
  2. ローカル コンピューター] ボタンの横の矢印のドロップダウンをクリックし、[リモート マシンします。Click on the drop down arrow next to the Local Machine button, and select Remote Machine.
  3. 入力HoloLens デバイスの IP アドレス認証モードを設定およびユニバーサル (暗号化されていないプロトコル) します。Enter your HoloLens device IP address and set Authentication Mode to Universal (Unencrypted Protocol). クリックして選択します。Click Select. デバイスの IP アドレスがわからない場合に参照設定 > ネットワークとインターネット > 詳細オプションします。If you do not know your device IP address, look in Settings > Network & Internet > Advanced Options.
  4. 上部のメニュー バーで、クリックしてデバッグ]、[デバッグなしで開始またはキーを押しますctrl キーを押しながら f5 キーを押してします。In the top menu bar, click Debug -> Start Without debugging or press Ctrl + F5. 最初に、デバイスに展開するには、する必要がありますVisual Studio をペアリングします。If this is the first time deploying to your device, you will need to pair it with Visual Studio.
  5. アプリが展開されると、消去、 Fitboxで、ジェスチャ を選択します。When the app has deployed, dismiss the Fitbox with a select gesture.

場合は、イマーシブ ヘッドセットへのデプロイ。If deploying to an immersive headset:

  1. デバッグからターゲットを変更する Visual Studio で、上部のツールバーを使用してリリースを ARM からx64します。Using the top toolbar in Visual Studio, change the target from Debug to Release and from ARM to x64.
  2. 必ず、配置ターゲットに設定されてローカル マシンします。Make sure the deployment target is set to Local Machine.
  3. 上部のメニュー バーで、クリックしてデバッグ]、[デバッグなしで開始またはキーを押しますctrl キーを押しながら f5 キーを押してします。In the top menu bar, click Debug -> Start Without debugging or press Ctrl + F5.
  4. アプリが展開されると、消去、 Fitboxアニメーション コント ローラーで、トリガーを取得することによって。When the app has deployed, dismiss the Fitbox by pulling the trigger on a motion controller.

第 2 章 – カーソルとターゲットのフィードバックChapter 2 - Cursor and target feedback

目標Objectives

  • カーソルのビジュアル デ ザインと動作します。Cursor visual design and behavior.
  • 視線入力ベースのカーソル フィードバック。Gaze-based cursor feedback.
  • 視線の先に基づくホログラム フィードバック。Gaze-based hologram feedback.

つまり、何らかのカーソルの設計の原則に作業を基にいきます。We're going to base our work on some cursor design principles, namely:

  • カーソルは、常に存在します。The cursor is always present.
  • カーソルが小さすぎるかビッグを取得することはありません。Don't let the cursor get too small or big.
  • コンテンツの障害を回避します。Avoid obstructing content.

手順Instructions

  1. HoloToolkit\Input\Prefabsフォルダー、検索、 InputManager資産。In the HoloToolkit\Input\Prefabs folder, find the InputManager asset.
  2. ドラッグ アンド ドロップ、 InputManager上に、階層します。Drag and drop the InputManager onto the Hierarchy.
  3. HoloToolkit\Input\Prefabsフォルダー、検索、カーソル資産。In the HoloToolkit\Input\Prefabs folder, find the Cursor asset.
  4. ドラッグ アンド ドロップ、カーソル上に、階層します。Drag and drop the Cursor onto the Hierarchy.
  5. 選択、 InputManagerオブジェクト、階層します。Select the InputManager object in the Hierarchy.
  6. ドラッグ、カーソルオブジェクトから、階層InputManager にSimpleSinglePointerSelectorカーソルフィールドで、下部にある、インスペクターします。Drag the Cursor object from the Hierarchy into the InputManager's SimpleSinglePointerSelector's Cursor field, at the bottom of the Inspector.

簡単な 1 つのポインターのセレクターのセットアップ

構築し、デプロイBuild and Deploy

  1. アプリをリビルドファイル > のビルド設定します。Rebuild the app from File > Build Settings.
  2. 開く、アプリ フォルダーします。Open the App folder.
  3. 開く、 ModelExplorer Visual Studio ソリューションします。Open the ModelExplorer Visual Studio Solution.
  4. クリックしてデバッグ]、[デバッグなしで開始またはキーを押しますctrl キーを押しながら f5 キーを押してします。Click Debug -> Start Without debugging or press Ctrl + F5.
  5. カーソルを描画する方法、およびホログラムに触れている場合に外観を変更にする方法を確認します。Observe how the cursor is drawn, and how it changes appearance if it is touching a hologram.

手順Instructions

  1. 階層パネルで、展開、 AstroMan->GEO_G->Back_Centerオブジェクト。In the Hierarchy panel, expand the AstroMan->GEO_G->Back_Center object.
  2. ダブルクリックします。 Interactible.cs Visual Studio で開きます。Double click on Interactible.cs to open it in Visual Studio.
  3. 関数が呼び出される、 IFocusable.OnFocusEnter()IFocusable.OnFocusExit() コールバックInteractible.csします。Uncomment the lines in the IFocusable.OnFocusEnter() and IFocusable.OnFocusExit() callbacks in Interactible.cs. これらはフォーカス (か注視コント ローラーをポイント) を入力し、特定の GameObject のコライダーが終了したときに、Mixed Reality ツールキットの InputManager によって呼び出されます。These are called by the Mixed Reality Toolkit's InputManager when focus (either by gaze or by controller pointing) enters and exits the specific GameObject's collider.
/* TODO: DEVELOPER CODING EXERCISE 2.d */

void IFocusable.OnFocusEnter()
{
    for (int i = 0; i < defaultMaterials.Length; i++)
    {
        // 2.d: Uncomment the below line to highlight the material when gaze enters.
        defaultMaterials[i].EnableKeyword("_ENVIRONMENT_COLORING");
    }
}

void IFocusable.OnFocusExit()
{
    for (int i = 0; i < defaultMaterials.Length; i++)
    {
        // 2.d: Uncomment the below line to remove highlight on material when gaze exits.
        defaultMaterials[i].DisableKeyword("_ENVIRONMENT_COLORING");
    }
}

注意

使用してEnableKeywordDisableKeyword上。We use EnableKeyword and DisableKeyword above. 作成するには、Toolkit の標準的なシェーダーをアプリにこれらを使用して、従う必要があります、スクリプトを介したマテリアルにアクセスするための Unity ガイドラインIn order to make use of these in your own app with the Toolkit's Standard shader, you'll need to follow the Unity guidelines for accessing materials via script. この場合は、既に含まれています、強調表示されているマテリアルの 3 つのバリエーションリソース フォルダー (の名前で強調表示された 3 つの資料を参照) が必要です。In this case, we've already included the three variants of highlighted material needed in the Resources folder (look for the three materials with highlight in the name).

構築し、デプロイBuild and Deploy

  1. 同様に、プロジェクトをビルドし、HoloLens を展開します。As before, build the project and deploy to the HoloLens.
  2. オブジェクト、視線の先を目的としたときの動作を確認し、ない場合。Observe what happens when the gaze is aimed at an object and when it's not.

第 3 章の手法を対象とします。Chapter 3 - Targeting Techniques

目標Objectives

  • ターゲット ホログラムを容易にします。Make it easier to target holograms.
  • 頭の自然な動きを安定化します。Stabilize natural head movements.

手順Instructions

  1. 階層パネルで、 InputManagerオブジェクト。In the Hierarchy panel, select the InputManager object.
  2. インスペクターパネルで、検索、視線の安定板スクリプト。In the Inspector panel, find the Gaze Stabilizer script. 確認する場合 をクリックして Visual Studio で開きます。Click it to open in Visual Studio, if you want to take a look.
    • このスクリプトでは、Raycast データのサンプルを反復処理し、有効桁数が対象とする場合、ユーザーの視線の先を安定化に役立ちます。This script iterates over samples of Raycast data and helps stabilize the user's gaze for precision targeting.
  3. インスペクター、編集することができます、安定性のサンプルの格納されている値。In the Inspector, you can edit the Stored Stability Samples value. この値は、安定した値を計算する、安定板が反復処理するサンプルの数を表します。This value represents the number of samples that the stabilizer iterates on to calculate the stabilized value.

第 4 章 - 方向インジケーターChapter 4 - Directional indicator

目標Objectives

  • ホログラムが見つけやすくカーソルに方向インジケーターを追加します。Add a directional indicator on the cursor to help find holograms.

手順Instructions

使用して、 DirectionIndicator.csされるファイル。We're going to use the DirectionIndicator.cs file which will:

  1. ユーザーが、ホログラムで gazing しないかどうかに方向インジケーターを表示します。Show the directional indicator if the user is not gazing at the holograms.
  2. ユーザーが、ホログラムで gazing する場合は、方向インジケーターを非表示にします。Hide the directional indicator if the user is gazing at the holograms.
  3. ホログラムを指す方向インジケーターを更新します。Update the directional indicator to point to the holograms.

それでは始めましょう。Let's get started.

  1. をクリックして、 AstroManオブジェクト、階層パネルと矢印をクリックしてを展開します。Click on the AstroMan object in the Hierarchy panel and click the arrow to expand it.
  2. 階層パネルで、 DirectionalIndicatorオブジェクトAstroManします。In the Hierarchy panel, select the DirectionalIndicator object under AstroMan.
  3. インスペクターパネルで、をクリックして、コンポーネントの追加ボタンをクリックします。In the Inspector panel, click the Add Component button.
  4. メニューで、検索ボックスに入力方向インジケーターします。In the menu, type in the search box Direction Indicator. 検索結果を選択します。Select the search result.
  5. 階層パネルにドラッグ アンド ドロップ、カーソルオブジェクト、カーソルプロパティ、インスペクターします。In the Hierarchy panel, drag and drop the Cursor object onto the Cursor property in the Inspector.
  6. プロジェクト パネルで、ホログラムフォルダー、ドラッグ アンド ドロップ、 DirectionalIndicator上に資産、方向インジケータープロパティ、インスペクターします。In the Project panel, in the Holograms folder, drag and drop the DirectionalIndicator asset onto the Directional Indicator property in the Inspector.
  7. ビルドして、アプリを展開します。Build and deploy the app.
  8. 方向インジケーター オブジェクトは、「宇宙飛行士を検索する方法をご覧ください。Watch how the directional indicator object helps you find the astronaut.

第 5 章「ビルボード処理Chapter 5 - Billboarding

目標Objectives

  • ホログラムが常に手前に直面するには、ビルボード処理を使用します。Use billboarding to have holograms always face towards you.

使用する、 Billboard.cs指向するよう、常に、ユーザーが直面しているが GameObject を保持するファイル。We will be using the Billboard.cs file to keep a GameObject oriented such that it is facing the user at all times.

  1. 階層パネルで、 AstroManオブジェクト。In the Hierarchy panel, select the AstroMan object.
  2. インスペクターパネルで、をクリックして、コンポーネントの追加ボタンをクリックします。In the Inspector panel, click the Add Component button.
  3. メニューで、検索ボックスに入力ビルボードします。In the menu, type in the search box Billboard. 検索結果を選択します。Select the search result.
  4. インスペクター設定、回転軸Yします。In the Inspector set the Pivot Axis to Y.
  5. お試しください。Try it! ビルドし、前に、アプリとして展開します。Build and deploy the app as before.
  6. どのビュー ポイントを変更する方法に関係なくのビルボード オブジェクト直面するを参照してください。See how the Billboard object faces you no matter how you change the viewpoint.
  7. スクリプトを削除、 AstroMan今のところです。Delete the script from the AstroMan for now.

第 6 章 – Tag-AlongChapter 6 - Tag-Along

目標Objectives

  • Tag-Along を使用して、室内をフォロー、ホログラムが付いてください。Use Tag-Along to have our holograms follow us around the room.

この問題に取り組んでいます次の設計上の制約によって示されます。As we work on this issue, we'll be guided by the following design constraints:

  • コンテンツは常にすぐ概要。Content should always be a glance away.
  • コンテンツは、ようにすることはできません。Content should not be in the way.
  • コンテンツの先頭のロックが快適ではありません。Head-locking content is uncomfortable.

ここで使用するソリューションでは、"tag-along"アプローチを使用します。The solution used here is to use a "tag-along" approach.

Tag-along オブジェクトは、完全には、ユーザーのビューを残します。A tag-along object never fully leaves the user's view. 考えることができ、ユーザーの頭にラバー バンドでのオブジェクトとしての tag-along にアタッチされています。You can think of the a tag-along as being an object attached to the user's head by rubber bands. ユーザーが移動すると、コンテンツが完全を離れることがなく、ビューの端をスライドして、簡単な概要内で維持されます。As the user moves, the content will stay within an easy glance by sliding towards the edge of the view without completely leaving. ときに、ユーザーは gazes tag-along オブジェクトの方向より完全に入ったビュー。When the user gazes towards the tag-along object, it comes more fully into view.

使用して、 SimpleTagalong.csされるファイル。We're going to use the SimpleTagalong.cs file which will:

  1. Tag-Along オブジェクトがカメラの境界内にあるかどうかを決定します。Determine if the Tag-Along object is within the camera bounds.
  2. 指定しない場合、視錐台に視錐台内で部分的に Tag-Along を配置します。If not within the view frustum, position the Tag-Along to partially within the view frustum.
  3. それ以外の場合、ユーザーの既定の距離を Tag-Along を配置します。Otherwise, position the Tag-Along to a default distance from the user.

これを行うには、まず変更、 Interactible.csスクリプトを呼び出す、 TagalongActionします。To do this, we first must change the Interactible.cs script to call the TagalongAction.

  1. 編集Interactible.csコーディングを完了して 6.a (コメント解除行 84 に 87) を実行します。Edit Interactible.cs by completing coding exercise 6.a (uncommenting lines 84 to 87).
/* TODO: DEVELOPER CODING EXERCISE 6.a */
// 6.a: Uncomment the lines below to perform a Tagalong action.
if (interactibleAction != null)
{
    interactibleAction.PerformAction();
}

InteractibleAction.csと組み合わせてスクリプトInteractible.csホログラムでタップすると、カスタム アクションを実行します。The InteractibleAction.cs script, paired with Interactible.cs performs custom actions when you tap on holograms. この場合、tag-along に具体的には 1 つ使用します。In this case, we'll use one specifically for tag-along.

  • スクリプトフォルダーをクリックしますTagalongAction.cs資産を Visual Studio で開きます。In the Scripts folder click on TagalongAction.cs asset to open in Visual Studio.
  • コーディングの練習を行うか、これに変更します。Complete the coding exercise or change it to this:
    • 上部にある、階層、検索バーの種類でChestButton_Center結果を選択します。At the top of the Hierarchy, in the search bar type ChestButton_Center and select the result.
    • インスペクターパネルで、をクリックして、コンポーネントの追加ボタンをクリックします。In the Inspector panel, click the Add Component button.
    • メニューで、検索ボックスに入力末尾アクションします。In the menu, type in the search box Tagalong Action. 検索結果を選択します。Select the search result.
    • ホログラムフォルダーの検索、末尾資産。In Holograms folder find the Tagalong asset.
    • 選択、 ChestButton_Centerオブジェクト、階層します。Select the ChestButton_Center object in the Hierarchy. ドラッグ アンド ドロップ、末尾オブジェクトから、プロジェクトパネル、インスペクターに、オブジェクトに末尾プロパティ。Drag and drop the TagAlong object from the Project panel onto the Inspector into the Object To Tagalong property.
    • ドラッグ、末尾アクションオブジェクトから、インスペクターに、 Interactible アクションフィールドに、 Interactibleスクリプト。Drag the Tagalong Action object from the Inspector into the Interactible Action field on the Interactible script.
  • ダブルクリックして、 TagalongActionスクリプトを Visual Studio で開きます。Double click the TagalongAction script to open it in Visual Studio.

Interactible のセットアップ

次を追加する必要があります。We need to add the following:

  • PerformAction 関数 (InteractibleAction から継承) TagalongAction スクリプトの機能を追加します。Add functionality to the PerformAction function in the TagalongAction script (inherited from InteractibleAction).
  • Gazed 時にオブジェクトをするためのビルボードを追加し、回転軸をお客様 xy のところに設定します。Add billboarding to the gazed-upon object, and set the pivot axis to XY.
  • 単純な Tag-Along をオブジェクトに追加します。Then add simple Tag-Along to the object.

ここで、ソリューションがTagalongAction.cs:Here's our solution, from TagalongAction.cs:

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.

using HoloToolkit.Unity;
using UnityEngine;

public class TagalongAction : InteractibleAction
{
    [SerializeField]
    [Tooltip("Drag the Tagalong prefab asset you want to display.")]
    private GameObject objectToTagalong;

    private void Awake()
    {
        if (objectToTagalong != null)
        {
            objectToTagalong = Instantiate(objectToTagalong);
            objectToTagalong.SetActive(false);

            /* TODO: DEVELOPER CODING EXERCISE 6.b */

            // 6.b: AddComponent Billboard to objectToTagAlong,
            // so it's always facing the user as they move.
            Billboard billboard = objectToTagalong.AddComponent<Billboard>();

            // 6.b: AddComponent SimpleTagalong to objectToTagAlong,
            // so it's always following the user as they move.
            objectToTagalong.AddComponent<SimpleTagalong>();

            // 6.b: Set any public properties you wish to experiment with.
            billboard.PivotAxis = PivotAxis.XY; // Already the default, but provided in case you want to edit
        }
    }

    public override void PerformAction()
    {
        // Recommend having only one tagalong.
        if (objectToTagalong == null || objectToTagalong.activeSelf)
        {
            return;
        }

        objectToTagalong.SetActive(true);
    }
}
  • お試しください。Try it! ビルドして、アプリを展開します。Build and deploy the app.
  • コンテンツが、視線入力ポイントの中心を追跡する方法を見ることをブロックすることがなくが、および継続的にします。Watch how the content follows the center of the gaze point, but not continuously and without blocking it.