Équilibrer la fluidité de l'animation avec les entrées des joueurs dans Bye Sweet Carole

Bye Sweet Carole (lancé aujourd'hui) associe l'esthétique classique de la princesse animée à l'horreur et au macabre, le tout donné vie à l'aide de techniques d'animation traditionnelles. Nous avons interviewé Chris Darill, scénariste et réalisateur chez Little Sewing Machine et créateur de la série Remothered, et le programmeur en chef Alvaro Martinez de Dreams Uncorporated, pour en savoir plus sur les techniques et les défis de la création de graphismes dessinés à la main pour un environnement en temps réel dans Unity.
Chris Darill décrit Bye Sweet Carole comme un hommage aux films d'animation avec lesquels il a grandi dans les années 1990 (ainsi qu'à leurs jeux dérivés tristement difficiles). « Je suis un fidèle partisan de l'animation traditionnelle », déclare-t-il. « Bye Sweet Carole est difficile à définir car chaque chapitre est différent, mais c'est comme un mélange de jeux d'horreur classiques old school comme Clock Tower et de jeux animés pointer-et-cliquer comme Dragon’s Lair et The Secret of Monkey Island. »
Ce titre ambitieux propose un grand nombre de ressources et de visuels animés traditionnellement, chacun dessiné à la main par une équipe de 11 artistes professionnels. Le programmeur en chef Alvaro Martinez estime qu'environ 95 % des ressources artistiques du jeu final sont dessinées à la main, les 5 % restants étant produits par des shaders et des effets de post-traitement.
« Pratiquement tout dans Bye Sweet Carole est aussi en temps réel. Il est assez rare de trouver un jeu de ce style avec autant d'images », ajoute Chris. « C'est peut-être l'un des jeux les plus compliqués à animer de l'histoire ! »
Identification du défi
La création d'un jeu dans ce style visuel repose sur des images détaillées et des transitions fluides. Cependant, les premiers tests ont révélé un décalage significatif entre les graphismes et l'expérience de jeu. Bien que les animations pour différentes actions aient été d'une grande qualité, les entrées correspondantes n'ont pas semblé naturelles, ce qui a entraîné une expérience lente et peu réactive. Équilibrer la fluidité visuelle et la réactivité des entrées est rapidement devenu un défi majeur à relever pour l'équipe.
Bye Sweet Carole propose quelques personnages jouables différents à différents moments du jeu. En termes d'animations, la protagoniste principale, Lana Benton (qui peut se transformer en lapin), est la plus compliquée, avec une suite complète d'actions et d'animations à la fois pour ses formes humaines et lapin. Le problème était de mélanger toutes ces différentes animations de manière fluide lors des transitions entre les différents mouvements.
« Nous réalisons des animations alternant entre 15 et 24 FPS, donc si vous passez brusquement d'une animation à l'autre, cela a vraiment l'air mauvais », explique Chris. « En même temps, lorsque nous utilisions des mélanges d'animation très longs, notre expérience de jeu ne semblait tout simplement pas réactive. »

Entrez dans le cadre de la matrice
Pour un jeu qui combine des plateformes tendues et des mécanismes de cache-cache (où un mauvais geste peut signifier game over), ce décalage perçu était inacceptable. La solution créative de l'équipe a été de développer un système autour de ce qu'ils appellent « le cadre matriciel ». Ils ont commencé par adapter les cycles de marche et de course de Lana pour inclure quelques images d'apparence similaire qui pourraient servir de pont entre les mouvements. Dans ces cycles, ils désignent une trame spécifique (la trame matricielle) qui peut servir de point de départ universel à d'autres actions.
Dans ce nouveau système, si le joueur appuie sur l'entrée de saut pendant que Lana est en cours d'exécution, le jeu n'attend pas la fin du cycle d'exécution. Au lieu de cela, il saute à la trame matricielle la plus proche, lançant l'action de saut à partir de ce point spécifique. Cela permet à l'animation de « prendre naissance » à partir d'une position propre et prévisible, ce qui réduit considérablement le décalage d'entrée perçu pour le joueur. Cette technique permet d'effectuer les actions brusques et réactives que les joueurs peuvent avoir besoin de faire dans un jeu d'horreur, sans compromettre le style visuel.

Délimitation de la production
L'engagement indéfectible de Bye Sweet Carole pour l'animation traditionnelle signifiait que l'équipe devait établir un flux de production rigoureux, image par image, pour la création de ressources. Chris a expliqué comment une animation de personnage s'assemble généralement :
• Roughs/storyboards : Esquisses initiales pour définir l'action
• Nettoyage et tweening : Affiner les images-clés et ajouter des images pour plus de fluidité
• Coloration : Appliquer la palette de couleurs finale
• Exportation : Préparer les fichiers à importer dans l'éditeur Unity
L'exportation d'actifs s'est avérée être le plus grand obstacle. Pour les cinématiques avec une caméra fixe, le processus était simple, mais les nombreuses animations dynamiques de personnages du jeu se sont avérées plus compliquées. Chaque image devait être exportée avec un point de pivot central pour garantir que le personnage se déplaçait correctement dans le monde du jeu. C'était un processus méticuleux, en particulier pour les personnages jouables plus grands comme Mr. Baese qui devaient être découpés en morceaux et remontés autour du point de pivot dans l'éditeur.

Performances et optimisation
Bye Sweet Carole est lancé simultanément sur les ordinateurs de bureau et les consoles. Atteindre un objectif de 60 FPS sur la plupart des plateformes disposant de ressources extrêmement haute résolution nécessitait une optimisation disciplinée. Alonzo a décrit quelques techniques clés :
Leveraging Sprite Atlases : Les sprites sont organisés et rassemblés dans des atlas basés sur la fonction. Par exemple, chacune des animations de marche de Lana possède son propre atlas. (Alvaro note qu'il s'agit d'une pratique standard, mais qu'elle était essentielle pour gérer la mémoire et assurer un rendu rapide avec le 2D Renderer de Unity).
Profilage agressif : Le débordement de mémoire était un problème courant. Le profilage approfondi a permis d'identifier et de résoudre les goulots d'étranglement du processeur et du GPU et les fuites de mémoire.
Compression et diffusion des actifs : L'algorithme et le format de compression de chaque Sprite Atlas sont soigneusement étudiés. Les ressources sonores sont chargées et déchargées au besoin à l'aide du flux de ressources pour minimiser leur empreinte mémoire.

Rendre hommage aux grands classiques
En alliant technique et créativité à une rigoureuse optimisation technique, Little Sewing Machine et Dreams Uncorporated ont réussi à concrétiser la Vision de Chris Darill, mêlant la nostalgie de l'animation classique au gameplay chic et réactif auquel les joueurs s'attendent aujourd'hui.
« J'ai vraiment de la chance d'avoir pu travailler avec des professionnels aussi talentueux », déclare Chris. « Au début, je n’étais pas sûr que cette idée folle marcherait, mais je suis vraiment fier de toutes les personnes impliquées et de ce que nous avons fait. »
Bye Sweet Carole est désormais disponible sur les ordinateurs de bureau et les consoles. Découvrez d'autres projets Made with Unity sur notre page officielle Steam Curator. Lisez d'autres témoignages de développeurs sur le blog et le hub de ressources Unity.
