• Aucun résultat trouvé

Exemple d’implémentations dans des navigateurs UMI3D

Dans le document en fr (Page 90-94)

Figure 4.3 – Articulations du squelettes humain fourni par le capteur

Kinect V2.

4.4

Exemple d’implémentations dans des navigateurs

UMI3D

L’objectif de cette partie est d’illustrer l’usage de notre méthode de suivi de l’utilisateur pour la conception d’un système d’avatars s’adaptant à la qualité des données fournis par les différents supports. De sorte à mieux distinguer les adaptations, nous avons choisis d’adapter l’apparence de l’avatar aux données plutôt que d’adapter son animation. Pour tester le système conçu, nous avons implémenté la fonctionnalité de suivi utilisateur dans les trois navigateurs UMI3D déjà présenté dans le Chapitre 3 (3.3 Étude de cas : co- conception d’un jeu de construction collaborative), à savoir : un ordinateur de bureau proposant une interaction classique avec souris et clavier, un Oculus Rift et ses deux contrôleurs Touch à 6 degrés de liberté, ainsi qu’un Oculus Rift proposant une interaction directe avec les mains grâce à un capteur Leap Motion. Pour l’implémentation du suivi utilisateur pour les différents supports, nous avons sélectionné nos articulations parmi les jointures d’un squelette simplifié semblable à celui du capteur Kinect illustré Figure 4.3.

Ordinateur de bureau Pour l’ordinateur, nous avons associé l’écran à la tête de l’ava- tar, représentée par la caméra dans le moteur de jeu Unity3D et la souris à une main de l’utilisateur. La souris ne représente qu’une seule main car elle ne permet de contrôler qu’un seul pointeur. Le clavier n’est pas représenté car nous considérons qu’il ne permet pas de transmettre un mouvement de l’utilisateur.

Nous avons donc construit un premier squelette constitué d’une tête, d’un tronc, d’un bras diminué pour la main non dominante, et d’un bras complet pour la main dominante

Chapitre 4 – Travaux Préliminaires pour le Suivi des Utilisateurs et l’Animation d’Avatars

Figure 4.4 – Squelette pour un ordinateur de bureau.

(c’est-à-dire qu’il est lui-même composé d’une épaule, d’un bras, d’un coude, d’un avant- bras et d’un poing). Ce squelette est visible dans la Figure 4.4.

Par la suite, nous avons établi des liens physiques entre les parties du corps mises en jeu. Tout d’abord, il nous semblait approprié que le tête et le tronc soient fixes l’un par rapport à l’autre, de même que le tronc et le bras non dominant ce dernier n’étant pas animé. L’ensemble reste alors orienté de manière cohérente avec la caméra lors de des déplacements de l’utilisateur. Ces déplacements seront d’ailleurs issus des déplacements de la caméra du moteur de jeu lors de l’utilisation de l’application.

Nous avons ensuite définis des contraintes physiques pour bras dominant qui est lui mobile. Notre première idée a été d’animer la main avec les mouvements du curseur de la souris. Pour rappel, le bras dominant se compose d’une épaule, d’un bras, d’un coude, d’un avant-bras et d’une main. D’abord, nous avons rendu l’épaule fixe par rapport au tronc. Ensuite, nous avons positionné le bras à la suite cette épaule. Le seul mouvement qui lui est autorisé est la rotation centrée sur l’épaule d’axe parallèle à l’axe de révolution du tronc. Dans le but de maintenir la main dans le champ de vision de l’utilisateur, sa rotation est limitée entre 0 et 115 degrés vers l’intérieur du corps. Le coude est quant à lui placé dans la continuité du bras et fixe par rapport à lui. L’avant-bras est positionné par rapport au coude de la même façon que le bras par rapport à l’épaule, c’est à dire avec une rotation autour du coude à deux degrés de liberté dans une limite de 70 degrés. Nous estimons que ces premières limites imposées permettent d’avoir un premier rendu de mouvement similaire à un corps humain lorsque la main se déplace.

Cet arrangement a toutefois généré plusieurs inconsistances et n’était par ailleurs pas intuitif pour l’utilisateur. Nous avons donc définis une position de repos qui est acti- vée lorsque le curseur de la souris indique un point n’étant pas à la portée du bras de

4.4. Exemple d’implémentations dans des navigateurs UMI3D

Figure 4.5 – Position de repos de la main pour l’ordinateur de bureau.

l’utilisateur (Figure 4.5).

Oculus Rift et contrôleurs 6-D Pour l’Oculus Rift équipé de contrôleurs Touch, la tête étant équipée du casque, il est naturel de l’associer à celle du squelette. De plus, les deux mains étant chacune dotée d’un contrôleur, il est aussi possible de le représenter. Nous obtenons alors un squelette composé d’une tête, d’un tronc et de deux bras complets. On peut voir le résultat à la Figure 4.6.

Concernant la physique de ce squelette, elle est relativement proche de celle du sque- lette de l’ordinateur. Nous avons réutilisé la même disposition et les mêmes contraintes physiques pour les deux bras de ce squelette, en y ajoutant pour les sous éléments bras une rotation possible autour de chaque épaule selon l’axe des deux épaules.

Les mains du squelette sont positionnées en temps réel sur les contrôleurs de l’utili- sateur. Nous avons observé de premiers résultats encourageant sur le suivi des bras du squelette avec cette méthode. Cependant, des incohérences se créent dans l’anatomie du squelette lorsqu’un utilisateur pose ses contrôleurs ou lorsqu’il a une taille légèrement différente de celle du squelette, pouvant générer une déviance de certaines parties pour le reste de la simulation.

Oculus Rift et Leap Motion Enfin, pour l’Oculus avec Leap Motion, la tête est comme précédemment équipée du casque. On la représentera de la même façon pour le squelette de cet équipement. De plus, le Leap Motion est un dispositif similaire à une caméra permettant le suivi des mains d’une ou de plusieurs personnes. Il est donc possible

Chapitre 4 – Travaux Préliminaires pour le Suivi des Utilisateurs et l’Animation d’Avatars

Figure 4.6 – Squelette pour un Oculus Rift & contrôleur 6-D.

Dans le document en fr (Page 90-94)