La fabrication de Galaxy Explorer pour HoloLens 2
Bienvenue dans la Explorer Galaxy mise à jour pour HoloLens 2 application ! Galaxy Explorer a été initialement développé en tant qu’application open source pour HoloLens (première génération) via le programme Partager votre idée, et est l’une des premières expériences de réalité mixte que beaucoup de gens ont eu. Maintenant, nous le mettons à jour pour les nouvelles fonctionnalités passionnantes de HoloLens 2.
En tant que microsoft Mixed Reality Studios, nous développons généralement des solutions commerciales et développons des & de test sur des plateformes cibles tout au long du processus créatif et de développement. Nous nous engageons dans ce projet à l’aide des infrastructures et des outils (comme MRTK) à mesure qu’ils deviennent disponibles pour nous et la communauté - et nous voulons vous faire venir pour le tour.
Tout comme le Galaxy Explorer d’origine, notre équipes’approvisionnera en libre accès au projet sur GitHub pour s’assurer que la communauté dispose d’un accès complet. Nous allons également documenter notre parcours ici en toute transparence sur la façon dont nous avons porté de MRTK v1 vers MRTK v2, amélioré l’expérience avec les nouvelles fonctionnalités disponibles dans HoloLens 2, et nous avons veillé à ce que Galaxy Explorer reste une expérience multiplateforme. Que vous regardiez Galaxy Explorer sur HoloLens (première génération), HoloLens 2, un casque Windows Mixed Reality ou sur votre ordinateur de bureau Windows 10, nous voulons nous assurer que vous appréciez le voyage autant que nous !
Cette page se développera à mesure que nous progressons dans le projet avec des liens vers des articles plus détaillés, du code, des artefacts de conception et une documentation MRTK supplémentaire pour vous donner un aperçu du projet.
Télécharger l’application à partir du Microsoft Store dans HoloLens 2
Si vous avez HoloLens 2 appareil, vous pouvez télécharger et installer directement l’application sur votre appareil.
Réflexion sur les interactions
En tant que studio créatif, nous étions ravis du privilège de porter Galaxy Explorer à HoloLens 2. Nous savions dès le début que nous voulions que l’expérience soit une célébration du nouveau dispositif et de démontrer que Mixed Reality l’autonomisation n’est limitée que par l’imagination.
HoloLens 2 permet aux utilisateurs de toucher, de saisir et de déplacer les hologrammes d’une manière qui semble naturelle : ils répondent beaucoup comme des objets réels. Les modèles de main entièrement articulés sont étonnants, car ils permettent aux utilisateurs de faire ce qui semble naturel. Par exemple, tout le monde prend une tasse légèrement différemment et, au lieu d’appliquer une méthode particulière pour le faire, HoloLens 2 vous permet de le faire à votre façon.
Il s’agit d’un changement significatif par les interfaces basées sur air tap sur les appareils HoloLens de première génération. Au lieu d’interagir avec des hologrammes à distance, les utilisateurs peuvent désormais être « proches et personnels ». Lors du portage d’expériences existantes vers HoloLens 2 ou de la planification de nouvelles expériences, il est important de vous familiariser avec la manipulation directe des hologrammes.
Manipulation directe par rapport aux grandes distances dans l’espace
C’est une expérience magique de tendre la main, d’attraper une planète et de la tenir dans la main. Le défi avec cette approche est la taille du système solaire - c’est énorme ! L’utilisateur doit se promener dans sa chambre pour se rapprocher de chaque planète afin d’interagir avec elle.
Pour permettre aux utilisateurs d’interagir avec des objets plus éloignés, MRTK offre des rayons de main qui sortent du centre de la paume de l’utilisateur, agissant comme une extension de la main. Un curseur en forme d’anneau est attaché à la fin du rayon pour indiquer où le rayon croise avec un objet cible. L’objet sur lequel le curseur atterrit peut alors recevoir des commandes gestuelles de la main.
Dans la version d’origine de Galaxy Explorer, l’utilisateur ciblait une planète avec le curseur du regard, puis appuyait sur l’air pour l’appeler plus près. Le moyen le plus simple de porter l’expérience sur HoloLens 2 consiste à adopter ce comportement et à utiliser les rayons de la main pour sélectionner des planètes. Bien que cela soit fonctionnel, il nous a laissé envie de plus.
Retour à la case départ
Nous nous sommes réunis pour réfléchir à ce qui pourrait être construit sur les interactions existantes. La pensée était : Bien que HoloLens 2 permette aux utilisateurs d’interagir avec les hologrammes de manière naturelle et réaliste, les hologrammes ne sont par définition pas réels. Ainsi, tant qu’une interaction est plausible pour l’utilisateur, peu importe si cette interaction est possible avec un objet réel ou non. Nous pouvons la rendre possible.
Un concept que nous avons exploré était basé sur la télékinésie : le pouvoir de manipuler des objets avec l’esprit. Souvent vu dans les films de super héros, une personne tendreait la main avec son esprit et appelait un objet dans sa main ouverte. Nous avons joué avec l’idée d’un peu plus et avons trouvé un rapide croquis de la façon dont le concept pourrait fonctionner.
L’utilisateur pointe le rayon de la main vers une planète, ce qui fournirait un retour cible. Comme l’utilisateur étend alors sa main ouverte, la planète serait tirée vers l’utilisateur par une force magique jusqu’à ce qu’elle soit suffisamment proche pour la saisir. D’où notre nom pour l’interaction : force grab. Comme l’utilisateur repousserait la planète avec sa main ouverte, elle retournerait à son orbite.
Prototypage d’empachage forcé
Nous avons ensuite créé plusieurs prototypes pour tester le concept : Comment se sent l’interaction globale ? L’objet appelé doit-il s’arrêter devant l’utilisateur ou s’en tenir à ses mains jusqu’à ce qu’il soit placé ? L’objet appelé doit-il changer de taille ou de mise à l’échelle lors de l’appel ?
Implémentation de la saisie forcée dans l’application
Quand nous avons essayé la capture de force sur les planètes, nous avons réalisé que nous devions changer l’échelle du système solaire. Il s’est avéré qu’une représentation précise et de taille moyenne du système solaire est difficile à comprendre et à naviguer pour les utilisateurs - ils ne savaient pas où regarder. Cependant, une représentation de petite taille rendait certaines planètes trop petites pour être facilement sélectionnées. Par conséquent, la taille des planètes et l’espacement entre les objets solaires ont été conçus pour se sentir à l’aise dans une pièce de taille moyenne tout en conservant une précision relative.
Au cours des dernières étapes de notre sprint de développement, nous avons eu la chance d’avoir d’autres experts MSFT Mixed Reality en interne, donc nous avons dû travailler à obtenir leur contribution en tant que testeurs experts et à effectuer des itérations rapides sur l’interaction de saisie de force.
Sur l’image : Jenny Kam, responsable de la conception senior, testant un travail en cours de Galaxy Explorer.
Ajout d’affordances pour le ciblage
Comme nous avons expérimenté sur HoloLens 2, nous avons constaté que même si les nouvelles interactions sont naturelles et intuitives, les hologrammes restent les mêmes : sans poids ni sensations tactiles. Étant donné que les hologrammes ne fournissent pas de rétroaction naturelle que les humains sont habitués à recevoir lorsqu’ils interagissent avec des objets, nous avons dû les créer.
Nous avons pensé aux commentaires visuels et audio que les utilisateurs seraient fournis pour les différentes étapes de leurs interactions, et étant donné que le mécanisme de saisie de force est essentiel à l’interaction avec Galaxy Explorer, nous avons effectué de nombreuses itérations. L’objectif était de trouver le bon équilibre entre les commentaires audio et visuel pour chaque étape de l’interaction : se concentrer sur l’objet prévu, l’appeler à l’utilisateur, puis le libérer. Ce que nous avons appris, c’est qu’il fallait davantage de commentaires audio et visuels pour renforcer l’interaction que ce que nous avions l’habitude de faire pour HoloLens (première génération).
Ajout d’affordances pour la saisie forcée
Une fois que nous avons eu le mécanisme de saisie de force de base avec des affordances audio et visuelles, nous avons examiné comment rendre la sélection des planètes plus conviviale. Il y avait deux main choses à résoudre : le système solaire étant une interface mobile 3D, il est plus complexe pour les utilisateurs d’apprendre à cibler des objets de manière cohérente. Cela a été aggravé par le fait que le rayon de la main est rapide à sélectionner un objet, ce qui fait que les planètes se déplacent vers l’utilisateur incroyablement rapidement.
Nous avons abordé cela avec une solution à trois volets. La première était assez intuitive : ralentir le processus de sélection afin que les planètes approchent l’utilisateur à un rythme plus naturel. Une fois la vitesse ajustée, nous avons dû revoir les affordances audio et visuelles, en ajoutant un retour audio à mesure que la planète a suivi vers l’utilisateur.
La deuxième partie de la solution consistait à rendre tangible la visualisation de l’ensemble de l’interaction de récupération de force. Nous avons visualisé une ligne épaisse qui se déplace vers l’objet ciblé une fois que le rayon de la main se connecte avec lui, puis ramène l’objet à l’utilisateur , comme un lasso.
Enfin, nous avons optimisé l’échelle du système solaire afin que les planètes soient suffisamment grandes pour que le regard de l’utilisateur et le rayon de la main les ciblent.
Ces trois améliorations ont permis aux utilisateurs d’effectuer des sélections précises, en leur appelant des planètes de manière intuitive. Dans l’ensemble, l’effet de la capture de force finale est une expérience plus immersive et interactive dans le système solaire.
À la une sur Jupiter
La création des corps solaires de la Voie lactée a été une expérience humble. En particulier, les caractéristiques uniques de Jupiter en font un spectacle à voir. C’est la plus grande et la plus colorée des géantes gazeuses, et contient plus de masse que toutes les autres planètes combinées. Sa taille et ses bandes envoûtantes de turbulences et de dynamiques des nuages sont préfectorantes pour une attention artistique particulière.
Géométrie et maillages
En tant que géante gazeuse, les coquilles externes de Jupiter se composent de couches gazeuses. La combinaison de sa vitesse de rotation rapide, de l’échange de chaleur interne et des forces de Coriolis crée des couches et des flux colorés qui se forment dans des ceintures de nuages tourbillonnants et des tourbillons. Capturer cette beauté complexe a été clé dans la création de notre système solaire.
Il a été immédiatement clair que l’utilisation de techniques de visualisation telles que les simulations fluides et les textures animées avec des flux précalculés était hors de question. La puissance de calcul requise pour simuler cela en combinaison avec tout ce qui se passe simultanément aurait eu des effets néfastes importants sur les performances.
L’approche suivante a été une solution de « fumée et miroir », consistant à superposer des couches de texture transparente, chacune d’elles abordant un aspect spécifique du mouvement atmosphérique, compilée sur une composition de maillages tournants.
Dans l’image ci-dessous, vous pouvez voir l’interpréteur de commandes interne à gauche. Cette couche de tapis a fourni un arrière-plan à la composition pour se prémunir contre les petits écarts entre les plusieurs couches qui composent les nuages. En raison de la rotation lente de la couche, elle a également servi de tampon visuel entre les bandes mobiles plus rapides pour aider à créer une unité visuelle dans les couches.
Après avoir défini cette ancre au modèle, les couches cloud mobiles ont ensuite été projetées sur les maillages du milieu et de droite comme indiqué ci-dessous.
Texturation
La texture existante a été séparée en un atlas de texture en trois parties : le tiers supérieur héberge une couche de nuages immobiles avec des espaces pour fournir un effet de parallaxe, la section centrale contient les flux externes à déplacement rapide et le tiers inférieur contient une couche de base interne à rotation lente.
La grande tache rouge caractéristique a également été séparée en ses différentes parties mobiles, puis insérée dans une zone par ailleurs invisible de la texture. Ces composants peuvent être vus comme les saupoudrés de couleur rouge dans la section centrale de l’image ci-dessous.
Étant donné que chaque bande a une direction et une vitesse spécifiques, la texture a été appliquée à chaque maillage individuellement. Les maillages avaient alors un centre et un point pivot communs, ce qui permettait d’animer concentriquement toute la surface.
Comportement de rotation et de texture
Une fois la composition visuelle de Jupiter définie, nous devions nous assurer que les vitesses de rotation et d’orbite étaient correctement calculées et appliquées en conséquence. Il faut environ 9 heures à Jupiter pour effectuer une rotation complète. Il s’agit d’une question de définition en raison de sa rotation différentielle. Par conséquent, le flux équatorial a été défini comme un « flux master », prenant 3600 images pour une rotation complète. Chaque autre couche devait avoir une vitesse de rotation comme facteur de 3600 afin de correspondre à sa position initiale, ce qui permet, par exemple, 600, 900, 1200, 1800, etc.
La grande tache rouge
Les flux pivotants individuellement fournissaient une bonne impression visuelle, mais manquaient de détails lorsqu’ils sont observés à une portée rapprochée.
La partie la plus accrocheuse étant la Grande Tache rouge de Jupiter, nous avons créé un ensemble de maillages et de textures spécifiquement pour le mettre en valeur. Nous avons utilisé un mécanisme similaire à celui des bandes de Jupiter : un ensemble de pièces rotatives a été composé les unes sur les autres, tout en étant regroupés sous sa « couche master » pour s’assurer qu’ils restent en position quelle que soit la vitesse à laquelle le reste se déplace.
Lorsque les maillages ont été installés et en place, différentes couches du vortex orageux ont été appliquées et chaque disque a ensuite été animé individuellement, les pièces centrale se déplaçant le plus rapidement, le reste ralentissant progressivement à mesure qu’il se déplace vers l’extérieur.
La composition avait également le même pivot que tous les autres maillages, tout en conservant son inclinaison par rapport à son axe y d’origine ( !) pour permettre une liberté dans l’animation de la rotation. 3600 images est la fréquence de base, chaque couche ayant un facteur de cette période de rotation.
Bien faire dans Unity
Il y a quelques éléments clés à garder à l’esprit lors de l’implémentation de cette fonctionnalité dans Unity.
Unity est facilement confondu lorsqu’il s’agit de grands ensembles de couches transparentes. La solution a été de dupliquer le matériau de texture pour chaque maillage et d’appliquer progressivement les valeurs de file d’attente de rendu ascendantes de l’intérieur vers l’extérieur de 5 à chaque matériau.
Le résultat était que l’interpréteur de commandes interne avait une valeur de file d’attente de rendu de 3000 (valeur par défaut), la valeur externe statique rouge plus tard avait une valeur de 3005, et les nuages externes blancs rapides avaient 3010. La grande tache rouge (progression de la couche interne à la couche externe) a terminé avec une valeur de 3 025 dans ce modèle.
Touche finale
Les couches de Jupiter texturées ont d’abord été mises en place, ce qui s’est avéré insuffisant pour la mise en œuvre.
Le nuanceur Planet Standard d’origine, et toutes ses variantes, reçoivent leurs informations d’éclairage via un script, le SunLightReceiver, qui n’est pas pris en charge par le nuanceur MRTK Standard.
Le simple échange des nuanceurs n’était pas une solution, car le nuanceur Planet Standard ne prend pas en charge les cartes de texture avec des transparences. Nous avons modifié ce nuanceur pour que la build Jupiter fonctionne comme prévu.
Enfin, les mélanges alpha devaient être configurés en définissant le mélange source sur 10 et le mélange de destination sur 5.
Vous pouvez voir le rendu final de Jupiter dans Galaxy Explorer !
Rencontrer l’équipe
Notre équipe de studio Mixed Reality est composée de designers, d’artistes 3D, de spécialistes de l’expérience utilisateur, de développeurs, d’un responsable de programme et d’un chef de studio. Nous sommes originaires de partout dans le monde : Belgique, Canada, Allemagne, Israël, Japon, Royaume-Uni et États-Unis. Nous sommes une équipe multidisciplinaire qui vient d’un milieu diversifié : les jeux traditionnels et indépendants, le marketing numérique, les soins de santé et les sciences.
Nous sommes ravis de créer Galaxy Explorer pour HoloLens 2 et de mettre à jour les versions HoloLens (première génération), VR et de bureau.
En haut de gauche à droite : Artemis Tsouflidou (Développeur), Angie Teickner (Visual Designer), David Janer (UX Designer), Laura Garrett (Responsable de la production & de livraison), Yasushi Zonno (Responsable créatif), Eline Ledent (Développeur) et Ben Turner (Développeur principal). En bas de gauche à droite : Amit Rojtblat (artiste technique), Martin Wettig (artiste 3D) et Dirk Songuer (chef de studio). Non présenté : Tim Gerken (Responsable technique) et Oscar Salandin (Visual Designer).
Informations supplémentaires
Mixed Reality Studios
Les équipes microsoft Mixed Reality Studio, situées en Amérique, en Europe et en Asia-Pacific, sont des experts en conception d’expérience utilisateur, en informatique holographique, en technologies AR/VR et en développement 3D, y compris la création de ressources 3D, DirectX, Unity et Unreal. Nous aidons à envisager les futurs souhaités, à concevoir, à créer et à fournir des solutions, tout en permettant aux clients de créer un impact mesurable sur leurs organization. Les studios travaillent en étroite collaboration avec plus de 22 000 professionnels des services Microsoft pour l’intégration, l’adoption, l’exploitation et le support des applications d’entreprise.