1. Bien démarrer avec la communication à distance holographique de PC1. Getting started with PC Holographic Remoting

Bienvenue dans les tutoriels HoloLens 2.Welcome to the HoloLens 2 tutorials. Dans cette série comprenant deux tutoriels, vous allez apprendre à créer une démonstration d’expérience de réalité mixte et à créer une application PC de communication à distance holographique.In this two-part tutorial series, you will learn how to create a mixed reality experience demonstration and how to create a PC app for Holographic Remoting.

Dans ce tutoriel, vous allez découvrir comment créer une expérience de réalité mixte.In this tutorial, you'll learn how to create a mixed reality experience. Il présente les éléments d’interface utilisateur, la manipulation de modèle 3D, le découpage de modèle et les fonctionnalités de suivi oculaire.It will demonstrate UI elements, 3D model manipulation, model clipping, and eye-tracking features.

Le deuxième tutoriel, Créer une application de communication à distance holographique, montre comment créer une application PC de communication à distance holographique.In the second tutorial, Create a Holographic Remoting application, you will learn how to create a PC app for Holographic Remoting. Il présente également comment connecter l’application à HoloLens 2 à tout moment pour visualiser du contenu 3D en réalité mixte.And connect to HoloLens 2 at any point, providing a way to visualize 3D content in mixed reality.

ObjectifsObjectives

  • Importer les ressources et configurer la scèneImport assets and set up the scene
  • Interaction avec des hologrammes en utilisant des éléments d’interface utilisateur et des boutonsInteract with holograms using UI elements and buttons
  • Configurer les objets 3D pour la fonctionnalité de découpageConfigure 3D objects for the clipping feature
  • Apprendre à activer des info-bulles avec le suivi oculaireLearn about activating tooltips with eye-tracking

PrérequisPrerequisites

Si vous n’avez pas une expérience de base avec Unity et MRTK, nous vous recommandons vivement de suivre la série de tutoriels Bien démarrer avant de continuer.We strongly recommend completing the Getting started tutorials series or some basic prior experience with Unity and MRTK before continuing.

Important

  • La version d’Unity recommandée pour cette série de tutoriels est Unity 2019 LTS.The recommended Unity version for this tutorial series is Unity 2019 LTS. Elle remplace toutes les versions Unity requises ou recommandées qui sont indiquées dans les prérequis ci-dessus.It supersedes any Unity version requirements or recommendations stated in the prerequisites linked above.
  • La communication à distance holographique avec les projets MRTK fonctionne uniquement avec le XR hérité.Holographic Remoting with MRTK projects will only work with legacy XR. Le SDK XR n’est pas pris en charge pour l’instant.XR SDK is not supported at this time.

Création et préparation du projet UnityCreating and preparing the Unity project

Dans cette section, vous allez créer un projet Unity et le préparer au développement avec MRTK.In this section, you will create a new Unity project and get it ready for MRTK development.

Pour cela, suivez d’abord Initialisation de votre projet et de votre première application, en excluant les instructions données dans Générer votre application sur votre appareil, ce qui inclut les étapes suivantes :For this, first follow the Initializing your project and first application, excluding the Build your application to your device instructions, which includes the following steps:

  1. Création du projet Unity et affectation d’un nom pertinent, par exemple MRTK TutorialsCreating the Unity project and give it a suitable name, for example, MRTK Tutorials

  2. Changement de plateforme de générationSwitching the build platform

  3. Importation des ressources TextMeshPro EssentialImporting the TextMeshPro Essential Resources

  4. Importation du Mixed Reality ToolkitImporting the Mixed Reality Toolkit

  5. Configuration du projet UnityConfiguring the Unity project

  6. Création et définition de la scène, et affectation d’un nom pertinent à la scène, par exemple PC Holographic RemotingCreating and setting the scene and give the scene a suitable name, for example, PC Holographic Remoting

Ensuite, suivez les instructions fournies dans Changement de l’option d’affichage de la reconnaissance spatiale pour remplacer le profil de configuration MRTK de votre scène par DefaultHoloLens2ConfigurationProfile.Then follow the Changing the Spatial Awareness Display Option instructions to change the MRTK configuration profile for your scene to the DefaultHoloLens2ConfigurationProfile. Choisissez Occlusion dans les options d’affichage du maillage de la reconnaissance spatiale.Change the display options for the spatial awareness mesh to Occlusion.

Importation des ressources du tutorielImporting the tutorial assets

Téléchargez et importez le package MRTK.Tutorials.PCHolographicRemoting.unitypackage.Download and import the MRTK.Tutorials.PCHolographicRemoting.unitypackage.

Conseil

Pour un rappel de la façon d’importer un package personnalisé Unity, vous pouvez vous référer aux instructions de Importer le Kit de ressources de réalité mixte.For a reminder on how to import a Unity custom package, you can refer to the Import the Mixed Reality Toolkit instructions.

Une fois que vous avez importé les ressources du tutoriel, votre fenêtre Project doit ressembler à ceci :After importing the tutorial assets, your Project window should look similar to this:

Fenêtres Hierarchy, Scene et Project dans Unity, après l’importation des ressources du tutoriel

Création et préparation de la scèneConfiguring and preparing the scene

Dans cette section, vous allez préparer la scène en ajoutant une partie des préfabriqués du tutoriel.In this section, you will prepare the scene by adding some of the tutorial prefabs.

Dans la fenêtre Project, accédez au dossier Assets > MRTK.Tutorials.PCHolograhicRemoting > Prefabs.In the Project window, navigate to Assets > MRTK.Tutorials.PCHolograhicRemoting > Prefabs folder. Tout en maintenant la touche Ctrl enfoncée, cliquez sur les six préfabriqués ci-dessous.While holding down the CTRL button, click on the below six prefabs.

  • ButtonParentButtonParent
  • ClippingObjectsClippingObjects
  • HandSpatialMapButtonHandSpatialMapButton
  • InstructionsInstructions
  • ModelParentModelParent
  • Plate-formePlatform

Unity avec des préfabriqués à ajouter à la scène sélectionnée

Faites glisser-déposer ces modèles du dossier Prefabs vers la fenêtre Hierarchy.Drag-and-drop these models from the prefabs folder into the Hierarchy window.

Unity avec des préfabriqués nouvellement ajoutés encore sélectionnés

Pour vous concentrer sur les objets de la scène, vous pouvez double-cliquer sur l’objet ModelParent, puis faire un léger zoom avant :To focus in on the objects in the scene, you can double-click on the ModelParent object, and then zoom slightly in again:

Unity avec l’objet ModelParent dans le focus

Conseil

Si vous trouvez gênantes les grandes icônes de votre scène, par exemple les grandes icônes « T », vous pouvez les masquer en basculant les gizmos en position Off.If you find the large icons in your scene, such as, the large framed 'T' icons distracting, you can hide these by toggling the Gizmos to the off position.

Configuration des boutons pour faire fonctionner la scèneConfiguring the buttons to operate the scene

Dans cette section, vous allez ajouter des scripts dans la scène pour créer des événements de bouton illustrant les notions de base des fonctionnalités de changement et de découpage de modèle.In this section, you will add scripts into the scene to create button events demonstrating the fundamentals of model switching and clipping functionality.

1. Configuration du composant Interactable (Script)1. Configuring the Interactable (Script) component

Dans la fenêtre Hierarchy, développez l’objet ButtonParent, puis sélectionnez NextButton.In the Hierarchy window, expand the ButtonParent object and select the NextButton. Dans la fenêtre Inspector, localisez le composant Interactable (Script) , puis cliquez sur l’icône + sous l’événement OnClick () .In the Inspector window, locate the Interactable (Script) component and click on + icon under OnClick () event.

Unity avec l’événement OnClick de NextButton ajouté

L’objet NextButton étant toujours sélectionné dans la fenêtre Hierarchy, cliquez sur l’objet ButtonParent et faites-le glisser de la fenêtre Hierarchy vers le champ vide None (Object) de l’événement que vous venez d’ajouter pour que l’objet ButtonParent soit à l’écoute des événements de type « clic sur un bouton » provenant de ce bouton :With the NextButton object still selected in the Hierarchy window, click-and-drag the ButtonParent object from the Hierarchy window into the empty None (Object) field of the event you just added to make the ButtonParent object listen for button click event from this button:

Unity avec l’écouteur d’événements OnClick de NextButton configuré

Cliquez sur la liste déroulante No Function du même événement.Click the No Function dropdown of the same event. Sélectionnez ensuite ViewButtonControl > NextModel () pour définir la fonction NextModel () comme l’action à déclencher quand l’événement d’appui sur un bouton est déclenché par ce bouton :Then select ViewButtonControl > NextModel () to set the NextModel () function as the action that is triggered when the button pressed events is fired from this button:

Unity avec le chemin de sélection d’action de l’événement OnClick de NextButton

2. Configuration des boutons restants2. Configuring the remaining buttons

Pour chacun des boutons restants, effectuez le processus décrit ci-dessus pour affecter des fonctions aux événements OnClick ()  :For each of the remaining buttons, complete the process outlined above to assign functions to the OnClick () events:

  • Pour l’objet PreviousButton, affectez la fonction ViewButtonControl > PreviousModel () .For PreviousButton object, assign the ViewButtonContro l > PreviousModel () function.

  • Pour ClippingButton, sélectionnez la fonction ToggleButton > ToggleClipping () .For ClippingButton select ToggleButton > ToggleClipping () function.

3. Configuration des composants View Button Control (Script) et Toggle Button (Script)3. Configuring the View Button Control (Script) and Toggle Button (Script) components

Vos boutons sont maintenant configurés pour illustrer les fonctionnalités de changement et de découpage de modèle.Now your buttons are configured to demonstrate the model switching and clipping functionality. Il est temps d’ajouter des modèles 3D et des objets de découpage au script.It is time to add 3D models and the clipping objects to the script.

Six modèles 3D différents sont fournis à des fins de démonstration. Pour les exposer, développez *ModelParentobject _.We have provided six different 3D models for demonstration, expand the *ModelParentobject _ to expose these 3D models.

L’objet ButtonParent étant toujours sélectionné dans la fenêtre Hierarchy, dans la fenêtre Inspector, recherchez le composant _ View Button Control (Script) *, puis développez la variable Models.With the ButtonParent object still selected in the Hierarchy window, in the Inspector window, locate the _ View Button Control (Script)* component and expand the Models variable.

Dans le champ Size, entrez le nombre de modèles 3D que vous aimeriez avoir dans votre scène.In the Size field, enter the number of 3D models you would like to have in your scene. Dans ce cas, indiquez six.In this case, it would be six. Des champs permettant d’ajouter de nouveaux modèles 3D sont créés.It will create fields for adding new 3D models.

Unity avec les champs du composant de script ViewButtonControl

Faites glisser-déposer chaque objet enfant de l’objet ModelParent sur ces champs.Drag and drop each child object of ModelParent Object into these fields.

Unity avec les champs du composant de script ViewButtonControl configurés

Faites glisser-déposer l’objet ClippingObjects de la fenêtre Hierarchy sur le champ Clipping Object du composant Toggle Button (Script)Drag and drop the ClippingObjects object from the Hierarchy window to the Toggle Button (Script) component Clipping Object field.

Notes

Restez dans l’objet ButtonParent.Stay in button parent object only.

Unity avec les champs du composant de script ToggleButton configurés

Dans la fenêtre Hierarchy, sélectionnez le préfabriqué ClippingObjects et activez-le dans la fenêtre Inspector pour activer les objets de découpage.In the Hierarchy window, select the ClippingObjects prefab and enable it in the Inspector window to turn on the Clipping objects.

Configuration des objets de découpage pour activer la fonctionnalité de découpageConfiguring the clipping objects to enable clipping feature

Dans cette section, vous allez ajouter le renderer d’objets enfants de l’objet MarsCuriosityRover dans un objet de découpage individuel pour illustrer le découpage du modèle MarsCuriosityRover.In this section, you will add MarsCuriosityRover object's child objects renderer into an individual clipping object to demonstrate the clipping of the MarsCuriosityRover model.

Dans la fenêtre Hierarchy, développez l’objet ClippingObjects pour exposer les trois objets de découpage que vous allez utiliser dans ce projet.In the Hierarchy window, expand the ClippingObjects object to expose the three different clipping objects that you will be using in this project.

Pour configurer l’objet ClippingSphere, cliquez dessus, puis dans la fenêtre Inspector, recherchez le composant Clipping Sphere (Script) .To configure the ClippingSphere object, click on it, and in the Inspector window, locate the Clipping Sphere (Script) component. Dans le champ Size, entrez le nombre de renderers à ajouter pour votre modèle 3D.Enter the number of renderers in the size field that you need to add for your 3D model. Dans ce cas, entrez 10 pour les objets enfants de MarsCuriosityRover.In this case, add 10 for MarsCuriosityRover child objects. Des champs permettant d’ajouter des renderers sont créés. Glissez-déposez les objets enfants du modèle MarsCuriosityRover sur ces champs.It will create fields for adding renderers, drag and drop MarsCuriosityRover Object's child model objects into these fields.

Unity avec les champs du composant de script ClippingSphere configurés

Suivez le même processus et ajoutez les renderers d’objets enfants de MarsCuriosityRover aux objets ClippingBox et ClippingPlane.Follow the same process and add MarsCuriosityRover's child objects renderers to the ClippingBox and ClippingPlane objects.

Dans ce tutoriel, seul le modèle MarsCuriosityRover est utilisé pour illustrer la fonctionnalité de découpage.In this tutorial, only the MarsCuriosityRover model will be used for demonstrating the clipping feature. Il est possible d’ajouter des fonctionnalités de découpage à d’autres modèles, d’augmenter la taille du renderer et d’ajouter des renderers de maillage individuels.They were adding clipping features to more models, increasing the size of the renderer, and adding their individual mesh renderers.

Configuration du suivi oculaire pour mettre en évidence les info-bullesConfiguring eye-tracking to highlight tooltips

Dans cette section, nous allons examiner comment activer l’eye-tracking dans votre projet.In this section, you will explore how to enable eye tracking in your project. Par exemple, vous allez implémenter les fonctionnalités nécessaires pour mettre en évidence les info-bulles attachées aux éléments de MarsCuriosityRover quand vous les regardez et les masquer quand vous détournez votre regard.For example, you will implement the functionality to highlight tooltips attached to MarsCuriosityRover's parts while looking at them and hiding them, while you are looking away from them.

1. Identifier les objets cibles et les info-bulles associées1. Identify target objects and associated tooltips

Dans la fenêtre Hierarchy, sélectionnez l’objet ModelParent.In the Hierarchy window, select the ModelParent object. Développez MarsCuriosity-> Rover _ pour voir les cinq parties principales de MarsCuriosityRover : _ POI-Camera, POI-Wheels, POI-Antena, POI-Spectrometer, POI-RUHF Antenna.Expand the *MarsCuriosity -> Rover_ to find five main parts of the MarsCuriosityRover: _* POI-Camera**, POI-Wheels, POI-Antena, POI-Spectrometer, POI-RUHF Antenna.

  • Observez les cinq objets info-bulles associés aux éléments de MarsCuriosityRover dans la fenêtre Hierarchy.Observe five corresponding tooltip objects associated with MarsCuriosityRover parts in the Hierarchy window.
  • Vous allez configurer ces objets pour les mettre en évidence quand vous regardez les éléments MarsCuriosityRover correspondants.You will be configuring these objects to highlight the experience when you look at the MarsCuriosityRover parts.

Unity avec l’objet Rover sélectionné et développé

2. Implémenter les événements While Looking At Target () et On Look Away ()2. Implement While Looking At Target () & On Look Away () events

Dans la fenêtre Hierarchy, sélectionnez l’objet POI-Camera _.In the Hierarchy window, select the *POI-Camera _ object. Dans la fenêtre Inspector, recherchez le composant Eye Tracking Target (Script) , puis configurez les événements While Looking At Target () & On Look Away () comme suit :In the Inspector window, locate the _ Eye Tracking Target (Script)* component and configure the While Looking At Target () & On Look Away () events as follows:

  • Affectez au champ None (Object) l’objet POI-Camera ToolTip.To None (Object) field, assign the POI-Camera ToolTip object
  • Dans la liste déroulante No Function de l’événement While Looking At Target () , sélectionnez GameObject > SetActive (bool) .From No Function dropdown of While Looking At Target () event, select GameObject > SetActive (bool). Cochez la case située en dessous pour définir la mise en évidence de l’info-bulle comme l’action à déclencher quand vous regardez l’objet cible.Select the Checkbox under it to highlight the tooltip as the action that is triggered when you look at the target object.

Unity avec la configuration de l’événement EyeTrackingTarget WhileLookingAtTarget en cours

  • Suivez le même processus et cliquez sur la liste déroulante No Function du détecteur d’événements On Look Away () .Follow the same process and click on the No Function dropdown of the On Look Away () event listener. Sélectionnez ensuite GameObject > SetActive (bool), mais ne cochez pas la case pour définir le masquage de l’info-bulle comme l’action à déclencher quand vous détournez votre regard de l’objet cible.Then select GameObject > SetActive (bool) and leave the Checkbox empty to hide the tooltip as the action that is triggered when you look away from the target object.

Unity avec l’événement EyeTrackingTarget OnLookAway configuré

Suivez le même processus et affectez aux événements While Looking At Target () & On Look Away () les objets info-bulles qui correspondent aux éléments de MarsCuriosityRover.Follow the same process and assign respective tooltip objects to their same MarsCuriosityRover parts While Looking At Target () & On Look Away () events.

Pour activer le suivi oculaire, suivez ces instructions.To enable eye tracking, please follow these guidelines.

FélicitationsCongratulations

Dans ce tutoriel, vous avez appris à créer une expérience de réalité mixte illustrant les éléments d’interface utilisateur, la manipulation de modèle 3D, le découpage de modèle et les fonctionnalités de suivi oculaire.In this tutorial, you learned to build a mixed reality experience demonstrating UI elements, 3D model manipulation, model clipping, and eye-tracking features. Les objets NextButton et PreviousButton introduits dans ce tutoriel vous ont permis d’explorer la visionneuse de modèle 3D.The tutorial provided you with NextButton and PreviousButton that let you explore the 3D model viewer experience. L’objet ClippingObjectButton vous a quant a lui permis d’activer des objets de découpage et de vous familiariser avec la fonctionnalité de découpage.The ClippingObjectButton made you turn on clipping objects and experience clipping feature. Dans ce tutoriel, vous avez également examiné un élément de suivi oculaire pour activer la mise en évidence des info-bulles dans l’expérience.The tutorial also provided you with an eye-tracking element to enable highlighting the tooltips in the experience.

Dans la leçon suivante, vous allez découvrir comment créer une application de communication à distance holographique pour PC et comment la connecter à HoloLens 2 à tout moment pour visualiser du contenu 3D en réalité mixte.In the next lesson, you will learn how to create a Holographic Remoting application for PC to connect HoloLens 2 at any point, providing a way to Visualize 3D content in mixed reality.