Traductions possibles :
  • English
  • Français (French)

II.Les bases du pixel-art

1.Introduction

Ce tutoriel est élaboré à partir du pak128, pour les autres paks il faudra adapter la taille !

Pixel-art signifie littéralement qu'on fait de l'art grâce aux pixels … un peu générique comme terme vu que c'est de même pour la 3D … Courrament le pixel-art est évoqué pour les dessins faits avec des logiciels de dessin/retouche d'image (comme paint, photofiltre, paint.net, photoshop, gimp, et j'en passe et des meilleurs …). Contrairement à ce que certains croient en pixel-art on ne colore pas les pixels un par un … (et heureusement !) du moins pas pour Simutrans (ou alors très rarement sur des toutes petites zones quand il y a un détail à retoucher). Non heureusement l'Homme a avancé dans la technologie, et grâce à Homo-Sapiens-Ordinatus on bénéficie de magnifiques outils tels que photofiltre que nous utiliserons et qui savent nous faire des lignes, des dégradés, et plein de trucs chouettes.

Si vous avez loupé une étape et que vous ne connaissez pas photofiltre, rendez-vous ici.

Alors le pixel-art demande un peu de patience et du temps à perdre c'est évident, la qualité du résultat dépend directement du temps passé à travailler dessus. Mais comme on dit : Quand on aime on ne compte pas ! De plus à l'aide du pixel-art on peu atteindre sans problèmes des résultats aussi bons que ce que donne la 3D, à condition de connaitre les techniques qu'il faut. On fait même parfois mieux que de la 3D ! (au vu de pas mal de créations 3D qui ne sont absolument pas soignés on peut le dire …).

Mais arrêtons le blabla et rentrons dans le vif du sujet. Chaque parties de ce tuto est accompagnée d'exercices qu'il est important de faire, des références à l'introduction à photofiltre sont aussi présentes chaque fois que c'est nécéssaire.

Une dernière chose à savoir est que pour Simutrans on dessine en perspective isométrique, ce qui veut dire que nous aurons affaire à trois axes perpandiculaires : longueur, largeur, hauteur qui dans Simutrans correspondraient plutôt à Nord-Sud, Est-Ouest, hauteur. Mais voyons ça de plus près …

Les directions sont importantes à connaitre dans Simutrans, les voici :

2.Lignes

Dans le pixel-art on dessinera surtout face par face mais une face pour exister à besoin de côtés qui seront délimitées par des lignes. Voyons ça tout de suite.

Regardons cette image source (c'est une simple extension de gare).

Vu d'ici on voit déjà nettement deux axes : le Nord-Sud qui se montre sur les côtés supérieur gauche et inférieur droit et l'axe Est-Ouest qui se montre sur les deux autres côtés. Ceux sont des lignes tout à fait visibles, mais vous savez que votre écran est fait de pixels et que pour dessiner des lignes diagonales il feut un peu tricher au niveau des pixels … Voyons ça de plus près :

On voit nettement une fois zoomé que les côtés ont des formes de créneaux (retenez bien ce terme). On voit surtout que pour deux pixels en largeur on a un pixel de hauteur, et ça forme notre droite. Les matheux diront qu'on a des droites d'équation y=0.5x et y=-0.5x.

Si à l'écran on a un angle entre nos deux droites qui est de … peu importe, il ne faut pas oublier que virtuellement ça représente un environnement tridimensionnel où ces droites sont perpendiculaires.

Voila donc, pour ceux qui n'ont pas suivi, ce que vous êtes sensés voir (sur un côté du moins) :

Deux pixels de large et un de haut, c'est le B-A.BA du graphisme pour Simutrans, c'est à savoir par coeur (heureusement y a pas trop de chiffres) et c'est la première chose qui doit vous venir à l'esprit en dessinant. Vous dessinez dans un losange de grande diagonale 128 pixels (ou autres selon les paks) et vous devez voir sous cet angle-là, pas un autre.

On peut commencer avec un exercice tout bête pour prendre la main. Dans photofiltre, tracez des droites de 48*24 pixels dans les deux sens (de haut en bas et de bas en haut) d'épaisseur 1 et sans lisser.

Les lignes dans photofiltre

Voici le résultat que vous devriez obtenir :

Le traçage des droites est important, c'est la structure de ce que vous construisez. Mais vous voyez dans l'exercice d'au dessus qu'on a en bas à droite de la première ligne et en haut à droite de la deuxième un pixel de trop. C'est un problème de photofiltre, ce pixel n'a pas lieu d'être … vous pouvez le supprimer. Même si vous savez tracer des lignes avec l'outil ligne, cet outil ne sera pas pratique à utiliser sur ces très petites surface, il faut donc savoir tracer une ligne pixel par pixel pour gagner du temps (un pixel en haut, deux pixels à droite, un pixel en haut, deux pixels à droite, …).

Pour bien intégrer la méthode, tracez les droites suivantes de la même manière. Bien sûr n'hésitez pas à zoomer pour gagner en précision …
  1. 64*32
  2. -16*8
  3. 30*10
  4. 50*10
  5. -3*9
  6. -9*3
  7. 44*11
  8. -58*29

Pour parfaire cet connaissance des lignes, voyons ne détails ce qui se passe sur les coins d'un tile.

Un “tile”, terme anglais signifiant littéralement “tuile”, désigne les carreaux dans les jeux basés sur un système de carreaux. C'est le cas de Simutrans où le terme “tile” revient très souvent.

Notez ici l'organisation des deux droites dans chaque configuration. A gauche, pour faire les coins inférieurs et supérieurs, les droites sont juxtaposées, on a donc un coin de quatre pixels composé des deux pixels de l'extremité de la première droite et de deux pixels de l'extremité de l'autre droite. A droite au contraire on fusionne les extremités des deux droites, comme vous le voyez avec les pixels représentés de deux couleurs. Entrainez-vous à reproduire ces coins avec l'outil pinceau et le zoom au maximum.

Le pinceau dans photofiltre

Pour terminer sur les lignes, un petit exercice :

Reproduisez le dessin suivant avec l'outil ligne et/ou l'outil pinceau en commançant par représentez le tile de base puis les droites rouges. Terminez par les autres droites. N'hésitez pas à mettre de la couleur pour vous y retrouver.

La couleur dans photofiltre

Lorsque vous tracez des lignes horizontales ou verticales, le nombre de pixels affiché en coordonnées est faux, le résultat final aura un pixel de plus que ce qui est indiqué. Ainsi si vous tracez une droite verticale de H=10, la droite réelle fera 11 pixels de haut. Les coordonnées affichées sur l'exercice sont les coordonnées réelle, pas les coordonnées affichées.

3.Faces

Alors bien entendu on ne distingue pas les lignes d'un objet dans Simutrans, elles sont imaginaires. En revanche on les déduit en observant les faces des objets, en effet les lignes d'un objet délimitent des surfaces qui une fois ensembles feront l'objet. Voila ce que je veux dire :

Vous voyez ici qu'on ne voit pas les arrêtes du volume de droite. En réalité, même si c'est tout à fait faisable, on ne dessine jamais les arrêtes de son objet avant d'en remplir les faces, on dessine directement les faces. Cela peut être un peu délicat lorsqu'on débute mais ça rendra en fait les choses très simple. Commençons par un bête cube … On fera un cube de côté 64 pixels. On a trois faces à représenter, la face supérieure sera exactement comme un tile basique : un carré de 64 pixels de côté qui apparait à l'écran comme un losange. Commençons par le dessiner (en gris clair ou en couleur, comme vous voulez).

Pour dessiner des objets symétriques de ce genre rapidement : tracez une ligne de 64*32 px, reproduisez-là (copier-coller) et inversez-là par symétrie, placez-là en face de la première (elles doivent se toucher). Copiez-coller le tout, inversez-le par symétrie, et collez-le à la première partie. Vous obtiendrez un losange qu'il ne vous restera plus qu'à remplir avec l'outil remplissage.

On trace ensuite la face Sud, soit dans un gris plus clair soit dans une autre couleur de la façon suivante : on trace deux lignes verticales de 32 pixels à chaque extremités et on rejoit en bas par une ligne de 64*32. Voici le résultat :

N'hésitez pas à copier l'image et à la zoomer pour voir les détails si besoin.

Enfin on remplit l'espace ainsi créé, on fait l'autre côté soit en répétant la même opération soit en copiant, collant, symétrie horizontale, on place la sélection de manière à avoir la face Est et on desélectionne. Dans ce cas-là il y a deux faces de même couleur, on fait apparaitre la sélection correspondant au collage par le bouton afficher la sélection, et on recolore la face gris clair en gris foncé.

Les sélections dans photofiltre

Voici le résultat : un cube !

Alors les cubes c'est joli et très simple mais c'est pas le tout, comment va-t-on faire pour créer des volumes plus complexes ? Pour les polyhèdres (volumes avec faces plates) on va voir ça tout de suite, pour les cylindres, sphères, et autres choses du genre on verra bien plus tards car il est nécéssaire d'avoir d'autres notions.

Imaginons donc qu'on veuille faire une section de notre cube comme indiqué par les lignes rouges :

Et bien pour faire des sections, à condition d'avoir bien placé les lignes délimitant la section (copiez l'image et regardez-là avec le zoom pour bien vous rendre compte des détails), c'est très très simple. On va mettre le long des lignes rouges des lignes de la couleur de notre nouvelle face. Ici un gris encore plus clair. On trace ces lignes le long de la section (si on a tracé des lignes rouges avant on peut utiliser “remplacer la couleur”).

Remplacer la couleur dans photofiltre

On obtient ce résultat, ensuite comme indiqué sur l'image détaillée, on vire les morceaux en trop et on remplit les morceaux qui vont être modifiés :

Bien sûr les méthodes décrites ici ne sont pas les seuls possibles, on pourrait tout aussi bien dessiner les faces unes par unes sans passer par la section (c'est même conseillé …)

Je pense que vous avez compris mais voyons quand même comment dessiner des faces une par une.

Pour les faces supérieures c'est déjà expliqué plus haut. Pour une face latérale verticale, il suffit de faire une droite horizontale (horizontale dans l'espace, pas sur l'écran) et de prolonger le extremités par des droites verticales, puis fermer le tout et remplir. Voyez plutôt ces schémas :

J'ai mis ici une direction courrante pour la ligne de base mais vous pouvez mettre n'importe quelle direction du moment que les côtés latéraux sont verticaux vous aurez une face verticale. Bien sûr on ne fait pas que des faces carrées, voyez ici :

Les faces qui ne sont pas carrées peuvent venir intuitivement lorsqu'on a l'habitude mais on peut bien sûr s'aider d'une structure, comme ici en gris, que l'on retire à la fin bien entendu. Grâce à cette structure on peut tout à fait faire des faces aux formes étranges …

Refaites ces faces (retirez la structure grise à la fin pour que ce soit parfait).

Rassurez-vous on ne fait quasiment jamais des formes de ce genre directement, en général elles naissent de l'intersection ou de la fusion de formes plus simples … mais vous verrez bien en créant vos propres objets plus tard.

Pour les faces inclinées c'est le même système : on peut les faire intuitivement tel le maitre du pixel-art à l'oeuil avisé et à l'esprit parfaitement spatialisé ou bien on peut faire une structure tridimensionnelle grise qu'on retire à la fin comme un vulgaire néophyte en train de lire un tuto … Voyez plutôt :

Et voila, à partir de là on sait tout faire à part les arrondis, on peut représenter la forme qu'on souhaite ! Et ce ce qu'on va faire, vous allez représentez la forme que JE souhaite !

Je vous propose ici une méthode un peu différente puis qu'après avoir construit une face du volume, on construit les autres à partir du début. C'est ce qui se fait normalement d'ailleurs.Je vous propose donc de faire une petite maisonnette (que nous continuerons avec les autres moyens que nous verrons dans ce chapitres). Suivez les étapes pas à pas … (placer le début exactement au même endroit que moi pour pouvoir faire la suite de ce chapitre, soit en prenant un pixel pour repère soit en copiant la première étape, auquel cas vous ne l'aurez pas fait vous-même … mais c'est tellement simple que vous serez pardonnés). Faites tout cela en même temps mais soyez attentifs à avoir rigoureusement la même chose.

1) On trace la première face avec les dimensions indiquées (reprenez la même couleur, ça aura de l'importance).

2) On trace ensuite à partir des points marqués en rouge les droites marquées en rouge. On gardera leur segment entre la face de base et leur intersection. Le reste est donc supprimé. C'est sera le début du toit.

3) Création d'une extension à partir de la première face. Repérez bien la forme exacte des sommets !

4) Création d'une seconde extension à partir de la première. Là encore soyez vigilents à la structure des sommets. Nous relierons ensuite les deux points marqués en rouge.

5) Après avoir relié les deux points en rouge, on entame le toit. Pour qu'il n'aille ni top loin ni pas assez loin on trace en rouge la limite à laquelle le toit s'arrêtera. J'ai zoomé les structures des sommets qui peuvent commencer à devenir compliquées …

6) On voit que la première ligne du toit est de 46*23 px, on la reproduit sur les deux autres sommets.

7) On relie l'autre côté …

8) Les arrêtes que nous avons tracées ne sont pas forcément de la bonne couleur, il faut les recolorier de la couleur de la face à laquelle elles appartiendront. Essayez puis vérifiez avec le résultat proposé …

9) Et on termine en coloriant ! Voila votre futur premier bâtiments, conservez-le on s'en resservira plus tard …

4.Luminosité

En 3D, on parle de “shading” (shade = nuance en français), il s'agit de calculer, exactement ou approximativement, la luminosité qu'a chaque point de l'objet. Pour cela il faut prendre en compte l'orientation de la surface du point considéré par rapport à chaque source de lumière présente (dans Simutrans on a toujours au moins le Soleil comme source de lumière).

C'est précisément le shading qui permet, dans la réalité comme dans les jeux, à l'oeil humain de comprendre ce qu'il voit, c'est donc une composante incontournable de la 3D mais également du pixel-art visant à représenter des objets tridimensionnels.

Pour une compréhension plus complète du shading et des différentes techniques qui existent (en pixel-art on mimera les techniques utilisées en 3D), vous pouvez vous renseigner ici.

Comme vous l'avez vu dans certains volumes plus haut, on distingue surtout les faces à partir de leur luminosité. En effet comme dans la réalité, Simutrans a un Soleil, qui est immobile. Il brille au Sud et ses rayons frappent le sol avec un angle de 60° comme indiqué sur ce schéma :

On peut mathématiquement définir l'illumination de ses faces mais rassurez-vous je vous mâcherais le travail pour cette fois.

Avant de s'attaquer à compliqué voyons de manière simple comment ça marche. Sur ces screenshots prises dans le jeu vous voyez facilement que les faces les plus éclairées sont orientées vers le Sud :

Il faut aussi remarquer que du fait de l'angle de 60° entre les rayons du Soleil et le sol, les faces supérieures des objets seront plus éclairées que les faces latérales Sud.

En général il est rare que la face supérieure d'un objet soit identique à la face Sud de telle manière qu'on doive prendre en compte cette spécificité.

Voila un cube pour expliquer cette notion de manière simple :

La face supérieure est la plus éclairée, vient ensuite la face Sud puis la face Est.

Pour être sûr de maitriser cette notion, illuminez ce cube tronqué avec les gris proposés en dessous (deux faces auront la même luminosité).

Voici la solution, bien entendu ce sont les faces roses et jaunes qui ont la même luminosité puisque disposées symétriquement de chaque côté de l'axe Nord-Sud. A part quelques ambiguités voila ce que vous devriez obtenir :

Inventez-vous d'autres volumes à éclairer pour vous entrainer.

La couleur dans photofiltre

En réalité, sachant que le Soleil éclaire au Sud à 60° du sol on pourrait faire un peu de trigo mais je vous épargnerais cette horreur.

5.Textures

Pour les bâtiments, lorsque les surfaces sont trop vastes, une couleur simple peut donner une impression de vide … Alors on va utiliser des textures.

5.1.Inclinaison de la textures

Bien entendu il faut l'adapter à l'orientation de la surface à laquelle on a affaire. On peut le faire de deux manières.

Avant tout on va choisir une texture et une surface à laquelle l'appliquer. Copiez cette image dans photofiltre :

Comme vous le voyez ici les faces qu'on doit texturer ne sont pas dans le même sens que la texture. On va donc l'adapter. Faites-en une copie dans la même image puis allez dans transformations puis paramétrée. Enfin incliner axe vertical de -50%.

Logiquement on obtient ça. Laissez-le à cet endroit.

Nous allons maintenant voir la seconde méthode. Coupez l'original (gardez-le dans le presse-papier ou quelque part). Notre texture mesurait 86*63 pixels. Dessinez un parallélogramme de hauteur 63 pixels et dont les bases font 86*43 px. Voila le résultat :

Recollez l'original, son côté droit doit être sur le côté droit du parallélogramme. Ensuite clic droit\distorsion, positionnez les sommets de gauche sur ceux du parallélogramme. Voila le résultat :

Cette méthode est moins précise mais peut être pratique dans des cas ambigus.

Là les textures ne sont pas placées normalement par rapport aux côtés que l'on va texturer. C'est une erreur, faites une symétrie verticale sur les textures.

5.2.Application de la texture.

5.2.1.Méthode avec surfaces grises

Cette méthode permet de séparer texture et shading (luminosité) mais altère légèrement les couleurs.

On va maintenant préparer le volume à texturer. Faites une sélection horizontale autour et recolorez le blanc de cette sélection en une couleur repérable (du rouge vif par exemple).

L'opération qui suit consiste à appliquer la luminosité des faces à la texture. Si on colle les faces directement avec transparence sur la texture, elle va perdre de la couleur. On va donc raviver les couleurs de la textures. Sélectionnez-les, puis filtre\couleur\filtre coloré et faites un filtre inversé de gris 127/127/127 à 50% de transparence. On va ainsi rajouter la couleur qui sera supprimée par la suite à cause du gris de nos faces.

Cette méthode n'est utilisable qu'avec des faces grises !

Voici le résultat obtenu :

Maintenant on va copier et coller les faces grises avec 50% de transparence sur la textures, assurez-vous que les faces grises correspondent avec les faces de la texture.Voici le résultat :

Le but maintenant c'est de retirer les contours qui ne nous servent pas. Recollez-la même sélection avec 100% d'opacité et en mettant les gris en transparent. Calez-le exactement là où il faut. Ensuite nettoyez en retirant le rouge et les morceaux de texture en trop : voila des murs en briques :

Souvent la tolérance du gris ne suffit pas pour rendre tous les gris transparents ou alors elle rend transparente une couleur qui ne doit pas l'être. Pour pallier ce problème, lors du deuxième collage changer vos gris en une couleur simple et repérable, rendez ensuite transparente cette couleur lors du collage.

5.2.2.Méthode générale

Cette méthode demande un peu plus de traitement sur les textures mais est plus respectueuse des couleurs de celle-ci. De plus elle s'adapte parfaitement à la technique d'anti-crénelage décrite après.

Ici on se place dans un contexte différent où les faces sont marquées par des couleurs reconnaissables, voyez ci-dessous :

Les faces ayant la même couleur recevront la même texture avec la même orientation (et donc la même luminosité).

La technique consiste à préparer une texture pour chaque face qui aura la même texture et la même orientation. Ici c'est simple puisqu'il n'y a que deux faces et deux orientations.

Tout d'abord, on modifie la luminosité de chaque texture selon la face sur laquelle elle s'appliquera, pour cela il suffit de créer une sélection autour de chaque texture et d'utiliser simplement les boutons d'augmentation ou de diminution de la luminosité :

Pour appliquer la texture, on peut copier l'objet et le coller sur les différentes textures en jouant sur la couleur de transparence (ici, on collerait l'objet sur la texture de gauche avec le bleu comme couleur de transparence, de façon à ce que la face bleue soit remplacée par la texture correspondante; puis on reprendrait le résultat et on le collerait sur l'autre texture avec le rouge comme couleur de transparence), cette méthode est très efficace pour texturer d'un seul coup des objets grands et complexes, anti-crénelages compris, en travaillant à partir de plusieurs images (un exemple sera fait à la fin de ce tutoriel).

On peut également, dans le cas d'objets simples comme ici, sélectionner chaque face selon sa couleur grâce à l'outil baguette magique (pensez à régler la tolérance à 0 et le lissage de la sélection sur “aucun”); placer la sélection obtenue (pas de copie, pas de collage, juste une sélection) sur la texture appropriée, copier le morceau de texture ainsi sélectionné et le replacer sur l'objet. Voici le résultat obtenu :

6.Anti-crénelage (anti-aliasing)

Nous allons parler d'une notion très importante pour faire gagner énormément en qualité à vos graphismes. Voyons déjà le résultat : observez les deux parties de cette image, à gauche c'est “avant” et à droite c'est “après”, je vous laisse tirer des conclusions…

Les contours sont nettement adoucis et ont l'air bien plus réels. Voila le fonctionnement : lorsque vous tracez une droite oblique, comme on l'a vu au début de ce tuto, on a des sortes de créneaux, seulement sur le résultat final des créneaux ça se voit … et c'est même très laid ! Le but est donc de faire disparaitre ces créneaux en adoucissant les lignes obliques. Le résultat parle de lui-même : on y voit que du feu ! Des méthodes plus ou moins poussées d'anti-crénelage se retrouvent sur tous les graphismes du pak128, ceux qui ne sont pas anti-crénelés ne sont généralement pas inclus dans le pak, ce qui explique qu'on ne trouve pas dans le pak128 de base des graphismes un peu brouillon.

Vous voyez sur l'image du dessus que les bords entre l'objet et le fond ne sont pas anti-crénelés, en effet ici ça n'a pas d'importance mais lorsqu'on dessine une image source pour Simutrans, le fond est la couleur de transparence, si une couleur diffère d'une seule unité RVB la couleur s'affichera dans le jeu. Si on applique un anti-crénelage aux bords des objets, un coutours bleu apparaitra dans le jeu, ce qui n'est pas du meilleur effet …

Entrons dans le vif du sujet ! Nous allons commencer avec du simple de chez simple et qui me permettra de vous décrire les deux façons d'anti-créneler.

Commençons par le plus simple : on applique un anti-crénelage d'un seul côté de la ligne :

Voila pour commencer le résultat qu'on aura. Observez la structure des pixels … On a à gauche la configuration de base. A droite j'ai entouré en rouge les pixels qui vont être anti-crénelés.

Vous voyez que les pixels anti-crénelés sont ceux qui sont à l'intérieur des créneaux. Mais en fait comment va-t-on anti-créneler ces pixels ? Comment va-t-on rendre le tout plus “doux” ? Et bien c'est simple : il y a un effet de créneaux parce que la différence de couleur est maximale, la limite est brute, et vu que les pixels sont carrés ont le voit très facilement. Le but va donc être de réduire le contraste entre les deux couleurs. Les pixels qui sont au coeur du créneau vont être mélangé. Dans notre cas ce sera 50% de chaque couleur, et voila le résultat :

Basiquement comment va-t-on s'y prendre ? Ici on fait un mélange de couleur, le plus pratique à faire est de zoomer à fond et d'utiliser l'outil ligne sur un seul pixel avec une des deux couleurs et 50% de transparence sur l'autre couleur.

Si on a une ligne assez longue, on peut aller plus vite en trançant la droite à 50% à cheval sur les deux couleurs. La première couleur ne changera pas puisque c'est-elle qui est utilisée pour tracer la droite.

On remarque que l'outil ligne a une option “lisser”, elle peut être utilisée mais uniquement sur certains cas rares car le lissage des lignes n'est pas vraiment adapté à cet usage.

Voyons maintenant une deuxième méthode : un peu plus complexe. En reprenant le même exemple, voici le résultat par cette seconde méthode :

Si vous regardez bien vous verrez que le bord est encore plus adouci qu'au-dessus. Voila pourquoi : on modifie cette fois-ci les pixels de chaque côté de la limite :

Seulement cette fois-ci on ne met pas 50% d'opacité en utilisant l'outil ligne, car on se retrouverait avec une ligne centrale ou tous les pixels entourés en rouge auraient la même couleur. Or le but est de faire une sorte de dégradé entre les pixels rouges. On va donc mettre sur les pixels de la couleur 1 33% de la couleur 2 et sur les pixels de la couleur 2 33% de la couleur 1. Voici le résultat :

Chaque méthode a ses caractéristiques, la première va rendre la première couleur légèrement plus importantes que la seconde puisqu'elle déborde de la limite. Cela est utilisable sur des petites graphismes. De plus elle conserve des limites très précises tout en étant agréable à voir. La deuxième méthode ne change pas l'importance des deux couleurs et donne un aspect plus adouci à la limite, voire légèrement flou.
Maintenant que vous savez tout, anti-crénelez vous-même la partie gauche de l'image du début de cette partie. Vérifiez ensuite avec la partie droite.Les lignes dans photofiltre

Anti-crénelez également le bâtiment que nous avons fait tout à l'heure :

Un problème apparait : toutes les lignes ne sont pas de 1*2 ou 1*1 pixels, comment anti-créneler les lignes ayant une pente différente ??

Il y a deux méthodes possibles. Soit faire comme avec les autres lignes et jouer avec la transparence :

Soit utiliser l'outil ligne avec le lissage activé sur une petite portion :

Ici on utilise la couleur des pixels qui sont ici coloriés en rouge : c'est-à-dire le gris foncé. Et ensuite on reproduit le tout. On peut tracer toute la ligne d'un coup mais gare aux surprises avec l'outil ligne de photofiltre …

Voici le résultat final :

C'est déjà plus propre non ? L'anti-crénelage est réellement important pour le graphisme, il FAUT le faire.

Certains sous photofiltre, ou d'autres logiciels, essaient d'utiliser l'outil “adoucir” ou “flou”, cet outil n'a rien à voir avec l'anti-crénelage, il sabote complètement votre travail, le rend en plus inutilisable pour Simutrans (à cause de la limite entre l'objet et le fond), tout ce qu'il fait c'est mélanger les pixels entre eux sans aucun résultat fiable.

7.Couleurs spéciale

Il y a dans Simutrans des couleurs spéciales qui permettent de faire pas mal de choses mais dont il faut également se méfier. Les voici :

Alors oui je sais c'est pas très digeste vu comme ça … On va détailler ça :

Déjà voyez que pour chaque couleur vous avez le code hexadécimal, ce qui peut être utile pour les utiliser dans photofiltre sans charger une image contenant ces couleurs.

  • Les six premières couleurs sont les “non darkening grey”, ceux sont des gris qui ne seront pas assombris lors du passage en mode nuit.
  • Vous avez ensuite les “light”, disponibles en bleu clair, jaune, rouge, vert, violet et bleu. Ces couleurs ne sont pas assombries la nuit, tout comme les gris vus au-dessus. Elles servent à faire des lumières permanentes comme les phares des trains et des camions ou la lumières des feux de signalisation.
  • Mélangés aux lights, on a les “windows”, qui comme leur nom l'indique servent à faire des fenêtre. Ces couleurs sont foncées ou clair le jour (on les utilise selon l'orientation) et éclairées la nuit. Le jour on mettra donc des fenêtre claires sur les faces Sud et des foncées sur les faces Est mais la nuit elles auront le même jaune. Attention toutefois, l'une d'elle a un jaune différent des autres. On s'en sert pour faire les fenêtre des trains et autres véhicules mais aussi pour les bâtiments ou l'éclairage des stations, etc …
  • Les player colors sont les couleurs qui changeront dans le jeu selon la couleur du joueur. Il y en a deux qui varient la luminosité, la player color 1 (bleu) aura la couleur principale que vous avez choisie dans le jeu, la player color 2 (jaune) aura la couleur secondaire que vous avez choisie dans le jeu. Les variations de luminosité de ces couleurs sont très utiles mais peu nombreuses.
  • Et enfin la couleur de fond transparent, c'est celle que vous devrez mettre en fond sur toutes vos images source avant de même de dessiner dessus ! cette couleur n'apparaitra pas dans le jeu et ne fera donc apparaitre que votre dessin (ce qui est quand même mieux … voir un train en forme de gros carrés blancs ça ne réjouit pas l'oeil).

Voici tout de même une forme plus compacte des special color que je vais vous présenter :

Non il n'y a pas exactement deux paquets de couleurs, j'expliquerais ce double après. Celui du haut contient en première ligne la player color 1 puis en deuxième ligne la player color 2. Les deux autres lignes sont divisées en 3 rectangles. Le premier contient les lights, ensuite les fenêtres (la fenêtre qui ne s'éclaire pas de la même façon que les autres est indiquée par un point rouge) et le troisième contient les non darkening grey ainsi que la couleur de fond (en bas à gauche du rectangle).

Seulement parfois en dessinant on fait apparaitre involontairement des couleurs spéciales, pour les supprimer il suffit de faire varier la couleur d'une unité RVB, les couleurs du dessous sont donc les fausses couleurs spéciales dont vous pouvez vous servir pour enlever les couleurs spéciales involontaires. On se sert de l'outil remplacer couleur pour ça.

Finissons cette partie avec quelques exemples d'utilisation de special color sur ce morceau de source du z22500 (une ancienne version).

8.Cylindres et arrondis

Pour donner des effets d'arrondis on se sert des dégradés de couleur. On fait un dégradé de la couleur la plus claires à la plus foncée, si on texture ensuite on le fait en niveau de gris grâce au dégradé.

Cylindre vertical

Facile à faire grâce au dégradé, il servira également d'exemple … Voici le cylindre qu'on veut éclairer :

La partie bleue doit donc être éclairée, sachant que le Soleil éclaire par le Sud. On va beaucoup constraster nos couleurs de façon à pouvoir le texturer ensuite si besoin. Il faut repérer les couleurs suivantes : les couleurs des extrémités et la couleur la plus claire :Ensuite on mesure les longueurs entre chaque trait avec les traits compris et on fait les dégradés sur une autre image entre ces couleurs :Pour finir on colle le cylindre bleu sur ces dégradés avec le bleu en couleur de transparence :

Pour faire un dique parallèle au sol en perspective pour Simutrans, on trace une ellipse dont la largeur est deux fois plus grande que la hauteur. Toute forme qui sera représentée parallèle au sol sera la même forme mais dont la hauteur est divisée par deux.

Autres arrondis cylindriques

Les autres arrondis fonctionnent sur le même système mais on ne peut pas faire directement un dégradé pour les représenter. La méthode la plus simple est de représenter les différentes luminosités par des couleurs vives et facilement repérables, ensuite on fait un dégradé entre la couleur la plus foncée et la plus claire et on remplace les couleurs vives par les couleurs du dégradé :

Pour obtenir un maximum de précision et de qualité, surtout pour de petits graphismes, on peut créer autant de nuance que de pixel ayant la même orientation. Le reste de la technique est la même. Pour gagner du temps, on peut dessiner l'arrondi sur un petit morceau de surface en plaçant les couleurs à la main directement avec l'outil pinceau, c'est beaucoup plus rapide que par l'outil de remplacement de couleur. Voici par exemple le morceau de base du flanc du Z50000 :

Pour faciliter cette opération, on peut utiliser les images suivantes qui représentent avec la même couleur le long d'une ligne les pixels qui auront la même orientation/luminosité:

Arrondis complexes

Pour des surfaces non cylindriques, l'arrondi est compliqué à réaliser en pixel-art et il est nécessaire de faire des approximations. La méthode est globalement la même: séparer la surface arrondie en pixels de couleurs et remplacer ces couleurs par une nuance de la couleur finale; mais l'appliquer dépendra de la forme de l'objet et des approximations que vous ferez pour y parvenir. Voici par exemple l'extremité du Z50000:

Ici, on a séparé les pixels de la surface à colorer selon leur hauteur puis on a appliqué deux couleurs différentes pour chaque hauteur : une couleur plus claire pour les points orientés vers le Sud et une couleur plus foncée pour les points orientés vers l'Est. L'étape finale de l'image représente le résultat final, avec une ligne grise entre le dégradé carmillon et le blanc, et l'anti-crénelage sur tout cela.

9.Effet vitre et effet mirroir

Le but est de donner un effet réaliste de mirroir comme les surfaces vitrée d'un gratte-ciel (bien sûr on peut le faire avec d'autres matières et sur d'autres objets …).

Voici l'horreur que nous allons légèrement embellir :L'effet sera bien entendu sur la partie bleue. Voici le ciel que nous allons mettre :Comme pour texturer différentes parties d'un objet, on va faire un second bâtiment à partir du premier mais en remplaçant la surface vitrée par une surface rouge et nette, on peut le faire en se servant des sélections de photofiltre :

Pour appliquer ce morceau de ciel au bâtiment, on le fait avec transparence, entre 30 et 70% selon l'effet voulu, ici on utilisera une transparence de 50% pour coller la première image sur le ciel. voila le résultat :Bien sûr on ne veut garder que la partie vitrée du bâtiment, on va coller par-dessus cette image la seconde image en mettant le rouge en couleur transparente :

Lorsqu'on a des anti-crénelages sur ces surfaces, l'idéal est de faire plusieurs fois cette manipulation : par exemple ici on aurait pu faire une première fois cette manipulation pour l'intérieur de la surface vitrée et une seconde fois uniquement avec les pixels constituant l'anti-crénelage entre la surface vitrée et le reste mais avec une transparence de 25%. Heureusement sur des petites surfaces on ne voit pas trop ce problème.

On aurait également pu appliquer l'effet uniquement sur le bleu de la surface vitrée, il aurait fallu faire une image rouge en se servant de l'outil remplacer une couleur de photofiltre, ou même en collant directement avec le bleu en transparence.

10.Reflets réalistes

Si vous avez lu la page de wikipédia sur le shading donnée plus haut dans le tutoriel, ce que nous allons faire dans cette partie correspond à la composante spéculaire de l'éclairage d'un objet.

Pas vraiment de démonstrations pour cette technique … il s'agit d'ajouter une touche de réalisme aux objets en rendant extremement lumineuses les surfaces éclairées verticalement par le Soleil ou presque. On n'hésite pas à utiliser du blanc pour ces surfaces mais en fait il s'agit généralement de quelques pixels. Voyons des exemples :

rvg_tigress : On distingue le trait très clair sur la bande orange tournée vers le Soleil.

SNCF_z6300 :Ici l'effet a été poussé à l'extrême car le z6300, familièrement nommé “petit gris”, est métalisé. L'effet de reflet réaliste peut donc donner une information visuelle sur la nature de l'objet. Voyons d'autres exemples pour terminer :

11.Exercice complet

Afin de reprendre presque toutes les techniques vues sur ce tuto, nous allons faire ce bâtiment :Il n'est pas spécialement beau mais il permet de reprendre pas mal de techniques. Attention je ne détaillerais pas plus que ça les étapes vu que chaque technique a déjà été vue plus tôt !

On va commencer par construire chaque partie du bâtiment, n'hésitez pas tout le long de l'exercice à copier une image pour zoomer et bien voir ce qu'on fait.

Voila pour la construction de base. Ensuite il s'agit d'anti-créneler le tout. Faites des anti-crénelage sur deux pixels pour les lignes gris-gris et gris-tile bleu , et des anti-crénelage sur un pixel pour les autres (zoom sur cette image pour plus d'infos) :On a donc ici une vision de ce que deviendra le bâtiment. Mettons des fenêtres plus réalistes et une petite allée entre la porte et la rue :La manipulation qui suit est un peu complexe : en texturant le bâtiment on aura besoin de mélanger les textures au niveau des anti-crénelage. Avec un peu d'organisation voici ce qu'on fait : faites trois copies de l'image et grâce à l'outil baguette magique faites très facilement trois images avec des pixels rouges pour les pixels d'anti-crénelage 67%, 33% et 50%. Voir image poir plus de compréhension :Voila les images qu'on obtient en supprimant sur chaque copie tout ce qui n'est pas rouge (en jouant sur les sélection et grâce à l'outil baguette magique) :

On va ensuite commencer par texturer les fenêtres puis le sol : sur deux nouvelles copies de l'image isolez chaque fenêtre et le bleu du sol, l'anti-crénelage lié à chacun sera compris dans l'image en étant recolorié comme si c'était pas un anti-crénelage (voir image …..) :

Texturez les respectivement avec les images suivantes :

Comme expliqué dans la partie 5.2.2, il est également possible de créer une image par orientation de surface de l'objet. Il devient alors possible d'anti-créneler les limites entre ces surfaces en créant des images par mélange des deux images appliquées aux deux surfaces à anti-créneler.

Pour mieux comprendre, un exemple rapide est donné à la fin du tutoriel.

en suivant la méthode d'effet vitre pour les fenêtre : coller avec 50% de transparence et coller le contour par-dessus; et tout simplement avec le bleu transparent pour la troisième image, mettez le tout dans une même image, voici le résultat :

Texturez l'image principale sur la texture suivante avec 50% de transparence (collez avec la transparence puir coller les contours que vous aurez sélectionné avec l'outil baguette magique), il faut mettre tous les anti-crénelage en gris pour cette opération (voir image pour plus d'info).

C'est ensuite qu'interviennent les images en points rouges faites tout à l'heure. Il nous reste les images en point rouge, les deux images ci-dessus. Faites trois copies de l'image avec les vitres et le sol texturés et collez sur chacun d'elle les images en pointillés avec le rouge en transparence. Vous obtenez des pointillés comme sur cet exemple :Collez également les trois images de pointillés rouges successivement avec le fond en transparence sur l'image avec vitres et sol texturés, et supprimez les pixels en rouge. Ensuite c'est la fin : collez les pointillés sur l'image avec le bâtiment texturé avec les transparences adéquates (33%, 50% et 67%) avec fond totalement transparent et collez l'image avec vitre et sol texturés avec fond transparent. Voici le résultat :Pour terminer, utilisez ces fenêtres comme vous voulez pour agrémenter le bâtiment (pour les mettres sur les surfaces en pente, utilisez la distorsion ou l'inclinaison). Voici un résultat possible :

L'idéal pour ce bâtiment aurait été d'incliner la texture de béton selon les faces du bâtiment, mais en comprenant les anti-crénelages cela aurait été beaucoup trop fastidieux. Bien entendu c'est le cas uniquement lorsqu'on utilise des textures, pour des objets plus petit on n'utilise très rarement des textures ce qui raccourcit énormément le travail.

12.Exemple de travail avec orientation et shading des textures

Cet exemple ne montre pas la réalisation d'un objet précis mais permet de mieux comprendre la technique décrite dans la partie 5.2.2. Le but ici est de texture un cube de la manière suivante: une texture de béton sur le dessus et une texture de briques sur les deux autres faces, le tout avec anti-crénelage. On part des images suivantes:

Travaillez ces images de façon à obtenir : le cube avec des lignes d'anti-crénelage marquées par des couleurs vives; la texture de béton orientée pour la face supérieure (la technique utilisant l'outil distorsion est la plus pratique ici) et éclaircie; la texture de briques orientée pour chaque face latérale avec la bonne luminosité. Par la suite, afin de mettre en pratique la méthode la plus générale possible, on duplique chaque texture pour qu'elle couvre entièrement une image de 128*128. Voici les résultats obtenus :

Pour traiter les anti-crénelages, il suffit de créer des images issues du mélange entre deux des images précedentes. Par exemple, pour l'anti-crénelage entre la face supérieure et la face Sud du cube, on fait un mélange entre les textures s'appliquant à chacune de ces faces. Concrètement, on copie l'image de briques adaptée à la face Sud dans une nouvelle image, on copie ensuite l'image de béton et on la colle avec une opacité de 50% sur la copie de l'image de briques. Cette nouvelle image sera en quelque sorte la “texture” de l'anti-crénelage considéré. Voici les deux “textures d'anti-crénelage” que vous devez facilement obtenir:

L'alignement des textures d'anti-crénelage sur leurs textures parentes est assuré par le fait que toutes nos images de texture ont la même taille qui est précisément la taille de l'image contenant l'objet.

Il ne reste plus qu'à appliquer tout ça à l'objet de départ, faites-le par copie et collage successifs en jouant sur la couleur de transparence au moment du collage. Voila le résultat:

Ces méthodes paraissent très fastidieuses au départ mais avec un peu de pratique elles peuvent s'exécuter très rapidement. Tout est une question d'habitude.