Zusammenstellen eines Fahrzeugs aus Phasenbildern


Um die bewegten Teile eines Fahrzeugs nachzubilden (Speichenräder, Steuerungen, Antriebsstangen usw.) werden mehrere Bilder benötigt, von denen jedes ein Einzelbild oder eine "Phase" der gesamten Bewegung darstellt. Wenn das Fahrzeug über den Bildschirm bewegt wird, werden die einzelnen Phasenbilder in Folge nacheinander angezeigt. Wenn sich das Fahrzeug weiterbewegt wird der Teil des Bildes, der bewegte Teile enthält, in festgelegten Abständen ausgetauscht. Mittels einer mathematischen Formel wird bestimmt, welcher Teil der Phase an diesem Ort oder bei dieser "Bewegungsstufe" angezeigt werden muß.
 

Die Syntax ist:

<Vehicle> == <BasePicture> <AnimatedPicture> <AnimatedPicture> <StepLength> <Vehicle> <Modifier>
<BasePicture> == <OverlayedPicture> <OverlayedPicture>  < <PictureName> <OverlayedPicture>  > <PictureName> <BasePicture> <Modifier>
<OverlayedPicture> == <PictureName> <PictureName>  : <PictureName> <PictureName>  :  <PictureName>  :  <Simple> <PictureName>  :  <PictureName>  :  <Simple>  :  <Simple>
<AnimatedPicture> == <BasePicture> <AnimatedPicture> <Connection> <PhasePicture>
<Connection> == + > + < + + * + <Simple> : +  <Simple>  :  <Simple>  :
<PhasePicture> == <PictureName> <PhasePicture> <Modifier>
<StepLength> == +.<StepPixel> +/<Diameter> +
<StepPixel> == <Simple>
<Diameter> == <Simple>

Das erste Bild <BasePicture> ist immer das komplette Bild des gesamten Fahrzeugs. Bei Nutzung für den MM&MM - Bildschirmschoner muß dieses erste Mehrphasenbild zwingend mit dem Suffix _0 versehen sein! Das erste Bild kann eine richtungsabhängige Überlagerung besitzen. Die nachfolgenden Phasenbilder sind mit dem + - Zeichen zusammengefügt. Das + - Zeichen verfügt über zusätzliche Modifikationen, die exakt festlegen, wie die Bilder miteinander verbunden werden:

+> Die Phasenbilder werden rechtsbündig ins <BasePicture> eingebunden.
+< Die Phasenbilder werden linksbündig ins <BasePicture> eingebunden.
+ Die Phasenbilder werden mittig ins <BasePicture> eingebunden.
+* Die Mitte der Phasenbilder werden mittig ins   <BasePicture> eingebunden.
+ <Simple> : Die Phasenbilder erscheinen um + <Simple> Pixel vom linken Rand des <BasePicture>.

+<Simple> : <Simple> :  Die Phasenbilder erscheinen um die ersten + <Simple> Pixel Offset vom linken Rand und die zweiten + <Simple> Pixel Offset von unten ins <BasePicture> eingebunden.

Phasenbilder erscheinen immer am Boden des <BasePicture> - die einzige Ausnahme bildet die letzte Angabe mit zwei vorgegebenen Koordinaten. Die Phasenbilder brauchen nur den rechteckigen Bereich mit Modifikationen zu enthalten. Sie dürfen in keiner Richtung größer sein als das <BasePicture>. Sollte dies doch einmal so sein (wenn beispielsweise der Rauch einer Dampflok in der 3.Phase höher aufsteigt als im <BasePicture>), dann muß das Rechteck des <BasePicture> um einen entsprechend großen transparenten Bereich erweiter werden. Sind die Phasenbilder transparent, werden die transparenten Bereiche in das gesamte Fahrzeugbild kopiert. Die transparenten Bereiche am Fahrzeug können sich natürlich zusammen mit der Bewegung ändern (Speichen, Stangen) und man kann dann an unterschiedlichen Stellen auf den Hintergrund durchsehen.

Bilder in einer TVL-Bibliothek können "differnece mode" - Bilder sein, es können nämlich zwei unterschiedliche Arten von Pixeln innerhalb eines Bildes auftreten. Ein Pixel kann vom Typ "No change" sein - in einem Phasenbild wird dieses Pixel unverändert bleiben - oder ein Pixel kann vom Typ "Transparent" sein - das resultierende Phasenbild wird an dieser Stelle transparent sein, der Hintergrund wird an dieser Stelle durch das Bild hindurch sichtbar sein.

Um eine realistische Fahrzeugbewegung zu erreichen, werden die Phasenbilder in Folge ersetzt, wenn das Fahrzeug einen bestimmten Weg in Pixel zurückgelegt hat. Diese Weglänge, die einem Bildwechsel zu Grunde liegt, wird als "Step" (=Schritt, Phase) bezeichnet. Diese Weglänge kann mit folgendem Parameter festgelegt werden:

+.<StepPixel>  

Es gibt einen weiteren Weg, die <StepLength> anzugeben:

+/<Diameter>

wobei die Zahl den Durchmesser des Antriebsrades angibt. Als Vorgabe ist für alle Fahrzeuge ein geometrisch korrekter Wert festgelegt, mit dem Kommando $PHSTEP kann man jedoch diesen Wert dem eigenen Geschmack anpassen. Die im $PHSTEP - Kommando angegebene Zahl, multipliziert mit dem Raddurchmesser, bestimmt den Weg, der einer kompletten Umdrehung dieses Rades entspricht. Aus diesen Werten ergibt sich auch der Ablauf für die Anzeige der einzelnen Phasen, die eine realistische Bewegung erzeugen. Im traffic – Bildschirmschoner ist es möglich mehr (oder weniger) als vier Bilder für den Ablauf von Phasen zu verwenden.

Ohne das $PHSTEP - Kommando ist die Vorgabe p ( 3.14). Wenn eine schnellere Phasenfolge gewünscht wird, kann als Wert für $PHSTEP eine kleinere Zahl benutzt werden. Der Parameter +/<Diameter> ist dem Parameter +.<StepPixel> äquivalent über die folgende Beziehung:

<StepPixel>=<Diameter>*<PhStep>/<Number_of_phase_pictures>.

Wenn die Phasenbilder keine volle Radumdrehung darstellen (zum Beispiel bei Drehgestellen, die die Radbewegung zeigen), sondern nur einen Teil davon, ist die Form der Angabe mit +/<Diameter> die schlechtere Wahl.

Das <BasePicture>, jedes Phasenbild und das gesamte animierte Bild kann Modifikationen besitzen.

Eine Modifikation des <BasePicture> wird sofort nach dem Laden des <BasePicture> ausgeführt, und dieses möglicherweise modifizierte <BasePicture> dient als Basis für die Phasenbilder.

Modifikationen der Phasenbilder wirken nur auf dasjenige Bild ein, hinter dem sie angegeben sind. Traffic kopiert das <BasePicture> (das bereits durch eine Modifikation verändert sein kann) in den Bereich für Phasenbilder, überlagert es mit dem momentan gültigen Phasenbild und führt dann die hierzu gehörende Modifikation des Phasenbildes aus.

Am Ende, nach dem <StepLength> - Parameter, werden die Modifikationen für das Gesamtbild angegeben. Sie wirken sowohl auf das Basisbild als auch auf die einzelnen Phasenbilder. Ist kein <StepLength> - Parameter angegeben, sollte stattdessen ein einzelnes + - Zeichen verwendet werden, um die Angabe der Modifiaktionen des Gesamtbildes von denjenigen des letzten Phasenbildes zu trennen. Vergißt man dies, verändern die Modifikationen am Ende nur das letzte Pahsenbild und nicht das gesamte Fahrzeug.