Maitrisez le confort utilisateur, les techniques d'optimisation VR critiques, le déploiement sur Quest et PC, et découvrez les tendances qui faconnent l'avenir de la réalité virtuelle.
Le motion sickness (ou cybersickness) touche 40 a 70% des utilisateurs VR. C'est le frein principal a l'adoption de la réalité virtuelle. Les symptomes incluent nausee, vertiges, sueurs froides, desorientation et fatigue oculaire.
| Facteur | Severite | Description |
|---|---|---|
| Framerate bas (<72fps) | Critique | Images saccadees = conflit sensoriel immediat |
| Latence MTP elevee (>20ms) | Critique | Decalage entre mouvement et affichage |
| Smooth locomotion | Fort | Deplacement continu sans mouvement physique |
| Smooth turn | Fort | Rotation continue au joystick |
| Accelerations | Fort | Changements de vitesse brusques |
| FOV large en mouvement | Moyen | Vision périphérique amplifie la vection |
| Camera forcee | Tres fort | Prise de controle de la camera du joueur |
Meta impose un systeme de classification du confort pour les applications Quest Store. Ces labels aident les utilisateurs a choisir des expériences adaptées a leur tolerance.
| Rating | Description | Exemples |
|---|---|---|
| Comfortable | Stationnaire ou téléportation uniquement | Beat Saber, Job Simulator |
| Moderate | Mouvement lent, snap turn | Moss, Walkabout Mini Golf |
| Intense | Smooth locomotion, mouvement rapide | Asgard's Wrath, RE4 VR |
Dans un jeu classique, une baisse de framerate cause un inconfort visuel temporaire. En VR, un drop de framerate provoque des nausées et un malaise physique reel. L'optimisation n'est pas un bonus, c'est une obligation.
| Casque | Refresh rate | Budget par frame |
|---|---|---|
| Quest 2/3 | 72 / 90 / 120 Hz | 13.9 / 11.1 / 8.3 ms |
| Valve Index | 90 / 120 / 144 Hz | 11.1 / 8.3 / 6.9 ms |
| PSVR2 | 90 / 120 Hz | 11.1 / 8.3 ms |
| Metrique | Standalone (Quest) | PC VR |
|---|---|---|
| Draw calls | < 100-200 | < 2 000 |
| Triangles / frame | < 750K - 1.5M | < 5M |
| Memoire textures | < 1-2 Go | < 4-8 Go |
| Materiaux uniques | < 50 | < 200 |
| Lumieres dynamiques | 0-2 | 4-8 |
| Frame time | < 13.9 ms (72Hz) | < 11.1 ms (90Hz) |
Un draw call correspond a un ensemble mesh + materiau + section. Chaque draw call a un cout fixe cote CPU. Sur Quest, le budget est extremement limite (100-200 DC max).
Versions simplifiees des meshes affichees selon là distance a la camera. Reduit drastiquement le nombre de triangles a rendre pour les objets eloignes.
| Niveau | Distance | Triangles | Usage |
|---|---|---|---|
| LOD0 | 0-5m | 100% | Pleine qualite, objets proches |
| LOD1 | 5-15m | 50% | Qualite reduite, distance moyenne |
| LOD2 | 15-30m | 25% | Simplification forte |
| LOD3 | 30m+ | 10% | Silhouette basique, arriere-plan |
Technique qui rend le centre de l'image en haute résolution et les bords en basse résolution. Exploite le fait que l'oeil humain a une vision nette uniquement au centre (fovea) et une vision floue en peripherie.
Le profiling est la première etape de toute optimisation. Ne jamais optimiser "au feeling" — toujours mesurer d'abord.
| Commande / Outil | Information |
|---|---|
| stat fps | Framerate actuel |
| stat unit | Breakdown : Game / Draw / GPU / RHIT |
| stat scenerendering | Detail du rendu scene (draw calls, triangles...) |
| stat gpu | Breakdown des passes de rendu GPU |
| Unreal Insights | Timeline detaillee (profiling avance) |
| GPU Visualizer | Visualisation des passes GPU |
| RenderDoc | Capture et analyse frame par frame |
| Probleme | Solution |
|---|---|
| Tick lourd | Désactiver le Tick si pas nécessaire |
| Tick trop frequent | Utiliser des Timers au lieu du Tick |
| Boucles ForEach | Limiter le nombre d'iterations par frame |
| Line traces chaque frame | Reduire la frequence (tous les 3-5 frames) |
| Trop d'acteurs avec Tick | Tick conditionnel sur les components |
| Collision checks | Utiliser les bons canaux de collision |
Le déploiement Quest nécessite la configuration de l'environnement Android dans Unreal Engine.
UE5 permet d'adapter la qualite graphique par plateforme grace aux Scalability Settings, aux Per-platform Properties et aux Device Profiles.
| Parametre | PC VR | Quest 3 | Quest 2 |
|---|---|---|---|
| Materiaux | Complexes, 4K | Moyens, 1024 | Simples, 512 |
| Eclairage | Lumen | Baked | Baked |
| FFR | — | Medium | High |
| Post-process | Complet | Minimal | Desactive |
Le suivi des mains permet d'interagir en VR sans controleurs. Les cameras du casque détectént les mains et suivent 26 joints par main en temps réel via la vision par ordinateur (30-60 Hz).
Les cameras du casque filment le monde réel et l'affichent dans le casque, permettant de superposer des elements virtuels sur l'environnement reel.
Le suivi du regard ouvre de nouvelles possibilites d'interaction et d'optimisation. Supporte sur Quest Pro, PSVR2 et en preview sur Quest 3.
Confort, optimisation et déploiement VR
| Session | Sujet | Points essentiels |
|---|---|---|
| 1 | Motion sickness et confort | Conflit vestibulo-visuel, framerate stable obligatoire, téléportation + snap turn par défaut, vignette dynamique, ne jamais forcer la camera |
| 2 | Optimisation VR | Draw calls < 200 standalone, Instanced Stereo + FFR gratuits, LOD manuels obligatoires (pas Nanite), lightmaps baked, profiling stat unit |
| 3 | Déploiement | Quest = APK Android (SDK/NDK), PC VR = EXE Windows (SteamVR), mode dev Quest, première build longue, Device Profiles par plateforme |
| 4 | Ouverture et tendances | Hand tracking (26 joints/main), Mixed Reality (Scene Understanding, Spatial Anchors), Eye Tracking, standalone dominant, MR > VR pure |
| Jour | Theme | Contenu |
|---|---|---|
| Jour 1 | Introduction a la VR | Histoire, hardware, standalone vs PC, écosystème et panorama des casques |
| Jour 2 | UE5 et VR | Configuration projet, architecture VRPawn, systeme d'input, controllers VR |
| Jour 3 | Interactions et Locomotion | Locomotion (téléportation, smooth), grab system, UI VR, feedback sensoriel |
| Jour 4 | Production | Confort utilisateur, optimisation VR, déploiement Quest/PC, tendances et ouverture |
A partir de lundi, vous passez a la pratique avec un mini-jeu VR de bout en bout. Projet individuel base sur le VR Template d'UE 5.6.