1. Introducción a la comunicación remota holográfica para PC1. Getting started with PC Holographic Remoting

Le damos la bienvenida a los tutoriales de HoloLens 2.Welcome to the HoloLens 2 tutorials. En esta serie de tutoriales de dos partes, aprenderá a crear una demostración de experiencia de realidad mixta, así como a crear una aplicación para PC para la comunicación remota holográfica.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.

En este tutorial, aprenderá a crear una experiencia de realidad mixta.In this tutorial, you'll learn how to create a mixed reality experience. Se mostrarán los elementos de la interfaz de usuario, la manipulación de modelos 3D, el recorte de modelos y las características de seguimiento ocular.It will demonstrate UI elements, 3D model manipulation, model clipping, and eye-tracking features.

En el segundo tutorial, Creación de una aplicación de comunicación remota holográfica, aprenderá a crear una aplicación de PC para comunicación remota holográfica.In the second tutorial, Create a Holographic Remoting application, you will learn how to create a PC app for Holographic Remoting. Y a conectarla a HoloLens 2 en cualquier momento, de modo que podrá visualizar contenido 3D en realidad mixta.And connect to HoloLens 2 at any point, providing a way to visualize 3D content in mixed reality.

ObjetivosObjectives

  • Importar recursos y configurar la escenaImport assets and set up the scene
  • Interacción con hologramas mediante botones y elementos de la interfaz de usuarioInteract with holograms using UI elements and buttons
  • Configurar objetos 3D para la característica de recorteConfigure 3D objects for the clipping feature
  • Aprender a activar la información sobre herramientas con el seguimiento ocularLearn about activating tooltips with eye-tracking

Requisitos previosPrerequisites

Se recomienda encarecidamente completar la serie de tutoriales de introducción o contar con experiencia previa básica en el uso de Unity y MRTK antes de continuar.We strongly recommend completing the Getting started tutorials series or some basic prior experience with Unity and MRTK before continuing.

Importante

  • La versión de Unity recomendada para esta serie de tutoriales es Unity 2019 LTS.The recommended Unity version for this tutorial series is Unity 2019 LTS. Sustituye los requisitos de versión de Unity o las recomendaciones descritas en los requisitos previos vinculados anteriormente.It supersedes any Unity version requirements or recommendations stated in the prerequisites linked above.
  • La comunicación remota holográfica con proyectos de MRTK solo funcionará con el XR heredado.Holographic Remoting with MRTK projects will only work with legacy XR. De momento no se admite el SDK de XR.XR SDK is not supported at this time.

Creación y preparación del proyecto de UnityCreating and preparing the Unity project

En esta sección, crearás un nuevo proyecto de Unity y lo prepararás para el desarrollo con MRTK.In this section, you will create a new Unity project and get it ready for MRTK development.

Para ello, antes debes seguir las instrucciones de Inicialización de tu proyecto y primera aplicación, a excepción de la sección Compilación de la aplicación para el dispositivo, que incluyen los pasos siguientes: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. Crear el proyecto de Unity y asignarle un nombre adecuado; por ejemplo, MRTK TutorialsCreating the Unity project and give it a suitable name, for example, MRTK Tutorials

  2. Cambiar la plataforma de compilaciónSwitching the build platform

  3. Importar los recursos esenciales de TextMeshProImporting the TextMeshPro Essential Resources

  4. Importar Mixed Reality ToolkitImporting the Mixed Reality Toolkit

  5. Configurar el proyecto de UnityConfiguring the Unity project

  6. Crear y configurar la escena y asignarle un nombre adecuado; por ejemplo, PC Holographic RemotingCreating and setting the scene and give the scene a suitable name, for example, PC Holographic Remoting

A continuación, siga las instrucciones de la sección Cambio de la opción de visualización de reconocimiento espacial para cambiar el perfil de configuración de MRTK para la escena por el perfil DefaultHoloLens2ConfigurationProfile.Then follow the Changing the Spatial Awareness Display Option instructions to change the MRTK configuration profile for your scene to the DefaultHoloLens2ConfigurationProfile. Cambie las opciones de visualización de la malla de reconocimiento espacial a Oclusión.Change the display options for the spatial awareness mesh to Occlusion.

Importación de los recursos del tutorialImporting the tutorial assets

Descargue e importe el paquete MRTK.Tutorials.PCHolographicRemoting.unitypackage.Download and import the MRTK.Tutorials.PCHolographicRemoting.unitypackage.

Sugerencia

Para obtener un recordatorio sobre cómo importar un paquete personalizado de Unity, consulta las instrucciones de Importación de Mixed Reality Toolkit.For a reminder on how to import a Unity custom package, you can refer to the Import the Mixed Reality Toolkit instructions.

Una vez importados los recursos del tutorial, la ventana Proyecto debería tener un aspecto similar al siguiente:After importing the tutorial assets, your Project window should look similar to this:

Ventanas Hierarchy (Jerarquía), Scene (Escena) y Project (Proyecto) después de importar los recursos del tutorial

Configuración y preparación de la escenaConfiguring and preparing the scene

En esta sección, agregarás algunos objetos prefabricados del tutorial para preparar la escena.In this section, you will prepare the scene by adding some of the tutorial prefabs.

Desde la ventana Proyecto, desplácese hasta Assets (Recursos) > MRTK.Tutorials.PCHolograhicRemoting > carpeta Prefabs (Recursos prefabricados).In the Project window, navigate to Assets > MRTK.Tutorials.PCHolograhicRemoting > Prefabs folder. Mientras mantiene presionado el botón CTRL, haga clic en los seis elementos prefabricados siguientes.While holding down the CTRL button, click on the below six prefabs.

  • ButtonParentButtonParent
  • ClippingObjectsClippingObjects
  • HandSpatialMapButtonHandSpatialMapButton
  • InstruccionesInstructions
  • ModelParentModelParent
  • PlataformaPlatform

Unity con objetos prefabricados que se van a agregar a la escena seleccionada

Arrastre y coloque estos modelos de la carpeta Prefabs en la ventana Jerarquía.Drag-and-drop these models from the prefabs folder into the Hierarchy window.

Unity con los objetos prefabricados recién agregados aún seleccionados

Para centrarse en los objetos de la escena, puede hacer doble clic en el objeto ModelParent y, a continuación, volver a acercarse ligeramente:To focus in on the objects in the scene, you can double-click on the ModelParent object, and then zoom slightly in again:

Unity con el objeto ModelParent en foco

Sugerencia

Si le molestan los grandes iconos de la escena, como los grandes iconos "T" enmarcados, puede ocultarlos. Para hacerlo, desactive el menú Gizmos.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.

Configuración de los botones para el funcionamiento de la escenaConfiguring the buttons to operate the scene

En esta sección, agregará scripts a la escena para crear eventos de botón que muestren los aspectos básicos de la funcionalidad de cambio y recorte de modelos.In this section, you will add scripts into the scene to create button events demonstrating the fundamentals of model switching and clipping functionality.

1. Configuración del componente Interactable (Script) (Interactivo [script])1. Configuring the Interactable (Script) component

En la ventana Jerarquía, expanda el objeto ButtonParent y seleccione NextButton.In the Hierarchy window, expand the ButtonParent object and select the NextButton. En la ventana Inspector, busque el componente Interactable (Script) (Interactivo [script]) y haga clic en el icono + debajo del evento OnClick () .In the Inspector window, locate the Interactable (Script) component and click on + icon under OnClick () event.

Unity con el evento OnClick NextButton agregado

Con el objeto NextButton aún seleccionado en la ventana Jerarquía, haga clic en el objeto ButtonParent y arrástrelo desde la ventana Jerarquía al campo None (Object) (Ninguno [objeto]) del evento que acaba de agregar; de este modo, el objeto ButtonParent escuchará los eventos de clic de este botón: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 con el agente de escucha de eventos OnClick NextButton configurado

Haga clic en la lista desplegable Ninguna función del mismo evento.Click the No Function dropdown of the same event. A continuación, seleccione ViewButtonControl > NextModel () para establecer la función NextModel () como la acción que se desencadenará cuando se activen los eventos de botón presionado de este botón: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 con la ruta de selección de acción de evento OnClick NextButton

2. Configuración de los botones restantes2. Configuring the remaining buttons

Para cada uno de los botones restantes, complete el proceso descrito anteriormente para asignar funciones a los eventos OnClick () :For each of the remaining buttons, complete the process outlined above to assign functions to the OnClick () events:

  • Para el objeto PreviousButton, asigne la función ViewButtonControl > PreviousModel () .For PreviousButton object, assign the ViewButtonContro l > PreviousModel () function.

  • En el caso de ClippingButton, seleccione ToggleButton > función ToggleClipping () .For ClippingButton select ToggleButton > ToggleClipping () function.

3. Configuración de los componentes View Button Control (Script) (Ver control de botón [script]) y Toggle Button (Script) (Botón de alternancia [script])3. Configuring the View Button Control (Script) and Toggle Button (Script) components

Ahora los botones están configurados para mostrar la funcionalidad de cambio y recorte del modelo.Now your buttons are configured to demonstrate the model switching and clipping functionality. Es el momento de agregar los modelos 3D y los objetos de recorte al script.It is time to add 3D models and the clipping objects to the script.

Hemos incluido seis modelos 3D distintos para la demostración; expanda el objeto *ModelParentobject _ para exponer estos modelos 3D.We have provided six different 3D models for demonstration, expand the *ModelParentobject _ to expose these 3D models.

Con el objeto ButtonParent aún seleccionado en la ventana Jerarquía, en la ventana Inspector, busque el componente _ View Button Control (Script) * (Ver control de botón [script]) y expanda 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.

En el campo Size, escriba el número de modelos 3D que quiere tener en la escena.In the Size field, enter the number of 3D models you would like to have in your scene. En este caso, sería seis.In this case, it would be six. Se crearán los campos para agregar nuevos modelos 3D.It will create fields for adding new 3D models.

Unity con los campos de componente del script ViewButtonControl

Arrastre y coloque cada objeto secundario del objeto ModelParent en dichos campos.Drag and drop each child object of ModelParent Object into these fields.

Unity con los campos de componente del script ViewButtonControl configurados

Arrastre y coloque el objeto ClippingObjects desde la ventana Jerarquía hasta el campo Clipping Object (Objeto de recorte) del componente Toggle Button (Script) (Botón de alternancia [script]).Drag and drop the ClippingObjects object from the Hierarchy window to the Toggle Button (Script) component Clipping Object field.

Nota

Permanezca solo en el objeto primario de botón.Stay in button parent object only.

Unity con el campo del componente del script ToggleButton configurado

En la ventana Jerarquía, seleccione el elemento prefabricado ClippingObjects y habilítelo en la ventana Inspector para activar los objetos de recorte.In the Hierarchy window, select the ClippingObjects prefab and enable it in the Inspector window to turn on the Clipping objects.

Configuración de los objetos de recorte para habilitar la característica de recorteConfiguring the clipping objects to enable clipping feature

En esta sección, agregará el representador de objetos secundarios del objeto MarsCuriosityRover a un objeto de recorte individual para mostrar el recorte del modelo 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.

En la ventana Jerarquía, expanda el objeto ClippingObjects para exponer los tres objetos de recorte diferentes que usará en este proyecto.In the Hierarchy window, expand the ClippingObjects object to expose the three different clipping objects that you will be using in this project.

Para configurar el objeto ClippingSphere, haga clic en él y, en la ventana Inspector, busque el componente Clipping Sphere (Script) (Esfera de recorte [script]).To configure the ClippingSphere object, click on it, and in the Inspector window, locate the Clipping Sphere (Script) component. Escriba el número de representadores en el campo de tamaño que necesita agregar al modelo 3D.Enter the number of renderers in the size field that you need to add for your 3D model. En este caso, agregue 10 objetos secundarios MarsCuriosityRover.In this case, add 10 for MarsCuriosityRover child objects. De este modo, se crearán campos para agregar los representadores; después, arrastre y coloque los objetos del modelo secundario del objeto MarsCuriosityRover en estos campos.It will create fields for adding renderers, drag and drop MarsCuriosityRover Object's child model objects into these fields.

Unity con los campos de componente del script ClippingSphere configurados

Siga el mismo proceso y agregue los representadores de objetos secundarios de MarsCuriosityRover a los objetos ClippingBox y ClippingPlane.Follow the same process and add MarsCuriosityRover's child objects renderers to the ClippingBox and ClippingPlane objects.

En este tutorial, solo se usará el modelo MarsCuriosityRover como demostración de la característica de recorte.In this tutorial, only the MarsCuriosityRover model will be used for demonstrating the clipping feature. Se agregarán características de recorte a más modelos, se aumentará el tamaño del representador y se agregarán sus representadores de malla individuales.They were adding clipping features to more models, increasing the size of the renderer, and adding their individual mesh renderers.

Configuración del seguimiento ocular para resaltar información sobre herramientasConfiguring eye-tracking to highlight tooltips

En esta sección, explorarás cómo habilitar el seguimiento ocular en el proyecto.In this section, you will explore how to enable eye tracking in your project. Por ejemplo, implementará la funcionalidad para resaltar la información sobre herramientas relacionada con las piezas de MarsCuriosityRover cuando las mira, y ocultará dicha información al apartar la mirada.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. Identificación de los objetos de destino y la información sobre herramientas asociada1. Identify target objects and associated tooltips

En la ventana Jerarquía, expanda el objeto ModelParent.In the Hierarchy window, select the ModelParent object. Expanda MarsCuriosity -> Rover _ para buscar cinco partes 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.

  • Observe los cinco objetos de información sobre herramientas correspondientes con las piezas de MarsCuriosityRover en la ventana Jerarquía.Observe five corresponding tooltip objects associated with MarsCuriosityRover parts in the Hierarchy window.
  • Configurará estos objetos para mejorar la experiencia al mirar las piezas de MarsCuriosityRover.You will be configuring these objects to highlight the experience when you look at the MarsCuriosityRover parts.

Unity con el objeto Rover seleccionado y expandido

2. Implementación de los eventos While Looking At Target () y On Look Away ()2. Implement While Looking At Target () & On Look Away () events

En la ventana Hierarchy (Jerarquía), seleccione el objeto *POI-Camera _.In the Hierarchy window, select the *POI-Camera _ object. En la ventana Inspector, busque el componente _ Eye Tracking Target (Script) * (Objetivo de seguimiento ocultar [script]) y configure los eventos While Looking At Target () & On Look Away () como se indica a continuación:In the Inspector window, locate the _ Eye Tracking Target (Script)* component and configure the While Looking At Target () & On Look Away () events as follows:

  • Asigne el objeto POI-Camera ToolTip al campo None (Object) (Ninguno [objeto]).To None (Object) field, assign the POI-Camera ToolTip object
  • En la lista desplegable Ninguna función del evento While Looking At Target () , seleccione GameObject > SetActive (bool) .From No Function dropdown of While Looking At Target () event, select GameObject > SetActive (bool). Active la Casilla debajo para que, al mirar el objeto de destino, la acción desencadenada sea resaltar la información sobre herramientas.Select the Checkbox under it to highlight the tooltip as the action that is triggered when you look at the target object.

Unity con la configuración de eventos EyeTrackingTarget WhileLookingAtTarget en curso

  • Siga el mismo proceso y haga clic en la lista desplegable Ninguna función del escucha de eventos On Look Away () .Follow the same process and click on the No Function dropdown of the On Look Away () event listener. A continuación, seleccione GameObject > SetActive (bool) y deje la Casilla vacía para que, al apartar la mirada del objeto de destino, la acción desencadenada sea ocultar la información sobre herramientas.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 con el evento EyeTrackingTarget OnLookAway configurado

Siga el mismo proceso y asigne los objetos de información sobre herramientas a los eventos While Looking At Target () & On Look Away () de las piezas de MarsCuriosityRover correspondientes.Follow the same process and assign respective tooltip objects to their same MarsCuriosityRover parts While Looking At Target () & On Look Away () events.

Para habilitar el seguimiento ocular, siga estas instrucciones.To enable eye tracking, please follow these guidelines.

EnhorabuenaCongratulations

En este tutorial, aprendió a crear una experiencia de realidad mixta que muestra los elementos de la interfaz de usuario, la manipulación de modelos 3D, el recorte de modelos y las características de seguimiento ocular.In this tutorial, you learned to build a mixed reality experience demonstrating UI elements, 3D model manipulation, model clipping, and eye-tracking features. El tutorial le proporcionó los elementos NextButton y PreviousButton que le permiten explorar la experiencia del visor de modelos 3D.The tutorial provided you with NextButton and PreviousButton that let you explore the 3D model viewer experience. El elemento ClippingObjectButton activó los objetos de recorte para experimentar la característica de recorte.The ClippingObjectButton made you turn on clipping objects and experience clipping feature. El tutorial también le proporcionó un elemento de seguimiento ocular para habilitar el resaltado de la información sobre herramientas en la experiencia.The tutorial also provided you with an eye-tracking element to enable highlighting the tooltips in the experience.

En la próxima lección, aprenderá a crear una aplicación de comunicación remota holográfica para PC para conectarse a HoloLens 2 en cualquier momento, de modo que podrá visualizar contenido 3D en realidad mixta.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.