Jour 4 — 3h

Confort, Optimisation et Déploiement

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.

Motion sickness et confort
Optimisation VR
Déploiement
Ouverture et tendances
1

Motion sickness et confort

Le probleme #1 de l'adoption VR

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.

Conflit vestibulo-visuel : la cause principale Les yeux disent au cerveau "je bouge" tandis que l'oreille interne dit "je suis immobile". Le cerveau interprete cette incoherence comme un empoisonnement et declenche la nausee comme mecanisme de defense. C'est l'inverse du mal des transports classique (ou le corps bouge mais les yeux voient un ecran fixe).

Facteurs aggravants

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

A eviter absolument

DANGER — Ne JAMAIS faire ces choses en VR
  • Deplacer ou animer la camera VR par code
  • Forcer la rotation de la tete du joueur
  • Mouvements de camera cinematiques (cutscenes classiques)
  • Ascenseurs ou escalators avec mouvement continu
  • Chute libre prolongee
  • Inverser les controles de rotation
  • Framerate instable (variations supérieures a 10fps)
Inclure illustration : Conflit Vestibulo-Visuel en VR

Solutions : locomotion confortable

Téléportation

  • Elimine le mouvement continu
  • L'utilisateur pointe et se teleporte instantanement
  • Methode la plus confortable pour la majorite des joueurs

Fade to black

  • Coupe le visuel pendant la transition
  • Ecran noir bref entre position A et B
  • Empeche le cerveau de détecter le mouvement

Snap turn

  • Rotation instantanee par increments (ex. 30° ou 45°)
  • Pas de rotation continue visible
  • Confortable pour la grande majorite des utilisateurs

Vitesse controlee

  • Vitesse constante (pas d'accélération/deceleration)
  • Vitesse moderee : 1.5 a 3 m/s
  • Reduit le conflit sensoriel en smooth locomotion

Solutions visuelles

Vignette dynamique (Tunnel Vision)

  • Reduit le FOV pendant le mouvement
  • Diminue la vection périphérique
  • S'ouvre quand le joueur est immobile
  • Implementee via post-process material dynamique
  • Meilleure attenuation pour le smooth locomotion

Reperes visuels fixes

  • Cockpit — Cadre visuel fixe (véhicule, casque)
  • Nez virtuel — Reference fixe dans le champ de vision
  • Grille au sol — Repere spatial statique
  • Donnent au cerveau un point d'ancrage stable

Regles générales de confort

1. Toujours proposer des options Offrir téléportation ET smooth locomotion. Chaque joueur a sa tolerance.
2. Laisser le controle au joueur Le joueur decide comment il se deplace. Jamais de mouvement impose.
3. Pas de prise de controle camera La camera VR = la tete du joueur. Ne jamais la deplacer par code.
4. Framerate stable = priorite absolue Un framerate stable est plus important qu'un framerate eleve mais instable.
5. Repere spatial Donner des references visuelles stables dans l'environnement.
6. Sessions courtes et pauses Encourager des sessions de 30-45 min avec pauses.

Meta Quest Comfort Ratings

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
Conseil : viser "Comfortable" par défaut Votre application devrait etre classee "Comfortable" en configuration par défaut. Les options "Moderate" et "Intense" doivent etre activables dans les parametres. Valve recommandé egalement de proposer des options confort avec des labels clairs.

Points clés a retenir

Conflit vestibulo-visuel Le motion sickness est cause par la dissonance entre ce que voient les yeux et ce que ressent l'oreille interne.
Framerate stable Prerequis non-negociable. Un framerate instable provoque systematiquement de l'inconfort.
Téléportation + snap turn La combinaison la plus confortable. A proposer par défaut dans toute expérience VR.
Vignette dynamique Meilleure attenuation du motion sickness en smooth locomotion. Reduit le FOV pendant le mouvement.
Ne jamais forcer la camera La camera VR represente la tete du joueur. Toute prise de controle declenche du motion sickness.
Toujours proposer des options Chaque joueur a une tolerance differente. Offrir des choix de locomotion et de confort.
2

Optimisation VR

Pourquoi l'optimisation est critique en 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.

Rappel : rendu stereo = scene rendue 2 fois Le budget GPU est divise par 1.5 a 2 par rapport a un jeu classique a résolution equivalente. Chaque optimisation compte double.

Cibles de framerate par casque

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

Metriques de performance

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)

Draw Calls : ennemi #1 en standalone

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).

Techniques de reduction

  • Merge Actors — Fusionner les meshes statiques proches
  • Instanced Static Mesh — 1 draw call pour N instances identiques
  • HISM — Instances + LOD automatique
  • Materiaux partages — Reutiliser le meme materiau
  • Texture Atlas — Combiner textures en une seule

Instanced Stereo Rendering

  • Sans : chaque draw call execute 2 fois (oeil G + D)
  • Avec : 1 draw call pour les 2 yeux
  • Reduction ~30-40% des draw calls
  • Mobile Multi-View = variante mobile pour Quest
  • Activer les deux — c'est gratuit !

LOD (Level of Detail)

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
Nanite en VR : attention ! PC VR = Nanite fonctionne avec des limitations.
Standalone Quest = Nanite PAS SUPPORTÉ. Les LOD manuels sont obligatoires sur standalone. UE5 peut générér automatiquement les LOD mais il faut configurer les distances de transition, plus courtes sur standalone.

Eclairage

Standalone (Quest)

  • Lightmaps baked uniquement
  • Pas de Lumen (GI temps reel)
  • 0-2 lumieres dynamiques maximum
  • Skylight + Directional Light bakes
  • Light Probes pour l'eclairage indirect
  • Baked = le standard standalone

PC VR

  • Lumen possible (mais couteux)
  • Lumieres dynamiques OK avec moderation
  • Deferred Rendering pour plus de lumieres
  • Baked reste recommandé pour la performance

Materiaux et textures

Standalone

  • Materiaux simples (peu d'instructions shader)
  • Eviter tessellation / displacement
  • Compression ASTC (format mobile)
  • Resolution max 1024×1024 (2048 rare)
  • Utiliser des Material Instances

Bonnes pratiques générales

  • Partager les materiaux entre objets
  • Texture Atlas pour combiner les textures
  • Eviter les materiaux transparents (overdraw)
  • Pas de refraction sur standalone

Fixed Foveated Rendering (FFR)

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.

Types de Foveated Rendering

  • Fixed — Zones predéfinies (centre/bords). Disponible sur Quest
  • Dynamic — Suit le regard de l'utilisateur (eye tracking). Disponible sur PSVR2 et Quest Pro

Performance

  • Gain 20-40% GPU sans perte de qualite perceptible
  • Activer sur Quest : Meta XR Plugin → FFR Level
  • Quasiment "gratuit" en termes de qualite visuelle
Inclure illustration : Fixed Foveated Rendering

Profiling : identifier les bottlenecks

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

Comprendre stat unit

// Exemple de sortie stat unit Frame: 11.2 ms // Temps total de la frame Game: 2.1 ms // Logique gameplay (BP, Tick) Draw: 3.5 ms // Preparation des draw calls (CPU) GPU: 10.8 ms // Rendu effectif (GPU) RHIT: 1.2 ms // Render Hardware Interface Thread

Interpréter les résultats

  • Si GPU > Frame : GPU bottleneck → optimiser le rendu (triangles, materiaux, lumieres)
  • Si Draw > Frame : CPU bottleneck → reduire les draw calls
  • Si Game > Frame : logique trop lourde → optimiser Blueprints et Tick

La valeur la plus haute "gagne"

  • Le composant le plus lent dicte le framerate final
  • Optimiser d'abord le bottleneck identifie
  • Puis re-profiler et recommencer

Optimisation Blueprints

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
Regle d'or Ne rien faire chaque frame qui puisse etre fait moins souvent. Chaque operation dans le Tick est executee 72-120 fois par seconde. Questionnez chaque noeud dans Event Tick.

Checklist optimisation VR

Rendering Instanced Stereo + Mobile Multi-View + Forward Rendering actives
FFR Fixed Foveated Rendering active sur Quest (gain 20-40% GPU)
Draw calls < 200 Merge actors, instancing, materiaux partages, Texture Atlas
LOD LOD manuels sur tous les meshes, transitions a courte distance
Eclairage Lightmaps baked, 0-2 lumieres dynamiques max (standalone)
Textures ASTC, 1024x1024 max, materiaux simples et partages
Tick Désactiver le Tick si pas besoin, utiliser Timers
Profiling stat unit + Unreal Insights regulierement

Points clés a retenir

Framerate constant Priorite absolue en VR. Un drop = nausee physique, pas juste un inconfort visuel.
Draw calls Metrique critique en standalone. Budget 100-200 DC max sur Quest.
Instanced Stereo Gratuit, toujours activer. Reduction ~30-40% des draw calls.
LOD manuels Obligatoires sur standalone (Nanite non supporte). Transitions a courte distance.
Lightmaps baked Le standard pour le standalone. Pas de Lumen sur Quest.
FFR = GPU gratuit 20-40% de gain GPU sur Quest sans perte de qualite perceptible.
3

Déploiement

Deux cibles de déploiement

Quest Standalone

  • Plateforme : Android
  • Format : APK
  • Distribution : App Lab, SideQuest, Quest Store

PC VR

  • Plateforme : Windows
  • Format : EXE
  • Distribution : Steam, Rift Store, distribution directe

Build Quest : prerequis

Le déploiement Quest nécessite la configuration de l'environnement Android dans Unreal Engine.

  • Android SDK API 29 ou supérieur
  • NDK compatible avec la version UE5
  • JDK (Java Development Kit)
  • Config UE5 : Project Settings → Android → chemins SDK/NDK/JDK (ou setup automatique)
  • Quest mode développeur : activer via Meta Developer Hub ou l'application mobile Meta

Build Quest : etapes

1. Verifier la configuration Target = Android, Compression = ASTC, Package Name configure ↓ 2. Lancer le build File > Package Project > Android (ASTC) ou Launch avec le Quest connecte en USB ↓ 3. Résultat Fichier .apk installable via adb install ou déploiement direct via Launch depuis l'editeur
Points d'attention pour le build Quest
  • Premier build long : compilation des shaders et cooking des assets (15-60 min selon le projet). Les builds suivants sont incrementaux.
  • Taille du package : Quest limite a ~1-2 Go. Compresser les textures, exclure les assets inutilises, utiliser l'Asset Manager.
  • Permissions : INTERNET si reseau requis. Les permissions VR sont automatiques via le Meta XR Plugin.

Build PC VR : etapes

1. Configuration Target = Windows, Rendering = DX12, Start in VR active ↓ 2. Packaging File > Package Project > Windows Produit un dossier avec un fichier .exe ↓ 3. Lancement L'executable lance automatiquement SteamVR ou Oculus Runtime

Distribution PC VR

Via Steam (Steamworks)

  • Frais d'inscription : 100$
  • SDK Steamworks spécifique
  • Support achievements, workshop, review
  • Plateforme de distribution #1 pour le PC VR

Distribution directe

  • Fichier .exe + dossiers de donnees
  • SteamVR ou Oculus Runtime requis sur le PC
  • Pas de DRM
  • Ideal pour prototypage et demonstrations

Configuration par plateforme

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

Icones et ecrans de chargement

Quest

  • Icone : 512×512 PNG
  • Splash screen au lancement
  • Configuration dans Project Settings → Platforms → Android

PC

  • Icone pour le fichier .exe
  • Loading screen optionnel
  • Configuration dans Project Settings → Platforms → Windows
Inclure illustration : Pipeline de Déploiement VR

Points clés a retenir

Quest = Android APK Build Android avec SDK/NDK. Format APK installable via adb ou Launch depuis l'editeur.
PC VR = Windows EXE Build Windows classique. Necessite SteamVR ou Oculus Runtime sur le PC de l'utilisateur.
Mode développeur Quest Indispensable pour installer un APK directement sur le casque. A activer via Meta Developer Hub.
Premiere build longue La compilation initiale des shaders et le cooking prennent du temps. Les builds incrementaux sont rapides.
Gerer la taille du package Quest limite a ~1-2 Go. Compresser, exclure les assets inutilises, surveiller la taille.
Device Profiles Adapter la qualite graphique par plateforme (Quest 2 vs Quest 3 vs PC) via les profils UE5.
4

Ouverture et tendances

Hand Tracking

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).

Support et implementation

  • Casques compatibles : Quest 2/3/Pro, Vision Pro, Vive XR Elite
  • UE5 : OpenXR Hand Tracking plugin
  • Hand Tracking Component pour acceder aux positions des joints
  • Detection des gestes : pinch, grab, poke

Limites actuelles

  • Précision ~1 cm (vs sub-mm pour controleurs)
  • Latence plus elevee que les controleurs
  • Occlusion des doigts (doigts caches = perte de tracking)
  • Fatigue des bras ("gorilla arms")
  • Pas de retour haptique, pas de boutons physiques
Cas d'usage ideaux UI naturelle, manipulation douce d'objets, interactions sociales. Moins adapte pour le gameplay rapide, le tir ou les actions précises necessitant des boutons.

Mixed Reality et Passthrough

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.

Features UE5 (Meta XR)

  • Scene Understanding — Detection des murs, sol, meubles
  • Spatial Anchors — Ancrer des objets virtuels a des positions réelles
  • Passthrough Layer — Configurer la transparence du passthrough
  • Room Mesh — Maillage 3D de la piece

Applications

  • Jeux MR qui interagissent avec votre salon
  • Applications de productivite (bureaux virtuels)
  • Formation en contexte réel augmente
  • Visualisation architecturale in situ

Eye Tracking

Le suivi du regard ouvre de nouvelles possibilites d'interaction et d'optimisation. Supporte sur Quest Pro, PSVR2 et en preview sur Quest 3.

Applications

  • Foveated Rendering dynamique — Haute résolution uniquement ou le joueur regarde
  • Interaction par le regard — Selectionner des objets en les regardant
  • Avatars expressifs — Reproduction du regard et des expressions
  • Analytics et heatmaps — Comprendre ou regardent les utilisateurs

Implementation UE5

  • Interface Eye Tracker d'Unreal Engine
  • Fonction Get Gaze Data pour obtenir la direction du regard
  • Combinable avec le Foveated Rendering pour un gain GPU automatique
Inclure illustration : Technologies Emergentes VR

Tendances du marche VR

Standalone dominant Quest represente plus de 80% du marche. Le standalone est devenu le format par défaut.
MR > VR pure La mixed reality (passthrough + virtuel) remplace progressivement la VR fermee.
Social VR Collaboration à distance, événements virtuels, espaces de travail partages.
Enterprise VR Formation professionnelle, simulation industrielle, design collaboratif.
AI + VR NPC intelligents, generation procedurale de contenu, assistants virtuels.
Cloud Rendering Rendu sur serveur distant, prometteur mais limite par la latence reseau.
Miniaturisation Casques plus legers, vers des lunettes AR/VR compactes (Meta Orion, etc.).

Ressources pour aller plus loin

Documentation officielle

  • Unreal Engine VR — docs.unrealengine.com
  • Meta Quest Dev — developer.meta.com
  • OpenXR Standard — khronos.org/openxr

Communaute et apprentissage

  • UE Forums — Section VR/AR Development
  • Reddit — r/unrealengine, r/OculusQuest
  • Discord — Unreal Slackers
  • Plugins — VR Expansion Plugin
  • Cours — UE Learning Portal

Points clés a retenir

Hand Tracking Interaction sans controleurs, 26 joints/main. Ideal pour UI naturelle, limite pour le gameplay rapide.
Mixed Reality Passthrough + elements virtuels. Scene Understanding et Spatial Anchors via Meta XR Plugin.
Eye Tracking Foveated Rendering dynamique, interaction par le regard, avatars expressifs.
Standalone domine Le Quest définit le marche. Cibler standalone d'abord est la strategie dominante.

Synthese — Jour 4

Confort, optimisation et déploiement VR

Resume des 4 sessions

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

Recap de la semaine complete

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

Semaine 2 : Projet "VR Gauntlet"

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.

Concept

  • Hub central avec des stations de mini-jeux
  • Chaque station demontre une feature VR
  • Projet individuel
  • Base : VR Template UE 5.6

6 features obligatoires

  • Locomotion (téléportation et/ou smooth)
  • Grab (saisie d'objets)
  • UI VR (menus dans l'espace)
  • Physics (interactions physiques)
  • Haptics (retour haptique)
  • Audio (spatialisé)
Focus : features, immersion et confort — pas l'art L'evaluation porte sur la qualite technique et l'expérience utilisateur, pas sur le rendu graphique. Utilisez les assets par défaut, concentrez-vous sur les mecaniques VR.

Livrables

  • Projet Unreal Engine 5.6
  • Build fonctionnel (APK ou EXE)
  • Document de rendu (1 page)

Evaluation

  • 50% — Features obligatoires (6 features fonctionnelles)
  • 20% — Qualite technique (BP propres, pas de bugs)
  • 15% — Features bonus (points supplementaires)
  • 15% — Document de rendu (analyse et reflexion)