Jeu de Réalité virtuelle, développé pour une utilisation sur machines de musculation de ANTS (ENS Lyon). Développé par l'Hexanome H4241, Promo 2022 du département IF de l'INSA.
Jeu developpé avec Unity. Nous utilisons l'API Maps SDK de Bing (Repository GitHub)
-
Suivre ce tutoriel afin d'avoir Unity installé correctement pour le développement sur Oculus Quest 2
-
Cloner ce repository
git clone https://github.com/Doreapp/Smart_VR
- Ouvrir la scène
cd Assets/Scenes
./SampleScene.unity
Pour envoyer sur le casque :
File
>Build Settings...
- Aller dans
Android
et cliquerSwitch Platform
- Lorsque le casque est branché, vérifier qu'à la ligne
Run Device
, l'Oculus Quest 2 est disponible - Aller dans
Player Settings...
et définirCompany Name
etProduct Name
- Fermer
Player Settings
- Cliquer sur
Build and run
- Enregistrer l'
APK
- Attendre que le jeu se lance sur le casque.
Un fois que vous avez envoyer le jeu une fois dans le casque, il suffit de faire File
> Build and run
pour envoyer le jeu sur le casque.
Assets
/BasicObject
: Les prefabriqués, objets basiques, non placés directement dans le jeu.BasicBall
, une ball à atteindre lors du jeu de pisteBasicMap
, un chunk correspondant à un bou de carte, implementantMapRenderer
(deMaps SDK
)BasicText
, un texte 3D classique
Assets
/Maps
:Assets
/Material
: Contient les matériaux utilisésBall
, l'objet 3D représentant une ball
Assets
/Scene
: Les scènesSampleScene
, scène de déplacement dans une représentation 3D de notre monde, utilisant l'APIMaps SDK
Assets
/Script
: Les scripts utilisésBallLoader
ComputerControls
, permet de se déplacer sans envoyer le jeu dans le casque Avec les touches :Z
pour monter (axey
)S
pour descendre (axey
)- Flèches directionnelles gauche/droite pour tourner la caméra (autour de l'axe
y
) - Flèches directionnelles haut/bas pour avancer/reculer dans la direction de la caméra
Inertie
, gère le déplacement du joueur de manière fluide.Game Friction
est le coefficient de frottement fluideHead
est l'objet modélisant le casque, et tourner en fonction de l'orientation réelle du casqueCam
est unRigidBody
correspondant à la caméra (joueur)Player
est le joueur, c'est-à-dire même objet queCam
en vision Première PersonneLog Text
est un texte 3D permettant d'afficher des informations de log durant le jeu (sur le casque)Coef speed
est un coefficient sans réalité physique, permettant de définir la vitesse de déplacementMin Angle
est l'angle de rotation minimal (dans Unity) pour faire tourner la direction du joueurCoef rotation
est un coefficient sans réalité physique, définissant la vitesse de rotation du joueurCOMPUTER_CONTROL
est un booléen activant ou non la gestion de l'inertie sur l'ordinateur (pour tester hors de casque). S'il est activé, appuyer sur la barre espace permet de faire avancer le joueur. Attetion, il faut le desactiver lors d'un envoi sur le casque, sinon le déplacement du joueur sera impossible
LookAtPlayer
MapLoader
Permet de charger la carte 3D en fonction des déplacements du joueur. Utilise un principe de chunk.Basic Map
est l'objet classique (préfabriqué) implémentantMapRenderer
(voirAssets/BasicObject/BasicMap
)Player
est l'objet représentant le joueurSize
est le nombre de couronnes chargées autour du chunk centralSize=0
implique de ne charger qu'une seul chunkSize=1
implique de charger 3x3 chunksSize=2
--> 5x5 chunks- ...
Scoring
TouchCamera