Partager via


Module lunaire

Module lunaire

Notes

Cet article décrit un exemple exploratoire que nous avons créé dans les Mixed Reality Design Labs, un endroit où nous partageons nos connaissances et nos suggestions pour le développement d’applications de réalité mixte. Nos articles et notre code liés à la conception évolueront à mesure que nous ferons de nouvelles découvertes.

Notes

Cet exemple d’application a été conçu pour HoloLens 1ère génération.

Lunar Module est un exemple d’application open source de Microsoft Mixed Reality Design Labs. Découvrez comment étendre les mouvements de base d’HoloLens avec le suivi à deux mains et l’entrée du contrôleur Xbox, créer des objets réactifs au mappage de surface et à la recherche de plan, et implémenter des systèmes de menus simples. Tous les composants du projet peuvent être utilisés dans vos propres expériences d’application de réalité mixte.

Vidéo de démonstration

Enregistré avec HoloLens 2 à l’aide de Mixed Reality Capture

Repenser les expériences classiques pour Windows Mixed Reality

Haut dans l’atmosphère, un petit vaisseau rappelant le module Apollo arpente méthodiquement le terrain déchiqueté en dessous. Notre pilote intréside repère une zone d’atterrissage appropriée. La descente est ardue mais heureusement, ce voyage a été fait de nombreuses fois avant...

Interface originale de l’atterrisseur lunaire d’Atari de 1979
Interface originale de l’atterrisseur lunaire d’Atari de 1979

Lunar Lander est un classique d’arcade où les joueurs tentent de piloter un atterrisseur de lune sur un point plat du terrain lunaire. Toute personne née dans les années 1970 a probablement passé des heures dans une arcade les yeux rivés sur ce vaisseau vecteur dégringolant du ciel. À mesure qu’un joueur navigue son navire vers une zone d’atterrissage, le terrain se met à l’échelle pour révéler progressivement plus de détails. La réussite signifie l’atterrissage à l’intérieur du seuil de sécurité de la vitesse horizontale et verticale. Les points sont attribués pour le temps passé à l’atterrissage et le carburant restant, avec un multiplicateur basé sur la taille de la zone d’atterrissage.

Outre le gameplay, l’ère arcade des jeux a apporté une innovation constante des schémas de contrôle. Des configurations de joystick et de bouton à quatre sens les plus simples (comme dans l’emblématique Pac-Man) aux schémas très spécifiques et compliqués vus à la fin des années 90 et 00 (comme ceux dans les simulateurs de golf et les tireurs sur rails). Le schéma d’entrée utilisé dans l’atterrisseur lunaire est intrigant pour deux raisons : l’attrait de frein et l’immersion.

Console d’arcade de l’atterrisseur lunaire d’Atari
Console d’arcade Lunar Lander d’Atari

Pourquoi Atari et tant d’autres sociétés de jeux ont-ils décidé de repenser les entrées ?

Un enfant se promenant dans une arcade sera naturellement intrigué par la machine la plus récente et la plus flash. Mais Lunar Lander présente un nouveau mécanicien d’entrée qui s’est démarqué de la foule.

Lunar Lander utilise deux boutons pour faire pivoter le vaisseau vers la gauche et la droite et un levier de poussée pour contrôler la quantité de poussée produite par le navire. Ce levier donne aux utilisateurs un certain niveau de finesse qu’un joystick standard ne peut pas fournir. Il se trouve également être un composant commun aux cockpits d’aviation modernes. Atari voulait que Lunar Lander plonge l’utilisateur dans le sentiment qu’il pilotait en fait un module lunaire. Ce concept est connu sous le nom d’immersion tactile.

L’immersion tactile est l’expérience d’un retour sensoriel provenant d’actions répétitives. Dans ce cas, l’action répétitive d’ajustement du levier d’étranglement et de la rotation, que nos yeux voient et nos oreilles entendent, permet de connecter le joueur à l’acte d’atterrissage d’un vaisseau sur la surface de la lune. Ce concept peut être lié au concept psychologique de « flux ». Lorsqu’un utilisateur est entièrement absorbé dans une tâche qui a le bon mélange de défi et de récompense, ou plus simplement, il est « dans la zone ».

Sans doute, le type d’immersion le plus important dans la réalité mixte est l’immersion spatiale. Le but de la réalité mixte est de nous tromper en croyant que ces objets numériques existent dans le monde réel. Nous synthétisons des hologrammes dans notre environnement, immergés spatialement dans des environnements et des expériences entiers. Cela ne signifie pas que nous ne pouvons pas utiliser d’autres types d’immersion dans nos expériences comme Atari l’a fait avec l’immersion tactile dans l’atterrisseur lunaire.

Conception avec immersion

Comment appliquer l’immersion tactile à une suite volumétrique mise à jour du classique Atari ? Avant d’aborder le schéma d’entrée, la construction du jeu pour l’espace en trois dimensions doit être abordée.

Visualisation du mappage de surface dans HoloLens
Visualisation du mappage spatial dans HoloLens

En tirant parti de l’environnement d’un utilisateur, nous avons effectivement des options de terrain infinies pour l’atterrissage de notre module lunaire. Pour que le jeu ressemble au titre d’origine, un utilisateur pourrait potentiellement manipuler et placer des blocs d’atterrissage de diverses difficultés dans son environnement.

Demander à l’utilisateur d’apprendre le schéma d’entrée, de contrôler le navire et d’avoir une petite cible sur laquelle atterrir est beaucoup à demander. Une expérience de jeu réussie offre le bon mélange de défi et de récompense. L’utilisateur peut choisir un niveau de difficulté, le mode le plus simple obligeant simplement l’utilisateur à se poser correctement dans une zone définie par l’utilisateur sur une surface analysée par l’HoloLens. Une fois qu’un utilisateur a le contrôle du jeu, il peut alors monter en puissance la difficulté comme il le juge bon.

Ajout d’une entrée pour les mouvements de la main

L’entrée de base HoloLens ne comporte que deux mouvements : Air Tap et Bloom. Les utilisateurs n’ont pas besoin de mémoriser les nuances contextuelles ou une liste de mouvements spécifiques qui rendent l’interface de la plateforme à la fois polyvalente et facile à apprendre. Bien que le système ne puisse exposer que ces deux mouvements, HoloLens en tant qu’appareil peut suivre deux mains à la fois. Notre ode à Lunar Lander est une [application immersive, ce qui signifie que nous pouvons étendre l’ensemble de mouvements de base pour tirer parti de deux mains et ajouter nos propres moyens délicieusement tactiles pour la navigation dans les modules lunaires.

En examinant le schéma de commande d’origine, nous devions résoudre la poussée et la rotation. La mise en garde est que la rotation dans le nouveau contexte ajoute un axe supplémentaire (techniquement deux, mais l’axe Y est moins important pour l’atterrissage). Les deux mouvements de navire distincts se prêtent naturellement à être mappés à chaque main :

Appuyer et faire glisser pour faire pivoter l’nder sur les trois axes
Appuyer et faire glisser pour faire pivoter l’nder sur les trois axes

Poussée

Le levier sur la machine d’arcade d’origine mappée à une échelle de valeurs, plus le levier était élevé, plus la poussée était appliquée au navire. Une nuance importante à souligner ici est la façon dont l’utilisateur peut retirer sa main du contrôle et conserver une valeur souhaitée. Nous pouvons utiliser efficacement le comportement d’appui et de glissement pour obtenir le même résultat. La valeur de poussée commence à zéro. L’utilisateur appuie et fait glisser pour augmenter la valeur. À ce moment-là, ils pourraient lâcher prise pour le maintenir. Toute modification de valeur de mouvement d’appui et de glissement correspond à la différence de la valeur d’origine.

Rotation

C’est un peu plus difficile. Le fait d’avoir des boutons holographiques « pivoter » à appuyer rend une expérience terrible. Il n’y a pas de contrôle physique à exploiter, donc le comportement doit provenir de la manipulation d’un objet représentant l’nder, ou avec l’nder lui-même. Nous avons mis au point une méthode utilisant le tap-and-drag, qui permet à un utilisateur de l’envoyer et de l’extraire dans la direction qu’il souhaite affronter. Chaque fois qu’un utilisateur appuie et maintient, le point dans l’espace où le mouvement a été initié devient l’origine de la rotation. Le glissement à partir de l’origine convertit le delta de la translation de la main (X, Y, Z) et l’applique au delta des valeurs de rotation de l’nder. Ou plus simplement, faire glisser vers la gauche <-> droite, vers le haut <-> vers le bas, vers l’avant <-> vers l’arrière dans les espaces fait pivoter le vaisseau en conséquence.

Étant donné que l’HoloLens peut suivre deux mains, la rotation peut être affectée à la main droite tandis que la poussée est contrôlée par la gauche. La finesse est le facteur moteur du succès dans ce jeu. La sensation de ces interactions est la priorité absolue. Surtout dans le contexte de l’immersion tactile. Un navire qui réagit trop rapidement serait difficile à piloter, tandis qu’un navire trop lent obligerait l’utilisateur à « pousser et tirer » sur le navire pendant une période maladroitement longue.

Ajout d’entrée pour les contrôleurs de jeu

Bien que les mouvements de la main sur l’HoloLens fournissent une nouvelle méthode de contrôle précis, il y a toujours un certain manque de retour tactile « vrai » que vous obtenez à partir des contrôles analogiques. La connexion d’une manette de jeu Xbox nous permet de ramener ce sentiment de physicalité tout en tirant parti des sticks de contrôle pour garder un contrôle précis.

Il existe plusieurs façons d’appliquer le schéma de contrôle relativement simple à la manette Xbox. Étant donné que nous essayons de rester aussi proches que possible de l’arcade d’origine, Thrust correspond le mieux au bouton déclencheur. Ces boutons sont des contrôles analogiques, ce qui signifie qu’ils ont plus que de simples états activés et désactivés , ils répondent réellement au degré de pression exercée sur eux. Cela nous donne une construction similaire à celle du levier de poussée. Contrairement au jeu d’origine et au mouvement de la main, ce contrôle coupe la poussée du navire une fois qu’un utilisateur cesse de mettre la pression sur la gâchette. Il donne toujours à l’utilisateur le même degré de finesse que le jeu d’arcade original a fait.

La manette gauche est mappée à Yaw et Roll, la manette droite est mappée à Pitch and Roll
La manette gauche est mappée au lacet et au roulis ; la manette droite est mappée à tanger et à rouler

Les manettes doubles se prêtent naturellement au contrôle de la rotation des navires. Malheureusement, il existe trois axes sur lesquels le navire peut pivoter et deux bâtons qui prennent tous deux en charge deux axes. Cette incompatibilité signifie qu’une seule manette contrôle un axe ; ou il y a chevauchement d’axes pour les bâtons. La première solution a fini par se sentir « cassée », car les bâtons mélangent intrinsèquement leurs valeurs X et Y locales. Cette dernière solution a nécessité des tests pour trouver quels axes redondants semblent les plus naturels. L’échantillon final utilise le lacet et le roulis (axes Y et X) pour le stick gauche, et le tangage et le roulis (axes Z et X) pour le bâton droit. Cela semblait le plus naturel que le rouleau semble s’associer indépendamment bien avec le lacet et le tangage. En guise de note de côté, l’utilisation des deux bâtons pour le rouleau double également la valeur de rotation ; c’est assez amusant d’avoir l’nder faire des boucles.

Cet exemple d’application montre comment la reconnaissance spatiale et l’immersion tactile peuvent changer considérablement une expérience grâce aux modalités d’entrée extensibles de Windows Mixed Reality. Bien que l’atterrisseur lunaire ait près de 40 ans d’âge, les concepts exposés avec ce petit octogone-avec-jambes vivront pour toujours. Quand vous imaginez l’avenir, pourquoi ne pas regarder le passé ?

Détails techniques

Vous trouverez des scripts et des préfabriqués pour l’exemple d’application Module lunaire sur gitHub Mixed Reality Design Labs.

À propos de l’auteur

Image d’Addison Linville Addison Linville
Designer @Microsoft de l’expérience utilisateur

Voir aussi