[ [ [ Foules numériques - Yannis Lehuédé

Fabriquer des foules de personnes "artificiellement" pour le cinéma n’est pas nouveau, et on devinera facilement pourquoi on évite de faire appel à des milliers de figurants. Dans le domaine numérique, on se souviendra d’abord du film Forrest Gump de 1998.
Et plus encore aujourd’hui, alors que les conditions sanitaires deviennent très exigeantes (dues au virus pandémique Covid-19), la question revient sous de nombreux aspects. On fera ici un petit panorama des techniques permettant de rassembler des foules infinies, sans distance sanitaire ni gestes barrière, le tout numériquement... et aseptisé !

Picture of duplicated crowd (without temporal offset)

La première méthode, la plus simple, revient à dupliquer un groupe compact de personnes déjà filmées. Un simple copier-coller, en quelque sorte. On peut alors coller autant de fois le motif représentant ce groupe de personnes, côte à côte.

Picture of duplicated crowd (temporal offset)

Lorsqu’on duplique une foule, y compris avec un décalage temporel sur le motif, le problème de sa répétition se posera à nouveau quand la foule couvrira une grand étendue. La deuxième image (plus haut) l’illustre grossièrement.
On peut alors tenter d’introduire différents éléments aléatoires dans la répartition des motifs pour éviter leur répétition. Cela peut devenir complexe pour certains logiciels ou certaines situations. On devra alors changer d’approche.

Note : lorsque la caméra est en mouvement, il suffit de s’assurer que la foule est bien accrochée au sol et ne glisse pas comme sur un tapis roulant. On placera ainsi ces motifs de personnes sur des plans dans un espace 3D virtuel dans lequel une reproduction (virtuelle) de la caméra répercute les mêmes mouvements et caractéristiques que celle qui a filmé le plan. C’est simple sur le papier, mais en pratique, ça demande de la préparation ; ce n’est pas le sujet ici.

En partant du principe qu’on place la foule sur des cartons, dans un espace 3D virtuel pour permettre des mouvements de caméra, alors autant placer chaque personnage sur un carton individuel, et les répartir de manière plus aléatoire qu’avec la méthode précédente. Placés sur des particules, ces cartons peuvent ainsi bouger et/ou éviter d’entre en collision avec certains objets. Bref, cela offre plus de contrôle sur la foule !
Dans ce cas, il s’agit de filmer chaque personnage individuellement (ou à la rigueur, avec des vêtements ou des accessoires différents), et si possible : qui effectuent plusieurs actions par prise. Tout ça sur un fond qu’on pourra rendre transparent, comme ci-dessous.

Il s’agit ici de la même actrice filmée sur 15 prises avec des variations d’accessoires et de costumes, sur fond vert. Il s’agira ensuite de faire tourner en boucle ses mouvements, sans que le raccord entre le début et la fin soit trop visible.
La partie tournage en "prises de vues réelles" étant terminée, on peut désormais détacher les personnages de leurs fonds verts et les utiliser individuellement.

Avec un personnage par carton semi-transparent, il est possible d’en placer avec plus ou moins de densité sur un plancher virtuel, face caméra. Un outil de particules est parfait pour cette utilisation. Chacune aura un mouvement (celui filmé précédemment) indépendant des autres. Elles seront disposées sur le plancher ou dans l’espace avec une dose d’aléatoire. À chaque particule, on attribuera un carton avec un personnage en mouvement de manière aléatoire, là encore. Ce système assurera une répartition des personnages des manière beaucoup moins redondante qu’avec la méthode précédente. En outre, on peut orchestrer un mouvement général à notre foule, avec des variations pour chaque individu.

Note : si la foule avance dans une direction, il s’agira que chaque personnage filmé marche dans la même direction par rapport à la caméra, ce qui nécessite une préparation plus minutieuse que précédemment, avec quelques restrictions. Et la plus importante : les changements de trajectoire sont proscrits !

On peut également placer des objets de collision au contact desquels les particules (et donc les personnages) ne pourront pas entrer, ou changeront de comportement. C’est le cas dans l’exemple ci-dessous. On a reproduit des cubes simples à la place de jardinières et de cabine téléphonique aux mêmes endroits que sur le plan filmé, là où aucune particule ne devra être créée.

Une fois le planché "peuplé" de particules, on peut les visionner à travers la caméra virtuelle. Pour simplifier le système, chaque carton fera toujours face à la caméra. Comme les personnages ont été filmés sur un fond effaçable, ces cartons sont transparents autour de la silhouette de chacun. La caméra verra des couches de personnes les unes devant les autres. Et comme les éléments sont répartis dans l’espace, certaines distances entre les personnages sont respectées et ils ne se passent pas au travers les uns des autres (tant que le système n’est pas trop dense). On peut ainsi créer des vagues de personnages à perte de vue.

Sur l’image ci-dessus, on a couvert le parvis d’une foule, en évitant les gros obstacles. Les particules ont rempli leur fonction. Dans un cas comme celui-ci, il reste à les masquer devant les panneaux censés être devant certains personnages, des branches d’arbres, etc.
Pour ce faire, plusieurs techniques sont disponibles en compositing, selon la forme des objets qui devront masquer la foule. Ils comprennent une combinaison de masques, du rotoscoping, du tracking de mouvements, du keying et du deep compositing (ou une variante) pour permettre à des personnages d’être devant le masque, d’autres derrière, selon leur position dans l’espace (virtuel).

Une dernière étape s’impose, et non des moindres, faire correspondre l’éclairage et les couleurs entre la foule et le décor, comme plus bas.

On veillera également à appliquer le grain propre de l’image filmée à notre foule virtuelle, recréer l’éventuel flou de profondeur de champ, ainsi que de de reproduire les mêmes déformations que celles de l’objectif utilisé lors de la prise de vue, ce qui ne pose pas de problème puisque la caméra qui filme notre foule est aussi virtuelle.

Pour la comparaison avec les méthodes précédentes, voilà son application dans les tribunes du stade.

On pourra entrevoir une limite là aussi : le manque de variété des personnages (15 uniques ici) se fait sentir. Pour remédier à ça en restant sur le même système, il est possible de créer de légères variations dans la couleur des vêtements et de la peau. On peut aussi introduire des variations dans la vitesse d’exécution des mouvements des personnages. Toutes ces combinaisons mélangées multiplient la variété de personnages "uniques" dans la foule.
Un autre élément dont nous disposons est d’apporter des corrections de couleurs globales à chaque individu qui compose la foule, de manière aléatoire (on attribuera aléatoirement une nuance à chacun, qui guidera ensuite l’intensité d’une correction globale sur la foule). En combinant les variantes et les effets, on obtient toujours plus de variété de nuances de couleur.

Note : les mouvements des individus qui composent la foule restent limités aux cycles des mouvements filmés des acteurs, avec de petites variantes. Et parfois les redondances sont perceptibles là ou la foule est peu dense (selon les situations). On a un contrôle limité des mouvements de la foule. Et on ne peut pas diriger son comportement, comme lui faire prendre simplement un virage.

Pour contrôles les mouvements généraux de la foule en restant dans un cadre de tournage, il faut s’en remettre à une chorégraphie quasi-militaire. L’exemple des bataillons se déplaçant de manière coordonnée prend une dimension plus titanesque encore s’il faut que chaque individu respecte un parcours sans référence aux autres membres du groupe !
Il reste la possibilité de faire évoluer une petite troupe d’acteurs dans différents endroits alternativement, et de les placer ensuite tous ensemble sur le même terrain. Ce qui revient à retomber sur la solution de la duplication de grappes de figurants (placées à différents endroits à chaque prise puis rassemblées en superposition), avec moins de latitude que pour une foule statique.

La solution à ce problème est d’utiliser des personnages totalement virtuels, en 3D, ce qu’on appelle crowd simulation.
On l’a vu dans des films (et de rares séries), et pour cause : c’est une logistique plus délicate que les solutions précédentes et une affaire d’imagerie 3D et de science comportementale, ébauchée de façon rudimentaire dans ce billet.
Cette solution offre naturellement un contrôle très étendu sur notre foule. En résumé : chaque individu possède une sorte d’indépendance et réagit face aux situations qui se présentent à lui selon des règles prédéfinies.
Ces règles peuvent aller jusqu’à : "chargez à volonté et battez-vous jusqu’à la mort" (!) si on dirige une armée de petits soldats armée d’épées et de boucliers. Suivant cet ordre, chaque individu effectuera une course vers les rangs ennemis, en évitant de percuter un des siens puis cherchera de lui-même un adversaire dans son champ de vision. Un simulacre de combat en duel s’ensuivra. Chaque petit soldat virtuel risque à tout moment de se faire faucher par derrière, car on peut définir qu’ils n’enclenchent des réactions qu’en fonction des limites de leur champ de vision. Ainsi, il y a peu de chance d’obtenir une foule répétitive avec cette multitude d’individus réellement uniques !

Tout ceci est régi par des bibliothèques de mouvements pré-enregistrés qui s’enchaînent en fonction des "stimulations" des individus. Il faudra préalablement enregistrer ou animer chacun de ces cycles de mouvements et modéliser les personnages individuellement, et appliquer une texture à chacun. Notons qu’il est aussi possible de paramétrer des variations dans les combinaisons d’accessoires et de costumes sur les marionnettes virtuelles.