Design d'interaction — Réalité Virtuelle
Cours VR

Design d'Interaction VR — Niveau 3 : Avancé

Résumé EN (abstract): This advanced VR interaction design course takes designers to production-ready skills. Students build Unity-based VR experiences using the XR Interaction Toolkit, implement multi-user networking, optimize GPU performance, integrate spatial AI, and apply accessibility standards and advanced research methods (IPQ, ESM). The capstone project is an exhibition-grade VR installation tested with ≥5 users using both SUS and IPQ, with a full operator README. Outline: Unity XR Toolkit architecture → Multi-user networking (Photon Fusion) → GPU performance → Spatial AI & generative VR → Accessibility checklist → Advanced research methods (IPQ/ESM) → Production readiness → Exhibition project.

Objectifs d'apprentissage

À la fin de ce cours, l'étudiant·e sera capable de :

  1. Concevoir (Bloom : creating) une expérience VR de niveau exposition dans Unity avec XR Interaction Toolkit.
  2. Implémenter (applying) un système multi-utilisateurs VR avec Photon Fusion.
  3. Évaluer (evaluating) et optimiser les performances GPU d'une scène VR (draw calls, LOD, foveated rendering).
  4. Intégrer (applying) des modules d'IA spatiale (détection d'objets, scène understanding) dans une expérience VR.
  5. Appliquer (applying) les standards d'accessibilité VR (WCAG 2.1 adapté, confort universel).
  6. Conduire (creating) une étude de présence avec IPQ (iGroup Presence Questionnaire) et ESM (Experience Sampling Method).

Module 1 — Architecture Unity XR Interaction Toolkit (2.5h)

Concept

L'XR Interaction Toolkit (XRI) est le framework officiel Unity pour les interactions VR/AR. Il abstrait les différences entre plateformes (Quest, SteamVR, PSVR, Vision Pro) via OpenXR.

Documentation : https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@latest

Les 5 composants clés :

ComposantRôle
XR OriginRig VR : Camera, LeftHand, RightHand controllers
XR InteractableObjet qui peut être interagi (base class)
XR Grab InteractableObjet qui peut être saisi
XR InteractorEntité qui initie l'interaction (RayInteractor, DirectInteractor)
XR Interaction ManagerGestionnaire global des interactions (singleton de scène)

Architecture d'une scène XRI :

XR Origin (GameObject)
├── Camera Offset
│ ├── Main Camera (XR Camera)
│ ├── LeftHand Controller (XR Controller + Ray Interactor)
│ └── RightHand Controller (XR Controller + Ray Interactor)
└── XR Interaction Manager (singleton)

Scene
├── XR Grab Interactable objects (saisissables)
├── XR Simple Interactable objects (cliquables)
└── Teleportation Area (NavMesh ou XR Teleportation Area)

Pipeline d'une interaction saisie :

  1. XR Interactor détecte un XR Interactable dans sa zone d'influence
  2. L'XR Interactable passe en état Hover → feedback visuel
  3. L'utilisateur appuie sur le bouton configuré → état Select → l'objet suit la main
  4. Relâcher → état Deselect → l'objet reprend son comportement physique

Lab 1.1 — Setup XRI minimal

Étapes :

  1. Créer un nouveau projet Unity (LTS) → importer XR Interaction Toolkit + OpenXR
  2. Configurer l'XR Origin depuis le menu XR > Convert Main Camera to XR Rig
  3. Créer 1 cube → ajouter Rigidbody + XR Grab Interactable
  4. Construire en mode Play → tester la saisie avec clavier-souris (simulateur XR intégré)

Module 2 — Multi-utilisateurs avec Photon Fusion (2.5h)

Concept

Photon Fusion est le framework réseau temps-réel le plus utilisé pour la VR sociale. Il gère la synchronisation des positions, états et interactions entre plusieurs clients.

Documentation Photon Fusion : https://doc.photonengine.com/fusion/current/getting-started/sdk-download

Architecture Photon Fusion pour VR :

PhotonAppSettings (AppId)
├── NetworkRunner (singleton scène)
│ ├── PlayerRef → instanciation avatar réseau
│ └── SessionInfo → lobby + matchmaking
├── NetworkObject (chaque avatar ou objet partagé)
│ ├── NetworkTransform (sync position/rotation)
│ └── NetworkBehaviour (custom sync variables)
└── VoiceConnection (Photon Voice pour audio spatial)

Synchroniser une variable :

public class SharedObject : NetworkBehaviour {
 [Networked] public bool IsGrabbed { get; set; }

 [Rpc(RpcSources.InputAuthority, RpcTargets.All)]
 public void RPC_Grab(bool grabbed) {
 IsGrabbed = grabbed;
 }
}

Bonnes pratiques multi-user VR :

Lab 2.1 — Hello multi-user VR

Étapes :

  1. Créer un compte Photon (plan gratuit), récupérer l'AppId
  2. Importer Fusion SDK dans Unity → configurer PhotonAppSettings
  3. Créer un prefab Avatar (capsule + XR Origin) avec NetworkTransform
  4. Tester avec 2 instances Unity en simultané (même réseau local)

Module 3 — Performance GPU et optimisation (2.5h)

Concept

Une VR lente est une VR inutilisable. La cybersickness apparaît dès que le framerate chute sous 60 fps. L'optimisation VR est une discipline à part entière.

Métriques cibles (Quest 3 standalone) :

Outils de profiling :

Techniques d'optimisation :

TechniqueGain potentielQuand l'utiliser
LOD (Level of Detail)-30 à -70% polygonsObjets distants
GPU Instancing-50 à -80% draw callsObjets répétés (herbe, arbres, particules)
Occlusion culling-20 à -40% draw callsScènes fermées avec murs
Texture compression-50% VRAMToutes textures
Baked lighting-60% GPUScènes statiques
Foveated rendering-30% GPUCasques avec eye tracking

LOD en Unity :

GameObject
├── LOD Group (component)
│ ├── LOD0 : mesh haute résolution (distance 0–5m)
│ ├── LOD1 : mesh moyen (5–15m)
│ └── LOD2 : mesh basse résolution (15m+) ou culled

Lab 3.1 — Profiling et optimisation

Étapes :

  1. Ouvrir le Unity Profiler sur votre scène VR (N2 ou nouveau projet)
  2. Identifier les 3 draw calls les plus coûteux
  3. Appliquer GPU Instancing sur les objets répétés
  4. Mesurer le framerate avant/après → documenter le gain

Module 4 — IA spatiale et VR générative (2.5h)

Concept

L'IA transforme le pipeline VR en 2025–2026 : les environnements s'adaptent au comportement de l'utilisateur, les personnages VR répondent en langage naturel, et des scènes entières sont générées depuis une description.

Trois axes d'IA spatiale :

1 — Détection d'objets et scène understanding Sur Meta Quest 3, le Scene Understanding SDK détecte les meubles et surfaces physiques de la pièce en temps réel. Cela permet de créer des expériences qui s'adaptent à chaque espace.

2 — Personnages IA conversationnels Stack: LLM (API Claude/GPT) + synthèse vocale + animation procédurale. Le personnage comprend les questions de l'utilisateur et répond en voix naturelle.

Considération : latence réseau → pré-générer les réponses probables ; fallback local si réseau absent.

3 — Génération procédurale d'environnements Des outils comme ShapE (Meta), Point-E (OpenAI) ou Meshy.ai génèrent des assets 3D depuis des descriptions textuelles. Workflows de production : Blender + plugin IA → Unity.

Lab 4.1 — Prototype personnage IA

Étapes (version simplifiée sans casque) :

  1. Créer un personnage statique dans votre scène WebXR ou Unity
  2. Connecter un champ de saisie texte à l'API Claude (clé sandbox) → afficher la réponse dans un bubble speech
  3. Ajouter une animation "thinking" (rotation lente de la tête) pendant l'attente
  4. Tester avec 3 questions : le personnage répond-il de manière cohérente avec le contexte de la scène ?

Module 5 — Accessibilité VR (2.5h)

Concept

La VR inaccessible exclut une part significative du public (problèmes moteurs, épilepsie photosensible, vertigo, déficiences visuelles/auditives).

Checklist accessibilité VR (WCAG 2.1 adapté) :

Confort universel :

Accessibilité visuelle :

Accessibilité auditive :

Accessibilité motrice :

Ressource : https://www.w3.org/TR/WCAG21/

Lab 5.1 — Audit accessibilité

Étapes :

  1. Reprendre votre projet de Niveau 2
  2. Appliquer la checklist (cocher / non-cocher)
  3. Identifier 3 problèmes d'accessibilité
  4. Implémenter 1 correction (ex. sous-titres sur un audio, ou option téléportation)

Module 6 — Recherche avancée : IPQ et ESM (2.5h)

Concept

Au niveau exposition, les tests utilisateurs doivent mesurer non seulement l'utilisabilité (SUS) mais aussi la présence (IPQ) et l'expérience vécue en contexte (ESM).

IPQ — iGroup Presence Questionnaire Mesure le sentiment de présence en VR sur 4 sous-échelles : General Presence, Spatial Presence, Involvement, Realness. Score standardisé, comparaison avec la base de données de référence.

Schubert, T., Friedmann, F., & Regenbrecht, H. (2001). The experience of presence: Factor analytic insights. Presence, 10(3), 266–281. Questionnaire : http://www.igroup.org/pq/ipq/index.php

ESM — Experience Sampling Method L'ESM consiste à interrompre l'utilisateur pendant l'expérience (ou à intervalles réguliers) pour recueillir son état émotionnel et cognitif à chaud. En VR, cela peut se faire via une interface intégrée qui s'affiche toutes les X minutes.

Questions ESM VR minimales :

Protocole de recherche avancée (exposition) :

  1. Pre-test : SUS baseline + profil utilisateur
  2. Session VR : ESM toutes les 5 min (3 questions)
  3. Post-session : SUS final + IPQ complet + interview semi-directif 10 min
  4. Analyse : score IPQ vs baseline + corrélation présence/confort + thèmes qualitatifs

Lab 6.1 — Protocole de recherche pour le projet

Étapes :

  1. Rédiger votre protocole de recherche (1 page) : hypothèses, méthodes (SUS + IPQ + ESM), profil testeurs
  2. Préparer les formulaires IPQ (https://www.igroup.org/pq/ipq/download.php)
  3. Préparer 3 questions ESM adaptées à votre expérience
  4. Recruter 5 testeurs avec profils diversifiés (âge, expérience VR)

Module 7 — Production readiness (2.5h)

Concept

Une expérience de niveau exposition doit fonctionner pendant des heures sans surveillance, être reproductible sur plusieurs machines/casques, et être opérée par du personnel non-technique.

Checklist production :

Stabilité :

Opérabilité :

Accessibilité d'installation :

Documentation technique :

Lab 7.1 — README opérateur

Étapes :

  1. Rédiger le README opérateur de votre projet (< 2 pages) :
  1. Le faire tester par une personne non-technique : peut-elle démarrer l'expérience seule ?

Module 8 — Revue de projet et préparation exposition (2.5h)

Concept

La préparation d'une exposition VR implique des décisions techniques, muséographiques et logistiques qui vont au-delà du code.

Questions à résoudre avant une exposition :

Format de documentation finale :

Lab 8.1 — Préparation à la présentation finale

Étapes :

  1. Préparer la fiche technique de votre projet
  2. Préparer une démo de 3 min (ce que vous montrez à un commissaire d'exposition)
  3. Préparer la grille d'évaluation SUS + IPQ complète pour le projet final
  4. Mettre à jour le README opérateur avec les retours du Lab 7.1

Projet fil rouge — "Expérience VR niveau exposition"

Brief

Créer une expérience VR de niveau exposition — un travail qui pourrait être présenté dans un festival d'art numérique, une galerie ou un espace culturel. Le projet doit démontrer des compétences techniques avancées ET une intention artistique/culturelle claire.

Contraintes

Livrables

  1. Build Unity ou fichier WebXR (fonctionnel sur le matériel de présentation)
  2. Documentation de design (3–4 pages) : intention, concept, personas, décisions d'interaction
  3. Rapport de recherche : protocole, grilles SUS + IPQ, scores, analyse thématique
  4. Rapport d'itération : problèmes P0 résolus, P1 planifiés
  5. README opérateur (≤ 2 pages)
  6. Présentation (10 min) : démo live + analyse des données de recherche + réflexion sur l'exposition

Rubrique d'évaluation

CritèreInsuffisant (1)Satisfaisant (2)Bon (3)Excellent (4)
Architecture techniquePrototype instable ou fonctionnel sur 1 seule plateformeFonctionne, quelques crashesStable, 3 patterns d'interaction, OpenXRStable multi-plateforme, architecture propre, commentée
Qualité d'interactionInteractions non signalées ou peu cohérentes3 interactions fonctionnelles3 patterns distincts, 3 états, feedback richeInteractions fluides, affordances spatiales, cohérence physique
Recherche utilisateurAbsente ou 1 testeurSUS seul, 3 testeursSUS + IPQ, 5 testeurs, scores calculésSUS + IPQ + ESM, analyse thématique, itération documentée
AccessibilitéNon prise en compteChecklist partielle (< 5 items)Checklist complète, 2 corrections implémentéesChecklist complète + mode daltonisme + sous-titres
Production readinessPas de README, crashes fréquentsREADME présent, quelques problèmesREADME opérateur testé, reset fonctionnelChecklist pré-expo, gestion offline, procédure nettoyage
Intention artistiqueInexistante ou décorativePrésente mais non développéeCohérente avec les choix techniquesDialogue fort entre technique et intention, documentation enrichie

Lectures & ressources


Continuer : Hub — Design d'Interaction AR+VRProjet d'exposition ? Prendre rendez-vous — 30 min, gratuit

Formation sur mesure

Workshop intensif (1–2 j) — écoles, studios, musées. Théorie condensée + labs + accompagnement projet.

Prendre rendez-vous (30 min, gratuit) →