<AnimationRules>

<AnimationRules>

<AnimationRules> == <AnimationRule> ( <AnimationRuleList> )
<AnimationRuleList> == <AnimationRule> <AnimationRuleList> ; <AnimationRule>
<AnimationRule> == <DefaultMark> <Action> = <Sequence> <DefaultMark> <Action>
<DefaultMark> == * < >
<Action> == <Name>
<Sequence> == <SequenceName>   <AnimProg>
<SequenceName>   == F FW FORWARD
B BW BACKWARD
C CY CYCLE
E EX END EXIT

Dieser Parameter gehört zur Definition von Animationen. Eine Animation besteht aus einer Anzahl von Folgebildern gleicher Größe sowie den Parametern, die angeben in welcher Form diese auf die gleiche Stelle eines (sich bewegenden) Fahrzeugs oder eines Vorder- oder Hintergrundes kopiert werden sollen. Die Folgebilder sind in der Regel in einem einzigen Bild in der Fahrzeugliste enthalten und die Parameter des [A: ] – Kommandos definieren, wie die Folgebilder darin zusamengefasst sind.

Zu einer Folgebildserie kann mehr als eine Regel gehören. Eine Animationsregel besteht aus einem <Name> und dem "Programm", der <Sequence>, die die Anzeige der Einzelbilder der Folge festlegt sowie möglichen Wartezeiten zwischenden einzelnen Bildern. Die <AnimationRuleList> ist eine Liste von individuellen Regeln <AnimationRule>, die durch Semikolon getrennt werden. Eine der Regeln kann zur Vorgabe werden – d.h. sie ist bereits aktiv, wenn der Zug erscheint. Bedenken Sie, daß die Fahrzeuge so behandelt werden, als käme der Zug von sehr weit her. Aus diesem Grunde kann es vorkommen, daß bei einer solche Vorgabe bei einmaligem Ablauf die Animation längst beendet ist und fast immer nur noch das Endergebnis zu sehen ist, wenn der Zug dann tatsächlich im Bild erscheint. Nur eine Regel kann zur Vorgabe werden, wenn Sie mehr als Regel als Vorgabe kennzeichnen, wird das traffic - Programm eine davon auswählen – und es besteht keine Garantie vorherzusagen, welche das ist. In der momentanen Version wird die erste Kennzeichnung benutzt, es besteht jedoch die Möglichkeit, daß dies in künftigen Versionen geändert wird.

Die Vorgaberegel wird durch das Voranstellen eines Sterns * vor <Name> markiert; in diesem Falle ist die <AnimationRule> unabhängig von der Fahrtrichtung des Fahrzeugs. <  bestimmt, daß die <AnimationRule> aktiviert wird, wenn das Fahrzeug von rechts nach links fährt. Umgekehrt wird eine <AnimationRule> mit > aktiviert, wenn das Fahrzeug von links nach rechts fährt.

<Action> wird als Kommandoname benutzt, über den die Animation aufgerufen wird. Man kann diese im Konstrukt der <WaitTime> bei den T=, T1=, T2=, T3=, TB=, TE= - Parametern benutzen, mit denen die Wartezeiten und Animationen bestimmt werden sowie beim WP= - Parameter, der Plätze entlang des Fahrwegs definiert und Aktionen beim Passieren des Zuges auslöst. Es gibt einige vordefinierten Aktionsnamen und kombinierte Aktionen mit eigenen Parametern. Diese sind im Kapitel Aktionen beschrieben.

Die <Sequence> ist ein Kurzname entweder für eine einfache Bildabfolge oder für ein Programm, das die Einzelstufen im Detail festlegt. Die akzeptierten Codes für <Sequence> lauten:

nichts Jeder Ablauf der Animation startet mit dem Anfang und läuft komplett bis zum letzten Einzelbild ab.
F , FW oder FORWARD Die Animation läuft vom ersten bis zum letzten Einzelbild ab - wenn das letzte Bild gezeichnet wurde, ist die Aktion beendet.
B , BW oder BACKWARD Die Animation läuft vom letzten bis zum ersten Einzelbild ab - wenn das erste Bild gezeichnet wurde, ist die Aktion beendet.
C , CY oder CYCLE Die Animation läuft als Endlosschleife, vom ersten bis zum letzten Einzelbild und so fort.
E , EX , END oder EXIT Eigentlich keine echte Animation: Wird benutzt, um eine endlos laufende Animation gezielt zu beenden. Sie beendet die laufende Animation nach dem Zeichnen des letzten Bildes.
<AnimProg> Die Sequenz der Einzelbilder wird ausführlich definiert, hier wird auch die Anzahl der Einzelbilder angegeben, die innerhalb der Animation ablaufen.

Die Syntax eines detaillierten Programms lautet:

<AnimProg> ''== <Stufe> <AnimProg> , <Stufe>''
<Stufe> ''== <Simple> <Intervall> <Repetition> ( <AnimProg> ) W <Simple>''
<Intervall> == <Simple> - <Simple>
<Repetition> ''== * <AnimProg> <Simple> * <AnimProg>''

<Stufe> ist die Anzahl der Einzelbilder, die angezeigt werden. Die Einzelbilder werden beginnend mit 0 gezählt. Ein <Intervall> (zwei mit Minuszeichen  verbundene Ganzzahlen) bedeutet, daß alle Einzelbilder zwischen der ersten und zweiten <Simple> in aufsteigender Reihenfolge gezeigt werden.

Eine von einem W angeführte <Simple> ist keine Bildnummer, sondern eine Anzahl von 10 ms - Intervallen, die der Bildschirmschoner bis zur Anzeige des nächsten Einzelbildes oder bis zum Beginn der nächsten Wartezeit wartet. Alle Stufen, ohne   W<Integer> - Element dazwischen warten entsprechend dem <Time> - Parameter in der kommagetrennten Liste des [A: ] – Kommandos, oder aber die entsprechenden Parameter zum Ablauf der Einzelbilder sind bereits im Makro des Bildes selbst enthalten.

Der Stern ( *) bedeutet Wiederholung. Wenn vor dem Stern eine <Simple> steht gibt diese die Anzahl der Zyklen an. Ohne Stern handelt sich um eine Endlosschleife. Die Zahl der Einzelbilder und Intervalle muß als Zyklusdefiniton in Klammern eingeschlossen sein. Lediglich wenn nur ein einziger Zyklus abläuft, darf auf die Klammern verzichtet werden.

Alle Integer (die Bildindizes und die Zyklusanzahl) sind vom Typ <Simple>, sie können keine Bruchteile enthalten oder vom Zufallsgenerator bestimmt werden.

** **

Es gibt zwei spezielle Animationsnamen mit vordefinierten Regeln - sie haben die globalen Bezeichnungen DOOR oder PAN und besitzen einige zugehörige vordefinierte Ablaufregeln. Der Ablauf der DOOR - Animation entspricht der folgenden Einzeldeklaration:

(DOOR; OPEN=FW; CLOSE=BW)

Es handelt sich um eine Tür: man kann sie öffnen oder  schließen. So ist die DOOR- Animation im Prinzip eine bedingte Animation. Wenn man sie aufruft, prüft sie den augenblicklichen Zustand und läuft abhängig von ermittelten Zustand ab: Schließen, wenn sie offen war und Öffnen, wenn sie geschlossen war.

Die PAN - Animation beschreibt Stromabnehmer von Elektrolokomotiven, Straßenbahnen und Oberleitungsbussen. Es gibt spezielle Aktionsnamen, die alle Stromabnehmer des Fahrzeugs behandeln - dies ist im Kapitel Zustandsänderung von Stromabnehmern ausführlich beschrieben