L’être humain est doué d’une étonnante capacité à dérouler des scénarios dans sa tête avant qu’ils ne se produisent. Nous pouvons imaginer dans notre esprit la trajectoire que prendrait notre bras lors de son parcours au-dessus d’un bureau pour récupérer une tasse de café. Nous sommes aussi capables de nous représenter mentalement les mouvements de nos doigts en train de jouer un riff de guitare complexe. Les athlètes professionnels utilisent la « pratique mentale » pour se projeter dans l’exécution d’une suite d’étapes nécessaires à la réalisation d’une manœuvre avancée.
Tous ces exemples sont des illustrations de la manière dont notre esprit crée un modèle du monde avec lequel nous interagissons. Dans le domaine de l’apprentissage automatique (machine learning), on parle de modèle du monde (world model) d’un agent. Ce modèle nous décrit comment les événements pourraient se dérouler avant qu’ils ne se produisent, et ses prédictions sont basées sur ce que nous avons vécu auparavant. C’est pour cela que se jeter sur un trampoline pour rebondir nous parait faisable, alors que vouloir faire la même chose sur le trottoir est insensé : cela n’est pas en accord avec notre modèle du monde. Cependant, les personnages virtuels ne disposent généralement pas de ce modèle du monde, ce qui pourrait expliquer pourquoi il a toujours été si difficile de les animer dans un environnement virtuel physiquement simulé.
Inspirés par cette idée, nous présentons une méthode basée sur un modèle de monde pour l’apprentissage de contrôleurs de personnages (character controllers) physiques et interactifs. Nous avons constaté que les modèles de monde sont non seulement plus rapides que les approches antérieures pour l’apprentissage des contrôleurs de personnages, mais aussi qu’ils peuvent facilement s’adapter à un grand nombre de mouvements dans un seul contrôleur.
Le monde d’un Ragdoll
Un ragdoll (littéralement « poupée de chiffon ») est une représentation grossière d’un personnage construite à partir d’objets physiques simples tels que des sphères et des capsules, reliés par des articulations motorisées. Les ragdolls permettent de relier le personnage cinématique d’un jeu au monde physique qu’il occupe.
Par exemple, lorsqu’un personnage tombe ou est frappé par des débris volants, un ragdoll peut être utilisé pour déterminer comment ce personnage pourrait réagir à l’interaction. Les ragdolls sont utilisés pour gérer les chutes réalistes des personnages dans les jeux vidéo, comme illustré dans le clip du jeu Steep, à gauche. Ils peuvent également rendre les mouvements subtils des personnages du jeu plus immersifs, comme sur l’image de droite, où l’on voit que le personnage sur la luge est balloté par les forces du terrain et l’accélération de la luge.
On a cherché à savoir si ces mouvements de ragdoll pouvaient être modélisés par un réseau neuronal et quelles étaient les applications d’un tel réseau. Au cours des dernières années, les chercheurs en apprentissage automatique ont appliqué avec succès l’apprentissage profond (deep learning) à la modélisation de systèmes dynamiques complexes. En recueillant des centaines de milliers de transitions différentes de ces systèmes, un réseau neuronal peut être entraîné à recréer fidèlement le mouvement des fluides, le drapé des vêtements sur un personnage ou encore le mouvement d’objets rigides.
Un ragdoll humain peut avoir moins de parties mobiles qu’une simulation de fluide, mais les contraintes et les contacts dans ses mouvements peuvent le rendre difficile à modéliser. Chacune des parties principales du corps d’un personnage est représentée par ce que l’on appelle un corps rigide (rigid body). Ces corps rigides sont affectés par les forces dues à la gravité et aux contacts avec le sol, il faut donc trouver un moyen de les maintenir reliés.
C’est le rôle d’une articulation (joint), qui fait cela en limitant les mouvements relatifs entre deux corps rigides. Pour le ragdoll humain, cette articulation est analogue à un muscle simplifié chez un être humain réel. Tout comme on peut bouger son propre bras en activant ses muscles, un ragdoll peut déplacer ses corps rigides en actionnant les articulations comme les moteurs d’un robot. Ces articulations motorisées peuvent être utilisées pour amener le ragdoll à prendre différentes poses, ou même pour l’animer :
Nous avons cherché à savoir si ces mouvements de ragdoll pouvaient être modélisés par un réseau neuronal et quelles étaient les applications d’un tel réseau neuronal. Lorsque vous traversez une pièce, l’orientation et la position de vos mains, de votre taille, de votre tête et de toutes les autres parties de votre corps changent au fil du temps.
On appelle toutes ces parties qui vous décrivent à un moment précis votre pose. Cette séquence de changements pour une élément du corps définit une courbe, ou trajectoire. L’ensemble de ces trajectoires pour toutes les parties de votre corps définissent votre mouvement global lorsque vous vous déplacez.
Si nous voulons utiliser l’apprentissage automatique pour modéliser le mouvement d’un ragdoll, ce réseau neuronal doit être capable de reproduire ces trajectoires aussi précisément que possible, et ce pour toutes les différentes façons dont un ragdoll peut se déplacer. Ce qui n’est pas une tâche facile.
Il s’avère que si nous disposons d’une représentation appropriée d’un ragdoll et d’un réseau neuronal suffisamment grand, nous pouvons entraîner le réseau neuronal à prédire la dynamique d’un ragdoll à court terme. Notre réseau neuronal prend en entrée la pose actuelle du ragdoll à une certaine image (en jaune), ainsi que les paramètres des moteurs qui amènent le personnage à l’image suivante (en bleu). Ce réseau prédit la prochaine pose du ragdoll (en rouge).
La façon naïve d’entraîner ce réseau neuronal (ou modèle du monde) consiste à comparer sa prédiction de la prochaine pose du ragdoll à la prochaine pose correcte du ragdoll et à ajuster les paramètres du réseau neuronal pour que la prédiction soit la plus proche de la pose correcte. Dans la pratique, pour un système complexe, cette approche peut conduire à des instabilités dans les résultats finaux.
L’illustration ci-dessous montre le résultat de cette approche naïve appliquée à la prédiction des trajectoires d’un mouvement de ragdoll en train de marcher. Le personnage rouge est la prédiction du modèle du monde sur un horizon d’une seconde, et le jaune est le ragdoll qui est modélisé :
Comme on peut le constater, le modèle du monde ne parvient pas à suivre le mouvement du ragdoll. Cela illustre la difficulté d’entraîner un réseau neuronal à suivre le mouvement d’un ragdoll. L’un des problèmes est qu’au fur et à mesure que les prédictions du modèle du monde sont plus éloignées dans le futur, les erreurs pour chaque prédiction s’accumulent et font dévier les trajectoires prédites de la trajectoire cible.
Mais ce problème peut être corrigé en donnant au réseau neuronal des informations sur ses prédictions précédentes afin qu’il puisse apprendre à s’ajuster aux erreurs dans ses prédictions futures. Pour ce faire, nous entraînons le réseau neuronal sur une courte séquence, où les prédictions futures du modèle du monde sont réinjectées comme entrées pendant l’entraînement, comme suit :
En entraînant le modèle du monde sur cette courte séquence, les résultats sont maintenant stables, et le modèle du monde peut prédire le mouvement du ragdoll avec précision sur un horizon temporel d’une seconde.
Bien que la qualité de la prédiction commence à dériver après une seconde, cette durée est suffisamment longue pour utiliser ce modèle du monde afin de construire un contrôleur de personnage à suivi de mouvement (motion tracking character controller).
Donner vie à un Ragdoll
Pour notre contrôleur de personnage (character controller), nous voulons que le ragdoll soit capable d’effectuer une variété de mouvements difficiles comme marcher, sauter ou même danser le tango. Pour cela, deux choses sont requises : un objectif qui indique au ragdoll comment réaliser ces mouvements, et un contrôleur qui permet au ragdoll d’atteindre l’objectif.
Pour l’objectif, nous allons utiliser une animation cible et calculer la proximité entre chaque image du mouvement du ragdoll et chaque image de l’animation cible. Par exemple, si nous voulions que le ragdoll coure, nous aurions un objectif qui calcule la différence entre la pose du ragdoll et la pose de l’animation cible pour chaque pose d’une animation de course à pied:
Le contrôleur est alors chargé de déterminer les paramètres des moteurs du ragdoll à chaque pose de manière à atteindre l’objectif. En général, le contrôleur peut être considéré comme une fonction qui produit les paramètres des moteurs en fonction de la pose actuelle du ragdoll et de la pose cible de l’animation dans laquelle nous voulons que la ragdoll se trouve. Ce type de contrôleur s’appelle une politique et est représenté par un deuxième réseau neuronal :
Nous pouvons maintenant entraîner cette politique à s’améliorer dans le suivi de l’animation. La façon idéale d’entraîner la politique à atteindre cet objectif serait de lui faire conduire le ragdoll pendant un certain nombre d’étapes de la simulation, de calculer l’objectif à chaque étape, puis d’utiliser la rétropropagation pour améliorer la politique. Cette opération serait répétée des milliers de fois pour améliorer progressivement les performances de la politique.
Mais cette approche pose un problème qui empêche de l’utiliser dans la pratique. Pour utiliser la rétropropagation, chaque calcul de la politique et de la simulation doit être différentiable. Dans ce contexte, cela signifie qu’il est possible de calculer une direction dans laquelle modifier le réseau neuronal de la politique afin qu’il devienne meilleur pour atteindre l’objectif. Pour la majorité des moteurs de jeu, les simulations physiques ne sont pas différentiables en raison de la manière dont elles gèrent des éléments tels que la résolution des collisions et la friction.
Mais si nous nous rappelons ce que nous avons vu précédemment, notre modèle du monde est une bonne approximation du mouvement de notre ragdoll dans la simulation physique. De plus, comme il s’agit d’un réseau neuronal, il est également différentiable. Par conséquent, nous pouvons remplacer la simulation physique de la ragdoll par un modèle du monde et rendre l’ensemble du système différentiable :
Il y a quelques autres détails de l’implémentation, comme éviter les gradients évanescents et déterminer le nombre de pas que le ragdoll doit faire, mais dans l’ensemble, l’approche est bien adaptée à l’objectif de faire suivre une animation cible au ragdoll. Si vous êtes intéressé par les détails, jetez un coup d’œil au papier dont le lien figure à la fin de cet article.
À titre d’exemple, utilisons cette approche pour faire courir le ragdoll. L’objectif est que le mouvement du ragdoll corresponde étroitement à une animation issue d’une capture de mouvements d’une personne réelle en train de courir. En formant un modèle du monde sur le mouvement du ragdoll, puis en formant une politique à travers le modèle du monde, le ragdoll est capable de suivre l’animation de course à pied avec un mouvement stable et de haute qualité :
L’avantage de former une politique de cette manière est qu’elle est beaucoup plus efficace en termes d’échantillonnage que les approches qui n’utilisent pas de modèle du monde. De plus, la politique finale produit des résultats de suivi de meilleure qualité en raison d’un signal d’apprentissage plus direct fourni par le modèle du monde.
Breakdance, karaté, et course à pied
Nous pouvons adapter cette approche pour travailler sur plus d’une seule animation de course. Pour cette expérience, nous avons utilisé le dataset LaFan, qui contient plus de quatre heures et demie de capture de mouvements liés à des jeux vidéo, tels que la course, le combat, des roulades et le maniement d’objets. Pour éviter d’avoir à entrainer d’abord un modèle du monde, puis à utiliser ce modèle pour entrainer une politique pour ces mouvements, nous pouvons entrainer le modèle du monde et la politique en même temps pour réduire la charge d’entraînement.
Tout d’abord, un grand nombre de trajectoires d’animation aléatoires est échantillonné depuis l’ensemble du jeu de données d’animation. Ensuite, la politique est utilisée pour contrôler le ragdoll et essayer de suivre les trajectoires d’animation échantillonnées. Les informations de transition des mouvements du ragdoll et des animations correspondantes sont stockées dans une grande mémoire de relecture (replay buffer). Cette mémoire contenant les transitions du ragdoll et de l’animation est ensuite utilisée pour entraîner le modèle du monde en échantillonnant un lot de trajectoires aléatoires.
Enfin, le modèle du monde et les animations échantillonnées sont utilisés pour entraîner la politique. Ces étapes sont ensuite répétées avec un nouveau lot de trajectoires d’animation échantillonnées de façon aléatoire. Ni la politique ni le modèle du monde n’ont besoin de s’entraîner sur des échantillons de la politique la plus récente, de sorte que l’échantillonnage des données et l’entraînement peuvent être effectués en parallèle, comme le montre le graphique ci-dessous. Cette méthode est différente des méthodes d’apprentissage par renforcement, moins efficaces en termes d’échantillons, qui ont une politique et une fonction de valeur qui doivent être synchronisées l’une avec l’autre.
Après seulement quarante heures d’entraînement sur le dataset LaFan, la politique peut suivre 80 % des mouvements du dataset pendant plus de trente secondes. En revanche, l’algorithme à l’état de l’art, Proximal Policy Optimization (PPO), produit une politique qui ne peut pas s’adapter à un ensemble aussi diversifié de mouvements complexes en un temps d’apprentissage aussi court. Après quarante heures d’apprentissage d’une politique avec PPO, la politique ne peut suivre que 5% des mouvements au-delà de trente secondes. Voici quelques-uns des mouvements difficiles que notre politique basée sur un modèle du monde a pu apprendre en utilisant une seule politique :
Cette approche basée sur le modèle du monde peut être appliquée à d’autres tâches de contrôle de personnages basées sur la physique. Par exemple, des recherches récentes ont démontré comment construire des contrôleurs de personnages interactifs en temps réel avec l’apprentissage par renforcement. Nous avons utilisé un système similaire, mais nous avons remplacé l’apprentissage par renforcement par notre solution basée sur un modèle du monde. Cette solution a été capable d’apprendre un contrôleur de personnage à partir de trente minutes de données enregistrées, et cela après seulement trois heures d’entraînement.
Notre approche est indépendante des personnages et peut être appliquée à différents animaux si nous disposons des données d’animation. Par exemple, nous avons construit ce contrôleur de chien en utilisant la capture du mouvement d’un vrai chien :
Nous avons également expérimenté la tâche plus difficile d’entraîner un ragdoll à naviguer sur un terrain accidenté. Une grande base de données d’animations sur des surfaces irrégulières a été collectée et une carte de niveau (heightmap) a été générée à partir des données d’animation. Pour cette tâche, la politique a reçu des informations sur la carte de niveau située en dessous d’elle afin qu’elle puisse réagir aux changements de hauteur du terrain. Le résultat est un ragdoll doté de compétences impressionnantes en matière de parkour :
Le monde selon un Ragdoll animé
Enfin, visualisons les prédictions du modèle du monde pour voir les trajectoires des ragdolls que le modèle du monde génère pour tous ces mouvements complexes. Nous montrons ici les trajectoires d’une durée d’une seconde du modèle du monde avant de le réinitialiser à la pose réelle de la ragdoll :
Nous constatons que le modèle du monde peut apprendre des mouvements complexes, notamment des collisions avec le sol, des rotations rapides de pose de référence du personnage (character reference frame) et un suivi précis des mains et des pieds. Dans l’ensemble, nous avons été surpris par la qualité des prédictions du modèle du monde. Des recherches antérieures sur les modèles de monde ont utilisé des représentations intégrées pour réduire la complexité du monde et renforcer la stabilité des prédictions, mais nos résultats montrent qu’avec une représentation des données et des hyperparamètres appropriées, cela n’était pas nécessaire.
Les modèles de monde constituent un domaine de recherche passionnant. Ils bénéficient de temps d’apprentissage plus rapides, nécessitent moins d’échantillons de l’environnement et leur entraînement des politiques est stable. L’apprentissage basé sur les modèles de monde nous rapproche de la possibilité de disposer de contrôleurs de personnages physiques rapides à entraîner et plus fiables à déployer dans le jeu – deux des principaux facteurs qui limitent leur adoption dans l’industrie du jeu vidéo.
Pour ce qui est de l’avenir de l’animation de personnages et des modèles de monde basés sur la physique, il existe de nombreuses pistes de recherche à explorer. Par exemple, le transfert à de nouvelles tâches pourrait être plus facile avec les approches basées sur les modèles du monde qu’avec l’apprentissage par renforcement, car les modèles de monde partagent de nombreux avantages avec l’apprentissage supervisé, comme une généralisation très efficace. Nous avons montré certaines des façons dont les modèles de monde peuvent être appliqués à l’animation de personnages physiques, mais cette approche peut être utilisée à la place de l’apprentissage par renforcement pour la plupart des recherches récentes dans ce domaine. Par exemple, nos premières expériences combinant les modèles de monde et les Adversarial Motion Priors (AMP) ont donné des résultats prometteurs.
Observations finales
La physique réalise lentement son potentiel en tant qu’outil puissant pour aider les animateurs de personnages. Sa capacité à ajouter de la profondeur au gameplay en produisant des réponses réalistes et immersives des personnages ne peut être ignorée. Le travail que nous avons présenté ici commence à adresser deux des principales difficultés liées à la réalisation d’un futur de contrôleurs de personnages entièrement basés sur la physique : le temps d’itération et le réalisme des mouvements.
Les approches précédentes basées sur l’apprentissage par renforcement souffrent d’un temps d’entraînement de plusieurs jours à plusieurs semaines et d’un suivi de mouvement sous-optimal. En recadrant l’imitation de mouvements comme un problème d’apprentissage supervisé (supervised learning), nos recherches montrent qu’avec un budget de temps de calcul de quelques heures seulement, il est possible d’entraîner des contrôleurs de personnages réalistes et de haute qualité pour des mouvements très complexes.
Ressources supplémentaires
Pour plus de détails sur les recherches dont il est question dans cet article, veuillez vous reporter à notre papier du SIGGRAPH Asia 2021 SuperTrack : Motion Tracking for Physically Simulated Characters using Supervised Learning. Vous trouverez également d’autres informations et résultats dans la vidéo additionnelle ci-dessous.