Animation réaliste de personnages dans des jeux utilisant l'IA



Les développeurs de l'Université d'Edimbourg ont introduit un nouvel algorithme pour créer des mouvements de personnages réalistes dans les jeux. Formé sur les trajectoires de Motion Capture, le réseau de neurones essaie de copier les mouvements de personnes réelles, mais en même temps les adapte aux personnages des jeux vidéo.

Un réseau de neurones est capable de gérer simultanément plusieurs actions dans le jeu. Ouvrir des portes, déplacer des objets, utiliser des meubles. En même temps, elle change dynamiquement la position des jambes et des bras afin que le personnage puisse tenir des tiroirs de différentes tailles de manière réaliste, s'asseoir sur des chaises de différentes tailles et aussi ramper dans des passages de différentes hauteurs.

Habituellement, sous le contrôle de personnages dans des jeux utilisant l'IA, cela signifie un contrôle total des efforts dans les membres, basé sur une sorte de moteur physique qui imite les lois de la physique. C'est le domaine de l'apprentissage automatique appelé apprentissage par renforcement. Malheureusement, de cette manière, des mouvements réalistes ne peuvent pas encore être réalisés.

D'un autre côté, vous pouvez essayer d'entraîner le réseau neuronal à simuler les mouvements de personnes réelles capturées à l'aide de Motion Capture. Ainsi, il y a environ un an, des progrès importants ont été réalisés dans l'animation réaliste de personnages 3D.





Il y a eu plusieurs travaux scientifiques consécutifs sur ce sujet, mais la description la plus complète peut être trouvée dans les travaux de Towards a Virtual Stuntman sur le réseau neuronal DeepMimic ( https://www.youtube.com/watch?v=vppFvq2quQ0 ).

L'idée principale est de simuler les mouvements humains pendant l'entraînement pour démarrer l'épisode non pas au tout début de la piste Motion Capture, comme ils l'ont fait auparavant, mais à partir de points aléatoires tout au long du chemin. Les algorithmes d'apprentissage par renforcement existants explorent le voisinage du point de départ, de sorte qu'ils n'atteignent le plus souvent pas la fin de la trajectoire. Mais si chaque épisode commence le long de toute la piste, les chances augmentent que le réseau neuronal apprenne à répéter toute la trajectoire.



Plus tard, cette idée a été reprise dans des domaines complètement différents. Par exemple, en apprenant aux gens à jouer à un réseau de neurones dans les jeux, et aussi à démarrer des épisodes non pas depuis le début, mais à partir de points aléatoires (en particulier dans ce cas, depuis la fin et en se déplaçant progressivement vers le début), OpenAI a enseigné au réseau de neurones à jouer à Montezuma's Revenge . Ce qui ne cédait pas aux algorithmes d'apprentissage par renforcement habituels auparavant.

Sans cette astuce, les tentatives de formation du réseau neuronal pour copier des mouvements complexes ont échoué car le réseau neuronal a trouvé un chemin plus court. Bien que ne donnant pas une récompense aussi importante que pour toute la trajectoire, mais il y avait quand même une sorte de récompense. Par exemple, au lieu de faire un saut périlleux arrière, le réseau neuronal a simplement rebondi légèrement et s'est effondré sur le dos.



Mais avec cette approche, le réseau neuronal étudie sans problème la trajectoire de presque n'importe quelle complexité.



Le principal problème de DeepMimic, qui empêchait de l'appliquer directement aux jeux vidéo, était qu'il n'était pas possible de former le réseau neuronal à effectuer plusieurs animations différentes à la fois. Il était nécessaire de former un réseau neuronal distinct pour chaque animation. Les auteurs ont essayé de les combiner de différentes manières, mais plus de 3-4 animations n'ont pas pu être combinées.

Dans le nouveau travail, ce problème n'est pas non plus complètement résolu, mais beaucoup de progrès ont été accomplis vers une transition en douceur entre les différentes animations.

Il convient de noter que ce problème affecte tous les réseaux de neurones d'animation similaires existants. Par exemple, ce réseau neuronal , également formé à l'imitation de Motion Capture, est capable de contrôler honnêtement un très grand nombre de muscles (326!) De caractère humanoïde sur un moteur physique. S'adapter à différents poids de poids levés et à diverses lésions articulaires. Mais en même temps, pour chaque animation, un réseau neuronal formé distinct est nécessaire.

Il faut comprendre que le but de tels réseaux de neurones n'est pas seulement de répéter l'animation humaine. Et répétez-le sur le moteur physique. Dans le même temps, les algorithmes d'apprentissage par renforcement rendent cette formation fiable et résistante aux interférences. Ensuite, un tel réseau neuronal peut être transféré à un robot physique qui diffère en géométrie ou en masse d'une personne, mais il continuera toujours à répéter de manière réaliste les mouvements des personnes (à partir de zéro, comme déjà mentionné, cet effet n'a pas encore été atteint). Ou, comme dans le travail ci-dessus, vous pouvez virtuellement explorer comment une personne blessée aux jambes se déplacera afin de développer des prothèses plus confortables.

Même dans le premier DeepMimic, il y a eu les débuts d'une telle adaptation. Il était possible de déplacer la balle rouge et le personnage lui lançait la balle à chaque fois. Viser et mesurer la force de lancement pour frapper la cible exactement. Bien qu'il ait été formé sur la seule piste Motion Capture, ce qui n'offre pas une telle opportunité.



Par conséquent, cela peut être considéré comme un entraînement à part entière de l'IA, et l'imitation des mouvements humains vous permet simplement d'accélérer l'apprentissage et de rendre les mouvements visuellement plus attrayants, familiers pour nous (bien que du point de vue du réseau neuronal, ils ne soient peut-être pas les plus optimaux en même temps).

De nouveaux travaux sont allés encore plus loin dans cette direction.


Il n'y a pas de moteur physique, c'est un système purement d'animation pour les jeux vidéo. Mais l'accent est mis sur une commutation réaliste entre plusieurs animations. Et pour interagir avec les objets du jeu: déplacer des objets, utiliser des meubles, ouvrir des portes.



L'architecture du réseau neuronal se compose de deux parties. L'un (Gating network), en fonction de l'état actuel de l'état et de l'objectif actuel, choisit l'animation à utiliser, et l'autre (Motion prediction network) prédit les images suivantes de l'animation.



Tout cela a été formé sur un ensemble de pistes de capture de mouvement en utilisant l'apprentissage par renforcement par simulation.

Mais la principale réalisation de ce travail est différente. Dans la façon dont les développeurs ont appris au réseau neuronal à travailler avec des objets de différentes tailles et à se faufiler dans des passages de différentes largeurs ou hauteurs. Pour que les positions des bras et des jambes soient réalistes et correspondent à la taille de l'objet avec lequel le personnage interagit dans le jeu.

Le secret était simple: l'augmentation!

Tout d'abord, à partir de la piste Motion Capture, ils ont déterminé les points de contact des mains avec les accoudoirs de la chaise. Ensuite, ils ont remplacé le modèle de la chaise par une plus large et ont recalculé la trajectoire de Motion Capture de sorte que les mains touchent les accoudoirs aux mêmes points, mais sur une chaise plus large. Et ils ont forcé le réseau neuronal à simuler cette nouvelle trajectoire générée par Motion Capture. De même avec les dimensions des caisses, la hauteur des allées, etc.



En répétant cela plusieurs fois avec différents modèles 3D de l'environnement avec lequel le joueur va interagir, le réseau neuronal a appris à manipuler de manière réaliste des objets de différentes tailles.



Pour interagir avec l'environnement dans le jeu lui-même, il était en outre nécessaire de voxéliser les objets autour pour qu'il fonctionne comme des capteurs à l'entrée du réseau neuronal.



Le résultat a été une très bonne animation pour les personnages du jeu. Avec des transitions en douceur entre les actions et avec la possibilité d'interagir de manière réaliste avec des objets de différentes tailles.

Je recommande fortement de regarder la vidéo si quelqu'un ne l'a pas déjà fait. Il décrit en détail comment ils y sont parvenus.

Cette approche peut être utilisée pour l'animation, y compris les animaux à quatre pattes, obtenant la qualité et le réalisme inégalés des mouvements des animaux et des monstres:


Les références


Vidéo
Page de projet avec source
Fichier PDF avec une description détaillée de l'œuvre: SIGGRAPH_Asia_2019 / Paper.pdf

Source: https://habr.com/ru/post/fr474252/


All Articles