Gli screensaver ferroviari

Torna alla pagina iniziale degli screensaver
Le FAQ dello Screensaver MM


Traffic


Come faccio ad aggiungere nuovi treni?

Si procede in due passaggi. Prima si aggiungono i veicoli alla stock list (file .stk), cioè all'elenco di tutti i veicoli che Traffic può usare. Fatto questo, si aggiunge il comando che compone i treni e stabilisce che tipo di movimento o manovra devono compiere. Questo si fa nel timetable (file .ttt, oppure .ini nelle vecchie versioni).


Come si aggiungono veicoli alla stock list?

Si può fare in due modi. O con l'interfaccia di Traffic, oppure agendo direttamente sul file .stk, come di solito faccio io.

Se usi l'interfaccia di Traffic, puoi saltare direttamente alla prima domanda sul Timetable.

Il file .stk (per esempio il mio, italia.stk) è un file di testo, che puoi aprire con il Blocco Note. Quindi puoi tentare un copia e incolla da righe di veicoli già inseriti. Ti faccio notare che esistono sostanzialmente quattro casi:

Il caso normale è del tipo:

FS_TEE_A;GRU*GI;B;c:\BAHN_V3\ITALIA-t;TEE_A;

In questo caso viene definita una carrozza TEE tipo A, che nel timetable (vedi sotto) verrà identificata con il nome FS_TEE_A. Questa carrozza, sul proprio disco è salvata nella cartella C:\Bahn_v3\italia-t con il nome TEE_A.BMP.
Il parametro "B" prima del percorso dice che è una bitmap; se ci fosse una "C" direbbe che è sempre una bitmap ma trasparente (vedi domanda più sotto). Se fosse un'immagine GIF, al posto della "B" ci sarebbe una "G" (l'uso di immagini GIF salva spazio su disco ma fa perdere la compatibilità con MM).

Nota: oltre alle stock list .STK che sono file di testo, Traffic sa usare anche stock list binarie (.STB): queste non sono file di testo e quindi possono essere gestite solo attraverso il programma e non vanno aperte con il blocco note.


Come aggiungo alla stock list una locomotiva a vapore

Per aggiungere una locomotiva a vapore - o comunque una qualunque locomotiva animata - le righe da scrivere nella Stock list sono:

FS_685;RRU*GI;M;FS_685_0+FS_685_1+FS_685_2+FS_685_3+.8

FS_685_0;YPU*GI;B;C:\bahn_V3\ITALIA;685_0;

FS_685_1;YPU*GI;B;C:\bahn_V3\ITALIA;685_1;

FS_685_2;YPU*GI;B;C:\bahn_V3\ITALIA;685_2;

FS_685_3;YPU*GI;B;C:\bahn_V3\ITALIA;685_3;

dove FS_685 è come verrà poi identificata la macchina nel timetable (file TTT) e 685_0, 685_1, ecc. sono i nomi dei file fisici delle animazioni (che nei miei esempi usano la convenzione MM, cioè sono numerati da _0 a _3, ma non è obbligatorio). Al nome del file manca l'estensione .BMP perché c'è già il parametro "B" (oppure "C").
Il percorso dei quattro file è poi scritto anch'esso esplicitamente (C:\bahn_V3\ITALIA).

Il +.8 nella prima riga le dice di cambiare l'animazione ogni 8 pixel di avanzamento della locomotiva (ruote grandi). Con ruote piccole, utilizzerei un valore inferiore, per es. 4 (le ruote devono girare più in fretta, a pari avanzamento della locomotiva).

R e Y sono i colori con cui Traffic disegna il pallino nella stock list. Io faccio in giallo (Y) le fasi e in rosso (R) le macchine complete, ma è puramente una convenzione estetica. GI è l'abbreviazione di Giorgio (autore). La R prima della U dice che la macchina viaggia su un normale binario non elettrificato (R=Rail); la P indica che è una fase (P=Phase) cioè parte di un'animazione. Questo appare nella stock list accanto al pallino colorato e si può impostare anche con Attributes -> Set way. Infine la U sta per Used (immagine utilizzata) e non è di particolare utilità.


Come faccio con le locomotive elettriche, in cui voglio usare il pantografo "giusto" (posteriore)?

Se le macchine gestiscono i pantografi con la convenzione MM (immagine con suffisso "_SAR" per il tetto con il pantografo destro alzato) bisogna scrivere:

FS_E656_SAR;WSU*GI;B;C:\BAHN_V3\ITALIA;E656_SAR;

FS_E656;REU*GI;B;C:\BAHN_V3\ITALIA;E656;<FS_E656_SAR

In questo caso W indica il pallino bianco (che io uso convenzionalmente per i pantografi). La successiva S sta appunto per "SAR", cioè immagine del pantografo destro.

Notare che la sintassi che dice di considerare anche il pantografo "SAR" è, nella seconda riga, il segno di minore seguito dal nome dell'immagine SAR (attenzione: il nome che gli abbiamo dato noi all'inizio della prima riga, non il nome fisico della bitmap, che nel nostro esempio è senza "FS_").

Nella seconda riga la E indica che la macchina viaggia su un binario elettrificato, cioè Traffic disegnerà automaticamente la linea aerea quando deve far transitare questa locomotiva.

Nel file TTT si userà poi il nome FS_E656 e Traffic sceglierà il pantografo giusto in base alla direzione del treno.


Come aggiungo alla stock list una locomotiva elettrica animata

Se la macchina oltre che animata ha anche i pantografi individuali (_SAR), risulta la somma dei due casi precedenti. Bisogna mettere:

1. l'immagine del pantografo destro (SAR)

2. Figura base<SAR+animaz1+animaz2+...

3. Le singole animazioni delle ruote

Cioè, facendo un esempio:

FS_E428I_SAR;WSU*GI;B;C:\bahn_V3\ITALIA;41_0_SAR;

FS_E428I;REU*GI;M;FS_E428I_0< FS_E428I_SAR+FS_E428I_1+FS_E428I_2+ FS_E428I_3+.3

FS_E428I_0;YPU*GI;B;C:\bahn_V3\ITALIA;41_0;

FS_E428I_1;YPU*GI;B;C:\bahn_V3\ITALIA;41_1;

FS_E428I_2;YPU*GI;B;C:\bahn_V3\ITALIA;41_2;

FS_E428I_3;YPU*GI;B;C:\bahn_V3\ITALIA;41_3;


Il nome da usare nel timetable è il secondo: FS_E428I. Il primo è il pantografo destro (chiamato _SAR utilizzando la convenzione MM, anche qui non obbligatoria). Le ultime quattro righe sono come il caso dell'animazione normale. Notare che la seconda riga combina insieme pantografo (simbolo <) e animazioni (simbolo + e .3 finale). L'ordine con cui compaiono le righe non è comunque vincolante e può essere modificato a piacere.

I file fisici che ho sul disco sono 41_0_SAR, 41_0, 41_1, 41_2 e 41_3 cioè gli stessi identici di MM (sempre omettendo l'estensione .BMP).

Notare che le locomotive trifasi, che viaggiano con entrambe le aste alzate, sono assimilabili a una macchina a vapore. Quindi quanto sopra vale solo per le macchine animate in corrente continua (es. E.428, E.626 con biellismo).


E una volta che ho i veicoli nella stock list?

A questo punto bisogna aprire il file timetable (italia.ttt nel mio caso) e scrivere le "composizioni" di treni che si vogliono veder passare. Il caso più semplice di un treno che transita è:

c=locomotiva, elenco carrozze;

cioè per esempio Le Train Bleu in partenza da San Remo:

c=fs_e333,fs_52000IS,ciwl_wl;

Notare che se ci si accontenta di utilizzare solo i veicoli già presenti nella stock list (la mia o quella della versione completa di Traffic (www.fsz.bme.hu/traffic/www/stocke.htm), i passaggi precedenti non servono e il lavoro comincia qui.


Come si impostano le manovre (cambio trazione, aggiunta o scarto veicoli, ecc.)?

Se si vuole un "movimento" diverso dal semplice transito (es. fermata, cambio trazione, scarto di veicoli, ecc.) bisogna far precedere la "c=" dalla sigla del movimento, e poi, ovviamente, usare la sintassi specifica del movimento. Per esempio:

m=put;d=r;c=fs_e656,4*(fs_x64b_rg);c1=2*db_xlw_bb;c2=fs_e321;P=<30;

fa fermare un treno composto da quattro Carrozze X tipo 1964 trainate da una E.656 e aggiunge due cuccette tedesche, manovrandole con un'E.321.

I movimenti sono parecchi e con molte varianti. Per una loro conoscenza è indispensabile consultare il manuale di Traffic (www.fsz.bme.hu/traffic/cookbook/timtab.htm). In alternativa, è possibile studiarsi gli esempi contenuti nel mio file timetable Italia.ttt.


Come faccio a creare due o più "scenari", cioè insiemi di treni caratterizzati da un'epoca, una nazione o qualche altra cosa in comune?

Devi definire due o più file "timetable" e poi dalla finestra di configurazione scegliere quale utilizzare.

Se sei un utente più esperto, puoi anche creare delle sezioni ($SECTION) cioè suddividere il tuo timetable in gruppi di treni (omogenei per periodo, nazione o altro), di modo che lo screensaver passi da solo da un gruppo all'altro, periodicamente. La sintassi delle sezioni è descritta nella guida in linea.


Come faccio a far andare un treno sempre nella stessa direzione?

Il problema si pone con le locomotive a vapore, che ovviamente hanno il fumo che "va" in una certa direzione, e con i treni navetta, in cui la locomotiva deve essere attaccata all'estremità opposta rispetto alla carrozza pilota.

Per vincolare la direzione basta mettere:

D=R; oppure D=L;

prima di C=...

Un caso particolare è quello degli elettrotreni che - se spezzati su più bitmap - devono preservare la successione dei veicoli indipendentemente dalla direzione di marcia. In altre parole, quando un treno normale scritto come Loco-Carr_1-Carr_2... viaggia da destra a sinistra, la bitmap (letta da sinistra a destra) viene automaticamente "capovolta" da Traffic, diventando Carr_2-Carr_1-Loco. Con gli elettrotreni questo non deve succedere, perché ciò accoppierebbe la seconda carrozza dal lato del "muso" della prima. Per evitarlo, basta scrivere, per esempio:
C=<ETR_1,ETR_2,ETR3;
dove "<" vincola la "definition direction" da sinistra a destra e ">" la vincola da destra a sinistra, indipendentemente dalla "moving direction".
In ogni caso, di norma, gli elettrotreni scaricati da questo sito sono salvati come immagine unica e pertanto non presentano il problema.


Perché le carrozze pilota sono sempre orientate con la cabina a sinistra e non cambiano verso se trainano un treno diretto verso destra?

Le carrozze sono disegnate in un certo modo (la maggior parte con il muso a sinistra, forse non proprio tutte). Traffic da solo non le può "capovolgere" perché una carrozza dall'altra parte non è semplicemente l'immagine speculare, di solito cambiano tanti dettagli.

La cosa più semplice è vincolare la direzione del treno; esistono anche modi più sofisticati per vincolare la successione dei veicoli ma non la direzione, ma sono più complessi da usare.


Come faccio ad ottenere che un treno sia trainato da due locomotive, se supera una certa lunghezza?

Sicuramente si può fare in modi diversi. Il più semplice che mi viene in mente è quello di racchiudere la seconda macchina e un po' di vagoni in una parentesi con probabilità 0-1: vedi l'esempio qui sotto.

c=fs_e428iii, (0-1*(fs_e428iv,1-2*(fs_x64a0_gr), 0-1*ciwl_wr, 2-3*(4:fs_x64b0_gr|fs_1957abgr)), 3-4*(4:fs_x64b0_gr|fs_1957abgr)), 0-1*fs_x64d_gr;

In questo modo c'è di sicuro un'E.428 di terza serie.

Poi ci può essere oppure no "(0-1*(...)" una seconda E.428 di quarta serie, che costituisce la doppia trazione e che si porta dietro le "sue" carrozze: in questo caso una o due X di prima classe "1-2*(...)", 0 o 1 ristorante CIWL e 2 o 3 seconde classi tipo X (oppure, con probabilità 1/4 delle precedenti, miste tipo 1957 "4:...|...")

Finita tutta questa parentesi il treno si conclude in ogni caso con altre 3 o 4 X (o tipo 1957) e opzionalmente un bagagliaio "0-1*...".


Lo stesso metodo può essere usato per mettere la spinta in coda.

d=r;c=fs_940|fs_740|FS_640,fs_dm_gr|fs_dm_ca, 2-5*(fs_f|fs_ff|fs_f_cab), 0-1*(1-2*fs_f,3-6@(fs_vt|fs_l|fs_hg), fs_940|fs_740)

C'è sempre una 940 oppure 740 oppure 640, quindi un bagagliaio grigio o castano, da 2 a 5 carri a scelta di vari tipi "2-5*(...|...|...)".

A questo punto o il treno è finito lì, oppure ci sono degli altri carri, e se ci sono questi, racchiusa nella stessa parentesi, c'è in coda anche una 940 o una 740 a fare la spinta: "0-1*(...carri...,loco)".

In particolare i tre tipi di carri VT, L, HG sono presenti in un numero di unità compreso tra 3 e 6, ma tutti dello stesso tipo (simbolo @) anziché in combinazione assortita (simbolo * normalmente usato).

Questo sistema va bene se non si hanno forti vincoli sulla successione dei veicoli (ad es. non si presterebbe se volessi per forza avere prima tutta la prima classe e poi la seconda, con un rapporto tra prima e seconda fisso al variare della lunghezza totale).


Ho provato a caricare in Traffic un intero treno MM animato ma non funziona: il biellismo non gira e al posto della terza vettura si vede la locomotiva che cambia le varie fasi lampeggiando.

E' un piccolo problema di incompatibilità con MM. Se ad esempio si usa la A.691 con il suo treno, il file A691_0.bmp contiene il treno tutto intero. Ebbene: questa cosa funziona con MM ma non con Traffic. In Traffic è necessario che le animazioni siano tutte lunghe uguali (o almeno così era fino a qualche versione fa, ora il problema potrebbe essere stato risolto).

Quindi, affinché funzioni, occorre spezzare la fase zero in una a691_0.bmp con solo la locomotiva e poi lasciare il treno in un secondo file, ad esempio a691_t.bmp.

Poi si aggiungerà nella stock list

FS_a691_t;GRU*GI;B;C:\bahn_V3\ITALIA;a691_t;

e nel timetable la riga diverrà:

d=L;c=fs_a691,fs_a691_t;

Meglio ancora, naturalmente, sarebbe spezzare tutte le carrozze ad una ad una, di modo che poi si possano fare delle composizioni casuali e variate.


Come viene impostata la velocità dei treni?

Di norma Traffic sceglie in automatico la velocità, in modo casuale, il che va bene per la larga maggioranza delle situazioni. Se c'è necessità, è anche possibile forzarla a un determinato valore (così come l'accelerazione, nei movimenti di manovra). La sintassi è del tipo:
V=1;C=DRAISINE;
V=5-7;C=NEITECH;

E' anche possibile accelerare o rallentare tutti i treni cambiando la velocità globale: clic con il tasto destro, durante il funzionamento dello screensaver, e poi scegliere Speed.


Come faccio a gestire disegni trasparenti? Devo fare dei file GIF trasparenti?

Aggiornato! E' vero che il formato GIF può gestire di suo la trasparenza mentre il BMP no, ma Traffic non utilizza l'informazione di trasparenza nativa del GIF e, al contrario, sa considerare come trasparenti anche delle normali BMP.

Il sistema più semplice è quello di usare come colore trasparente il nero puro (RGB 0,0,0) e controllare che il primo pixel in alto a sinistra sia nero. Se è così, è possibile far diventare trasparente un veicolo semplicemente premendo Ctrl+T nella stock list.
Per i più esperti: se la stock list punta a immagini bitmap ed è salvata come testo, questo coincide con il cambiare la lettera che specifica il tipo di file (dopo l'iniziale dell'autore) da "B" a "C". Per disegni salvati nelle TVL, l'informazione è scritta nella TVL stessa.


Come faccio a far apparire una didascalia con una descrizione della composizione che appare sul binario, analogamente a MM?

Aggiornato! Bisogna usare il parametro "TX". Ad esempio se:
c=FS_E444|FS_E656,2*(FS_GC_A|FS_GC_AP),FS_GC_D,FS_GC_WR,2-5*(FS_GC_A)

è un bel TEE Bandiera, allora:
c=FS_E444|FS_E656,2*(FS_GC_A|FS_GC_AP),FS_GC_D,FS_GC_WR,2-5*(FS_GC_A);TX=TEE Bandiera Anni Ottanta

scrive la didascalia "TEE Bandiera Anni Ottanta".


Come si impostano gli sfondi con le catenarie, i ponti, le stazioni?

Aggiornato! Nel caso più semplice in cui a un normale binario si vuole aggiungere uno sfondo, basta usare il parametro "BG" (background) per qualcosa che sta dietro al treno, oppure "FG" (foreground) per qualcosa che sta davanti al treno (e che potremo chiamare anch'esso sfondo, per dire che sta comunque fermo).
Quindi se vogliamo mettere una stazione dietro al nostro treno, scriveremo:

C=FS_ALN772;BG=STAZ_D:60;AB=80;

dove :60 dice di mettere la stazione al 60% dello schermo e AB (above)=80 dice di lasciare 80 pixel sopra la normale striscia del treno, perché ovviamente la stazione è più alta del treno stesso.

Due sfondi (cioè due immagini) separati da virgola vengono disposti uno dopo l'altro, mentre separati da punto e virgola creano due strati (layer) sovrapposti, entrambi dietro al treno.
Quindi ad esempio:

C=FS_ALN772;BG=(CIELO:..;STAZ:40);AB=200

crea un primo sfondo dato dal cielo e ripetuto per tutta la larghezza dello schermo (:..), e un secondo sfondo dato dalla stazione posta al 40% della larghezza (:40), il tutto riservando 200 pixel above.

Se invece si scrive:

C=FS_ALN772;BG=(STAZ:30;MAGAZ1:80);AB=135;

si mette prima la stazione e poi il magazzino merci

Se davanti alla stazione si vuole mettere la classica staccionata FS, basta aggiungere:

C=FS_ALN772;BG=STAZ_D:60;AB=80;FG=STACCION:..

Anche in questo caso l'intervallo :.. assicura che la staccionata copre tutta la larghezza dello schermo.

Naturalmente abbiamo indicato sempre un treno semplicissimo (C=FS_ALN772), ma potremmo metterci un treno qualunque e farlo precedere da un movimento (es. M=STOP; per farlo fermare e ripartire).

Un caso carino è quello di due treni che si incrociano in stazione. Per fare questo, bisogna costruire una scena ($SCENE) in cui inserire due percorsi ($PATH). Ecco la sintassi più semplice, complicabile a piacere se si vogliono perfezionare gli sfondi o creare dei movimenti diversi dal transito (es. sosta).

$SCENE DY=200;YDIR=U;
$PATH Y=20;FG=STACCION:..;
D=L;C=(FS_D345,2-3*FS_36000GR)|FS_ALN6681500;
$ENDPATH

$PATH
Y=20;BG=(MARCIAP:..;STAZ:55;CIELO:..;);W=4;
D=R;C=(FS_D345,2-3*FS_36000GR)|FS_ALN6681500;
$ENDPATH
$ENDSCENE

Innanzitutto si definisce una scena alta 200 pixel (DY=200). Poi si crea il primo path che contiene un foreground (FG) dato da una staccionata replicata per tutto lo schermo (:..) e un treno che può essere una D.345 con alcune centoporte oppure un'automotrice. La direzione del treno è vincolata verso sinistra (D=L), dato che è quello "davanti".
Il secondo path è alla stessa altezza del primo (Y=20 in entrambi), dato che si vuole avere i due binari alla stessa quota. In questo caso c'è uno sfondo (BG) che è costruito su tre strati: un marciapiede esteso per tutta larghezza, la stazione, al 55% dello schermo, e infine il cielo, anch'esso esteso per tutta la larghezza.
Dal momento che il path viene costruito prima di farci passare un treno (che sta alla riga successiva) occorre precisare il tipo di rotaia, ad esempio con w=4, che è il binario standard.
Infine lo stesso treno del primo path viene usato anche per il secondo, che però si muove verso destra (D=R). Naturalmente sarebbe possibile usare un treno diverso.

L'argomento sfondi è però assai più complesso di quanto spiegato qui: per maggiori dettagli fare riferimento alla guida in linea oppure guardare i vari esempi nel mio timetable.


Alcuni colori dei tuoi disegni non mi sembrano del tutto realistici.

E' possibile. Io in realtà con i colori cerco di rimanere nella "palette" standard da 256 colori dello screensaver MM originale, che garantisce un corretto funzionamento in ogni condizione, anche nel caso si disponesse di scheda video a soli 256 colori. Probabilmente oggi è uno scrupolo fin eccessivo... quindi ben venga l'elaborazione di colori più fedeli da chi lo desidera.

La palette che uso io, nel formato Paint Shop Pro (file .pal) è qui.


Come faccio a far andare lo screensaver senza aspettare che Windows lo faccia partire automaticamente?

Puoi fare un collegamento al file "Traffic.EXE", e mettere il collegamento sul desktop o nel menu Start (ma qualche voce del menu dovrebbe già averla messa il programma di installazione). Per fare un collegamento, devi localizzare il file "Traffic.EXE" con Esplora risorse (dovrebbe stare in C:\Programmi\Traffic), fare clic con il tasto destro e scegliere "Crea collegamento".

Poi devi andare nelle proprietà del collegamento e aggiungere una lettera finale che indica come aprire Traffic. Ad esempio la lettera giusta per il "Full screen" è "/f".

Riassumendo, la casella "destinazione" dovrà contenere il seguente testo (o altro simile se Traffic è installato in un'altra cartella):

Esecuzione full screen:

C:\Programmi\Traffic\Traffic.exe /f

Esecuzione in window:

C:\Programmi\Traffic\Traffic.exe /w

Finestra di configurazione:

C:\Programmi\Traffic\Traffic.exe /t


Naturalmente per configurare Traffic come screensaver vero e proprio, si usa la linguetta "screensaver" dalla voce "schermo" del Pannello di controllo di Windows.


Come faccio a non far fermare lo screensaver quando muovo inavvertitamente il mouse?

Lo screensaver si interrompe se si muove il mouse, si fa clic, si preme un tasto qualunque oppure solo se si preme ESC, a seconda di come è settata l'opzione "Stop on" nelle linguette "Full screen" e "Window", rispettivamente. Per far sì che si interrompa solo se si preme ESC, bisogna togliere tutte le crocette).

Se lo screensaver, una volta interrotto, non riparte, potrebbe essere che è rimasto in memoria per un problema software, che di solito dipende da Traffic e dal particolare PC su cui è eseguito. Per verificare se è rimasto in memoria, premere Ctrl+Alt+Canc (in Win 2000-XP scegliere poi il "Task Manager"). Se nell'elenco dei programmi, compare Traffic, provare a scegliere "Termina operazione" e controllare se poi riparte.


Che cosa è il flle .TCA che vedo assieme ai disegni?

E' la "cache", cioè un file temporaneo che il programma crea con tutti i disegni insieme per evitare di dover leggere singolarmente ogni volta tutte quante le bitmap. C'è un'opzione nella finestra di configurazione che permette di scegliere se usare o meno la cache.


Dove trovo il manuale completo di Traffic?

Quello in inglese si scarica come zip o si legge on-line dalla pagina principale di Traffic: www.fsz.bme.hu/traffic/indexe.htm oppure si utilizza la guida in linea del programma (sempre in inglese, oppure tedesco o... ungherese!).
Al momento credo che le uniche informazioni in italiano siano quelle che state consultando ora... Buona lettura!


Le FAQ dello Screensaver MM


[Indice della sezione] / [This Section]

[Home page]