[A: ], [AT: ]

[A: <AnimationRules>, <#><PictureName>, <TargetX>, <TargetY>, <FrameWidth>, <FrameHeight>, <SourceX>, <SourceY>, <%Time%>, <NumberOfFrames>, <StepX>, <StepY> ]

[A: <AnimationRules>, <PictureName>, <TargetX>, <TargetY> ]

[AT: <AnimationRules>, <#><PictureName>, <TargetX>, <TargetY>, <FrameWidth>, <FrameHeight>, <SourceX>, <SourceY>, <%Time%>, <NumberOfFrames>, <StepX>, <StepY> ]

[AT: <AnimationRules>, <PictureName>, <TargetX>, <TargetY> ]

Definition einer Animation.

(Animation), (Animation Transparent)

Animationen beschreiben komplexere Verhaltensweisen und besitzen zahlreiche Parameter. Bitte beachten Sie die Beschreibung daher sorgfältig.

Eine Animation ist eine Anzahl von Einzelbildern (sog. Frames), die in einem einzelnen, größeren Gesamtbild mit eigenem Eintrag in der Fahrzeugliste zusammengefaßt sind (ein Bild in der Fahrzeugliste oder einer Grafikdatei). Die Teilbilder werden nacheinander gezeigt und die sequentielle Anzeige schafft die Illusion von Bewegung. Regeln geben an, in welcher Reihenfolge und in welchem zeitlichen Abstand diese Einzelbilder an einen bestimmten Ort in einem Fahrzeug oder Hintergrundbild kopiert werden. Der Parameter <AnimationRules> beschreibt Richtung, eventuell die Reihenfolge, in der die Teilbilder im Fahrzeugbild oder im Hintergrund benutzt werden.

Die Teile des Bildes, die als Einzelbilder (Frames) für die Animation benutzt werden, werden üblicherweise nebeneinanderliegend gezeichnet: Das Quellbild enthält folglich jede Position der Bewegung von Beginn bis Ende. Aus diesem Grunde hat das Bild die Breite <FrameWidth> * <NumberOfFrames> - jedes Einzelbild hat seinen eigenen Bereich, die Einzelbilder grenzen meistens unmittelbar aneinander. In diesem Falle (und in der Regel) haben die Parameter <SourceX> und <SourceY> den Wert 0, da sich das erste Einzelbild am linken Rand des zusammengesetzten Bildes befindet. <StepX> ist ebenso wie die <FrameWidth> und <StepY> normalerweise Null, da die Einzelbilder nebeneinander liegen. Natürlich gibt es auch andere Möglichkeiten: man kann die zu den einzelnen Phasen gehörenden Einzelbilder untereinander zeichnen oder – was sicherlich interessanter ist – man kann einzelne Bereiche des Animationsbildes für verschiedene Einzelbilder benutzen.

Stellen Sie sich eine nach oben öffnende Schiebetür und die Ansicht hinter der Tür als einfarbige Fläche vor (beispielsweise eine dunkle Farbe zur Darstellung eines tiefen Raums): In diesem Fall reicht es aus, die Tür zu zeichnen und darunter den Blick in die Öffnung, hinter die Tür. Das erste Bild beginnt oben in dem Animationsbild und zeigt die geschlossene Tür. Das nächste Bild liegt ein Pixel tiefer: man kann eine einzelnen Reihe des Inneren sehen und die um eine Reihe angehobene Türe. Das nächste Einzelbild liegt eine weitere Reihe weiter unten: es beinhaltet zwei Reihen der Innendarstellung und die Türe ist um 2 Pixel angehoben ... usw. In diesem Falle würde man folgende Parameterwerte einsetzen:

<SourceX> = 0

<SourceY> = <NumberOfFrames> - 1

<StepX> = 0

<StepY> = -1

Dieser Teil - die geometrischen Parameter - hat das Auffinden der Einzelbilder im zusammengesetzten Animationsbild beschrieben. Der andere Teil - die <AnimationRules> - bestimmt, wie diese Einzelbilder im Ablauf gezeigt werden.

Dies soll an dem eingangs genannten Beispiel wieder aufgegriffen werden. Die Kurzform für die Animation [A: ] kann dann benutzt werden, wenn die zusätzlich benötigten Informationen bei dem Bild <PictureName> abgelegt sind. In diesem Falle hat das Bild <PictureName> den folgenden Ausdruck in seiner zugehörigen Makrozeile in der Fahrzeugliste:

[ANIM: <AnimationRules>, <FrameWidth>, <FrameHeight>, <SourceX>, <SourceY>, <%Time%>, <NumberOfFrames>, <StepX>, <StepY> ]

Zur Nutzung müssen dann nur noch die Koordinatenwerte mit der Plazierung der Einzelbilder im Hintergrundbild und der Bildname angegeben werden, alle anderen Parameter betreffen die Einzelbilder. Wenn <NumberOfFrames> ein einzelner Name ist und nicht eine komplexe Definition, kann das Makro für die Einzelbilder noch kürzer geschrieben werden:

[ <EventName>: <FrameWidth>, <FrameHeight>, <SourceX>, <SourceY>, <%Time%>, <NumberOfFrames>, <StepX>, <StepY> ]

<PictureName> Bild mit den individuellen Einzelbildern, aus denen die Animation zusammengesetzt ist. Ein Name ohne Schrägstrich, Rückstrich oder Punkt ( /\.) bezeichnet ein Bild aus der Bildliste. Wird ein Bild von außerhalb der Bildliste benutzt, kann die Kurzform des [A: ] - Kommandos nicht verwendet werden, da nur Elemente der Fahrzeugliste Makros enthalten können.
Wenn ein Nummernzeichen (#) dem Bildernamen vorangestellt wird, bewirkt dies eine Spiegelung des Bildes.

<TargetX>, <TargetY> Die Koordinaten der Darstellung der Animation im Bild.

<FrameWidth>, <FrameHeight> - Die Abmessungen der Einzelbilder, aus denen die Animation besteht (Breite und Höhe) = der Bereich im Fahrzeugbild, der von der Animation bedeckt wird. Die Einzelbilder müssen alle identische Abmessungen besitzen, unabhängig davon, ob diese sich inhaltlich ändern. Bei einer Darstellung, deren Größe sich während der Animation verändert, muß also jedes einzelne Bild die Größe des größten Einzelbildes besitzen und die unveränderten Teile ebenfalls darstellen. Stellt man beispielsweise einen Stromabnehmer dar, müssen alle Bilder die Höhe des voll ausgefahrenen Stromabnehmer besitzen, die maximale Breite des Stromabnehmerbildes (normalerweise im abgelegten Zustand) und muß auch diejenigen Dachdetails enthalten, die im Rechteck mit erfaßt sind und unverändert bleiben.

<SourceX>, <SourceY> Die Koordinaten des ersten Einzelbildes (linke untere Ecke) innerhalb des Animationsbildes <PictureName>, das alle Einzelbilder enthält.

<%Time%> Zeit zwischen der Darstellung der Einzelbilder in 10 ms  - Intervallen. Dieses Intervall kann für bestimmte Stufen überschrieben werden, Hierzu muss das Format des <AnimationRules> - Parameters benutzt werden. Siehe dort für Einzelheiten.

<NumberOfFrames> Anzahl der Einzelbilder (Frames, Phasen) der Animation.

<StepX>, <StepY> Der Abstand der Einzelbilder zueinander in Pixel (nach rechts und oben positive Werte, nach links und unten negative Werte). Diese beiden Parameter geben die Möglichkeit, Teile der Einzelbilder mehrfach zu verwenden. Wenn Sie beispielsweise eine Schwenktür vor einem einfarbigen Innenraum darstellen wollen, zeichnet man die Animation in der doppelten Türhöhe. Die obere Hälfte zeigt die Türe, die untere den (einfarbigen) Innenraum. Der geschlossene Zustand wird am oberen Ende dargestellt. Für jede Bewegungsphase wird der dargestellte Bereich um ein Pixel nach unten verschoben ( <StepX> = 0, <StepY> = -1). Damit zeigt die Animation Schritt für Schritt mehr vom Innenraum und von der nach oben schwingenden Türe ist im verbleibenden Bild immer weniger zu sehen.

Das [AT: ] - Kommando verhält sich sehr ähnlich, wie das [A: ] - Kommando. Der einzige Unterschied besteht darin, dass die [AT: ] - Modifikation vor das Basisbild gelegt wird, die [A: ] - Modifikation zeigt das Phasenbild anstelle des Basisbildes. Somit kann man bei der [AT: ] - Modifikation durch die transparenten Bereiche des Bildes auf das Basisbild schauen, während bei der [A: ] - Modifikation alle unveränderten Pixel des Basisbildes mit enthalten muss, wenn solche innerhalb des Rechtecks sichtbar sind.

Animationen können ausgelöst werden, wenn ein Fahrzeug steht oder wenn es vordefinierte Wegpunkte passiert. Sie können fortgesetzt werden, auch wenn das Fahrzeug sich weiter bewegt. Animationen können nicht nur auf Fahrzeugen stattfinden sondern auch auf Vorder- und Hintergründen. Zum Auslösen von Animationen siehe die Beschreibungen unter dem Syntaxelement <WaitTime> und dem Kapitel Actions.