16 Couleurs

16 Couleurs – graphisme & jeu vidéo

Making of de Red Eyes sur Sega Mega Drive

5 Commentaires

Crédit photo : @marexpo

En janvier 2019, Remute, musicien électro basé à Hambourg, annonçait la sortie au mois de mars de Technoptimistic, un album pour la Mega Drive exclusivement disponible en édition physique, une bonne vieille cartouche donc. Outre les pistes de musique elles-mêmes, on y trouverait une interface de type music-disk et un clip vidéo pour le morceau Red Eyes qui tournerait en temps réel sur la console. Pour cela, un an auparavant il avait fait appel à Kabuto (le programmeur derrière la majorité du code de la très impressionnante démo de Titan pour la Mega Drive, Overdrive 2) et à moi-même pour la partie graphique. Difficile de refuser ce genre d’opportunité !

Graphismes 2D

Je commence par la partie la plus classique où il s’est surtout agit de garder en tête les capacités graphiques de la 16 bit de Sega, qui fête ses 30 ans cette année d’ailleurs : une résolution de 320×224 et jusqu’à 64 couleurs par plan (16 couleurs par tile) à choisir parmi une palette de seulement 512 couleurs (8 niveaux par composante RGB, comme ce bon vieil Atari STF). Pour produire les images j’ai utilisé Grafx2 qui est souvent la meilleure solution pour les plateformes old school grâce à ses fonctionnalités spécifiques.

Grafx2

Pour obtenir la trame assez originale du halo derrière le logo et d’autres éléments, j’ai eu recours à mon couteau suisse habituel, Imagemagick, ce dernier permettant en effet de générer des types de tramages sur mesure de bonne facture (voir à la fin du billet pour les instructions détaillées). À l’inverse, les résultats obtenus avec les algorithmes de Photoshop (diffusion, noise…) sont souvent décevants à cause du petit nombre de teintes disponible dans la palette de la Mega Drive.

Graphismes 3D

Le secret de cette partie c’est que la Mega Drive n’affiche pas réellement des scènes 3D comme on pourrait le croire à première vue, mais uniquement des polygones en 2D. Une technique similaire avait été utilisée par Oxygene pour leur démo STNICCC 2000 sur Atari ST. Tous les calculs de perspective, d’occlusion ou autres sont donc effectués auparavant. Pour autant, ça ne permet pas de s’affranchir des contraintes en matière de palette et surtout de complexité des scènes, puisque afficher des centaines de polygones, même 2D, à 25 images par seconde sur une machine qui n’a absolument pas été conçue pour afficher autre chose que des sprites et des tiles nécessite beaucoup de calculs et d’optimisation.

Nous avons discuté la possibilité d’utiliser un éclairage dynamique mais avons préféré y renoncer de peur que le résultat soit décevant au vu de la palette de couleurs limitée. Pour maintenir des performances correctes, je me suis efforcé de me limiter à quelques centaines de polygones généralement, qui est suffisamment léger mais permet néanmoins d’obtenir des scènes intéressantes. Au final le framerate des différentes séquences est bien meilleur qu’espéré initialement grâce aux talents d’optimisation de Kabuto. Pour plus de détails sur le fonctionnement du moteur de rendu des polygones, je ne peux que vous conseiller de vous référer aux explications très détaillés qu’il a écrites.

Blender

L’animation 3D a été entièrement modélisée et animée avec Blender avec l’objectif de générer une séquence d’images directement compatible avec les capacités de la Mega Drive : résolution et palette exactes, pas d’antialiasing, 16 couleurs par image maximum. Les valeurs RGB des matériaux ont été copié de Grafx2 pour s’assurer qu’elles étaient toutes compatibles avec la palette de 512 couleurs. Après avoir validé le workflow grâce à un petit test avec un vaisseau spatial relativement complexe, le temps était venu de se retrousser les manches et de commencer le travail sur les scènes 3D. J’avais une bonne idée du thème général, mais beaucoup d’idées sont apparues après avoir commencé à travailler sur les premières séquences, celles de la poursuite dans le désert. Remute m’a laissé carte blanche, ce qui est toujours un énorme avantage, avec comme seule requête la présence dans l’animation du robot qu’on aperçoit sur un des extraits vidéo au début du clip. Les sources d’inspiration ont été très variées, de WipeOut pour les vaisseaux évidemment, à Blade Runner et Total Recall pour l’ambiance générale, jusqu’au hangar à dirigeables d’Écausseville.

Le gros avantage quand on utilise une caméra fixe, à l’opposé d’une caméra repositionnable comme généralement dans les jeux 3D, c’est qu’on peut énormément tricher pour parvenir au résultat souhaité, avec à la clé des grosses économies en matière de polygones ou encore mieux, de temps. L’astuce la plus fréquente est l’utilisation de billboards, des formes 2D qui sont alignées avec la caméra, en lieu et place d’objets modélisés en 3D : la silhouette du personnage dans le hangar, les montagnes à l’extérieur, etc. Autre exemple, lors de la plupart des scènes où les véhicules semblent se déplacer, c’est généralement juste le décor qui défile en dessous, comme un tapis roulant, ce qui simplifie énormément la structure de ces séquences.

Storyboarder

À mesure que l’animation gagnait en complexité, il m’est rapidement apparu que j’allais avoir besoin d’un système pour maintenir une vue d’ensemble de toutes les scènes (21 initialement, chacune un fichier Blender différent – pas forcément l’organisation la plus efficace…) et de la durée totale de l’animation. J’ai pour cela utilisé Storyboarder, un logiciel gratuit de storyboard qui a parfaitement joué son rôle.

L’animation 3D devait durer exactement 85 secondes pour être en phase avec la musique. J’avais à peu près 10 secondes de rab après avoir animé toutes les scènes et il fallait donc en supprimer ou raccourcir certaines. J’ai pu économiser beaucoup de temps pour cette dernière étape en découvrant qu’on pouvait importer et exporter des séquences de PNG dans Adobe Premiere Pro, où réorganiser des séquences se fait de manière très visuelle.

Premiere Pro

Même si la masse de travail a été plus importante que prévue initialement, j’ai beaucoup apprécié travailler sur ce projet et suis fier du résultat obtenu. Nous avons réalisé quelque chose d’inédit sur Mega Drive tout en développant en 1 minute 30 une petite histoire que j’espère divertissante dans un univers cohérent.

La sortie d’une production sur support physique est rare aujourd’hui et le fait de voir la cartouche apparaître aux 4 coins du globe est un motif de satisfaction supplémentaire. Espérons que ces collectionneurs continueront d’apprécier l’album pour de nombreuses années.

crédit image : Remute

D’un point de vue plus personnel j’ai évidemment apprécié cet équilibre presque parfait entre contraintes techniques et liberté artistique. La mise en scène et le cadrage de séquences animées sont des domaines assez nouveaux pour moi et m’y frotter a été très intéressant. Enfin cela m’aura permis d’approfondir mes connaissances de Blender et de travailler dans des conditions inédites, comme pour la dernière scène avec le robot, réalisée sur une petite Surface Go lors d’un vol transcontinental.

Enfin si vous êtes à Londres le 22 juin, je ferai une petite présentation sur mon travail sur Red Eyes au London Blender Day.


Voici la ligne de commande Imagemagick que j’ai utilisé pour le tramage avec colorisation avec la palette Megadrive :

convert input.png -ordered-dither hlines2x2a,6 +remap md_pal.gif output.png

Il faut aussi éditer le fichier thresholds.xml dans le répertoire d’Imagemagick pour y ajouter les nouveaux effets de trame. Plus d’information ici.

<threshold map="hlines2x2a">
<description>Horizontal Lines 2x2 (bounds adjusted)</description>
<levels width="2" height="2" divisor="10">
3 3
9 9
</levels>
</threshold>

Auteur : HP

Professionnel de l'industrie vidéoludique depuis plus de 15 ans, j'écris principalement sur l'infographie, le business des jeux vidéo et la demoscene.

5 réflexions sur “Making of de Red Eyes sur Sega Mega Drive

  1. Merci pour cet aperçu en insider ! Quand on voit le résultat on ne peut pas imaginer les étapes de conception nécessaires. Un vrai boulot de pro ! Je viens de revoir la vidéo (sans son, étant au boulot) et vraiment la partie 3D est magnifique ! Bravo !

  2. super ! On devrait peut être rajouter un mode Mega drive dans Grafx2 🙂
    Sauf erreur, le VDP de la mégadrive supporte 4 palettes de 16 couleurs qui sont sélectionnables par tile.
    Donc c’est possible de faire des images 64 couleurs par plan.
    Enfin sur les sprites et le plane A, chaque palette a en fait 15 couleurs + la transparence.

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.