Avatars Customisables

Techniques et outils pour des avatars à l’infini.

Années : 2016-2019
Lieu : Genève, Suisse
Client : Spooklight Studio
Rôle : Lead TD Artist

■ Un peu de contexte:
Les deux principales applications ayant vu le jour chez Spooklight, Storyfab et surtout Kouji reposaient sur de petits avatars customisables: les Moodies dans le premier cas, les Koujis dans le second. En 3 années de conception consécutives, les possibilités de customisations sont allées grandissantes et les besoins techniques pour les mettre en oeuvre se sont montrées de plus en plus complexes.

Nos avatars :

Storyfab

Storyfab, notre première application est un petit studio de film qui tenait dans la poche. Chez soi ou ailleurs, il suffit de sortir son smartphone ou sa tablette et, grâce à la réalité augmenté, d’utiliser son environnement comme décor. En lieu et place d’acteurs: les Moodies, de petites créatures bleues qui adorent se grimer comme les humains: sorcière, cow-boy, zombie ou explorateur: autant de personnalisations que d’histoires à raconter.

Ce fut nos premiers personnages customisables avec des possibilités déjà assez poussées (couleur de peau, des yeux, vêtements en textures, chapeaux, accessoires…).

Kouji

Vint ensuite Kouji. L’avatar y prenait là une place centrale: il s’agissait non plus de représenter des personnages mais de représenter l’utilisateur. Son avatar devait lui permettre d’être reconnu par ses amis.

Nous avons donc travaillé à créer des personnages et des assets plus procéduraux afin de pouvoir multiplier les possibilités sans alourdir l’application outre mesure.

Nous avons ensuite ajouté de nouvelles fonctions permettant de se rapprocher encore plus des utilisateurs: corpulences et formes du visage, éléments de customisation modélisés qui suivent les corpulences et les expressions du visage (barbes, moustaches etc.).

Le travail a été séparé en deux temps : avant et après intégration dans Unity. J’ai pris en charge l’amont (workflow de la création des assets, automatisations, rigs). L’aval (intégration dans Unity, Shaders…) a été créé par Julien Balestrieri.

Je détaille ci-après la manière dont ont été gérés certains éléments de customisation remarquables.

Les corpulences :

Le concept

L’une des nouveautés de Kouji par rapport à Storyfab était la possibilité de choisir la carrure de son avatar : Maigrelet, Enrobé, Large d’épaules, silhouette masculine ou féminine…

La contrainte résidait dans le fait d’offrir cette possibilité à l’intérieur d’un même asset, tous les Koujis partageant le même modèle et le même rig.

Le Workflow

La première approche a été de sculpter les différentes carrures une à une et de les appliquer en blendshape. Mais cette approche était limitée: impossible de reproduire les changements dans les articulations (épaules ou hanches plus larges, jambes plus courtes… ).

Nous avons donc implémenté un système combinant mouvement du squelette pour la carrure et blendshape pour les formes, (graisse, muscles…).

1:  Modèle initial
2: Changements du squelette
3: Ajout des Blenshapes

Pipeline et Outils

Une fois la technique trouvé, il fallait que les character artists réalisent toutes les carrures nécessaires.

Afin de ne pas les perdre dans des considérations techniques, j’ai créé un processus qui se rapprochait le plus possible de leurs habitudes et de leur savoir-faire, tout en créant des outils automatisant ou facilitant ces phases.

Tout d’abord, grâce à un rig spécifique (appellé “Stretcher”) permettant d’étirer l’armature via différents points de contrôles, le graphiste déplace les articulations du personnage pour correspondre aux proportions désirées. J’ai écrit un rapide outil de symétrie pour accélérer le travail.

Le graphiste pouvait ensuite retoucher le résultat dans ZBrush pour ajouter ou enlever de la matière où il le désirait.

Une fois le résultat ré-importé dans Blender, une shape était créée à partir du différentiel entre la modélisation avant et après retouche dans zBrush.

Dans unity, le résultat est donc retrouvé par un cumul entre la shape et une animation additive qui permet de récupérer le déplacement des bones tout en jouant des animations des avatars.

Barbes et  Moustaches :

Le concept

Kouji offrait la possibilité de customiser la forme du visage de l’avatar ET d’y ajouter une barbe modélisée. Il fallait donc que chaque barbe puisse s’adapter à toute les formes de visage disponibles.

Comme nous complétions régulièrement les possibilités d’avatarisation, il fallait que le workflow permette l’ajout régulier de nouvelles barbes et de nouvelles formes de visages.

Suivant le même principe, certaines moustaches étaient modélisées.
Dans Kouji, les émotions véhiculées par les différentes animations étant primordiales, il fallait absolument que la bouche reste lisible, quand bien même une moustache viendrait l’occulter partiellement.

Il nous fallais donc un système qui permette aux différentes moustaches de suivre les mouvements de la bouche.

Rig

La première étape a été de créer des rigs permettant aux barbes et aux moustaches de suivre respectivement les mouvements du visage et de la bouche.

Pour les barbes, la modé de la tête est dupliquée avec un léger décalage, suffisamment pour envelopper la barbe. Cette modélisation tiens lieu de cage de déformation et viendra “tirer” la barbe en fonction des déformations du visage.
Un certain nombre de modifiers permettent, via des masques, d’affiner le résultat final en collant certains vertices à la peau ou au contraire en en poussant d’autres.

Les moustaches vont quand à elles être déformées par une cage de déformation spécifique elle même riggée par des bones qui s’alignent sur les commissures des lèvres. De cette manière un seul rig peut gérer toutes les topologies de moustaches.

Process et Outils

J’ai enfin créé un set d’outils permettant d’automatiser un maximum tout le processus.

On peut ainsi en quelques clics importer une nouvelle barbe, la rigger et baker le résultat sous forme de blendshapes pour une intégration ultérieure dans unity.
On peut aussi en un clic mettre à jour les blendshapes en cas de nouveaux visages disponibles.

Etape 1: Une fois la modélisation de la barbe importée, un seul clic suffit à générer le rig.

Etape 2: Ajuster la cage de déformation à la nouvelle barbe.

Etape 3: Grâce à plusieurs masques, on peut affiner le résultat.

Etape 4: Enfin, on peut baker le résultat sous formes de blendshapes pour l’export autant de fois que nécessaire.

Des avatar à l’infini :

Direction Artistique et Chara-Design : Aurélien Baarsch, Julie Pain
Direction Technique, Rig, Outils : François Carrobourg
Programmation Unity, Shaders : Julien Balestrieri
Création des Assets : Julie Pain, Mélanie Fuster, Aurélien Baarsch