Logo Zéphyrnet

La conception et la mise en œuvre du suivi manuel dans 'Myst'

Date :

En utilisant API de suivi des mains mise à niveau de Presence Platform, nous avons introduit le suivi des mains avec notre dernière mise à jour de Myst sur la plateforme Meta Quest, intitulée « Hands & More ». Nous sommes très excités de pouvoir enfin laisser les gens jouer Myst sur Quest sans contrôleurs physiques ! Dans cet article, nous discuterons de l'évolution et de l'itération de la mise en œuvre du suivi manuel dans Myst- et en particulier, en ajoutant davantage de prise en charge dans Unreal Engine 4.27.2.

Article invité par Hannah Gamiel

Hannah Gamiel est directrice du développement chez Cyan—le studio derrière l'original'Mystère jeux - et a aidé à développer le nouveau 'Myste (2020)' qui inclut le support VR. Issue à l'origine d'un parcours purement technique, elle aide désormais à diriger la production de tous les titres et gère les efforts commerciaux et technologiques chez Cyan. Elle a travaillé sur des titres tels que « Myst » (2020), « The Witness », « Braid, Anniversary Edition », « Obduction », « Firmament » (à venir !) et bien plus encore.

Phase de conception et considérations

Conception de la navigation pour le suivi des mains

Photo indiquant où vous souhaitez aller. Vous avez probablement pensé à pointer du doigt, n'est-ce pas ? C'est pourquoi nous avons choisi d'utiliser une méthode de « pointage » pour le mouvement Myst.

Lorsque vous êtes en mode téléportation, vous pouvez indiquer où vous souhaitez aller et l'anneau de téléportation apparaît à votre destination. Lorsque vous « dépointez » (en étendant le reste de vos doigts, ou simplement en ramenant votre index dans votre paume), la téléportation est exécutée.

Lorsque vous êtes en mode de mouvement fluide, pointer avec votre main dominante en mouvement libre (qui peut être configurée dans nos paramètres de contrôle, mais qui est la main gauche par défaut) commencera à vous déplacer en douceur dans la direction que vous pointez.

Lors des tests de mouvements avec pointage, nous avons constaté que le suivi de la main peut parfois être peu fiable avec votre index et votre majeur lorsqu'ils sont obstrués par le reste de votre main. Le système ne sait pas si ces doigts sont entièrement pointés ou entièrement « enfermés » dans votre main. Nous avons ajouté un petit facteur de « fudge » au code pour tenir compte d'une initiation/exécution de mouvement plus stable sur ce front, ce que nous aborderons un peu plus tard lorsque nous discuterons des modifications apportées au suivi des mains prêt à l'emploi. prise en charge dans Unreal Engine.

Tournant

La méthode « point » ne fonctionne pas pour toutes les utilisations de navigation. Lorsqu’il s’agit de tourner, nous avons initialement combiné le pointage avec la rotation du poignet. Comparer le poignet du joueur et le vecteur avant de la caméra indiquerait la direction du virage (et la taille du virage). Nous avons essayé cela au départ car il semblait intuitif de conserver le thème « pointage » pour la navigation entre tous les modes.

Des complications sont toutefois apparues lors des tests de confort. Lors des tests de jeu, la plupart des joueurs pointaient vers l'avant avec la paume tournée vers le sol, comme c'est probablement le cas lorsqu'ils tentent de pointer quelque chose en dehors du jeu. Faire pivoter votre poignet vers la gauche et la droite (autour de l’axe supérieur de votre poignet) alors que vous avez la paume face au sol est un défi et nécessite une amplitude de mouvement très limitée, surtout si vous essayez de vous détourner de votre poitrine.

Ce problème est le même même si vous demandez à un joueur de pointer quelque chose devant lui avec les paumes tournées vers l’intérieur. Vous pouvez plier votre poignet vers votre corps un peu, mais vous n'obtiendrez pas la même amplitude de mouvement en éloignant votre poignet de votre corps.

Alors, comment avons-nous résolu ce problème ? Nous avons fini par attribuer le virage à un geste de « pouce levé » au lieu d'un geste de pointage du doigt.

Imaginez donner un coup de pouce. Tournez maintenant votre poignet vers la droite et la gauche. Notez que même si vous ne disposez pas d'une grande amplitude de mouvement, il est toujours assez cohérent de pointer « gauche » et « droite » avec votre pouce dans ce geste.

C’est ce que nous avons choisi pour activer le mode de suivi manuel. Bien que pointer avec votre pouce ne semble pas être la façon la plus intuitive de tourner, il fait finit par être le moyen le plus confortable et le plus cohérent de le faire.

Avec la rotation instantanée, la rotation de votre poignet vers la gauche ou la droite à partir d'une position pouce vers le haut provoque le lancement d'un seul tour instantané. Vous devez ensuite remettre votre main en position « centrale » (droite vers le haut) afin de réinitialiser le snap, et en outre attendre qu'un très court temps de recharge se produise pour lancer à nouveau un snap turn.

Avec une rotation en douceur, tourner votre poignet en position pouce levé commencera à vous faire pivoter vers la gauche ou la droite, une fois que vous quitterez une « zone morte » qui empêche un virage de se produire jusqu'à ce que vous ayez dépassé le seuil.

Gestion des conflits entre les poses de mouvement et d'interaction avec des objets

Bien sûr, pointer du doigt est un geste trop vaste pour être considéré comme destiné uniquement à la navigation. Les gens feront le même geste de pointage pour appuyer sur des boutons ou interagir avec d’autres choses dans le monde simplement par habitude ou par leurs propres attentes. Ce serait assez choquant de marcher jusqu'à (mais pas bon jusqu'à) un bouton, pointez votre doigt pour appuyer dessus, puis soudainement (et involontairement) rapprochez-vous de lui dans le jeu (ou lancez une téléportation involontaire) !

La façon dont nous empêchons tout mouvement de se produire lorsque le joueur peut interagir avec quelque chose est d'empêcher tout code de mouvement de se déclencher lorsque la main effectuant le geste de « bouger » se trouve dans une certaine portée d'un objet interactif. Cette plage a été modifiée à plusieurs reprises pour arriver à un bon « point idéal » basé sur les tests de jeu.

Nous avons constaté que ce point idéal se trouve à environ 25 cm de l'emplacement spatial de l'os du bout de l'index. Myst regorge d'objets interactifs de différentes tailles (de tout, des petits boutons aux très grands leviers) disposés à la fois dans de grands espaces et dans des couloirs étroits, il nous a donc fallu pas mal de tests pour déterminer ce nombre. Nous avons initialement essayé 60 cm (environ deux pieds), mais cela empêchait le mouvement de se produire lorsque les joueurs devaient encore se rapprocher d'un objet. De même, tout ce qui était inférieur à 25 cm provoquait le déclenchement de mouvements indésirables du joueur lorsque les joueurs essayaient de saisir ou de toucher un objet.

L'une de nos meilleures zones de test était la salle des générateurs sur Myst Island, où vous vous frayez un chemin à travers une entrée étroite et êtes ensuite immédiatement accueilli par un panneau rempli de boutons. Lorsque la zone de test d'interaction était trop grande, les joueurs ne pouvaient pas se déplacer à travers l'entrée et vers le panneau car il détectait des boutons à portée de l'index.

Cela dit, 25 cm est ce qui a fonctionné spécifiquement pour Myst. D'autres jeux devront peut-être ajuster ce nombre s'ils souhaitent implémenter quelque chose de similaire, en gardant leurs propres critères à l'esprit.

Conception d'interactions d'objets pour le suivi manuel

À l'heure actuelle, toutes les interactions récupérables dans Myst sont conçus pour fonctionner avec le suivi manuel : tourner les vannes, ouvrir les portes, appuyer sur les boutons, tourner les pages d'un livre, etc.

Les interactions s'appuient sur ce que nous avions déjà mis en place Myst avec les contrôleurs Touch. Là, appuyer sur le bouton de poignée mélange automatiquement la représentation maillée du jeu de votre main dans une pose « saisie », soit en mettant votre main dans un poing (s'il est vide), soit en saisissant un objet. Avec le suivi des mains, nous avons ajouté un code qui permettra de deviner quand vous avez suffisamment courbé vos doigts pour « attraper » quelque chose et lancer la même logique que celle mentionnée précédemment.

Par exemple, lorsque vous utilisez le suivi manuel et que votre main survole quelque chose qui peut être saisi, la couleur de votre main devient orange (c'est exactement ce qui se produit lorsque vous n'utilisez pas le suivi manuel dans Myst VR également). Lorsque vous saisissez un objet interactif en commençant à serrer vos doigts en un poing, une sphère orange remplace le maillage de votre main et représente l'endroit où la main est attachée à l'objet.

La raison pour laquelle nous avons opté pour cette méthode au lieu de créer des maillages articulés personnalisés pour vos mains (ou de permettre à vos mains/doigts de sembler interagir physiquement avec des parties de ces objets) est que nous voulions que les interactions soient à parité avec ce que nous proposons sur du côté du contrôleur tactile pour l'instant.

Cependant, appuyer sur des boutons fonctionne différemment. Il n'y a pas besoin d'abstraction puisque les boutons ne sont pas des objets pouvant être saisis, et à la place nous vous permettons d'appuyer simplement sur un bouton en utilisant des collisionneurs de capsules générés entre chacune des articulations des doigts sur le maillage de la main articulée. Grâce à cela, vous pouvez faire toutes sortes de choses étranges et amusantes, comme utiliser uniquement votre petit doigt ou la jointure de votre annulaire pour interagir avec chaque bouton du jeu, si vous le souhaitez vraiment.

Cette implémentation diffère légèrement de la façon dont les contrôleurs tactiles interagissent avec les boutons du jeu dans la mesure où nous attendons généralement des joueurs qu'ils utilisent le bouton de préhension de leur contrôleur pour que la main soit un maillage posé « pointant du doigt » afin d'obtenir un bouton précis dans le jeu. appuyez sur leur extrémité. Avec le suivi manuel, il y a évidemment beaucoup plus de flexibilité dans la pose que vous pouvez créer avec votre main, et donc beaucoup plus de façons d'appuyer sur les boutons avec le même niveau de précision.

Interactions menu/interface utilisateur

Pour interagir avec les menus, nous avons fini par utiliser le même paradigme d'interaction que Meta utilise pour la plateforme Quest : un pincement à deux doigts entre le pouce et l'index, de chaque main. Cela peut être utilisé à la fois pour ouvrir notre menu dans le jeu et pour interagir avec les éléments du menu. Cela n’a aucun sens de réinventer la roue ici alors que les joueurs apprennent déjà à le faire dans les menus du système d’exploitation lorsqu’ils activent pour la première fois le suivi des mains sur Quest !

Communiquer tout cela au joueur

Parce que le suivi des mains n'est pas une entrée aussi courante sur Quest que les contrôleurs Touch, et parce que certaines personnes peuvent jouer Myst pour la toute première fois (ou même en jouant à leur tout premier jeu VR !), nous avons essayé d'être attentifs à la manière dont nous communiquons toutes ces informations sur le suivi des mains au joueur. Nous avons veillé à inclure une autre version de notre « diagramme de contrôleur » spécialement conçue pour décrire les interactions de suivi manuel (lorsqu'elle est activée dans Myst), et nous montrons au joueur des notifications spécialisées qui lui indiquent exactement comment se déplacer avec ses mains.

De plus, nous avons pensé qu'il serait essentiel de rappeler au joueur comment bénéficier d'une expérience de suivi des mains fluide, une fois activé. Le joueur est averti dans MystLe menu indique que la stabilité du suivi des mains est bien meilleure s'ils s'assurent qu'ils se trouvent dans une pièce bien éclairée et gardent leurs mains dans leur champ de vision.

Meta informe également les joueurs que ces éléments sont essentiels à un environnement de suivi des mains bien suivi, mais nous reconnaissons que certains joueurs peuvent se lancer dans un jeu sans avoir d'abord analysé les notifications de Meta à ce sujet, nous avons donc choisi de le rappeler aux gens au cas où ils l'auraient oublié.

Continuer à la page 2 : Modifications du moteur effectuées dans Unreal »

spot_img

Dernières informations

spot_img

Discutez avec nous

Salut! Comment puis-je t'aider?