Aller au menu du forum Aller au contenu du forum Aller à la recherche dans le forum
Logo Khaganat
Menu principal

Pipeline pour les animations

YannK

Bonjour à toutes,

pour celles qui ont eu la joie de bosser un peu dans les dépôts d'assets de Ryzom, il est certainement apparu qu'il est complexe d'organiser les choses pour que la contribution artistique soit aisée et les manipulations fluides d'un bout à l'autre de la production, depuis la création par l'artiste jusqu'à l'intégration en jeu. La cohérence des versions utilisées pour générer les objets finaux est souvent complexe (voir par exemple les différentes armatures incompatibles entre elles utilisées pour les humanoïdes dans Ryzom). C'est un sujet très épineux pour beaucoup de studios, d'autant que les compétences nécessaires pour appréhender ces questions ne sont pas si fréquentes, surtout pour les animations.

Richard Lico, ce héros
Pour notre plus grand bonheur, un vétéran de l'industrie extrêmement talentueux (Richard Lico, le sus-nommé) a décidé de prendre la question à bras le corps. Il s'agissait pour lui de faciliter la gestion des données d'un bout à l'autre du pipeline, avec le moins de maintenance possible. Et de chercher une façon pour que les animatrices soient les plus libres possible tout en ayant une rapidité de travail décuplée. D'un autre côté, il n'avait pas le choix, il venait de devenir indépendant et se retrouvait tout seul sur de nombreux aspects pour un gros projet :D (le jeu Moss pour les curieuses, qui lui a donc valu de nombreuses récompenses.)

Aparté : Si certaines sont intéressées, deux conférences où il parle de son travail sur Moss, justement : Animating Quill: Creating an Emotional Experience (sur lequel il y aurait d'autres choses à dire, mais j'y reviendrai à un autre moment) et Animation Workflow Siggraph 2018

Brad Clark, ce héros (parce que lui aussi le vaut bien)
Sur ce, Brad Clark un gars devenu référence mondiale dans son domaine (le rigging) depuis des années (le genre qui a bossé sur le motion capture de Gollum pour « Le seigneur des anneaux » il y a 20 ans...), et qui a décidé de se plonger dans Blender parce qu'il s'est dit qu'il y avait du potentiel inutilisé (vous avez deviné pourquoi il me plaît tant ? ^^ ), s'est dit qu'il faudrait trouver comment pousser ce genre de pratique. Et il fait alors la connaissance de deux frangins, qui se sont dits dans leur coin que ce serait cool d'avoir des outils de ce type dans un addon Blender (Rig On the Fly). Et paf, voilà, ça veut dire que Blender peut le faire et qu'en plus des gens planchent à rendre ça plus aisé.

Aparté : une vidéo revient sur ce processus de rencontres qui s'est fait peu à peu : Meet The Expert: BRAD CLARK (Rigging Dojo)

Tout cela m'a semblé extrêmement intéressant pour nous, qui n'avons pas les moyens de créer et de maintenir un pipeline de production trop lourd, ni de créer plein d'outils pour toutes les contributrices qui pourraient venir de temps en temps.

Ce que je vais dire ci-dessous l'est dans un contexte où ce sont les animations qui sont concernées, mais il faudrait voir comment l'étendre peut-être à d'autres pans de la contribution artistique, à étudier.

Le premier point est de simplifier le plus possible la gestion des ressources. Donc l'idée (du moins pour tout ce qui est résultat d'un workflow destructif, comme l'est l'animation) est de n'avoir qu'un format à gérer, celui qui est nécessaire au moteur (à savoir glTF dans notre cas). Le but d'une contributrice est donc de fournir un fichier glTF qui contient une animation pour l'armature de déformation d'un objet animé. Seule l'armature de déformation, et le skinning du mesh correspondant, ont besoin d'être fournis et versionnés. Vu que le rig de contrôle est ce qui est le plus complexe à faire, et le plus difficile à s'approprier et parfois s'avère limitant pour certaines opérations souhaitées par l'animatrice, on n'a plus à se préoccuper de sa maintenance et de sa cohérence tout au long du pipeline. Ainsi, ajouter un nouvel emplacement dans le dos pour fixer un sac ne pose pas de souci, c'est juste un bone dans l'armature de déformation. Pas besoin de reprendre tout le travail préalable où celui-ci n'est pas inclus et de le propager partout pour maintenir la cohérence du rig de contrôle, cet ajout sera simplement pris en compte lors du prochain import avec les scripts habituels afin d'être pris en charge. Car dans l'approche professée par Richard Lico, le rig de contrôle est généré à la volée par l'animateur via des scripts personnalisés (d'où l'intérêt de l'addon Rig on the Fly qui en fournit un certain nombre prêts à l'emploi), depuis l'armature de déformation, en se basant sur les keyframes déjà en place. Du coup, on a directement la ressource utile et on repart toujours toujours d'elle quand on veut faire des modifications, peu importe comment on fait cette dernière et les modifications qu'elle a pu connaître entretemps, on a forcément toujours la dernière version d'édition entre les mains.

Le seul gros point noir à cette façon d'opérer est que l'animation demande alors quand même pas mal de connaissances théoriques en rigging et en scripting, ou au moins une très grande aisance avec l'outil qu'on utilise. Ce qui veut dire que la marche d'entrée pour contribuer me semble un peu plus haute. Mais son gros avantage est que celles qui contribueront perdront moins d'énergie à maintenir des outils plus ou moins adaptés (voire à les adapter au nouvelles venues) et bien plus à réellement fabriquer du contenu, ce qui est plus motivant. Par ailleurs, on peut plus rapidement obtenir des résultats de très bonne qualité.

J'ai étudié la façon dont on pourrait déployer ça dans notre pipeline Blender > Godot et je pense avoir trouvé comment faire pour que les animations puissent être réalisées une par une pour un même modèle et les importer séparément comme ressource dans Godot. J'ai commencé à noter ça dans le Guide de développement. On testera ça in vivo pour le premier client dès que Godot 4 sera un peu stabilisé.

Si vous avez des avis, des remarques, des questions...

Zatalyz

Merci pour ce retour, YannK ! Testons ça, on verra bien si ça marche.

L'entrée à la contribution est de toute façon haute quand on parle de rigging et d'animation ; l'enjeu sera aussi sur notre capacité à transmettre aux intéressées. Et, comme tu le dis, il n'y a pas tant de monde qui va oser y aller de toute façon... donc, je parie que celles qui tenteront l'expérience auront déjà soit un certain niveau d'expertise, soit cette folie douce qui nous caractérise et qui nous fait nous lancer dans des trucs trops gros  :))

Licences Mentions légales Accueil du site Contact