Il y a 14 ans, Batman: Arkham Asylum avait surpris tout le monde avec sa cape animé. C’était la première fois qu’un jeu avait un tissu aux mouvements aussi convaincants. Comment Rocksteady a réussi cet exploit et pourquoi si peu de jeux ont réutilisé la même méthode ?

Dans un jeu vidéo, le tissu est un type d’objet à part. C’est une sorte de mix entre un système de particule et un mesh. Chaque sommet a des propriétés différentes (vitesse, position, …). Mais ils s’influencent entre eux pour respecter des contraintes d’élasticités.

Si un coin de tissu est tiré alors le sommet en déplacement va donner une partie de sa vitesse à ses voisins qui vont faire de même avec leurs voisins ce qui propage le mouvement. À cause de cette spécificité, animer manuellement les mouvements d’un tissu est très complexe.

Schéma montrant les différences entre mesh, particules et tissu.

En 2009, l’animation de tissu se faisait principalement de façon manuelle ou pré-calculé. L’animateur devait prendre en compte le contexte précis dans lequel sera jouée l’animation pour créer un mouvement réaliste et convaincant.

Pour Batman les animations étaient pré-calculées. L’animateur choisissait des paramètres physiques pour son tissu (poids, élasticité, etc…) et lançait une simulation avec Batman portant le vêtement en faisant des mouvements. Il récupérait alors l’animation du vêtement obtenu.

La difficulté dans un jeu de combat comme Batman c’est qu’il y a énormément de situations différentes. 700 animations ont été réalisées uniquement pour la cape ! 😱 C’est un travail titanesque pour un objet ayant des possibilités de déformations aussi variées.

L’équipe de Rocksteady a accompli un exploit à l’époque. La cape ajoute énormément de dynamisme aux combats ce qui les rend très agréables à jouer en plus d’être satisfaisant visuellement. Nul doute que cela a participé au succès du jeu à sa sortie.

Extrait de Batman Arkham Asykum - Freeflow Combat
Si très peu de jeu ose encore aujourd’hui mettre autant de moyens dans l’animation pré-calculé de vêtements, c’est parce que ce fonctionnement est très couteux et risqué. En cas de changement des situations ou du design du personnage, il faut refaire toutes les animations.

Après Asylum, Rocksteady a choisi une approche différente pour Batman: Arkham City. Profitant du moteur Nvidia Apex Cloth, ils ont utilisé de la simulation en temps réel. Grâce à ça, la cape et les autres tissus du jeu réagissent de façon dynamique à leur environnement.

Batman Arkham City Slide

La simulation de vêtements en temps réel coûte cher en performance. Elle a longtemps été réservée aux grosses productions (TLOU 2, Spider-Man, Fifa, …). Mais, grâce à la puissance des machines actuelles et les progrès d’Unreal Engine/Unity son usage se démocratise.

Comment fait-on pour générer un mouvement réaliste en temps réel ? Comment sont gérées les collisions avec le décor ? Si le sujet vous intéresse, j’explique tout ça dans un article plus complet ⏬