Exercice - Ajouter des scripts d’interaction manuelle à un objet

Effectué

Le script ObjectManipulator prend en charge la modalité « manipulation directe » du modèle d’entrée « mains et contrôleurs de mouvement ». Quand le script est attaché à un objet, l’utilisateur peut déplacer, mettre à l’échelle ou faire pivoter l’objet avec les mains. Dans cet exercice, vous créez deux cubes, leur attachez les scripts nécessaires, puis déplacer les cubes.

Ajouter et ajuster le premier cube

  1. Dans la barre de menus, sélectionnez GameObject>3D Object>Cube.

    Screenshot of menu commands for adding the cube.

    La taille par défaut du cube est un mètre carré, ce qui est trop grand pour nos besoins. Nous allons définir la taille sur 20x20x20 cm.

  2. Sélectionnez le cube, puis, dans Inspecteur, définissez les valeurs Transformation/Mise à l’échelle du cube sur l’élément suivant :

    X = 0,2, Y = 0,2, Z = 0,2

    Le cube a été placé dans la scène à la position par défaut (0, 0, 0). Cela signifie que le cube se trouve à la même position que le casque de l’utilisateur, et que l’utilisateur ne peut pas voir le cube s’il ne recule pas. Nous changeons les valeurs de position du cube pour pouvoir le voir.

  3. Dans Inspecteur, définissez les valeurs Transformation/Mise à l’échelle du cube sur :

    X = -0.2, Y = 1.6, Z = 0.5

    Screenshot of the cube's transform component after updates.

    Nous voulons pouvoir voir trois côtés du cube, donc nous changeons également la rotation du cube.

    Remarque

    La hauteur du cube est définie sur 1,6 pour correspondre à la hauteur de Camera Offset sur MRTK XR Rig, ce qui le place à peu près au niveau de l’œil.

  4. Dans Inspector, définissez les valeurs Transform/Rotation du cube sur :

    X = 9, Y = 14, Z = 0

    Conseil

    Pour faire un zoom avant sur le cube, sélectionnez-le, vérifiez que le curseur pointe sur la fenêtre Scene, puis appuyez sur la touche F. Vous pouvez faire un zoom avant sur n’importe quel objet de cette façon.

Ajouter les scripts au cube

Pour qu’un objet puisse être « saisi » avec des mains suivies, il doit avoir trois composants attachés :

  • Un composant Collider (vous n’avez pas besoin de faire quoi que ce soit ici, le cube d’Unity a déjà un Box Collider attaché par défaut)
  • Le composant Object Manipulator (Script)
  1. Sélectionnez le cube, dans la fenêtre Inspecteur, cliquez sur le bouton Ajouter un composant, puis recherchez et sélectionnez le script Manipulateur d’objet.

    Screenshot of adding the Object Manipulator script.

    Le script ObjectManipulator permet de déplacer un objet, de modifier sa taille et de le faire pivoter à l’aide d’une ou deux mains. Quand vous ajoutez le script Object Manipulator, le script Constraint Manager est automatiquement ajouté également, car le premier dépend du deuxième.

    Screenshot of the Constraint Manager script added to the cube.

Mettre à jour le matériau du cube

Pour des raisons de performances, il est recommandé d’utiliser des matériaux MRTK au lieu des matériaux Unity par défaut.

  1. Avec le cube sélectionné, recherchez la section « Matériaux » sur le composant Mesh Renderer.
  2. Remplacez le matériau par défaut par le matériau MRTK_Standard_White, situé sous MRTK Standard Assets>Matériaux.

Ajouter un deuxième cube

  1. Dans Hierarchy, cliquez avec le bouton droit sur le cube, puis sélectionnez Duplicate. Le cube dupliqué apparaît avec le nom « Cube (1) ».

  2. Cliquez avec le bouton droit sur le cube d’origine, sélectionnez Rename, puis nommez le cube « Near Cube ».

  3. Cliquez avec le bouton droit sur le cube dupliqué, sélectionnez Rename, puis nommez le cube « Far Cube ».

    Pour le moment, il semble n’y avoir qu’un cube dans la vue Scene. C’est parce que Near Cube et Far Cube sont exactement au même endroit. Changeons la position et la rotation de Far Cube.

  4. Sélectionnez Far Cube, définissez les valeurs de son composant Transform sur :

    Position : X = 0,6, Y = 1,6, Z = 1,1

    Rotation : X = 27, Y = 0, Z = 0

    À présent, la caméra doit voir Near Cube à gauche et Far Cube un peu plus loin sur la droite. Pour le confirmer, dans Hierarchy, sélectionnez Main Camera (sous MRTK XR Rig>Camera Offset) et regardez la fenêtre Main Camera dans la fenêtre Scene.

    Screenshot of the Main Camera view in the Scene window.

    Conseil

    Si vous voulez que la vue dans la fenêtre Scene ressemble davantage à ce que voit la caméra, faites un défilement dans la fenêtre Scene. Vous devrez peut-être définir les indicateurs d’effacement de la caméra sur Skybox si ce n’est pas le cas par défaut.

Saisir et déplacer les cubes en mode Lecture

  1. Sélectionnez le bouton Lecture. Au démarrage de la lecture du projet, la vue bascule vers la fenêtre Game.

    Screenshot of the Game window after entering Play mode.

    Remarque

    Avant de jouer, vérifiez qu’il existe un jeu de profils valide sous Paramètres du projet>MRTK3.

  2. Sélectionnez le bouton des trois points au-dessus du coin supérieur droit de la fenêtre Jeu, puis Agrandir.

    Screenshot of Maximize command for the Game window.

  3. Appuyez sur la barre d’espace pour faire apparaître la main droite simulée dans la vue.

  4. Déplacez la main simulée vers Near Cube jusqu’à ce qu’elle touche le côté ou le bas du cube.

    Screenshot of the simulated right hand touching the Near Cube.

  5. Sélectionnez le bouton gauche de la souris (cela permet à la main de « saisir » le cube), puis faites glisser autour de la scène.

    Screenshot of Move the cube.

    Pour saisir et déplacer Far Cube, nous utilisons le pointeur lointain attaché à la main simulée.

  6. Si nécessaire, appuyez de nouveau sur la barre d’espace pour faire apparaître la main droite simulée. Notez le pointeur lointain qui part de la fin de l’index de la main.

    Screenshot of simulated hand's far pointer.

  7. Rapprochez la main de Far Cube jusqu’à ce que vous puissiez voir l’extrémité du pointeur sur le cube. Vous devez peut-être faire plusieurs cercles avec la main pour que l’extrémité du pointeur apparaisse sur le cube.

    Screenshot of the far pointer touching the cube.

  8. Sélectionnez le bouton gauche de la souris (cela rapproche la main, en faisant ce que nous appelons le « geste de pincement »), puis faites glisser le cube dans la scène.

Simulation d’entrée dans l’éditeur Unity

Vous pouvez tester le comportement des objets holographiques avec les fonctionnalités de simulation d’entrée dans l’éditeur Unity.

Modifier l’affichage dans la scène

  • Pour déplacer la caméra vers l’avant, à gauche, vers l’arrière ou à droite, appuyez sur les touches W/A/S/D.
  • Pour déplacer la caméra verticalement, appuyez sur les touches Q et E.
  • Pour faire pivoter la caméra, appuyez sur le bouton droit de la souris, puis faites glisser.

Simuler une entrée manuelle

  • Pour activer la main droite simulée, appuyez sur la barre d’espace et maintenez-la enfoncée. Pour supprimer la main, relâchez la barre d’espace.
  • Pour activer la main gauche simulée, appuyez sur la touche Maj gauche et maintenez-la enfoncée. Pour supprimer la main, relâchez la touche.
  • Pour déplacer l’une ou l’autre des mains dans la scène, déplacez la souris.
  • Pour déplacer la main vers l’avant ou vers l’arrière, faites tourner la roulette de défilement de la souris.
  • Pour simuler le geste de pincement, sélectionnez le bouton gauche de la souris.
  • Pour faire pivoter la main, appuyez sur la barre d’espace + touche CTRL (main droite) ou la touche Maj de gauche + touche CTRL (main gauche), puis déplacez la souris.

Mains persistantes

  • Pour activer une main et la garder à l’écran sans maintenir de touche enfoncée, appuyez sur T (main gauche) ou sur Y (main droite). Pour supprimer les mains, appuyez de nouveau sur ces touches.

Générer votre application dans Unity

  1. Dans la barre de menus, sélectionnez File>Build Settings....

  2. Dans la boîte de dialogue Paramètres de build, sélectionnez le bouton Ajouter des scènes ouvertes pour ajouter votre scène actuelle à la liste Scènes de la build.

  3. Sélectionnez le bouton Build.

  4. Dans la fenêtre Plateforme Windows universelle de build, accédez au dossier où stocker votre build, ou créez un dossier et accédez-y, puis cliquez sur le bouton Sélectionner un dossier pour démarrer le processus de génération.

    Screenshot of the location to save your build.

    Une barre de progression s’affiche pour vous permettre de suivre la génération.

(Facultatif) Générer et déployer l’application

Notes

La génération et le test sur HoloLens 2 ne sont pas obligatoires. Vous pouvez également tester sur l’émulateur HoloLens 2 si vous n’avez pas d’appareil. Vous pouvez acheter des appareils sur HoloLens.com.

  1. Une fois le processus de génération terminé, l’Explorateur de fichiers Windows s’ouvre et affiche le dossier de build. Parcourez le dossier, puis double-cliquez sur le fichier solution pour l’ouvrir dans Visual Studio :

    Screenshot of File Explorer with the builds folder displayed.

  2. Configurez Visual Studio pour HoloLens en sélectionnant la configuration Master ou Release et l’architecture ARM64 :

    Screenshot of Visual Studio window with the build options for the project.

    Conseil

    Si vous effectuez un déploiement sur HoloLens (1ère génération), sélectionnez l’architecture x86.

    Notes

    Si vous ne voyez pas « Appareil » comme option de cible dans Visual Studio, vous devez peut-être remplacer le projet de démarrage IL2CPP de la solution par UWP. Pour ce faire, dans l’Explorateur de solutions, cliquez avec le bouton droit sur [nom de votre projet](Windows universel), puis sélectionnez Définir comme projet de démarrage.

    Important

    Avant d’effectuer la génération sur votre appareil, celui-ci doit être en mode développeur et associé à votre ordinateur de développement. Consultez la section intitulée « Activation du mode développeur » dans cette page.

  3. Sélectionnez la liste déroulante de cible de déploiement et effectuez l’une des opérations suivantes :

    • Si vous générez et déployez votre application avec une connexion Wi-Fi, sélectionnez Ordinateur distant.

    Screenshot of Visual Studio window with Remote Machine as the target.

    • Si vous générez et déployez votre application avec une connexion USB, sélectionnez Appareil.

    Screenshot of Visual Studio window with Device as the target.

  4. Définissez votre connexion à distance : dans la barre de menus, sélectionnez Projet > Propriétés.

  5. Dans la fenêtre Pages de propriétés du projet, sélectionnez Propriétés de configuration > Débogage.

  6. Sélectionnez la liste déroulante Débogueur à lancer, puis sélectionnez Ordinateur distant s’il n’est pas déjà sélectionné.

    Important

    Nous vous recommandons d’entrer manuellement votre adresse IP plutôt que de dépendre de la fonctionnalité « Détecté automatiquement ». Pour rechercher votre adresse IP, sur votre HoloLens, accédez à Paramètres > Mises à jour et sécurité > Pour les développeurs. L’adresse IP est indiquée en bas de la fenêtre sous Ethernet.

  7. Dans le champ Nom de l’ordinateur, entrez l’adresse IP de votre appareil.

    Remote connection dialog in Visual Studio

  8. Définissez le Mode d’authentification sur Universel (protocole non chiffré).

  9. Connectez votre HoloLens à votre ordinateur, puis dans Visual Studio, effectuez l’une des opérations suivantes :

    • Pour déployer sur votre HoloLens et automatiquement démarrer l’application sans le débogueur Visual Studio attaché, sélectionnez Déboguer>Démarrer sans débogage.
    • Pour déployer sur votre HoloLens sans démarrer automatiquement l’application, sélectionnez Générer>Déployer la solution.

    Screenshot of Visual Studio with the Start Without Debugging menu item displayed.

Appairage de votre appareil

La première fois que vous déployez une application sur votre HoloLens à partir de votre PC, vous êtes invité à entrer un code PIN. Pour créer un code PIN :

  1. Sur votre HoloLens, accédez à Paramètres > Mises à jour et sécurité > Pour les développeurs.
  2. Sélectionnez Jumeler, qui affiche le code PIN dans HoloLens.
  3. Entrez le code PIN dans la boîte de dialogue de Visual Studio.
  4. Une fois le jumelage terminé, dans HoloLens, sélectionnez Terminé.

Ce PC étant maintenant jumelé avec votre HoloLens, vous pouvez déployer des applications automatiquement. Répétez ces étapes pour chaque PC utilisé pour déployer des applications sur votre HoloLens.

Exécution de votre application sur votre HoloLens

  1. Une fois la génération de votre application terminée, dans le menu Démarrer de HoloLens, recherchez la vignette de votre application, puis sélectionnez-la.

  2. Une fois l’application démarrée, accédez à Near Cube, puis saisissez-le et faites-le glisser.

  3. Utilisez le pointeur lointain pour saisir Far Cube, puis faites-le glisser.

    Conseil

    Avec HoloLens, vous avez plus de possibilités que lorsque vous testez votre application dans Unity. Vous pouvez vous déplacer physiquement et utiliser le pointeur lointain sur Near Cube, ou accéder à Far Cube et le saisir avec votre main !

Conseils

  • Vous pouvez aussi déployer sur l’émulateur HoloLens ou créer un package d’application pour un chargement indépendant (sideloading).

  • Vous pouvez remarquer le profileur de diagnostic dans l’application. Vous pouvez l’activer ou le désactiver en utilisant la commande vocale « Activer/désactiver les diagnostics ». Nous vous recommandons de garder le profileur visible la plupart du temps pendant le développement, pour pouvoir comprendre comment les changements de l’application peuvent affecter les performances. Par exemple, vous pouvez monitorer votre application pour que la fréquence d’images soit d’au moins 60 FPS.