Création par croquis de personnages animés - Ensiwiki

Transcription

Création par croquis de personnages animés - Ensiwiki
Rapport IRL 2012
Aurélie Lavanant
18 mai 2012
Création par croquis de
personnages animés
Tutrice :
Marie-Paule Cani
Équipe IMAGINE
1
Table des matières
1 Introduction
1.1 Cadre du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
4
2 Etat de l’art
2.1 Travaux de recherche autour du sujet . . . . . . . . . . . . . . . . . . . .
2.2 Travaux effectués au sein de l’équipe IMAGINE . . . . . . . . . . . . . .
5
5
7
3 Repositionnement dans l’espace d’un dessin
3.1 Problème . . . . . . . . . . . . . . . . . . .
3.2 Notre idée : utiliser la symétrie . . . . . . .
3.3 Mon algorithme . . . . . . . . . . . . . . . .
3.4 Limites et pistes d’amélioration . . . . . . .
.
.
.
.
8
8
9
10
11
4 Conclusion
4.1 Résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
12
12
12
2
de
. .
. .
. .
. .
personnage
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1.1
Introduction
Cadre du projet
Dans un dessin animé ou une bande dessinée, les personnages sont représentés en
mouvement. Ils bougent, se déplacent et tournent. Le cerveau du spectateur et du lecteur
analyse les images de plusieurs vues du personnage. À partir de son interprétation du
modèle, il est capable de se représenter le personnage sous tous les angles.
Cependant, dessiner de manière réaliste certaines positions est difficile. Notamment
les "raccourcis", postures où des parties du personnage sont presque alignées avec le point
de vue. Dans la figure 1 ci dessous, on a approximé un squelette simplifié. On voit bien
la grande différence de longueur entre chaque partie des bras, ainsi que la différence de
largeur. Le style "cartoon" a tendance à accentuer cet effet pour être plus percutant.
On peut imaginer reconstruire un squelette 3D à partir d’une simple vue 2D en faisant
des hypothèses sur sa symétrie.
Figure 1 – Illustration des raccourcis avec un dessin "cartoon".
L’idée de ce sujet de recherche est de pouvoir in fine proposer un outil pour modifier
facilement la posture d’un personnage dessiné. Il permettrait aussi aux animateurs traditionnels d’utiliser les informations contenues dans deux positions assez proches. Et ainsi
d’obtenir des guides pour les nombreuses images non-clefs mais nécessaire à la fluidité du
dessin animé (in-betweening).
La démarche suivie est de reconstituer un squelette du personnage dans l’espace. On
aura ensuite la possibilité de faire pivoter la vue et/ou de modifier la posture, avant
de reconstituer une nouvelle image 2D. Sous réserve qu’il n’y ait pas de changement de
topologie trop important, on pourra plaquer les textures d’origine légèrement modifiées
sur cette nouvelle image.
Mon sujet d’IRL s’inscrit dans la ligne de recherche de l’équipe IMAGINE, commune
à l’INRIA et au laboratoire Jean Kuntzmann. IMAGINE est l’accronyme de "Modélisation et animation intuitives pour le graphique interactif et les environnements narratifs".
Un des objectifs de cette équipe est de rendre la création en 3D intuitive et à la portée
de tous. Un autre est de fournir aux artistes infographistes des outils répondant à leurs
attentes.
3
Durant mon stage, un autre étudiant travaillait sur un sujet proche, inspiré de la
même idée de départ. Il était encadré par un autre chercheur de l’équipe. Cependant, les
orientations que nous avons prises sont radicalement différentes.
(a) graphe d’entrée
(b) résultat, vue 1
(c) résultat, vue 2
Figure 2 – Résultat de l’algorithme
1.2
Remerciements
Je tiens à remercier Marie-Paule Cani, ma tutrice, responsable de l’équipe IMAGINE
pour le temps qu’elle a pu dégager pour m’encadrer et me guider. Je voudrais aussi
remercier Maxime, l’ingénieur chargé de convol, pour sa patience pour installer le logiciel,
ainsi que l’ensemble de l’équipe pour leur gentillesse.
4
2
2.1
Etat de l’art
Travaux de recherche autour du sujet
Exploiter les plans de symétries
Plusieurs travaux de recherche utilisent les plans et les axes de symétrie sur des meshes.
L’article "Folding meshes : Hierarchical mesh segmentation based on planar symmetry"
[5] présente une structure pour compresser la représentation d’un mesh en connaissant
les plans de symétrie maximaux de l’objet. Ils insistent sur l’importance de la symétrie,
surtout planaire, pour la perception humaine, qui permet de classer et de reconstituer les
formes. En plus de conserver les informations de symétrie, ils stockent les légers écarts
présent pour retrouver exactement le mesh de départ.
L’article "Symetrisation" [3] traite de la symétrisation d’ensemble de points 2D et 3D,
pour reconstituer un modèle idéal à partir de données obtenu par scanner volumique ou
par interface "sketch-based". Ce système permet d’éviter aux artistes de retoucher entièrement leur modèle à la main. Il leur permet aussi de trouver une posture intermédiaire
entre deux poses, bien que le mesh obtenu dépende beaucoup des correspondances entre
les deux modèles, ce qui peut conduire à ne pas trouver de position intermédiaire satisfaisante.
Bien que ces articles ne traitent pas directement de mon sujet, ils exploitent la symétrie
des formes 3D pour reconstruire des modèles 3D "idéaux", ou compresser les informations.
Ceci confirme notre hypothèse de départ d’utiliser la symétrie pour obtenir des informations en 3D.
Utilisation et déformation de textures
"TexToons : Pratical Texture Mapping for Hand-draw Cartoon Animations", [7]. utilise
les techniques de texture mapping du graphisme 3D aux images 2D pour faciliter l’application de textures par les artistes en minimisant leurs efforts. Leur algorithme transfère
les textures d’une image à l’autre, sous réserve qu’elles soient assez douces.
Dans l’article "As-Killing-As-Possible Vector Fields for Planar Deformation" , [6] l’objectif est de minimiser les distorsions induites par les déformations de vue employées dans
les dessins animés.
Ces deux articles sont une extension possible de mon travail. Ils permettent d’envisager des techniques pour plaquer des textures et des formes sur la nouvelle position du
squelette.
Passager d’une image de 2D en 3D
L’article de la bibliographie se rapprochant le plus de mon sujet de recherche est "Structured Annotations for 2D-to-3D Modeling" [2]. Ces chercheurs ont développé un logiciel
permettant à un utilisateur de faire un dessin en 2D et, en ajoutant des informations
complémentaires, de créer un modèle 3D.
5
Leur observation de départ est qu’il est difficile pour les novices de créer un modèle 3D
à partir de logiciels de type sketch-rotate-sketch (dessin-rotation-dessin). En effet, ce type
d’interface réclame un ensemble de dessins cohérent entre toutes les dimensions. L’idée
originale de cette équipe est de créer une grammaire dessinée, qui permet de simplifier
la mise dans l’espace d’une image 2D selon une unique vue. Ce modèle se base sur des
primitives modifiables facilement et des annotations pour signaler les lignes de même
taille, les angles similaires et la symétrie.
Seules les informations ajoutées par l’utilisateur sont utilisées, l’image de base pouvant être incohérente.
Leur système, à base d’ellipsoïdes et de cylindres étendus permet à l’utilisateur de créer
les primitives qui vont composer l’image. Il peut modifier les formes de base (diamètre,
orientation). S’ajoutent ensuite des informations complémentaires qui permettent de les
positionner dans l’espace. Cette approche permet de construire des modèles 3D assez
complexe, basés sur des primitives simples.
Cependant, bien que paraissant aisé à mettre en œuvre, l’utilisateur doit apprendre à
maîtriser les annotations pour obtenir un résultat. Il doit, à partir de son image de base,
préciser de lui-même toutes les informations importantes pour obtenir un modèle dans
l’espace.
Résumé
Les deux premiers articles présentés précédemment insistent sur l’importance de la
symétrie dans la perception humaine et la reconstitution de formes. Les deux articles
suivants, résumés succinctement, évoquent des techniques pour appliquer et déformer des
textures entre deux dessins. Le dernier article utilise le même concept de départ que nous,
utiliser une seule image 2D pour récuperer des informations 3D. Mais son objectif est de
créer un modèle 3D alors que le notre est d’obtenir une nouvelle position du squelette en
deux dimensions.
6
2.2
Travaux effectués au sein de l’équipe IMAGINE
Mon introduction à la recherche s’inscrit dans la continuité d’autres travaux de l’équipe
IMAGINE. L’équipe a développé un logiciel qui utilise des croquis pour dessiner en 3D
(sketch-based interface), convol. Un partie des travaux de effectués se basent sur ce logiciel.
La première version développée s’appelle Matiss. Elle est présentée dans l’article [1]. À
partir de traits et de forme pleines, sans réserve de topologie. Ils construisent de manière
implicite les surfaces de convolution correspondante. Au départ, cela permet de créer
un modèle 3D de façon intuitive. Au cours leurs travaux de recherche, des membres de
l’équipe se sont basés sur le logiciel pour proposer des extensions.
Figure 3 – Capture d’écran de convol avec un squelette de personnage.
Dans sa thèse [4], faite au sein de l’équipe, Adeline Pihuit a proposé une nouvelle
manière d’enseigner l’anatomie. Elle a utilisé le logiciel et y apporté sa contribution
(2ème partie). Son approche de la modélisation d’organes se base sur les plans de coupe,
et leur reconstruction en 3D.
Un autre TER sur un sujet assez proche à été effectué par Laura Peythieux en 2010.
Elle a pu continuer son travail de recherche dans le laboratoire de Michiel von de Panne
à l’UBC, à Vancouver. En utilisant des images de dinosaures de profil et en traçant le
contour, elle interprétait les différentes parties (pattes, tête, queue, corps). Elle pouvait
ensuite reconstruire l’animal en 3D.
Son travail se base sur les contours du dinosaure, contrairement au mien. Sa détection
des membres ne permet que de reconstruire un squelette absolument symétrique.
7
3
Repositionnement dans l’espace d’un dessin de personnage
3.1
Problème
Pour dessiner un personnage tendant le bras vers le lecteur, il faut beaucoup de travail
et d’habitude. Les raccourcis permettent de représenter le corps selon la perspective mais
ils sont difficiles à mettre en oeuvre.
Une solution serait d’obtenir un squelette 3D à partir du dessin, de lui donner la
bonne position et de tourner autour pour récupérer des guides qui aideraient l’artiste.
Les méthodes décrites dans l’article [7] et [6] permettraient de plus de conserver les
textures d’une image sur l’autre.
Le problème inhérent à cette solution est qu’il n’existe pas actuellement de moyen
simple de représenter un corps en 3D à partir de croquis. Il faut passer par un travail
d’infographie à partir d’esquisses de plusieurs vues pour reconstituer le modèle, ce qui
est très contraignant ou par une grammaire pour préciser toutes les informations nécessaires(cf [2]).
Figure 4 – Illustration des raccourcis avec un dessin "cartoon" et son squelette.
8
3.2
Notre idée : utiliser la symétrie
Nous avons comme objectif d’obtenir de manière rapide une représentation 3D du
squelette du personnage. Grâce à Convol, le logiciel développé par l’équipe IMAGINE,
on obtient facilement le squelette d’un dessin 2D. On considère que le dessin d’entrée
représente un personnage anthropomorphe. On fait donc l’hypothèse que ce squelette est
symétrique par rapport à sa colonne vertébrale, et qu’il est donc possible de récuperer les
informations perdues lors de la projection.
En effet, les membres d’un vertébré s’articulent autour de sa colonne. Ils sont répartis
par nombres pairs, comme sur la figure 4. Les membres attachés au même niveau sur
la colonne ont des caractéristiques semblables. Par exemple, à moins de considérer des
altérations graves du corps, les bras d’une personne ont la même longueur et se plient
selon des angles semblables.
Cependant, dès que les membres ne sont plus dans le plan orthogonal au point de
vue, on applique une projection qui modifie le rapport entre les différentes parties du
squelette. Dans notre cas, l’information de la longueur du membre ainsi que son écart au
reste du corps, qui nous permettrait un passage en 3D, est perdue, comme par exemple
sur l’image 4. On voit bien l’écart de longueur (exagérée dans le cas de ce dessin) entre
les bras. De plus, cette longueur correspond à la taille réelle du membre multipliée par le
cosinus de l’angle entre le plan où il se trouve et le plan du dessin.
Le principe est de parcourir l’ensemble du graphe 2D pour grouper les membres ayant
la même origine. On estime qu’ils sont en nombre pair, le long de la colonne, et que les
membres appartenant au même groupe partagent leurs caractéristiques. À partir de ces
informations, en supposant qu’on a au moins un membre de chaque groupe dans le plan
de vue, on peut construire un squelette 3D à partir d’une seule vue 2D.
9
3.3
Mon algorithme
Pour simplifier le problème, j’ai travaillé à partir de personnages humains. Le principe
de l’algorithme est le suivant :
(a) graphe d’entrée
(b) première itération
(c) deuxième itération
Figure 5 – Squelette remis en 3D grace à l’algorithme
1. Repérer la tête (extrêmité haute de la colonne)
2. Pour chaqu’un des points de la colonne :
– Calcul de l’axe courant, déterminé par le point courant (C) et celui qui le précéde
dans la colonne (P).
– Trouver le point suivant (S), c’est-à-dire celui qui minimise l’angle entre l’axe
courant et l’axe entre lui-même et P. S’il n’y a pas de suivant, on atteint une
extrêmité, le parcour est terminé.
– Si C à un nombre pair de voisins, on les parcourt individuellement pour stocker
les membres. Ce groupe de membre est référencé par son point d’attache à la
colonne, C. (cf 5b)
– Si le nombre de voisin est impair, on applique le même traitement mais dans ce
cas on sort de la boucle. Le parcours est supposé se terminer.(cf 5c)
3. On fait cette fois un parcours de la colonne déjà calculée et stockée. Pour chaque
groupe de membres :
– On ajuste le nombre d’articulations s’il n’est pas égal.
– On récupère les longueurs maximum pour chaque morceau de membre.
– En adaptant le sens des angles à la position du groupe de membres (jambes ou
bras), on peut replacer les membres ayant subis une projection dans l’espace.
10
3.4
Limites et pistes d’amélioration
Pour l’instant, nous faisons des hypothèses assez fortes sur le graphe d’entrée. Il ne
doit pas y avoir de boucles, la tête doit être facilement repérable et pour chaque ensemble
de membres, on peut récupérer les valeurs réelles pour chaque tronçon. Cette dernière condition est la plus faible car un des objectifs est que l’algorithme "apprenne" les longueurs
réelles des membres au fur et à mesure qu’on l’applique sur les représentations d’un même
personnage.
La gestion des boucles et des intersections (membres qui passent devant ou derrière la
colonne) devait être implémentée avant la fin du semestre. De même, il faudrait pouvoir
rendre la lecture du graphe initial plus robuste, pour pallier ses défauts (points dédoublés ou points trop proches). C’est un élément important pour élargir les possibilités des
utilisateurs, qui risquent de ne pas toujours vouloir utiliser une silhouette anthropomorphique.
L’implémentation de l’article [7] permettrait d’obtenir une image texturée cohérente à
partir d’une image de base et du déplacement du squelette. Les textures seraient plaquées
de façon réaliste sur le personnage, de manière à pouvoir l’animer.
Une autre amélioration intéressante serait d’utiliser deux dessins d’un même personnage dans des positions assez proches. On pourrait ainsi interpoler les deux squelettes et
obtenir des guides pour toutes les images d’in-betweening.
11
4
4.1
Conclusion
Résumé
L’objectif de ce travail de recherche était de réfléchir sur un sujet vaste : extraire des
informations 3D dans un dessin 2D pour en obtenir une vue différente. Les différents
articles lus sur ce sujet nous ont montrés que l’angle avec lequel nous l’avons abordé
était assez éloigné de ce qui s’est fait jusqu’à présent, mis à part l’article [2], où il faut
apprendre une nouvelle grammaire.
Notre approche est basée sur la connaissance supposée de la symétrie du dessin. Pour
nos tests, nous nous sommes arrêtés à des squelettes humanoïdes. En effet, la majorité
des personnages principaux de dessins animés ont un squelette approchant. Ceci nous
permet de retrouver la distance par rapport au corps et la taille réelle des membres.
Le résultat de cet IRL sera intégrée au logiciel développé par l’équipe IMAGINE. Des
améliorations seront apportées, pour étendre cet algorithme à plus de situations et en
faire un outil intuitif de passage d’une image en deux dimensions à un modèle en trois
dimensions, ou entre deux vues d’un même personnage dessiné.
4.2
Bilan
Mon objectif en choisissant l’Introduction à la Recherche en Laboratoire ce semestre
était de me faire une idée plus précise de la recherche en informatique graphique. J’hésite
à faire une thèse dans ce domaine après mon cursus à l’ENSIMAG et je voulais découvrir
l’ambiance d’une équipe de recherche.
Mes après-midi à l’INRIA étaient assez longues, de 14h à 19h en moyenne mais j’ai
beaucoup apprécié d’y travailler. J’ai pu suivre le travail des autres étudiants lors de
réunions d’équipe.
L’une des attentes pour ce projet était de l’intégrer à leur logiciel, convol. N’ayant
pas réussi à l’installer dans un premier temps, j’ai entièrement développé mon algorithme
de mon côté. J’aurais voulu implémenter plus de fonctionnalités et réfléchir à d’autres
aspects. Plus particulièrement à comment mettre en place l’idée de départ, proposer un
outils aux infographistes pour faciliter la création de dessins animés.
4.3
Perspectives
Ce projet m’a beaucoup intéressée et je me suis engagée à l’intégrer à convol pendant
mon temps libre. Cela permettra de l’utiliser de manière interactive. Je voudrais aussi
que l’algorithme de base traite plus de cas et si j’ai le temps, réfléchir à une des pistes
présentées précédemment.
12
Références
[1] Adrien Bernhardt, Adeline Pihuit, Marie-Paule Cani, and Loïc Barthe. Matisse :
Painting 2D regions for Modeling Free-Form Shapes. In Eurographics Workshop on
Sketch-Based Interfaces and Modeling (SBIM), pages 57–64, Annecy, France, 2008.
[2] Yotam Gingold, Takeo Igarashi, and Denis Zorin. Structured annotations for 2d-to-3d
modeling. ACM Trans. Graph., 28(5) :148 :1–148 :9, December 2009.
[3] Niloy J. Mitra, Leonidas J. Guibas, and Mark Pauly. Symmetrization. ACM Trans.
Graph., 26(3), July 2007.
[4] Adeline Pihuit. Croquis interactifs pour l’enseignement de l’anatomie. PhD thesis,
Université de Grenoble, November 2010.
[5] Patricio Simari, Evangelos Kalogerakis, and Karan Singh. Folding meshes : hierarchical mesh segmentation based on planar symmetry. In Proceedings of the fourth
Eurographics symposium on Geometry processing, SGP ’06, pages 111–119, Aire-laVille, Switzerland, Switzerland, 2006. Eurographics Association.
[6] Justin Solomon, Mirela Ben-Chen, Adrian Butscher, and Leonidas J. Guibas. Askilling-as-possible vector fields for planar deformation. Comput. Graph. Forum,
30(5) :1543–1552, 2011.
[7] Daniel Sýkora, Mirela Ben-Chen, Martin Čadík, Brian Whited, and Maryann Simmons. Textoons : practical texture mapping for hand-drawn cartoon animations. In
Proceedings of the ACM SIGGRAPH/Eurographics Symposium on Non-Photorealistic
Animation and Rendering, NPAR ’11, pages 75–84, New York, NY, USA, 2011. ACM.
13