Développer des interactions VR riches plus rapidement et plus facilement à l’aide d’UltimateXR

Développer des interactions VR riches plus rapidement et plus facilement à l'aide d'UltimateXR


Les interactions riches entre l’utilisateur et le monde virtuel sont un aspect clé de ce qui rend la réalité virtuelle si attrayante, mais créer et ajuster de telles interactions est une tâche difficile et chronophage pour les développeurs. Des ensembles d’outils comme UltimateXR peuvent accélérer le processus d’itération pour les interactions VR, apportant plus d’interactivité et d’immersion aux jeux et aux expériences.

Article invité par Enrique Tromp

Enrique est cofondateur et CTO de VRMADA, une entreprise technologique fournissant des solutions VR d’entreprise dans le monde entier. Passionné d’infographie et d’art numérique, sa carrière s’étend sur 20 ans dans la simulation, les jeux vidéo et les expériences interactives en direct. Ces jours-ci, il aime entreprendre des projets VR stimulants et développer UltimateXR, un framework VR gratuit et open source. Vous pouvez suivre ses derniers travaux sur Twitter @entromp.

Il y a trois ans, j’ai eu l’occasion de discuter de l’importance des interactions agréables dans les applications de réalité virtuelle dans ce En route vers la réalité virtuelle article invité. J’ai présenté quelques exemples développés à VRMADA, où nous utilisons la réalité virtuelle pour la formation et la simulation en entreprise. L’une des idées maîtresses est que de bonnes interactions naturelles sont essentielles à l’assimilation efficace des procédures visées par la formation. Dans les jeux vidéo VR, de bonnes interactions améliorent le gameplay et peuvent rendre certains mécanismes vraiment amusants et satisfaisants.

Depuis 2016 environ, j’ai investi une grande partie de ma vie à construire un cadre et un ensemble d’outils qui sont devenus la base technologique de l’entreprise. L’objectif principal était de créer un système évolutif qui aiderait nos développeurs à créer des applications VR pour les années à venir. Au cours de ces années, nous avons dû développer des applications avec des exigences, des interactions et des objectifs extrêmement différents, de la formation sérieuse au divertissement. Ces différences ont été essentielles pour faire converger naturellement le cadre vers un système prêt à fonctionner dans des scénarios très différents.

Nous avons récemment décidé de rendre le cadre et les outils accessibles au public, gratuits et open source pour que tout le monde puisse les utiliser. Le résultat est UltimateXR pour Unity. Nous espérons également le porter bientôt sur d’autres plates-formes (Unreal, Web… ?).

Dans cet article, je discuterai de certaines des fonctionnalités d’UltimateXR qui ont été essentielles pour améliorer avec succès nos interactions VR tout en réduisant les délais d’exécution en même temps.

Éditeur de pose de main intégré

La création de poses manuelles est un processus important lors du développement de la manipulation d’objets et d’autres mécanismes qui nécessitent de basculer entre différentes poses.

Au début, nous exportions des animations de mains directement depuis le programme 3D de notre choix (3dsMax, Maya, Blender, etc.), mais nous nous sommes vite rendu compte que cela devenait un gros goulot d’étranglement. Nous avons décidé de développer un éditeur de poses de mains à part entière dans Unity qui nous permettrait d’ajuster les poses de mains directement depuis l’éditeur de monde.

Outre les options d’édition standard, certaines fonctionnalités qui, à mon avis, ont été essentielles pour réduire les délais d’exécution sont :

  • Prise en charge des widgets personnalisés pour faire pivoter rapidement les os des doigts, mais également permettre au développeur d’utiliser les poignées de transformation Unity intégrées. Ils peuvent tous deux être utilisés de manière interchangeable.
  • Prise en charge des poses fixes et mélangées (plus à ce sujet plus tard).
  • Prise en charge des préréglages de pose à la main qui peuvent être utilisés directement ou comme point de départ rapide pour de nouvelles poses.
  • Prise en charge de l’échange de poses entre les plates-formes provenant d’applications utilisant différents systèmes de coordonnées.

Mélanger les poses à la manipulation de l’auteur à l’aide de poses courantes

Au cours du développement, nous avons réalisé que de nombreux objets sont saisis en utilisant des poses communes d’un ensemble bien connu. La seule différence était que la poignée était plus ouverte ou fermée selon la taille de l’objet.

Nous avons décidé de créer un nouveau type de pose appelé la pose de mélange, qui est définie par une pose de début et une pose de fin et peut adopter n’importe quelle pose entre les deux. Pour prendre en charge différentes tailles d’objets, la pose de départ serait une pose complètement ouverte, capable de saisir le plus gros objet possible, et la pose de fin serait une pose complètement fermée, capable de saisir le plus petit objet possible. Tout objet de taille intermédiaire peut utiliser la même pose mais avec une valeur de fusion différente contrôlée par un curseur.

Utilisation de la pince cylindrique standard sur deux objets différents

Alors que les poses fixes sont normalement utilisées pour les gestes de la main et les prises ad hoc, les poses de mélange étaient extrêmement utiles pour développer des prises qui pourraient être réutilisées par de nombreux objets différents.

Les poses de mélange se sont également avérées utiles pour les objets dont la prise en main peut changer, comme lorsque vous appuyez sur la gâchette d’un pistolet ou que vous appuyez sur un bouton d’un appareil interactif tout en le tenant.

Mains personnalisables

Créer un jeu de mains différent pour chaque logiciel que nous avons développé aurait été une tâche très chronophage. Dans le cas précis de deux applications de divertissement, nous avons utilisé un rig personnalisé ; mais pour la plupart de nos applications de formation, nous avons toujours conservé les mêmes actifs de base. Cela nous a permis de réutiliser des poses telles que les gestes de la main ou les poses de mélange courantes discutées dans la section précédente.

Nous voulions toujours pouvoir rendre les mains différentes dans chaque application. Pour cela, nous avons créé une plate-forme qui pouvait basculer entre la peau et les gants et pouvoir personnaliser l’un des deux. Cela a l’avantage de pouvoir réutiliser les poses tout en pouvant avoir un jeu de mains différent dans les projets plus récents.

Le côté visuel est également souvent guidé par les exigences du client ou un document de conception de jeu vidéo. Dans certaines applications de formation, vous commencez à mains nues et l’une des premières étapes consiste à porter des éléments de sécurité tels que des gants. Cela signifie déjà que vous affichez les caractéristiques de la peau ou décidez de les masquer à l’aide d’un shader fantôme, par exemple.

Une application VR peut également vous permettre de personnaliser la couleur de votre peau et la taille de vos mains. La prise en charge de plusieurs tailles de main peut être très importante car dans certains scénarios où vous vous représentez, comme une application VR de collaboration réaliste ou une application de formation, avoir une taille de main différente peut rompre l’immersion.

Différentes variations de skin shader : grandes mains en haut, petites mains en bas

Pour éviter de ne prendre en charge qu’une seule taille (qui, dans de nombreuses applications, tend à être une grande main masculine), nous avons choisi de prendre en charge deux tailles de main : les grandes mains et les petites mains. Les mains adultes peuvent principalement être regroupées dans l’un de ces deux.

À l’avenir, nous pourrions ajouter la possibilité de modifier la taille des mains de manière procédurale, mais pour l’instant, je trouve que c’est le meilleur compromis entre l’inclusivité, la flexibilité et l’effort requis.

Continuer à la page 2 : Flexibilité de l’éditeur GrabbableObject »

Leave a Comment