Guide Expert Traffic Screensaver :
Le fichier Matériel Roulant
Les animations "Portes" 
Il existe deux moyens de créer des animations d'ouverture de portes pour les dessins de matériel.
- En dessinant totalement l'animation (animation DOOR).
- En ne dessinant que ce que l'on voit quand la porte est ouverte (commandes DID ou DOD).
Détaillons les deux méthodes en prenant l'exemple de la VB2N SNCF en livrée d'origine (VB2N_O1_B_L) :

Première méthode : dessin de l'animation
Le dessin d'animation correspondant s'appelle D_VB2N :

Il est constitué d'une suite de dessins plus petits constituant chacun une phase de l'animation. C'est en dessinant successivement tous ces petits dessins à l'emplacement choisi que l'on aura l'impression d'une ouverture et d'une fermeture progressive. La séquence est symétrique : elle doit servir dans les deux sens en inversant seulement l'ordre de passage des dessins.
L'animation se définit alors en créant une macro dans l'éditeur de macro (double clic sur la VB2N). On utilise la commande A (animation) avec l'animation DOOR.
Voici la macro pour animer la porte de gauche :
VB2N_O1_B_L[A:DOOR,D_VB2N_O1,12,6,39,23,0,0,20,9,40,0]
La syntaxe de cette macro est la suivante :
[A:DOOR,<dess_anim>,<x_anim>,<y_anim>,<larg_anim>,<haut_anim>,<x0>,<y0>,<délai>,<nb_phases>,<dx>,<dy>]
Avec :
- <dess_anim> est le nom du dessin d'animation à utiliser (ici D_VB2N). A noter qu'un # devant le nom du dessin affiche celui-ci en miroir.
- <x_anim> est la position horizontale du dessin du véhicule à partir de laquelle de l'animation s'affichera (ici 12).
- <y_anim> est la position verticale du dessin du véhicule à à partir de laquelle l'animation s'affichera (ici 6).
- <larg_anim> est la largeur d'une phase de l'animation (ici 39).
- <haut_anim> est la hauteur des phases de l'animation (ici 23).
- <x0> est la position horizontale du premier dessin de phase dans le dessin d'animation (ici 0, c'est le cas général).
- <y0> est la position verticale du premier dessin de phase dans le dessin d'animation (ici 0, c'est le cas général).
- <délai> est le délai entre l'affichage de 2 phases en millisecondes (ici 20).
- <nb_phases> est le nombre de phases de l'animation (ici 9).
- <dx> est la distance horizontale entre deux dessins de phases dans le dessin d'animation (ici 40, soit la largeur de la phase + 1 pixel). Cette valeur est supérieure à la largeur de la phase quand les dessins de phase sont séparés visuellement dans le dessin d'animation : ici, une bande verticale verte de 1 pixel entre chaque dessin de phase).
- <dy> est la distance horizontale entre deux dessins de phases dans le dessin d'animation (ici 0, c'est le cas général).
Voici le résultat dans la fenêtre de l'éditeur de macro :

Si l'on veut animer les deux portes, il faut modifier la macro de la façon suivante :
VB2N_O1_B_L[A:DOOR,D_VB2N_O1,12,6,39,23,0,0,20,9,40,0][A:DOOR,D_VB2N_O1,189,6,39,23,0,0,20,9,40,0]
On a ajouté une deuxième animation Portes, dont la seule différence avec la première est une valeur différente pour <x_anim> : l'animation de la porte de gauche commence au pixel 12, celle de la porte de droite commence au pixel 189. Ce qui donne :

On peut constater que c'est très verbeux. Il y a beaucoup de redondances.
Voici un moyen plus pratique de gérer ces animations : il faut définir tous les paramétres directement dans le dessin de l'animation.

Une macro a été associée au fichier d'animation, elle reprend tous les paramètres qui seront constants à chaque utilisation de cette animation :
[DOOR:<larg_anim>,<haut_anim>,<x0>,<y0>,<délai>,<nb_phases>,<dx>,<dy>]
soit ici [DOOR:39,23,0,0,20,9,40]
Les paramètres gardent la même signification que ci-dessus. A noter que le paramètre <dy> a été omis pour simplifier l'écriture (comme 0 est la valeur par défaut, il n'est pas nécessaire de le faire figurer).
Pour définir notre animation avec deux portes ouvrantes, nous pouvons maintenant créer une macro plus concise pour le fichier dessin de la VB2N :
VB2N_B[A:DOOR,D_VB2N_O1_L,12,6][A:DOOR,D_VB2N,189,6]
C'est quand même mieux ! Et voilà le résultat dans l'éditeur de macro pour le fichier dessin de la VB2N :

Remarque importante : avec cette première méthode, les parties du dessin d'origine situées "sous" les parties à animer ne seront jamais visibles. Il y aura toujours une phase de l'animation affichée à la place. On pourrait ainsi laisser noire la région des portes dans notre dessin VB2N, sans changer le résultat.
Deuxième méthode : laisser faire Traffic
Cette méthode consiste à dessiner l'image correspondant à ce que découvre la porte ouverte et à laisser Traffic gérer totalement l'animation.
Il existe 6 commandes pour effectuer ces animations. Elles permettent de gérer les portes simples ou doubles, intérieures ou extérieures.
- [DID] : portes doubles qui s'ouvrent à l'interieur de la caisse.
- [DIL] : portes ouvrant vers la gauche, à l'interieur de la caisse.
- [DIR] : portes ouvrant vers la droite, à l'interieur de la caisse.
- [DOD] : portes doubles qui s'ouvrent à l'extérieur de la caisse.
- [DOL] : portes ouvrant vers la gauche, à l'extérieur de la caisse.
- [DOR] : portes ouvrant vers la droite, à l'extérieur de la caisse.
Par exemple, pour notre VB2N, la commande appropriée serait [DOD].
Voici la syntaxe à utiliser. Elle est la même pour les 5 autres commandes.
[DOD:<fond>,<x_anim>,<y_anim>,<larg_anim>,<haut_anim>,<délai>,<nb_phases>]
Avec :
- <fond> indique ce qui sera affiché dans le vide laissé par la porte ouverte : soit le nom du dessin à utiliser, soit la valeur hexadécimale d'une couleur de remplissage. La valeur de la couleur doit être précédée de # (exemple : #FFFFFF pour le blanc). A noter qu'il faut ici un double dièse (##) devant le nom du dessin pour afficher celui-ci en miroir.
- <x_anim> est la position horizontale du dessin du véhicule à partir de laquelle la porte ouverte laissera un vide.
- <y_anim> est la position verticale du dessin du véhicule à à partir de laquelle la porte ouverte laissera un vide.
- <larg_anim> est la largeur du vide laissé par la porte ouverte.
- <haut_anim> est la hauteur du vide laissé par la porte ouverte.
- <délai> est le délai entre l'affichage de 2 phases en millisecondes.
- <nb_phases> est le nombre de phases de l'animation.
Exemple pour notre VB2N : voici le fichier du dessin destiné à combler le vide (nommé DOD_VB2N) :

et le résultat dans l'éditeur de macro :

On peut noter que les valeurs de de tous les paramètres sont différentes de celles utilisées avec [A:DOOR].
L'avantage de cette méthode est qu'elle est plus rapide. Elle évite la fastidieuse tâche de dessiner les phases "image par image". En revanche, elle offre un résultat plus basique. Regardez la différence : elle est dans ce qu'on voit derrière les vitres de la porte quand elle est ouverte. Avec [A:DOOR] la vitre laisse paraitre les couleurs de la caisse (grâce aux efforts du dessinateur), tandis qu'avec [DOD], la vitre est forcément totalement opaque. A chacun de voir si le jeu en vaut la chandelle.
Pour terminer, juste un exemple pour illustrer le [DID] :

On voit bien que les portes coulissent cette fois à l'interieur de la caisse.
Les animations "Pantographes" 
Il existe trois types d'animations de pantographes dans Traffic Screensaver.
- La plus simple qui consiste à un échange des pantographes figurant sur le dessin d'origine.
- Une version à base d'animation simplifiée à 2 phases, omprenant les positions haute et basse des pantographes.
- La version la plus sophistiquée avec une animation à plusieurs phases.
Première méthode : l'échange des pantographes
Cette méthode a l'avantage de ne pas nécessiter de dessin supplémentaire. Il suffit que le dessin de l'engin moteur comporte un pantographe levé et un pantographe baissé et qu'on puisse utiliser l'un à la place de l'autre. Les pantographes doivent être au nombre de 2.
Attention, il faut que toute la partie basse (ligne de toiture, isolateurs, ...) soit réutilisable. L'échange peut se faire tel quel ou en mode miroir.
Il existe deux commandes principales pour réaliser une telle animation de pantographes :
- [EM] : échange de pantographes en miroir (de loin la plus utilisée).
- [EX] : échange simple de pantographes.
La syntaxe à utiliser est la suivante :
[EM:<x_panto_haut>,<y_panto>,<largeur_panto>,<hauteur_panto>,<x_panto_bas>]
[EX:<x_panto_haut>,<y_panto>,<largeur_panto>,<hauteur_panto>,<x_panto_bas>]
Avec :
- <x_panto_haut> indique la cooordonnée horizontale gauche du pantographe levé. Par convention, celui-ci est celui situé à gauche.
- <y_panto> indique la cooordonnée verticale basse du pantographe (forcément identique pour les 2 pantos).
- <largeur_panto> est la largeur en pixels du pantographe.
- <hauteur_panto> est la hauteur en pixels du pantographe. Facultatif et normalement inutile. Sans mettre de valeur, le pantographe va jusqu'en haut du dessin.
- <x_panto_bas> indique la cooordonnée horizontale gauche du pantographe baissé. Facultatif si l'engin est parfaitement symétrique au niveau des pantographes.
Prenons pour exemple la BB 12001 en version d'origine (BB12001_B_R).

On voit que le dessin respecte la convention : le pantographe levé est à gauche.
Le dessin étant symétrique, nous allons utiliser la commande d'échange en miroir (EM), en n'utilisant que les 3 premiers paramètres, avec la macro suivante :
BB9200_1S_VJ[EM:32,38,41]
Le pantographe de gauche est aux coordonnées 32,38, et il fait 41 pixels de large. Remarque : il faut veiller à respecter les dimentions du pantographe qui prend le plus de place en largeur, à savoir celui qui est baissé.
Voici le résultat dans la fenêtre de l'éditeur de macro :

Deuxième méthode : l'animation à 2 phases
Cette méthode reste simplifiée par le fait que les pantographes n'ont que deux positions : haute et basse. Une animation pour lever un pantographe n'est donc pas progressive. Le panto saute directement d'une animation à l'autre.
En revanche, par rapport à la méthode d'échange, elle permet de gérer individuellement chaque pantographe et d'en positionner le nombre souhaité.
Prenons cette fois l'exemple de la BB 15000 (BB15000_2S_TEE_R), qui n'a qu'un pantographe et ne peut donc pas utiliser la méthode d'échange :

Dans cette méthode, il faut créer un dessin d'animation pour le pantographe. Le dessin d'animation correspondant s'appelle P_U1.

Il est constitué d'une suite de 2 dessins plus petits constituant chacun une phase de l'animation. On voit successivement le pantographe baissé et le pantographe levé.
Une macro a été associée au fichier d'animation, elle reprend les paramètres qui vont permettre de définir l'animation du pantographe :
[PAN:<larg_anim>,<haut_anim>,<x0>,<y0>,<délai>,<nb_phases>,<dx>,<dy>]
soit ici [PAN:24,18,0,0,,2,25]

Les paramètres gardent la même signification que pour les animations de portes. A noter que les paramètres <délai> et <dy> ont été omis pour simplifier l'écriture (le délai ne sert à rien pour une animation à 2 phases, quant à l'écart vertical, comme 0 est la valeur par défaut, il n'est pas nécessaire de le faire figurer).
Pour définir notre animation du pantographe de la BB 15000, nous pouvons maintenant lui créer une macro :
BB15000_2S_TEE_R[E:P_U1,117,40]
On utilise la commande suivante :
- [E] : animation pantographes.
La syntaxe à utiliser est la suivante :
[E:<dess_anim>,<x_anim>,<y_anim>]
Avec :
- <dess_anim> est le nom du dessin d'animation à utiliser (ici P_U1). A noter qu'un # devant le nom du dessin affiche celui-ci en miroir.
- <x_anim> est la position horizontale du dessin du véhicule à partir de laquelle de l'animation pantographe s'affichera (ici 117).
- <y_anim> est la position verticale du dessin du véhicule à à partir de laquelle l'animation pantographe s'affichera (ici 40).
Remarque : comme pour les portes, il est possible de mettre la macro totalement au niveau du fichier de l'engin moteur (an ajoutant les paramètres <larg_anim>, etc...). Cette méthode n'a aucun intérêt par rapport à celle exposée ici et n'est donc pas détaillée.
Voici le résultat dans la fenêtre de l'éditeur de macro :

Et pour l'autre face de la BB 15000, en utilisant le # pour l'affichage de l'animation en miroir :

Troisième méthode : l'animation complète
Cette méthode est proche de la précédente, mais l'animation pantographe va comprendre un certain nombre de positions du pantographe en train de se lever qui va donner l'illusion du mouvement.
Prenons pour exemple une BB 9200 en version d'origine (BB9200_1S_VJ_R).

Dans cette méthode également, il faut créer un dessin d'animation pour le pantographe. Le dessin d'animation correspondant s'appelle PA_BB9200.

Il est constitué d'une suite d'autant de dessins que nécessaire pour obtenir la fluidité souhaitée, chacun représentant une phase de l'animation. On part de la position baissée, pour finir par la position levée.
Une macro a été associée au fichier d'animation, elle reprend les paramètres qui vont permettre de définir l'animation du pantographe :
[PAN:<larg_anim>,<haut_anim>,<x0>,<y0>,<délai>,<nb_phases>,<dx>,<dy>]
soit ici [PAN:41,20,0,0,,7,42]

Les paramètres gardent la même signification que pour les animations de portes ou celles de pantographes à 2 phases. A noter qu'ici aussi les paramètres <délai> et <dy> ont été omis pour simplifier l'écriture. Si la vitesse de montée et descente du panto ne convient pas, il faut alors renseigner la valeur de <délai>.
Pour définir notre animation du pantographe de la BB 9200, nous pouvons maintenant lui créer une macro (en fait deux, vu qu'il y a deux pantos à animer) :
BB9200_1S_VJ_R[E:#PA_BB9200,14,38][E:PA_BB9200,106,38]
On utilise la même commande [E] que pour l'animation à 2 phases, avec la même syntaxe :
[E:<dess_anim>,<x_anim>,<y_anim>]
Toujours avec :
- <dess_anim> nom du dessin d'animation à utiliseréventuellement complété d'un # devant le nom du dessin pour afficher celui-ci en miroir.
- <x_anim> position horizontale du dessin du véhicule à partir de laquelle de l'animation pantographe s'affichera.
- <y_anim> position verticale du dessin du véhicule à à partir de laquelle l'animation pantographe s'affichera.
Voici le résultat dans la fenêtre de l'éditeur de macro :

Idéalement, le dessin d'origine ne devrait pas comporter de pantographes du tout. C'est le fichier d'animation qui devrait apporter les différentes positions de ceux-ci.
Cela nécessiterait moins de fichiers d'animations pantographes (on voit dans celui de la BB 9200 qu'il prend en compte une ligne de toiture : si celle-ci est différente, il faut faire un dessin supplémentaire).
Personnellement, je ne le fais pas, au prix d'un plus grand nombre de dessins à réaliser, car je publie les mêmes dessins sur les pages de mon site et j'ai donc besoin que les pantographes figurent dans ceux-ci. A chacun de trouver la meilleure formule en fonction de ses contrtaintes propres.