Factorio: La chaine de Conception Graphique

Il y a quelques mois, je vous avais présenté le jeu  Factorio, nous allons maintenant parler de son workflow de conception graphique.

L’idée d’une nouvelle entité

Kovarex pense à ajouter une nouvelle entité au jeu Factorio. La plupart du temps, pour ses propositions, il fait un prototype avec un concept art, puis, il modélise et améliore le comportement de la nouvelle entité par observation en jouant. Une fois qu’il la juge bonne, il la soumet à l’équipe qui discute des lignes directrices avec contributions concernant les exigences visuelles, de couleurs, d’animations, d’humeur, etc.
Voici un exemple avec de nouvelles pompes et l’esquisse d’une nouvelle entité:

factorio FFF-146-01-PUMP-SKETCH

Modélisation 3D avec Blender

Une fois le concept et les exigences techniques clairement établis, la modélisation est réalisée sous Blender qui permet d’avoir un flux de travail très flexible.
Une entité dans Factorio est complexe, rendue en plusieurs layers, et assemblée à nouveau dans le moteur. Donc, pour cela, l’équipe a besoin de plusieurs layers et sorties dans Blender.
Il est très fréquent aussi qu’une fois le rendu et tout le processus terminés, et l’entité intégrée dans le jeu, certains changements soient nécessaires. Il est donc pratique d’avoir le fichier de mélange prêt à ces changements. Pour re-rendre en un seul clic, l’équipe utilise RenderLayers, et/ou des scènes séparées. 

factorio fff-146-02-blender-render-layers

Les scènes sont toujours divisées en scènes MODELES et scènes RENDER.
La scène RENDER relie ensuite tous les RenderLayers nécessaires via des compositor nodes. Il est nécessaire de diviser les scènes en tant que compositor nodes.
Une autre option aurait été le rendu par lots via une commande .bat, mais cela ne prend pas en charge RenderLayers, elle n’est donc pas utilisable ici.

factorio fff-146-03-blender-render-outputs

Post-production sous Photoshop

Presque tous les sprites passent par Photoshop à un moment donné.
Les masques dessinés à la main sont peints pour faire appliquer le contraste, faire des bords plus clairs, mieux définir la forme des entités, ….
Sous Photoshop, l’approche générale est de prendre l’image rendue (de préférence par Place Linked function), la dupliquer deux fois, définir les doublons en Multiply et/ou un Screen blend modes et leur ajouter des masques vides (noirs).
Il est toujours préférable d’avoir le meilleur rendu des résultats directement depuis Blender, mais en réalité il y a souvent besoin d’un second réglage. Voici un exemple de l’importance de la post-production:

factorio fff-146-04-post-produced-comparison

Après les effets

Les projets sont souvent très grands, avec de nombreux sprites de sortie, il y a besoin d’automatiser le processus de rendu, pour lequel After Effects est utilisé.
Nous pouvons combiner à la fois la post-production dessinée à la main sous Photoshop avec After Effects avec l’importation des fichiers PSD et/ou des layers séparés de celle-ci.
Le plus grand obstacle à l’adoption du flux de travail Ae est de s’habituer au système de stratification lors de l’insertion des compositions dans d’autres compositions. Une bonne comparaison est d’utiliser des groupes dans Photoshop. Dans After Effects on appelle cela pre-composing.
Souvent, vous devez pré-composer / créer plusieurs niveaux de compositions afin d’atteindre les résultats souhaités quand :
Une telle chose est susceptible de se produire quand:

  • Vous voulez traiter quelque chose comme 1 seule unité
  • lors du déplacement, rotation, mise à l’ échelle,
  • Vous voulez faire des rendus pour certaines choses séparément,
  • Vous voulez appliquer un effet à seulement quelques layers, mais pas à tous.
  • Vous voulez appliquer le additive blending à un certain layer qui devrait affecter autre chose que l’entité (comme le feu sur la tourelle).
  • Vous souhaitez utiliser plusieurs couches comme une matte.
  • Vous voulez rendre différents “temps” avec la même composition (si vous avez plusieurs sorties différentes dans une séquence de temps comme fret wagon, ou lors du rendu de décalages).

factorio fff-246-06-after-effects-nooddle

Python, la dernière étape

A la fin de notre processus, un spritesheeter.py de script python, fait par les codeurs Factorio, est utilisé pour créer des spritesheets prêts pour le moteur avec du code lua dans des fichiers texte, aux côtés des aperçus gif.

factorio fff-246-07-Automation_Overview

Maintenant , la nouvelle entité est prête à être insérée dans le jeu pour voir comment ça va , il est très probable que quelque chose ne soit pas exactement comme désiré et qu’il faille revenir à Blender, afin de le modifier à nouveau. Voilà la raison d’avoir un système flexible.
Comme il y a pas mal d’artistes dans le département, le travail a du être normalisé, des processus rédigés.

Sources: https://www.factorio.com/blog/post/fff-146.
Je vous conseille fortement de suivre ce dev blog  des créateurs de factorio. Presque tous les vendredi, vous allez y trouver une sorte de rapport de développement détaillant un aspect ou l’autre du dev du jeu, des nouvelles fonctionnalités, etc.
 

Ces articles pourraient aussi vous intéresser …