Utiliser l’apprentissage automatique et des mathématiques complexes pour déconstruire et reconstruire des visages humains

Tech
Pluriannuel et réunissant différents groupes, un projet mené par l’équipe La Forge d’Ubisoft permet de nouvelles avancées dans l’automatisation procédurale des personnages en temps réel.

Le dynamisme d’un jeu AAA à monde ouvert repose essentiellement sur sa capacité à vous plonger dans son univers, à vous donner l’impression que vous y êtes réellement. Les personnages peuvent donc enrichir ou gâcher l’expérience des joueurs·euses. Voilà pourquoi ces jeux réunissent souvent des milliers de personnages.

Par exemple, Assassin’s Creed Valhalla compte à lui seul plus de 75 personnages portant un nom, mais aussi des milliers de personnages non jouables (PNJ) qui vaquent à leurs occupations et contribuent ainsi à la vitalité des fermes, des villages et des villes où vous vous rendrez pendant vos quêtes.

« Plus le temps passe, plus les concepteurs de jeux vidéo doivent ajouter des personnages dans leurs jeux », dit André Beauchamp, programmeur R&D. « Et la conception d’une seule tête prend beaucoup du temps. » André fait partie de l’équipe La Forge d’Ubisoft, une pépinière où on s’affaire à intégrer les résultats de travaux de recherche universitaires et de développement – notamment dans les domaines de l’apprentissage automatique ou des mathématiques complexes – dans nos technologies et nos jeux.

La création de centaines de personnages nécessite au bas mot des dizaines de milliers d’heures de travail, qui sont surtout consacrées à des tâches répétitives plutôt qu’à des tâches créatives. Et c’est tout particulièrement vrai dans le cas de la création des PNJ. Ces derniers sont absolument essentiels à l’ambiance d’un jeu, mais comme on ne les aperçoit souvent que quelques secondes à la fois, ils n’ont pas besoin d’être aussi détaillés que les personnages plus importants. C’est pour cette raison que les jeux sont généralement assortis d’un nombre prédéfini de PNJ, qui sont générés plus ou moins aléatoirement dans les différentes cartes.

Cela dit, lorsque vous n’avez qu’une sélection limitée – si grande soit-elle – de personnages à votre disposition, les joueurs·euses risquent de tomber deux fois sur le même personnage dans un très court laps de temps, une surprise qu’il vaut mieux éviter de leur réserver.

Pour répondre au besoin croissant d’ajouter toujours plus de personnages et de concevoir une plus grande variété de personnages, les équipes La Forge et Helix (qui se spécialise dans la production d’éléments visuels et de scènes cinématiques) d’Ubisoft ont recensé les étapes de création d’un personnage qui sont répétitives et pour lesquelles un processus d’automatisation serait grandement avantageux.

Les experts de La Forge – qui collaborent avec des dizaines de collègues des services de production et des studios d’Ubisoft de même qu’avec des candidats à la maîtrise et au doctorat de plusieurs universités – ont mis au point un outil : Faceshifter. Ce dernier génère, selon un modèle procédural, des têtes de personnages d’une telle manière que celles-ci sont variées mais réalistes et en phase avec le contexte dans lequel les personnages se trouvent. Mais le plus important, c’est que cette génération ne sollicite pas excessivement les ressources du moteur de jeu, peu importe la console ou l’ordinateur que les joueurs·euses utilisent.

Grâce à un système comme Faceshifter, nous parvenons à produire des têtes en quelques secondes seulement. Nous pouvons ainsi générer, dans le jeu vidéo directement, des foules animées de différentes tailles et constituées de toutes sortes de visages différents », explique André.

Mais la création d’une tête ne se limite pas à sa topologie. C’est pour cette raison que ce projet de recherche d’envergure est en fait constitué de plusieurs petits projets qui ont nécessité, depuis les quelques dernières années, la participation de dizaines d’intervenants, de développeurs, de concepteurs et de programmeurs, ainsi que l’apport fréquent des équipes de production.

Analyser de vraies têtes pour créer de nouveaux personnages

Faceshifter a été créé à partir de ce qu’Ubisoft avait déjà : des images de milliers de têtes obtenues par balayage à haute résolution, que l’entreprise a fait produire au fil des ans pour les différents jeux et qui ont été fournies à l’équipe par le studio de capture de mouvement Alice d’Ubisoft Montréal.

Toutefois, le processus pour passer d’une image en 3D obtenue par balayage à haute résolution à un personnage animé de jeu vidéo demande une quantité extrêmement élevée de données et énormément de temps. Une seule tête compte des dizaines de milliers de points de données. Et c’est parce qu’elles sont en haute résolution que les images obtenues contiennent souvent des anomalies ou défauts visuels superflus.

La Forge a dû trouver comment nettoyer ces images et les convertir – c’est-à-dire les transformer en polygones en 3D – pour créer sa base de données de départ.

À l’aide d’algorithmes et de techniques d’apprentissage automatique, l’équipe a placé des indicateurs anatomiques sur chaque image dans le but de transformer les indicateurs de référence d’une tête générique pour créer la forme d’une vraie tête.

Si elle est parvenue à obtenir un degré élevé de précision, elle a dû mettre beaucoup d’efforts pour venir à bout des petits – mais ô combien importants – détails des yeux et des oreilles. D’abord, La Forge a dû mettre au point un système d’apprentissage automatique permettant de détecter la position et la forme approximatives des yeux et des oreilles. Puis, elle l’a combiné à un système de mathématiques complexes qui analyse les courbes afin de repérer les points de jonction au millimètre près.

Générer de tout nouveaux visages qui représentent l’humanité dans toute sa diversité

Toutes ces têtes font maintenant partie de la base de données de Faceshifter à titre d’éléments d’information utilisables et trouvables. Mais le plus formidable, c’est qu’il est aussi possible d’utiliser les différents composants de chacune de ces têtes comme sous-éléments d’information distincts.

L’équipe a décomposé les images de manière à isoler les différentes parties de la tête humaine. Elle a non seulement obtenu une sélection d’éléments qui se rapportent aux attributs de base d’un visage, comme les yeux, la bouche ou le menton, mais aussi un ensemble d’éléments qui constituent l’aspect extérieur du visage, comme la couleur, la texture ou la pilosité de la peau.

Et ces éléments, on peut les agencer et les transformer pour créer de nouveaux visages (de très, très nombreux nouveaux visages). Mais toujours des visages humains.

« Nous avons conçu Faceshifter pour aider les concepteurs à créer toutes sortes d’humains réalistes », précise André. « En principe, aucun visage ne devrait être doté d’un nez démesuré, car le système détermine les proportions des attributs en fonction du visage. »

De plus, les attributs sont harmonieusement combinés – c’est-à-dire que les lignes de jonction entre le nez, le menton, la bouche qui proviennent de différentes sources ont été adoucies – grâce aux travaux de mathématiques complexes de Donya Ghafourzadeh, une candidate au doctorat de l’ÉTS qui travaille avec l’équipe La Forge. Donya a également trouvé un système mathématique 3D complexe qui permet de déterminer le rapport de grandeur entre les différentes parties du visage et de les redimensionner adéquatement.

Parallèlement, l’équipe La Forge a utilisé l’apprentissage automatique pour étudier la base de données de têtes et tirer des conclusions au sujet des attributs du visage. Ces travaux l’ont amenée à se servir des modifications découlant de l’analyse en composantes principales pour aider le système à générer aléatoirement des têtes réalistes en fonction de certaines caractéristiques, comme l’âge, la taille, la corpulence (dans le visage), le genre, l’ethnicité et plus encore.

Le principe est semblable à celui des curseurs (ou sliders) utilisés pour personnaliser les personnages de jeux de rôle, mais on l’utilise ici pour créer des personnages dont l’apparence cadre avec le contexte. Faceshifter doit pouvoir produire une très grande variété de têtes, mais aussi créer des personnages dont l’apparence convient à l’endroit et à l’époque où se déroule l’action, peu importe le jeu.

Par exemple, un concepteur de jeu pourrait indiquer que les personnages générés automatiquement dans un endroit donné doivent posséder une caractéristique commune, comme appartenir à la même ethnie ou faire partie du même groupe d’âge, ou, à l’inverse, indiquer qu’ils doivent constituer une foule très diversifiée.

Immenses possibilités, budget limité

Avec suffisamment de temps et les ressources de calcul nécessaires, Faceshifter pourrait générer des visages humains réalistes, en haute résolution et de si haute qualité qu’ils pourraient être utilisés dans des images statiques de grande taille et même des cinématiques en haute résolution. L’outil pourrait parvenir à un tel résultat parce que les têtes générées sont faites d’un maillage contenant des milliers de sommets (ou points de contrôle) qui servent non seulement à animer le visage, mais aussi à le déformer dans le but de créer de nouveaux personnages, comme nous l’avons expliqué précédemment.

Mais les jeux vidéo n’offrent ni le temps ni la capacité de calcul nécessaires pour y arriver. Même les consoles les plus récentes ne seraient pas capables de produire en temps réel une foule de visages diversifiés qui, au démarrage, seraient en trois dimensions et animés.

« Même si certaines consoles récentes pouvaient y arriver, ce n’est pas nécessairement à ça que nous voulons affecter nos ressources de calcul », explique Marc-André Bleau, développeur en recherche et développement à La Forge.

Depuis 10 ans, Ubisoft utilise un outil appelé Facebuilder. Créé par le Groupe technologique de l’entreprise, cet outil utilise quelques centaines d’« os » pour animer un visage et ainsi permettre au personnage d’ouvrir la bouche, de cligner des yeux et plus encore. La Forge a donc dû trouver une manière de réduire les apprentissages de Faceshifter et de les transporter dans Facebuilder, tout en limitant le plus possible la perte de contrôle et de polyvalence. Dans le cadre du processus, l’équipe a découvert, incidemment, une nouvelle manière de générer les visages des PNJ.

« Plutôt que de générer un maillage, nous voulions ajouter des points de contrôle dans Facebuilder pour permettre à l’outil de non seulement animer un visage, mais aussi de le déformer, de le personnaliser, de le transformer », poursuit Marc-André. « Alors, nous avons cessé d’utiliser le maillage et avons décidé de nous servir de l’interface de Facebuilder, qui offre des paramètres plus abstraits, plus évolués, qui fonctionnent selon un plus grand nombre de règles logiques, mais qui sont aussi plus efficaces. Nous avons beaucoup moins de contrôle, mais avons fait des gains énormes sur le plan de la vitesse. »

À venir : une quantité infinie de personnages… et de projets stimulants

Le projet Faceshifter a coïncidé avec bien d’autres projets d’Ubisoft, en plus d’en avoir généré plusieurs. Parmi ceux-là, mentionnons le projet Bodyshifter qui, vous l’aurez deviné, vise à faire avec les corps ce que Faceshifter fait avec les visages. La Forge n’en est qu’aux premières étapes du projet, lequel devrait permettre de produire, grâce à la génération procédurale, des physiques qui s’agenceront aux têtes générées automatiquement, donnant accès à la production à une quantité presque infinie de personnages secondaires pleinement représentés.

La Forge explore aussi l’animation du langage corporel et des états émotionnels. « En ce moment, le front d’un PNJ est presque toujours très lisse », explique Marc-André. « Nous voulons que son langage corporel traduise les émotions qu’il ressent. » Pour y parvenir, les chercheurs de La Forge recensent actuellement les expressions faciales et les mouvements du corps habituels qui sont associés aux différentes catégories d’émotions et de réactions. Ils devront ensuite trouver comment faire bouger ou faire réagir le personnage de la « bonne » manière automatiquement, selon le contexte.

Dans le même ordre d’idées, La Forge travaille aussi sur un projet audio qui vise à générer des mouvements chez le personnage en fonction des sons qu’il produit. C’est comme une forme de karaoké pour les PNJ. Nous vous donnerons plus de détails sous peu au sujet de ce projet d’apprentissage profond et de synchronisation des sons. D’ici là, cliquez ici et ici (vidéo en anglais) pour en savoir plus.

Un personnage, c’est bien plus qu’un visage. Et à mesure que l’équipe de La Forge découvre les possibilités qu’offre Faceshifter, la liste des prochaines étapes, qui regorgent de défis mathématiques, artistiques et de programmation, ne cesse de s’allonger.