L'application de Formation VR est un projet Unity 6 (URP + XR Interaction Toolkit +
XR Hands, multijoueur Netcode for GameObjects). Elle embarque le framework TrainingVR
(Assets/TrainingVR/), pensé pour créer des simulations de formation sans code : un
scénario est un asset de données, joué par un moteur générique.
Simulations déclaratives¶
Une simulation est un SimulationDefinition (ScriptableObject) : une suite d'étapes
(SimulationStep), chacune avec sa consigne et son indice IA. Le SimulationRunner
déroule les étapes et valide la progression via des tâches posées sur les objets de la
scène :
| Tâche | Interaction validée |
|---|---|
GrabTask | saisir un objet |
PlaceInSocketTask | déposer un objet au bon emplacement |
PressButtonTask | presser un bouton |
InspectTask | regarder / examiner un objet |
Toutes sont bâties sur XRI. Pour un nouveau type d'interaction, héritez de la base
TrainingTask et appelez Complete() quand l'action est faite — le runner et l'IA en
profitent sans autre câblage.
Tout ce qui se passe transite par le bus SimulationEvents (étape franchie, objet
saisi…) : il alimente l'assistant IA (tampon des derniers événements) et la télémétrie
envoyée au serveur pour les rapports.
Créer une simulation sans code¶
- Menu Training VR > Nouvelle simulation… : titre, secteur, étapes (consigne + indice IA). L'assistant d'éditeur crée l'asset et, au choix, une station jouable avec des objets provisoires (un par étape) à remplacer par vos modèles.
- Menu Training VR > Créer la scène de démo industrielle : génère une scène complète et rejouable (deux stations — roue automobile, baie serveur —, panneau assistant IA, tablette multijoueur, réseau).
Version bureau (sans casque)¶
Une seule scène sert les deux publics. Au démarrage, PlatformBootstrap détecte un
casque OpenXR actif et arbitre : rig VR, ou rig bureau première personne
(clavier/souris). Le rig bureau pousse l'état de la souris dans un XRRayInteractor en mode
manuel : toutes les tâches XRI fonctionnent sans modification (survol → Inspect, clic →
Grab/PressButton, dépose → PlaceInSocket, UI monde comprise).
- Forcer un mode : champ Forced Mode, ou arguments de lancement
-desktop/-vr. - Build distribuable : menu Training VR > Build bureau (macOS/Windows), verrouillée en
mode bureau via le define
TVR_DESKTOP_BUILD.
Structure du framework¶
Dossier (Assets/TrainingVR/) | Contenu |
|---|---|
Runtime/Core | SimulationDefinition, SimulationRunner, TrainingTask, SimulationEvents |
Runtime/Tasks | Les briques d'interaction XRI |
Runtime/Assistant | Snapshot de scène, client WebSocket, actions IA, panneau UI |
Runtime/Multiplayer | Session NGO, client de salons, avatars réseau, tablette |
Runtime/Platform | Compte Puwapi (IdentitySession), arbitre VR/bureau, rig bureau |
Editor | Générateur de scène de démo, assistant « Nouvelle simulation », build bureau |
Des guides pas-à-pas accompagnent le projet (Assets/TrainingVR/Documentation/01..06) :
prise en main, créer une simulation, ajouter une interaction, assistant IA, multijoueur,
version bureau.
L'app dialogue avec le serveur compagnon
/vr(salons, sessions, assistant) — voir Formation VR — salons, sessions & assistant IA et la Référence — Formation VR.