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.

    Capture d’écran des commandes de menu pour l’ajout du cube.

    La taille par défaut du cube est d’un mètre carré, ce qui est trop grand pour nos besoins. Nous allons réduire la taille à 20x20x20 centimètres.

  2. Sélectionnez le cube, puis, dans l’Inspecteur, modifiez les valeurs Transform/Scale du cube en procédant comme suit :

    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 l’Inspecteur, remplacez les valeurs Transform/Position du cube par les valeurs suivantes :

    X = -0,2, Y = 1,6, Z = 0,5

    Capture d’écran du composant de transformation du cube après les mises à jour.

    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 du décalage de la caméra sur MRTK XR Rig, en la plaçant à peu près au niveau oculaire.

  4. Dans l’inspecteur, remplacez les valeurs Tranform/Rotation du cube par les valeurs suivantes :

    X = 9, Y = 14, Z = 0 f

    Conseil

    Pour effectuer un zoom avant sur le cube, sélectionnez-le, vérifiez que le curseur pointe sur la fenêtre Scène , 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 deux 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)
  • Composant Object Manipulator (Script)
  1. Avec le cube toujours sélectionné, dans la fenêtre Inspecteur , sélectionnez le bouton Ajouter un composant , puis recherchez et sélectionnez le script manipulateur d’objet .

    Capture d’écran de l’ajout du script manipulateur d’objet.

    Le script ObjectManipulator permet de déplacer, de modifier et de faire pivoter un objet à 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.

    Capture d’écran du script Constraint Manager ajouté au cube.

Mettre à jour le matériau du cube

Pour des raisons de performances, nous vous recommandons d’utiliser des matériaux MRTK au lieu des matériaux Unity par défaut.

  1. Une fois le cube toujours sélectionné, recherchez la section Matériaux sur le composant Renderer Mesh.
  2. Remplacez le matériau par défaut par le matériau MRTK_Standard_White , situé sous MRTK Standard Assets>Materials. Vous pouvez faire glisser et déplacer le matériel du volet Projet dans la section Matériaux .

Ajouter un deuxième cube

  1. Dans la hiérarchie, cliquez avec le bouton droit sur le cube, puis sélectionnez Dupliquer. Le cube dupliqué s’affiche avec le nom Cube (1).

  2. Cliquez avec le bouton droit sur le cube d’origine, sélectionnez Renommer et nommez le cube Near Cube.

  3. Cliquez avec le bouton droit sur le cube dupliqué, sélectionnez Renommer et nommez le cube Far Cube.

    À l’heure actuelle, il semble qu’il n’y a qu’un seul cube dans la vue Scène . 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. Avec far Cube toujours sélectionné, modifiez ses valeurs dans son composant Transform en procédant comme suit :

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

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

    La caméra doit désormais voir Near Cube sur la gauche, et Far Cube un peu plus loin sur la droite. Pour confirmer cela, dans la hiérarchie, sélectionnez Caméra principale (sous MRTK XR Rig>Camera Offset), puis examinez la fenêtre Caméra principale dans la fenêtre Scène .

    Capture d’écran de la vue Caméra principale dans la fenêtre Scène.

    Conseil

    Si vous souhaitez que l’affichage dans la fenêtre Scène ressemble davantage à ce que l’appareil photo voit, faites défiler l’écran dans la fenêtre Scène . Vous devrez peut-être définir les indicateurs clairs de l’appareil photo sur Skybox si ce n’est pas par défaut.

Saisir et déplacer les cubes en mode Lecture

  1. Sélectionnez le bouton Lecture. Lorsque le projet commence à jouer, la vue bascule vers la fenêtre Jeu .

    Capture d’écran de la fenêtre Jeu après être entré en mode Jeu.

    Remarque

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

  2. Sélectionnez le bouton à trois points dans le coin supérieur droit de la fenêtre Jeu , puis sélectionnez Agrandir.

    Capture d’écran de la commande Agrandir pour la fenêtre Jeu.

  3. Appuyez sur la barre d’espace pour afficher la main droite simulée dans l’affichage.

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

    Capture d’écran de la main droite simulée touchant le cube proche.

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

    Capture d’écran de Déplacer le 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.

    Capture d’écran du pointeur lointain de la main simulée.

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

    Capture d’écran du pointeur lointain touchant le cube.

  8. Appuyez sur le bouton gauche de la souris (cela permet de fermer la main, en prenant ce que nous appelons le mouvement de pincement) et faites glisser le cube autour de 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.

Changer la vue dans la scène

  • Pour déplacer la caméra vers l’avant/vers la gauche/vers la 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 longuement sur la barre d’espace. Pour supprimer la main, relâchez la barre d’espace.
  • Pour activer la main simulée gauche, appuyez longuement sur la touche majuscule gauche. 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 pincement, appuyez sur le bouton gauche de la souris.
  • Pour faire pivoter la main, maintenez enfoncées les touches Ctrl et + (main droite) ou les touches Maj gauche et 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. Réduisez la fenêtre Lecture en sélectionnant le bouton représentant trois points, puis en décochant la case Agrandir.

  2. Dans la barre de menus, sélectionnez Fichier>Paramètres de build....

  3. Dans la fenêtre Paramètres de build , sélectionnez le bouton Ajouter des scènes ouvertes pour ajouter votre scène actuelle à la liste Des scènes dans la build.

  4. Sélectionnez le bouton Générer .

  5. Dans la fenêtre Générer une plateforme Windows universelle , accédez au dossier dans lequel vous souhaitez stocker votre build, ou créez un dossier et accédez-y, puis sélectionnez le bouton Sélectionner un dossier pour démarrer le processus de génération.

    Capture d’écran de l’emplacement pour enregistrer votre 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

Remarque

La génération et le test sur HoloLens 2 ne sont pas obligatoires. Vous pouvez également tester l’émulateur HoloLens 2 si vous n’avez pas d’appareil. Vous pouvez acheter des appareils à 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.

    Capture d’écran de l’Explorateur de fichiers avec le dossier builds affiché.

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

    Capture d’écran de la fenêtre Visual Studio avec les options de génération du projet.

    Conseil

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

    Remarque

    Si vous ne voyez pas Appareil comme une option cible dans Visual Studio, vous devrez peut-être modifier le projet de démarrage de la solution du projet IL2CPP vers le projet UWP . Dans l’Explorateur de solutions, cliquez avec le bouton droit sur [nom de votre projet](Windows universel) et sélectionnez Définir comme projet de démarrage.

    Important

    Avant de créer sur votre appareil, l’appareil doit être en mode développeur et associé à votre ordinateur de développement. voir Activation du mode développeur.

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

    • Si vous créez et déployez via le Wi-Fi, sélectionnez Ordinateur distant.

    Capture d’écran de la fenêtre Visual Studio avec l’ordinateur distant en tant que cible.

    • Si vous créez et déployez via USB, sélectionnez Appareil.

    Capture d’écran de la fenêtre Visual Studio avec Appareil comme cible.

  4. Définissez votre connexion distante : dans la barre de menus, sélectionnez Propriétés du projet>.

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

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

    Important

    Nous vous recommandons d’entrer manuellement votre adresse IP plutôt que de dépendre de la fonctionnalité de détection automatique. Pour rechercher votre adresse IP, sur votre HoloLens, accédez aux mises à jour des paramètres > et sécurité > pour les développeurs. L’adresse IP est répertoriée en bas de la fenêtre sous Ethernet.

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

    Capture d’écran de la boîte de dialogue Connexion à distance dans Visual Studio.

  8. Définissez le mode d’authentification sur Universal (protocole non chiffré).

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

    • Pour effectuer un déploiement sur votre HoloLens et démarrer automatiquement l’application sans le débogueur Visual Studio attaché, sélectionnez Démarrer>sans débogage.
    • Pour effectuer un déploiement sur votre HoloLens sans que l’application démarre automatiquement, sélectionnez Build>Deploy Solution.

    Capture d’écran de Visual Studio avec l’élément de menu Démarrer sans débogage affiché.

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. Dans votre HoloLens, accédez aux mises à jour des paramètres > et sécurité > pour les développeurs.
  2. Sélectionnez Paire. Cela affiche le code confidentiel dans HoloLens.
  3. Entrez le code PIN dans la boîte de dialogue de Visual Studio.
  4. Une fois le jumelage terminé, sélectionnez Terminé dans HoloLens.

Votre PC est désormais jumelé à votre HoloLens, et 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 l’application pour 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 éloigné 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 également déployer sur l’émulateur HoloLens ou créer un Package d'application pour l'installation manuelle.

  • Vous remarquerez peut-être la présence du profileur de diagnostics dans l’application. Vous pouvez l’activer ou le désactiver en utilisant la commande vocale Toggle 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 surveiller votre application pour vous assurer que la fréquence d’images est d’au moins 60 FPS.