Animation D'un Squelette (Post-WIMP 2017-2018)
| |||
---|---|---|---|
Projet | Projet d'interactions post-wimp | ||
Année | 2017-2018 | ||
Étudiants | Mégane Bati (MMIS - IRVM) Matthieu Bélot (MMIS- IRVM) | ||
Encadrant | François Bérard |
Sommaire
Introduction
Motivations
Le squelettage (ou rigging) est un procédé en synthèse d'images 3D qui munit un objet à animer d'un squelette mobile qui déformera sa maille de surface (mesh).
Une fois cette étape de rigging effectuée, le personnage peut être animé grâce aux mouvements du squelette uniquement. Aujourd’hui, les animateurs utilisent principalement des logiciels tels que Maya ou Blender pour donner vie à ces squelettes. Néanmoins, ces logiciels présentent des interfaces 2D, alors que l’objet d’intérêt est en 3D. Cette dimension manquante limite l’utilisateur autant pour la visualisation dans l’espace que pour la manipulation du squelette.
Dans ce cadre, l’un des principaux besoins pour les artistes est de manipuler les points de contrôle du squelette aisément et directement. L’objectif est d’obtenir une visualisation et manipulation de l’objet dans l’espace, ainsi qu’une immersion dans un environnement 3D où l’objet de son travail est matérialisé.
Objectif
Le but de ce projet est donc de proposer aux animateurs une nouvelle forme d’interaction leur permettant de manipuler un squelette virtuel. Ce public étant professionnel, l’interaction doit être précise, rapide et permettre une utilisation longue du dispositif sans générer de fatigue musculaire. La prise en main rapide du dispositif ne représente donc pas un objectif dans le cadre de cette interaction.
Interaction
Matériel utilisé
Pendant l’interaction, l’utilisateur est muni d’un écran d’ordinateur où se présente la scène 3D avec le squelette qu’il souhaite manipuler, un clavier d’ordinateur et le bras haptique Phantom.
Le Phantom est un bras motorisé appliquant des retours de force sur la main de l'utilisateur, lui permettant ainsi de sentir des objets virtuels. Il reproduit les sensations réelles du toucher à mesure que l'utilisateur manipule les objets 3D à l'écran. Le bras est doté d’un stylet qui comporte lui-même deux boutons.
L’écran d’ordinateur permet de visualiser la scène et l’objet à manipuler. La baguette représente la position virtuelle du bras dans la scène.
Le clavier permet de gérer le point de vue de la scène et d’activer certaines fonctionnalités.
Interactions disponibles
Gérer le point de vue de la scène
L’utilisateur peut changer son point de vue de la scène grâce au clavier :
1 - Rotation de la caméra vers la gauche (lacet)
2 - Rotation de la caméra vers la droite (lacet)
3 - Avance de la caméra
4 - Recul de la caméra
5 - Montée de la caméra
6 - Descente de la caméra
La proximité de ces touches permet de pouvoir gérer la caméra en gardant la main dans la même zone.
Fonctionnement des contrôleurs
Chaque membre du squelette est muni d’un contrôleur rouge et d’un contrôleur bleu. Le déplacement et la rotation de ces contrôleurs permettent de manipuler le squelette et le placer dans la position souhaitée. Le maillage ne peut être modifié sans agir sur le contrôleur associé.
Le contrôleur rouge permet de placer la position finale et l’inclinaison de l’extrémité du membre, et le contrôleur bleu permet de déterminer l’inclinaison du membre.
Par exemple, pour le bras gauche du squelette, la position du contrôleur rouge associé permet de donner la position de la main gauche dans la scène. Une rotation du contrôleur rouge permet de tourner la main selon l’inclinaison souhaitée. Le contrôleur bleu permet quant à lui de placer le coude gauche pour cette position de main donnée.
En plus des membres du squelette, l’utilisateur peut changer la rotation de la tête du personnage en sélectionnant le contrôleur rouge associé et le faisant tourner grâce au stylet.
Un dernier contrôleur, placé à l’intérieur du maillage, déplace la totalité du maillage (ainsi que tous ses contrôleurs).
Une vidéo illustrant le fonctionnement des contrôleurs est disponible ici (vidéo originale de Jose Díaz).
Manipulation des contrôleurs
L’utilisateur peut sélectionner les contrôleurs grâce au bras Phantom. Il déplace son stylet pour toucher un contrôleur. Au contact, un retour de force est effectué par le bras et le contrôleur devient vert. L’utilisateur peut alors sélectionner le contrôleur avec le Bouton 1 du stylet, et en restant appuyé, peut déplacer et tourner le contrôleur.
Déplacement du policier
Le policier peut être déplacé dans la scène en sélectionnant puis déplaçant son buste (lorsque le Bouton 1 est maintenu).
Visualisation du modèle
Si les contrôleurs gênent l’utilisateur pour la visualisation du personnage, il peut les cacher avec la touche 0 du clavier, et les réafficher par la suite avec cette même touche.
Annuler / Refaire une action
L’utilisateur peut annuler la dernière action effectuée sur le squelette en appuyant sur le Bouton 2 du stylet, et refaire l’action annulée en appuyant sur Ctrl + Bouton 2.
L’utilisateur peut aussi revenir à la position initiale avec la touche Espace du clavier.
Implémentation
Afin d’implémenter un prototype de l’interaction décrite précédemment, nous avons utilisé le moteur Unity. Beaucoup d’éléments déjà disponibles dans l’Asset Store de Unity ont été récupérés pour réaliser le projet, notamment :
- des modèles articulés
- un script de cinématique inverse pour manipuler un squelette articulé à partir de contrôleurs
- un script pour la mise en place et l’utilisation du Phantom pour une scène
Le script de cinématique inverse et un paramétrage manuel doivent être appliqués sur chaque membre du personnage à animer.
De plus, les scripts mis à disposition dans l’Asset Store ont été modifiés pour pouvoir les adapter à nos besoins et sont regroupés dans une même scène afin d’établir l’interaction souhaitée.
En plus de ces éléments, les autres fonctionnalités présentes (contrôleurs devenant verts à la sélection, contrôleurs reliés aux articulations par des lignes, gestion de la caméra, undo/redo, …) ont été implémentées par les membres de l’équipe afin d’améliorer l’interaction.
Évaluation de l'interaction
Exercice
Des exercices sont mis en place afin d’évaluer l’interaction créée. L’évaluation repose principalement sur une comparaison entre l’interaction créée et l’interaction classique à la souris pour l’animation de personnages.
Le but de l’exercice est de reproduire la position d’un modèle en manipulant les points de contrôle d’un modèle manipulable. Trois positions différentes existent et doivent être reproduites successivement. Le modèle du policier peut être trouvé dans l’Asset Store de Unity ici. L’exercice est évalué sur la rapidité et la précision d’exécution.
L’exercice avec le bras Phantom se fait grâce à l’interaction décrite plus haut. Pour l’exercice à la souris, l’utilisateur utilise l’Edit Mode de Unity, qui présente une interface très semblable à celle que l’on peut retrouver dans les logiciels d’animation 3D tels que Maya ou Blender. Pour plus d’informations, à ce propos, Unity fournit une documentation sur la manipulation d’objets et la gestion de la caméra dans l’Edit Mode. Comme pour l’interaction avec le bras haptique, afin de manipuler le squelette, il sélectionne et déplace des contrôleurs, mais cette fois-ci à la souris.
Un chronomètre mesure le temps mis pour reproduire chaque position. Une erreur sur les positions et les rotations est aussi calculée afin de mesurer la précision de l’utilisateur.
Dans le cadre de l’évaluation de l’interaction, l’échantillon de test a été séparé en deux groupes. Le premier a d’abord réalisé l’exercice à la souris puis avec le bras Phantom, le second a fait l’inverse.
Protocole
Le protocole d’évaluation est le suivant :
Etape | |
---|---|
1 | Le projet et le cadre général du projet sont présentés au testeur par un membre de l’équipe. |
2 | Le principe de l’animation par keyframes, et du fonctionnement des articulations et contrôleurs sont ensuite expliqués. |
3a | Une démonstration de l’interaction à la souris est effectuée par une personne de l’équipe. Il lui explique les interactions possibles. |
3b | Le testeur effectue un entraînement pour pouvoir prendre l’outil en main. L’entraînement prend fin quand l’utilisateur se sent assez à l’aise avec celui-ci. |
3c | L’exercice est effectué à la souris pour les 3 modèles. Un membre de l’équipe reste à proximité si le testeur a des questions ou oublie les touches à utiliser. |
4a | Une démonstration de l’interaction avec le bras Phantom est effectuée par une personne de l’équipe. Il lui explique les interactions possibles. |
4b | Le testeur effectue un entraînement pour pouvoir prendre l’outil en main. L’entraînement prend fin quand l’utilisateur se sent assez à l’aise avec celui-ci. |
4c | L’exercice est effectué avec le bras Phantom pour les 3 modèles. Un membre de l’équipe reste à proximité si le testeur a des questions ou oublie les touches à utiliser. |
5 | Un entretien est effectué afin de récupérer les retours du testeur sur les interactions qu’il a effectué. |
Les étapes 3 et 4 du protocole peuvent être intervertis, selon le groupe auquel appartient le testeur.
Questions des entretiens
Les questions des entretiens sont orientées vers ces thématiques :
Pour l’interaction avec le Phantom :
- le ressenti au niveau de la précision
- le ressenti au niveau de la rapidité
- l’aisance
- la gestion de la caméra
- le plaisir procuré
- le confort et l’installation
- la fatigue subie suite à l’interaction.
Pour l’interaction classique avec la souris :
- le ressenti au niveau de la précision
- le ressenti au niveau de la rapidité
- l’aisance
- la gestion de la caméra
- le plaisir procuré.
Résultats
Rapidité et précision
Les 3 personnes ayant effectué d’abord l’exercice avec le bras puis la souris sont nommées par la suite P1, P2, et P3. Celles qui ont fait l’inverse sont nommées P4, P5 et P6. Ci-dessous les performances réalisées par chacune d’entre eux. Les résultats présentés sont une moyenne des temps et des erreurs sur les trois modèles à effectuer.
Concernant le bras Phantom :
P1 | P2 | P3 | P4 | P5 | P6 | |
---|---|---|---|---|---|---|
Temps | 03:29 | 02:27 | 03:03 | 03:17 | 02:31 | 03:19 |
Erreur position | 0.67 | 0.73 | 0.86 | 0.71 | 0.59 | 0.60 |
Erreur rotation | 342.00 | 353.51 | 469.49 | 436.91 | 328.54 | 250.77 |
Concernant la souris :
P1 | P2 | P3 | P4 | P5 | P6 | |
---|---|---|---|---|---|---|
Temps | 06:00 | 02:02 | 02:04 | 03:00 | 05:39 | 04:54 |
Erreur position | 0.70 | 0.59 | 1.19 | 0.78 | 0.73 | 0.49 |
Erreur rotation | 355.45 | 363.33 | 513.77 | 332.76 | 437.13 | 266.05 |
Le tableau ci-dessous compare les temps et les erreurs des deux interactions, en effectuant un rapport des données mesurées avec le bras Phantom sur celles avec la souris. Un ratio inférieur à 1 signifie que l’utilisateur a été plus efficace avec le bras Phantom pour le critère donné.
P1 | P2 | P3 | P4 | P5 | P6 | Moyenne | Variance | |
---|---|---|---|---|---|---|---|---|
Temps | 0.58 | 1.20 | 1.48 | 1.10 | 0.45 | 0.67 | 0.91 | 0.17 |
Err. pos. | 0.95 | 1.24 | 0.72 | 0.91 | 0.80 | 1.23 | 0.98 | 0.05 |
Err. rot. | 0.96 | 0.97 | 0.91 | 1.31 | 0.75 | 0.94 | 0.98 | 0.03 |
On observe globalement que trois personnes ont été beaucoup plus rapides avec le bras qu’avec la souris, que deux personnes ont été un peu plus lentes, et une beaucoup plus lente. En effectuant une moyenne, le groupe de test a été plus rapide avec le bras Phantom.
En ce qui concerne les erreurs sur les positions et les rotations, nous pouvons observer qu’elles sont sensiblement les mêmes sur les deux interactions.
Les résultats bruts des performances peuvent être trouvés ici Fichier:Performances.pdf.
Néanmoins, ces chiffres sont peu révélateurs sur ce que l’on souhaite réellement mesurer. En effet, nous visons un public qui aurait le temps d’acquérir de l’expérience avec le bras haptique. Ce qui nous importe n’est donc pas l’immédiateté de la prise en main mais la rapidité et la précision acquise après celle-ci. Or, les testeurs n’avaient aucune expérience avec le bras haptique, et au contraire, une grande expérience à la souris. Il faudrait donc effectuer l’évaluation sur des testeurs qui auraient une expérience importante avec le bras haptique.
Réponses des entretiens
Nous présentons ici un résumé des réponses obtenues pour chaque thématique présente dans l’entretien.
Evaluation | Retours pour le bras haptique |
---|---|
Ressenti précision | La plupart des testeurs sont satisfaits de la précision. Néanmoins, certains ont relevé le fait que l'interaction est moins précise qu'avec la souris parce que trop de degrés de libertés sont accessibles simultanément et la main humaine n'est pas assez stable pour gérer tous ces degrés de liberté. |
Ressenti rapidité | Tous les testeurs relèvent un grand potentiel de rapidité d'utilisation pour cette interaction, puisque les rotations et les translations peuvent se faire en même temps, dans tous les axes possibles. Néanmoins, certains éprouvent le besoin d'un entraînement beaucoup plus conséquent pour acquérir cette rapidité. |
Aisance |
La plupart se sont sentis à l'aise très rapidement et ont trouvé les mouvements intuitifs. Cependant, certains ont ressenti des difficultés à effectuer des rotations par inclinaison du stylet : le poignet humain se bloque et ne permet pas d'effectuer des rotations aisément dans tous les axes et tous les angles. De plus, une personne a eu du mal à appréhender les mouvements dans l'espace avec le stylet car les mouvements étaient 3D mais le retour visuel à l'écran était en 2D. Pour cette même personne, des mécanismes appris avec la souris ont été un frein pour appréhender l'espace (mouvement vers le fond avec la souris → curseur qui se déplace vers le haut ; mouvement vers le fond avec le bras haptique → pointeur qui se déplace en profondeur de la scène). |
Gestion de la caméra | La gestion de la caméra était satisfaisante pour la plupart des testeurs. Certains soulignent toutefois qu’ils ne parvenaient pas toujours à obtenir le point de vue qu'ils désiraient avec les commandes mises à disposition. |
Plaisir procuré | Tout le monde s’est beaucoup amusé. |
Confort et installation | Tous les testeurs ont été bien installés sauf un, qui était le seul qui n’a pas posé son coude sur la table. |
Fatigue subie suite à l’interaction | Les rotations du poignet peuvent rapidement procurer de la fatigue. En effet, quand un travail de précision est requis, les muscles non posés sont fortement sollicités, ce qui fatigue l’utilisateur. Pour les personnes qui ne posaient pas leur coude sur la table, une douleur au niveau du biceps était ressentie. |
Evaluation | Retours pour la souris |
---|---|
Ressenti précision | Il y a parmi les réponses deux écoles opposées : ceux qui ont senti qu'ils pouvaient être très précis avec la souris, et ceux au contraire qui n'ont pas réussi à être précis. Ceux qui n'ont pas réussi à être précis l’expliquent par leur difficulté à gérer les rotations. |
Ressenti rapidité | Plusieurs personnes trouvent que l'interaction à la souris est plus longue, car ils ont conscience que le potentiel de précision est plus important. D'autres pensent que, du fait que la souris est plus précise, ils atteignent plus rapidement les positions souhaitées. Enfin, d'autres soulignent que l'entraînement et l'expérience jouent beaucoup sur la rapidité. |
Aisance |
Plusieurs ont eu du mal à utiliser l'interaction, et un entraînement beaucoup plus long leur aurait été nécessaire. Une personne a notifié que selon l'angle de la caméra, il est difficile de faire la commande voulue parce qu'il est difficile de saisir certains axes. |
Gestion de la caméra | Les utilisateurs ont trouvé la gestion de la caméra satisfaisante. |
Plaisir procuré | Presque tous les testeurs ont vite éprouvé un désintérêt pour l'interaction à la souris et considéraient l'interaction comme un exercice purement formel. Seule une personne s'est vraiment amusée à la souris, profitant de la minutie procurée. |
Problèmes rencontrés
Nous avons rencontré quelques difficultés lors de la mise en place de l’exercice à la souris. En effet, toutes les fonctionnalités (retour en arrière, affichage / masquage des contrôleurs par exemple) devaient être disponibles à la souris pour pouvoir comparer cette interaction avec le bras haptique. Cet exercice se déroulait dans l’Edit Mode, ce qui est peu courant sous Unity. La documentation est plus fournie sur le Game Mode puisque ce logiciel est principalement destiné à créer des jeux. Cela ne nous a toutefois pas empêché d’implémenter l’exercice à la souris.
Conclusion
Pour conclure, l’interaction post-WIMP basée sur le bras haptique offre une nouvelle maniabilité à l’utilisateur, et peut convenir à l’animation de personnages. Néanmoins, l’entraînement apparaît comme un critère décisif dans l’efficacité de prise en main de l’outil. De plus, cette interaction présente des défauts qui doivent être corrigés. Sans cela, la souris reste un outil favori pour l’animation. Les résultats de l’évaluation révèlent tout de même des perspectives très intéressantes pour l’interaction.
Une première amélioration intéressante consisterait à rejouer la scène créée en interpolant les différentes positions clés sauvegardées par l’utilisateur. Elle ne concerne pas le coeur de l’interaction même mais offrirait une bonne illustration du but de ce projet. Cette animation pourrait être contrôlée à partir d’une frise chronologique contenant les keyframes comme le propose le logiciel Maya.
Une autre amélioration possible pour l’interaction est un pilotage de la caméra différent de celui dont nous disposons actuellement (clavier). Une première solution est de permettre cette gestion avec le bras Phantom après l’activation d’une touche ou d’un bouton. Une seconde solution serait une visualisation du squelette en réalité virtuelle, ce qui permettrait une meilleure immersion dans la scène. Nous avons réalisé quelques tests avec l’Oculus Rift, mais une étude plus approfondie sur gestion de la caméra devrait être effectuée.