MRTK 101 : Guide pratique pour utiliser Mixed Reality Toolkit d’Unity pour les interactions spatiales courantesMRTK 101: How to use Mixed Reality Toolkit Unity for common spatial interactions

MRTK

Découvrez comment utiliser MRTK pour obtenir certains des modèles d’interaction les plus largement utilisés dans le domaine de la réalité mixte.Learn about how to use MRTK to achieve some of the most widely used common interaction patterns in mixed reality.

  • Comment simuler des interactions d’entrée dans l’éditeur Unity ?How to simulate input interactions in Unity editor?
  • Comment saisir et déplacer un objet ?How to grab and move an object?
  • Comment redimensionner un objet ?How to resize an object?
  • Comment déplacer ou faire pivoter un objet avec précision ?How to move or rotate an object with precision?
  • Comment faire en sorte qu’un objet réponde à des événements d’entrée ?How to make an object respond to input events?
  • Comment ajouter un retour visuel ?How to add visual feedback?
  • Comment ajouter un retour audio ?How to add audio feedback?
  • Comment utiliser des préfabriqués de bouton de style HoloLens 2 ?How to use HoloLens 2 style button prefabs?
  • Comment faire en sorte qu’un objet vous suive ?How to make an object follow you?
  • Comment faire en sorte qu’un objet se mette en face de vous ?How to make an object face you?

Notes

Cet article a été mis à jour de façon à refléter les modifications apportées à la publication de MRTK v2.5.1This article has been updated to reflect the changes in MRTK v2.5.1 release

Tout le contenu de cette page peut être testé dans l’éditeur Unity avec la simulation d’entrée de MRTK.All contents in this page can be tested in Unity editor with MRTK's Input Simulation. Si vous n’en disposez pas, suivez le Guide d’installation de MRTK (GitHub) pour installer la dernière version de MRTK.If you haven't, follow MRTK Installation Guide (GitHub) to install the latest version of MRTK.

Comment simuler des interactions d’entrée dans l’éditeur Unity ?How to simulate input interactions in Unity editor?

MRTK prend en charge la simulation d’une entrée dans l’éditeur.MRTK supports in-editor input simulation. Exécutez votre scène en cliquant sur le bouton de lecture d’Unity, puis utilisez les touches suivantes pour simuler l’entrée :Run your scene by clicking Unity's play button, then use the following keys to simulate input:

  • Appuyez sur les touches W, A, S, D pour déplacer la caméra.Press W, A, S, D keys to move the camera.
  • Maintenez le bouton droit de la souris enfoncé et déplacez la souris pour regarder autour de vous.Hold the right mouse button and move the mouse to look around.
  • Appuyez sur la barre d’espace (droite) ou sur la touche Maj de gauche pour faire apparaître les mains simuléesPress Space bar(Right hand) or left Shift key(Left hand) to bring up the simulated hands
  • Appuyez sur les touches T ou Y pour que les mains simulées restent affichéesPress T or Y keys to keep simulated hands in view
  • Appuyez sur Q ou E (horizontal) / R ou F (vertical) pour faire pivoter les mains simuléesPress Q or E(horizontal) / R or F(vertical) to rotate simulated hands

Vous pouvez en apprendre davantage sur la simulation d’entrée dans la documentation MRTK.You can learn more about Input Simulation in the MRTK documentation.

Comment saisir et déplacer un objet ?How to grab and move an object?

Attachez les scripts ObjectManipulator.cs et NearInteractionGrabbable.cs pour rendre un objet saisissable.Attach the ObjectManipulator.cs and NearInteractionGrabbable.cs scripts to make an object grabbable. ObjectManipulator prend en charge les interactions proches et lointaines.ObjectManipulator supports both near and far interactions. Avec HoloLens 2, vous pouvez saisir et déplacer un objet avec une entrée par suivi de la main articulée (interaction proche), avec un rayon émanant de la main (interaction éloignée), avec le faisceau du contrôleur de mouvement (interaction éloignée) ainsi qu’avec le curseur oculaire HoloLens et le clic aérien (interaction éloignée).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

Comment redimensionner un objet ?How to resize an object?

ObjectManipulator.cs prend en charge la rotation/mise à l’échelle à deux mains.ObjectManipulator.cs supports two-handed scale/rotation. Le script fonctionne avec divers types d’entrée : suivi de la main articulée avec HoloLens 2,pointage du regard + mouvement avec HoloLens 1 et contrôleur de mouvement du casque immersif 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

Comment déplacer ou faire pivoter un objet avec précision ?How to move or rotate an object with precision?

Affectez BoundsControl.cs à un objet pour utiliser un cadre englobant qui constitue l’interface pour la mise à l’échelle et la rotation d’un objet.Assign BoundsControl.cs to an object to use Bounding Box, which is the interface for scaling and rotating an object. Par défaut, il présente les poignées et les lignes bleues de style HoloLens 1.By default, it shows HoloLens 1 style blue handles and wires. Pour utiliser des poignées animées de proximité de style HoloLens 2, vous devez affecter des préfabriqués et des matériaux.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

Comment faire en sorte qu’un objet réponde à des événements d’entrée ?How to make an object respond to input events?

Affectez PointerHandler.cs à un objet.Assign PointerHandler.cs to an object. Dans l’inspecteur, vous pouvez utiliser des événements OnPointerDown(), OnPointerUp(), OnPointerClicked(), OnPointerDragged(). Pour utiliser ces événements dans un script, implémentez 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

Comment ajouter un retour visuel ?How to add visual feedback?

Affectez Interactable.cs à un objet.Assign Interactable.cs to an object. Dans l’inspecteur, ajoutez l’objet cible et créez un thème.In the inspector, add target object and create a new theme. À l’aide des profils de thème d’Interactable, vous pouvez facilement ajouter un retour visuel à tous les états d’interaction d’entrée 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

Interactable fournit divers types de thèmes, notamment le thème du nuanceur, qui vous permet de contrôler les propriétés du nuanceur par état d’interaction.Interactable provides various types of themes including the shader theme, which allows you to control properties of the shader per interaction state.

Un autre module important pour le feedback visuel est le nuanceur MRTK standard.Another important building block for visual feedback is the MRTK Standard Shader. Avec le nuanceur MRTK standard, vous pouvez facilement ajouter des effets de retour visuel comme une lumière de survol et une lumière de proximité.With MRTK Standard Shader, you can easily add visual feedback effects such as hover light and proximity light. Étant donné que le nuanceur MRTK standard effectue moins de calcul que le nuanceur Unity standard, vous pouvez créer une expérience performante.Since MRTK Standard shader performs less computation than the Unity Standard shader, you can create a performant experience.

Créez un matériau et sélectionnez le nuanceur « Mixed Reality Toolkit > Standard ».Create a new material and select the Shader 'Mixed Reality Toolkit > Standard'. Ou vous pouvez choisir l’un des matériaux existants qui utilisent le nuanceur MRTK standard.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

Comment ajouter un retour audio ?How to add audio feedback?

Ajoutez AudioSource à un objet.Add AudioSource to an object. Ensuite, dans les scripts qui exposent des événements d’entrée (par exemple Interactable.cs ou PointerHandler.cs), affectez l’objet avec AudioSource à l’événement et sélectionnez 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(). Vous pouvez utiliser vos clips audio ou en choisir un à partir des ressources 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.

Comment utiliser des préfabriqués de bouton de style HoloLens 2 ?How to use HoloLens 2 style button prefabs?

MRTK fournit divers types de boutons de style shell (système d’exploitation) HoloLens 2, notamment des retours visuels comme la lumière de proximité, le cadre de compression et un effet d’ondulation à la surface du bouton qui augmentent la confiance de l’utilisateur.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

Il vous suffit de glisser-déposer un des préfabriqués de boutons sur lequel appuyer de style HoloLens 2 dans votre scène.Drag and drop one of the HoloLens 2 style pressable button prefab into your scene. Le préfabriqué utilise Interactable.cs, présenté ci-dessus.The prefab uses Interactable.cs introduced above. Vous pouvez utiliser des événements exposés comme OnClick() dans Interactable pour déclencher des actions.You can use exposed events such as OnClick() in the Interactable to trigger actions.


HoloLens 2 Button Prefab

Comment faire en sorte qu’un objet vous suive ?How to make an object follow you?

Affectez le script RadialView.cs ou Follow.cs à un objet.Assign RadialView.cs or Follow.cs script to an object. Il fait partie de la série de scripts Solver qui vous permet d’obtenir divers types de positionnement des objets dans l’espace 3D.It's part of the Solver script series that allows you to achieve various types of object positioning in 3D space. SolverHandler.cs est ajouté automatiquement.SolverHandler.cs will be automatically added. Voici un exemple de configuration de RadialView pour obtenir un comportement de suivi tardif, à l’instar du menu Démarrer dans le shell HoloLens.Below is an example of RadialView configuration to achieve 'lazy follow' tag-along behavior just like the Start menu in the HoloLens shell. Vous pouvez spécifier la distance minimale/maximale et les degrés d’affichage minimaux/maximaux.You can specify the minimum/maximum distance and minimum/maximum view degrees. L’exemple ci-dessous montre le positionnement de l’objet dans une plage comprise entre 0,4 et 0,8 mètre à 15 °.The example below shows positioning the object between 0.4 m and 0.8-m range within 15°. Ajustez les valeurs de délai Lerp pour accélérer ou ralentir la mise à jour de la position.Adjust Lerp Time values to make the positional update faster or slower.


MRTK Standard Shader for solver


Interactable radial solver

Comment faire en sorte qu’un objet se mette en face de vous ?How to make an object face you?

Affectez le script Billboard.cs à un objet.Assign Billboard.cs script to an object. L’objet vous fera toujours face, quelle que soit votre position.It will always face you, whatever your position. Vous pouvez spécifier l’option d’axe pivot.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

Vous êtes prêt à créer des expériences étonnantes pour la réalité mixte ?Ready to create amazing experiences for mixed reality? Consultez les pages ci-dessous pour en savoir plus sur MRTK et la réalité mixte.Visit the pages below and learn more about MRTK and mixed reality.

À propos de l’auteurAbout the author

Picture of Dong Yoon Park Dong Yoon ParkDong Yoon Park
Concepteur d’expérience utilisateur @MicrosoftUX Designer @Microsoft

Voir aussiSee also