MRTK 101: Uso de Mixed Reality Toolkit Unity para interacciones espaciales comunesMRTK 101: How to use Mixed Reality Toolkit Unity for common spatial interactions

MRTK

Aprende a usar MRTK para lograr algunos de los patrones de interacción comunes más usados en la realidad mixta.Learn about how to use MRTK to achieve some of the most widely used common interaction patterns in mixed reality.

  • ¿Cómo simular interacciones de entrada en el editor de Unity?How to simulate input interactions in Unity editor?
  • ¿Cómo agarrar y desplazar un objeto?How to grab and move an object?
  • ¿Cómo cambiar el tamaño de un objeto?How to resize an object?
  • ¿Cómo mover o girar un objeto con precisión?How to move or rotate an object with precision?
  • ¿Cómo conseguir que un objeto responda a eventos de entrada?How to make an object respond to input events?
  • ¿Cómo agregar comentarios visuales?How to add visual feedback?
  • ¿Cómo agregar comentarios de audio?How to add audio feedback?
  • ¿Cómo usar los objetos prefabricados de botón de estilo de HoloLens 2?How to use HoloLens 2 style button prefabs?
  • ¿Cómo hacer que un objeto te siga?How to make an object follow you?
  • ¿Cómo hacer que un objeto se ponga delante de ti?How to make an object face you?

Nota

Este artículo se ha actualizado para reflejar los cambios en MRTK, versión 2.5.1.This article has been updated to reflect the changes in MRTK v2.5.1 release

Todo el contenido de esta página se puede probar en el editor de Unity con la simulación de entrada de MRTK.All contents in this page can be tested in Unity editor with MRTK's Input Simulation. Si no lo ha hecho, siga la Guía de instalación de MRTK (GitHub) para instalar la versión más reciente de MRTK.If you haven't, follow MRTK Installation Guide (GitHub) to install the latest version of MRTK.

¿Cómo simular interacciones de entrada en el editor de Unity?How to simulate input interactions in Unity editor?

MRTK admite la simulación de entrada en el editor.MRTK supports in-editor input simulation. Ejecute la escena haciendo clic en el botón Reproducir de Unity y, a continuación, use las claves siguientes para simular la entrada:Run your scene by clicking Unity's play button, then use the following keys to simulate input:

  • Presiona las teclas W, A, S y D para mover la cámara.Press W, A, S, D keys to move the camera.
  • Mantén presionado el botón derecho del ratón y muévelo para mirar alrededor.Hold the right mouse button and move the mouse to look around.
  • Presione la barra espaciadora (mano derecha) o la tecla Mayús izquierda (mano izquierda) para abrir las manos simuladas.Press Space bar(Right hand) or left Shift key(Left hand) to bring up the simulated hands
  • Presione las teclas T o Y para mantener las manos simuladas en la vista.Press T or Y keys to keep simulated hands in view
  • Presione Q o E (horizontal)/R o F (vertical) para girar las manos simuladas.Press Q or E(horizontal) / R or F(vertical) to rotate simulated hands

Puede obtener más información sobre la simulación de entrada en la documentación de MRTK.You can learn more about Input Simulation in the MRTK documentation.

¿Cómo agarrar y desplazar un objeto?How to grab and move an object?

Adjunte los scripts ObjectManipulator.cs y NearInteractionGrabbable.cs para que se pueda obtener un objeto.Attach the ObjectManipulator.cs and NearInteractionGrabbable.cs scripts to make an object grabbable. ObjectManipulator admite interacciones cercanas y lejanas.ObjectManipulator supports both near and far interactions. Puede agarrar y mover un objeto con la entrada de seguimiento de manos articulada de HoloLens 2 (cercana), el haz de mano (lejano), el cursor del controlador de movimiento (lejano), el cursor de mirada de HoloLens y el toque en el aire (lejano).You can grab and move an object with HoloLens 2's articulated hand tracking input(near), hand ray(far), motion controller's beam(far), and HoloLens gaze cursor and air-tap(far).


NearInteractionGrabbable and ObjectManipulator.cs assigned to an object


NearInteractionGrabbable and ObjectManipulator.cs assigned to an object for grab and move

¿Cómo cambiar el tamaño de un objeto?How to resize an object?

ObjectManipulator.cs admite el escalado o la rotación con dos manos.ObjectManipulator.cs supports two-handed scale/rotation. El script funciona con varios tipos de entrada, como la entrada de manos articulada de HoloLens 2, la entrada de mirada y gestos de HoloLens 1 y la entrada del controlador de movimiento del casco envolvente de Windows Mixed Reality.The script works with various input types, such as HoloLens 2's articulated hand input, HoloLens 1's gaze + gesture input, and Windows Mixed Reality immersive headset's motion controller input.


NearInteractionGrabbable and ObjectManipulator.cs assigned to an object for manipulation

¿Cómo mover o girar un objeto con precisión?How to move or rotate an object with precision?

Asigne BoundsControl.cs a un objeto para usar el cuadro de límite, que es la interfaz para escalar y girar un objeto.Assign BoundsControl.cs to an object to use Bounding Box, which is the interface for scaling and rotating an object. De forma predeterminada, se muestran los controladores y los cables de color azul del estilo de HoloLens 1.By default, it shows HoloLens 1 style blue handles and wires. Para usar controladores animados basados en proximidad del estilo de HoloLens 2, debes asignar objetos prefabricados y materiales.To use HoloLens 2 style proximity-based animated handles, you need to assign prefabs and materials.


BoundsControl.cs assigned to an object image


BoundsControl.cs assigned to an object gif

¿Cómo conseguir que un objeto responda a eventos de entrada?How to make an object respond to input events?

Asigne PointerHandler.cs a un objeto.Assign PointerHandler.cs to an object. En el inspector, puede usar los eventos OnPointerDown(), OnPointerUp(), OnPointerClicked(), OnPointerDragged(). Para usarlos en un script, implemente IMixedRealityPointerHandler.In the inspector, you can use events OnPointerDown(), OnPointerUp(), OnPointerClicked(), OnPointerDragged() To use these events in a script, implement IMixedRealityPointerHandler.


PointerHandler.cs assigned to an object image

¿Cómo agregar comentarios visuales?How to add visual feedback?

Asigne Interactable.cs a un objeto.Assign Interactable.cs to an object. En el inspector, agregue el objeto de destino y cree un nuevo tema.In the inspector, add target object and create a new theme. Mediante el uso de perfiles de tema interactuables, puedes agregar comentarios visuales a todos los estados de interacción de entrada disponibles.Using Interactable's theme profiles, you can easily add visual feedback to all available input interaction states.


Image of PointerHandler.cs assigned to an object


Interactable gif

Los elementos interactuables proporcionan varios tipos de temas, incluido el tema del sombreador, que permite controlar las propiedades del sombreador por estado de interacción.Interactable provides various types of themes including the shader theme, which allows you to control properties of the shader per interaction state.

Otro bloque de creación importante para los comentarios visuales es MRTK Standard Shader.Another important building block for visual feedback is the MRTK Standard Shader. Con el sombreador estándar de MRTK, puedes agregar fácilmente efectos de comentarios visuales, como luz de desplazamiento y de proximidad.With MRTK Standard Shader, you can easily add visual feedback effects such as hover light and proximity light. Dado que el sombreador estándar de MRTK realiza un cálculo menor que el sombreador estándar de Unity, puede crear una experiencia de rendimiento.Since MRTK Standard shader performs less computation than the Unity Standard shader, you can create a performant experience.

Crea un nuevo material y selecciona el sombreador "Mixed Reality Toolkit > Standard (Estándar)".Create a new material and select the Shader 'Mixed Reality Toolkit > Standard'. También puedes elegir uno de los materiales existentes que usan el sombreador estándar de MRTK.Or you can pick one of the existing materials that use MRTK Standard Shader.


MRTK Standard Shader image 1

MRTK Standard Shader image 2

MRTK Standard Shader image 3

¿Cómo agregar comentarios de audio?How to add audio feedback?

Agregue AudioSource a un objeto.Add AudioSource to an object. A continuación, en los scripts que exponen eventos de entrada (p. ej., Interactable.cs o PointerHandler.cs), asigne el objeto con AudioSource al evento y seleccione AudioSource.PlayOneShot() .Then, in the scripts that expose input events(e.g. Interactable.cs or PointerHandler.cs), assign the object with AudioSource to the event and select AudioSource.PlayOneShot(). Puedes usar los clips de audio o elegir uno de los recursos de audio de MRTK.You can use your audio clips or choose one from MRTK's audio assets.


Audio Source assigned to an object. AudioSource.PlayOneShot configured in the Interactable's OnPress() and OnRelease() events.

¿Cómo usar los objetos prefabricados de botón de estilo de HoloLens 2?How to use HoloLens 2 style button prefabs?

MRTK proporciona varios tipos de botones de estilo de shell (SO) de HoloLens 2, incluidos los comentarios visuales, como la luz de proximidad, el cuadro de compresión y un efecto de ondulación en la superficie del botón, que mejoran la confianza del usuario.MRTK provides various types of HoloLens 2's shell (OS) style buttons, including visual feedback like proximity light, compressing box, and a ripple effect on the button surface that improve the user's confidence.


Interactable button

Arrastre y coloque uno de los objetos prefabricados de botón presionable del estilo de HoloLens 2 a la escena.Drag and drop one of the HoloLens 2 style pressable button prefab into your scene. El objeto prefabricado usa el Interactable.cs presentado anteriormente.The prefab uses Interactable.cs introduced above. Puedes usar eventos expuestos como OnClick() en el objeto interactuable para desencadenar acciones.You can use exposed events such as OnClick() in the Interactable to trigger actions.


HoloLens 2 Button Prefab

¿Cómo hacer que un objeto te siga?How to make an object follow you?

Asigne el script RadialView.cs o Follow.cs a un objeto.Assign RadialView.cs or Follow.cs script to an object. Forma parte de la serie de scripts del solucionador que permite lograr distintos tipos de selección de ubicación de objetos en el espacio 3D.It's part of the Solver script series that allows you to achieve various types of object positioning in 3D space. SolverHandler.cs se agregará automáticamente.SolverHandler.cs will be automatically added. A continuación se incluye un ejemplo de configuración de RadialView para lograr el comportamiento y la etiqueta "lazy follow" (seguimiento diferido), como el menú Inicio del shell de HoloLens.Below is an example of RadialView configuration to achieve 'lazy follow' tag-along behavior just like the Start menu in the HoloLens shell. Puedes especificar la distancia mínima/máxima y los grados de vista mínimos y máximos.You can specify the minimum/maximum distance and minimum/maximum view degrees. En el ejemplo siguiente se muestra cómo colocar el objeto en un intervalo entre 0,4 m y 0,8 m en 15°.The example below shows positioning the object between 0.4 m and 0.8-m range within 15°. Ajusta los valores de tiempo de Lerp para que la actualización posicional sea más rápida o más lenta.Adjust Lerp Time values to make the positional update faster or slower.


MRTK Standard Shader for solver


Interactable radial solver

¿Cómo hacer que un objeto se ponga delante de ti?How to make an object face you?

Asigne el script Billboard.cs a un objeto.Assign Billboard.cs script to an object. Siempre se situará delante de usted, independientemente de su posición.It will always face you, whatever your position. Puedes especificar la opción del eje dinámico.You can specify the pivot axis option.


Image of Billboard.cs script assigned to an object with Pivot Axis option Y


Billboard.cs script assigned to an object with Pivot Axis option Y

¿Estás listo para crear experiencias sorprendentes para la realidad mixta?Ready to create amazing experiences for mixed reality? Visita las páginas siguientes y obtén más información sobre MRTK y Mixed Reality.Visit the pages below and learn more about MRTK and mixed reality.

Acerca del autorAbout the author

Picture of Dong Yoon Park Dong Yoon ParkDong Yoon Park
Diseñador de experiencias de usuario @MicrosoftUX Designer @Microsoft

Consulte tambiénSee also