TP — Avatar et Embodiment en VR
Vue d’ensemble
Dans ce TP, vous explorerez comment les avatars sont créés, animés et incarnés en réalité virtuelle.
Les avatars constituent un élément central des systèmes immersifs. Ils permettent aux utilisateurs de percevoir et d’interagir avec un environnement virtuel à travers un corps virtuel. Cependant, la conception et la calibration des avatars peuvent fortement influencer l’embodiment, le confort, et la perception de l’utilisateur.
Dans ce TP vous allez :
- créer et importer un avatar humanoïde
- l’animer à l’aide du suivi VR
- expérimenter des modifications du corps de l’avatar
- évaluer leur impact sur l’embodiment et l’expérience utilisateur
1 — Création d’un avatar
Créez ou téléchargez un avatar à l’aide de Mixamo.
- Allez sur https://www.mixamo.com
- Sélectionnez un personnage dans la bibliothèque
- Téléchargez le personnage au format FBX
Importer l’avatar dans Unity
- Créez un nouveau projet Unity 3D.
- Importez le modèle FBX de l’avatar dans le projet.
- Glissez l’avatar dans la scène.
Configurer les matériaux et textures
Lors de l’importation de modèles FBX, Unity peut intégrer les matériaux et textures directement dans le fichier du modèle. Il est préférable de les extraire afin de pouvoir les modifier.
- Sélectionnez le modèle de l’avatar dans le panneau Project.
- Dans l’Inspector, ouvrez l’onglet Materials.
- Cliquez sur :
Extract Materials
Extract Textures
- Assignez les matériaux extraits aux éléments de mesh appropriés si nécessaire.
- Assignez les textures extraites aux bons paramètres des matériaux.
- Vérifiez que l’avatar est correctement rendu dans la scène.
2 — Utiliser l’avatar dans une scène VR
Suivez le tutoriel disponible ici :
Unity VR Avatar Tutorial
https://immersive-insiders.com/blog/how-to-animate-your-avatar-for-vr-in-unity
⚠️ Note
Le tutoriel original utilise l’API Ready Player Me, qui a depuis été abandonnée.
Ignorez toutes les étapes liées à Ready Player Me et utilisez à la place l’avatar Mixamo que vous avez importé.
L’objectif de cette partie est de :
- ajouter l’avatar dans une scène VR
- connecter la tête et les mains de l’avatar au casque VR et aux contrôleurs
- observer comment les mouvements de l’avatar suivent les mouvements de l’utilisateur.
3 — Cinématique inverse (Inverse Kinematics — IK)
En réalité virtuelle, les avatars ne disposent généralement pas d’un suivi complet du corps.
La plupart des systèmes VR ne suivent que :
- le casque (HMD)
- le contrôleur gauche
- le contrôleur droit
Cependant, l’avatar possède de nombreuses articulations (épaules, coudes, colonne vertébrale, hanches, etc.).
Pour animer l’ensemble du corps à partir de quelques points suivis, les systèmes VR utilisent la cinématique inverse (Inverse Kinematics — IK).
Cinématique directe vs cinématique inverse
Il existe deux approches principales pour animer des personnages articulés.
Cinématique directe (Forward Kinematics — FK)
En cinématique directe, le mouvement est appliqué articulation par articulation.
Par exemple :
épaule → coude → poignet → main
Chaque rotation influence les articulations suivantes.
Cette approche est couramment utilisée dans l’animation traditionnelle.
Cinématique inverse (Inverse Kinematics — IK)
En cinématique inverse, on connaît la position finale souhaitée d’un membre.
Par exemple :
- la main doit être à la position du contrôleur.
Le système calcule alors automatiquement les rotations des articulations intermédiaires :
position du contrôleur → main → coude → épaule
L’IK permet donc à un corps virtuel de suivre les mouvements de l’utilisateur même avec un suivi limité.
IK dans les avatars VR
Dans la plupart des systèmes VR :
| Dispositif suivi | Partie du corps de l’avatar |
|---|---|
| HMD | tête |
| contrôleur gauche | main gauche |
| contrôleur droit | main droite |
Un solveur IK estime ensuite la position :
- des coudes
- des épaules
- du torse
- parfois des jambes
Cette reconstruction permet à l’avatar de paraître naturel même si seuls quelques points sont suivis.
Exemple simple d’IK dans Unity
Le composant Animator de Unity inclut un système IK intégré.
Exemple :
void OnAnimatorIK(int layerIndex)
{
animator.SetIKPosition(AvatarIKGoal.LeftHand, leftController.position);
animator.SetIKRotation(AvatarIKGoal.LeftHand, leftController.rotation);
animator.SetIKPosition(AvatarIKGoal.RightHand, rightController.position);
animator.SetIKRotation(AvatarIKGoal.RightHand, rightController.rotation);
}
Ce code force les mains de l’avatar à suivre la position des contrôleurs VR.
Expérience
Lors des tests de votre avatar, observez :
- comment les bras bougent lorsque vous levez les mains
- si les coudes se comportent de manière naturelle
- si les proportions du corps affectent la qualité de l’IK
Les modifications corporelles introduites plus tard dans le TP peuvent affecter significativement le comportement de l’IK.
Optionnel — Ajouter un miroir
Voir son avatar à la troisième personne aide à évaluer l’embodiment.
Vous pouvez ajouter un miroir dans votre scène avec le package Unity suivant :
Placez le miroir devant le joueur afin qu’il puisse observer son avatar.
4 — Animation du bas du corps (Optionnel)
Si vous souhaitez aller plus loin, vous pouvez animer le bas du corps de votre avatar.
Suivez le tutoriel :
https://immersive-insiders.com/blog/animating-ready-player-me-avatar-lower-body-for-vr-in-unity
Même si ce tutoriel a été écrit pour Ready Player Me, les étapes devraient rester valides car les avatars Mixamo utilisent également un rig humanoïde.
L’objectif de cette section est de :
- améliorer le réalisme des mouvements de l’avatar
- ajouter une animation de marche
- synchroniser les mouvements du haut et du bas du corps.
5 — Personnalisation de l’avatar et modification du corps
Dans la section précédente, vous avez adapté l’avatar pour qu’il corresponde au corps de l’utilisateur (hauteur des yeux, position de la tête, etc.).
Dans cette section, vous allez modifier volontairement le corps de l’avatar afin d’explorer comment ces changements influencent :
- l’embodiment
- le confort
- la perception du mouvement.
Préparez plusieurs configurations d’avatar en modifiant des paramètres tels que :
Changer l’échelle de l’avatar
avatar.transform.localScale = new Vector3(1.3f, 1.3f, 1.3f);
Modifier la longueur des bras
Exemple :
UpperArm_L scale = 1.4
UpperArm_R scale = 1.4
Modifier les proportions du corps
Variations possibles :
- corps plus large
- corps plus mince
- torse plus court
- tête plus grande
Créer un avatar non humain
Exemples :
- bras extrêmement longs
- tête surdimensionnée
- jambes très courtes
Avatars hybrides
Vous pouvez également expérimenter avec des avatars humanoïdes possédant des caractéristiques non humaines :
- humanoïde avec tête de chat
- corps robotique
- proportions stylisées
L’objectif est d’explorer comment la morphologie de l’avatar influence la perception et l’interaction de l’utilisateur.
6 — Évaluation de l’embodiment
Afin d’évaluer l’impact des modifications de l’avatar, réalisez une petite étude utilisateur.
Testez deux avatars :
- un avatar normal
- un avatar modifié
Les participants doivent expérimenter les deux configurations.
Questionnaire
Les participants évaluent chaque affirmation à l’aide d’une échelle de Likert de 1 à 7.
Embodiment
J’ai eu l’impression que le corps virtuel était mon corps.
Les mouvements de l’avatar semblaient être mes propres mouvements.
Agency
- J’ai eu l’impression de contrôler l’avatar.
Confort
- Les proportions du corps semblaient naturelles.
Discussion
Après l’expérience, discutez :
- quelles modifications d’avatar étaient les plus perturbantes ?
- lesquelles restaient naturelles ?
- comment ces résultats sont-ils liés à la proprioception et à la perception du corps ?
Rapport
Vous devrez remettre un court rapport décrivant votre travail.
Votre rapport doit inclure :
Configurations d’avatar
- description des configurations d’avatar testées
- explication de leur implémentation dans Unity
Résultats du questionnaire
- résumé des réponses des participants
- comparaison entre avatars normaux et modifiés
Discussion
Discutez les résultats en lien avec :
- l’embodiment
- la proprioception
- la perception du corps en réalité virtuelle
Vous pouvez également proposer des explications pour les effets observés.