Lors de ma veille technologique sur la réalité virtuelle et ses dérivés comme la réalité augmentée ou la réaliré mixte, j’avais comme projet de créer un petit jeu vidéo ou une sorte de simulation en réalité virtuelle.
Pour cela j’avais installé l’Unreal Engine mais en plus de ne pas être très instinctif et relativement compliqué cet outils était tout simplement trop demandeurs en ressources pour mon ordinateur, allant jusqu’à une dizaine de minutes pour la simple initialisation du projet.
J’ai donc décidé de changer d’outils et ai installé l’éditeur de jeux vidéo concurrent, Unity. Ce dernier était moins gourmand et j’ai pu lancer un projet en réalité virtuelle.
Malheureusement je me suis heurter à un problème qui m’a bloqué dans ma création et à cause du quel je n’ai pas pus faire grand-chose. Afin de pouvir tester ma création en VR j’avais besoin d’un casque VR que je me suis procurré par l’intermédiaire d’un ami, le Meta Quest 2. Hors l’étape suivante était d’avoir un compte Meta développeur et de le lier au casque en question, ce dernier n’étant pas le mienx je n’ai pas pu faire cela.
J’aurais pu changer encore une fois de technologie, comme du three.js par exemple, mais peut importe celle que j’aurais utilisée il m’aurait ce fameux compte développeur pour tester mon travail.
J’ai donc du me résigner à avancer dans la création d’un jeu en VR en suivant des tutoriels, notamment ceux de Valem Tutorials, sans pouvoir tester si ce que je faisait fonctionnait. J’ai tout de même pris quelque screenshot de ce que je faisait et les aient accompagnés d’une petite explication de ce qu’ils sont censés faire ci dessous :
-
La première étape est tout d’abord de télécharger Unity pour installer Unity Hub et ensuite pouvoir choisir la version d’unity que l’on souhaite utiliser.
-
La réalité virtuelle peut être réalisé dans plusieurs langage différents comme je l’ai expliqué dans un des articles de ma veille, du C++ ou du C#, du JavaScript avec par exemple Three.js ou du Python. Dans mon cas, un jeu vidéo, c’est le C# que l’on utilise. J’ai donc du ajouter à mon VSCode l’extension C# Dev Kit :
-
Mais également télécharger le SDK .NET et créer le path dans les variables d’environnement :
-
Maintenent que tout les outils (Unity, C#, .NET) sont installés et paramétrés on peut désormais conmmencé à travailler.
-
Unity est un outils qui nous permet de ne pas avoir à tout écrire depuis zéro, plusieurs foncionnalités et autres sont déjà implémenter ou disponible et il ne faut que les relier entre elles. Par exemple pour l’annimation des mains du joueur il existe
-
Cette fonctionnalité est un animation de main qui se sert, elle est facilement disponible sur Unity. Elle existe mais pour le moment ne fonctionne pas, elle n’est relié à rien, pour cela il faut ouvrir le script AnimateHandOnInput dans VSCode avec un double-clic et rajouter ceci :
Ici les élément modifier sont using UnityEngine.InputSyteme et l’ajout de public InputActionProprerty pinchAnimationAction. Juste cela est suffisant pour relier l’animation des mains qui se sert aux manettes du joueur. Bien surle nom pinchAnimationAction n’est pas choisi au hasard, il correspond au nom de l’animation qui existe déjà dans vscode
-
- Après avoir fait les étapes ci dessus l’animation est fonctionnelle, mais elle est brutale, peut importe la persion sur les gachette les mains se fermerrons au maximum instantanémenent. Pour régler ce problème il faut déjà savoir d’un gachette sur un manette va renvoyer différente valeur en fonction de sa position, d’à quel point elle est enfoncé, par exemple elle pourra renvoyer 1 si le joueur appuit entièrement dessus et 0,5 si il appuit à moitié. On veut donc pouvoir connaître cette valeur. Pour cela, dans la fonction void Update() qui est un fonction activé à chaque changement d’image, on crée la variable triggerValue :