Future Pinball enthält ein Werkzeug namens Light Sequencer, um komplexe Lightshows zu erstellen. Der Light Sequencer greift dazu auf eine Light List zu, die Sie mit dem Light List Manager erstellen können.

Wenn der Light Sequencer gestartet hat, übernimmet er die Kontrolle über alle dafür spezifizierten Lichter, ohne deren tatsächlichen Zustand zu überschreiben. Dies bedeutet, dass der aktuelle Zustand eines Lichtes vor dem Starten des Light Sequencers wieder hergestellt wird, wenn der Light Sequencer beendet wird.

Sie können mehrere Light Sequencer auf Ihrem Spieltisch plazieren, die unterschiedliche Licht-Sektionen steuern. Jeder Light Sequencer kann eine eigene Light List verwenden, so dass Sie vollkommen beliebig Ihre eigene Lightshow designen können.

Beachten Sie auch, dass alle Objekte, die ein "Glühbirnchen" besitzen (wie Bumper, Flasher, EM-Reels, Bulbs, usw.), in den Light Sequencer mit einbezogen werden können.

Da der Light Sequencer eine Light List verwendet, sollten Sie mit dem Umgang desselben vertraut sein, bevor Sie sich mit diesem Thema auseinandersetzen.

Wenn Sie einen Light Sequencer zu Ihrem Spieltisch hinzufügen, wird dieser wie nebenstehend auf der Arbeitsfläche gezeichnet. Sie können diesen auch auf der Backbox erstellen.

Es ist wichtig zu wissen, dass der Light Sequencer nur die Lichter verwenden kann, in deren Ansicht er erstellt wurde. Wenn Sie diesen also auf der Backbox erstellen, wird er nur Lichter verwenden können, die sich auf der Backbox befinden. Wenn Sie jedoch einen Light Sequencer in der Spieltisch-Ansicht erstellen, gibt es die Option, dass dieser auch die Lichter der Backbox mit einbeziehen soll.

Ein markierter Light Sequencer bringt folgende Einstellungsmöglichkeiten zur Anzeige:

  Name

... enhält den Namen des Objektes. Er wird als Referenz innerhalb von Future Pinball verwendet. Deshalb muss dieser eindeutig sein und darf kein Leerzeichen enthalten. Wie auch bei anderen Objekten sollten Sie hier einen aussagekräftigen Namen vergeben, da dieser später auch zum Codieren benötigt wird.

  Virtual X and Y Centre

Dies bezeichnet die virtuelle Mitte, die als Referenz für die verschiedenen Licht-Sequenzen verwendet wird, die einen Mittelpunkt als Start- oder Endpunkt haben.

Dieser Mittelpunkt wird durch ein Fadenkreuz in einem zweiten Symbol des Sequencers gekennzeichnet. Wenn dieses Symbol markiert ist, wird das Fadenkreuz hervorgehoben und zusätzlich der Name des Light Sequencers angezeigt.

Sie können diesen Mittelpunkt dann beliebig auf der Arbeitsfläche verschieben. Beachten Sie, dass das Erstellen eines Light Sequencers dieses zweite viel kleinere Symbol zunächst auf dem absoluten Mittelpunkt Ihres Spieltisches plaziert wird.

  Include Translite Lights

Diese Option veranlasst den Light Sequncer, auch die in der Light List defininierten Lichter Backbox mit einzubeziehen. Dies erlaubt es, Effekte über den gesamten Flipper laufen zu lassen (von der Unterkante des Spieltisches bis zur Oberkante der Backbox). Die Option ist nur verfügbar, wenn der Light Sequencer in der Spieltisch-Ansicht erstellt wurde.

Yes: Der Lichteffekt wird die in der Light List enthaltenen Lichter der Backbox mit einbeziehen.

No: Der Lichteffekt wird nur Lichter der Light List verwenden, die sich auf dem Spieltisch befinden.

  Light List

Hier wählen Sie aus, auf welche Light List der Light Sequencer zugreifen soll.

  Update Interval

... definiert den Update Interval in Millisekunden, in dem die einzelnen Schritte eines Effektes angewendet werden. Je geringer dieser Wert ist, um so schneller läuft der aktuelle Effekt ab. Der Mindestwert für das Update Interval beträgt 5 Millisekunden.

  Flashers Blink

Wenn diese Option aktiviert  ist, werden Flashers, deren Licht durch die aktuelle Sequenz auf ON gestellt werden stattdessen blinken.

  Blink Interval

... definiert den Wechsel zwischen ON und OFF in Millisekunden, die für das Blinken verwendet wird.

 

  Regeln für die Plazierung von Lichtern

Der Light Sequencer arbeitet mit einer Unterteilung des Spieltisches in Felder von 15 x 15 Millimeter. Damit alle gewünschten Lichter korrekt angesprochen werden können, gilt es hier eine Regel zu beachten: Es ist pro Zelle nur 1 Licht erlaubt, das heist: wenn 1 Zelle mehr als ein Licht enthält, wird nur eines dieser Lichter in den Effekt mit einbezogen. Maßgeblich in diesem Fall ist der Center- oder Halo-Marker des Objektes.

Das folgende Bild zeigt eine Plazierung von 2 Lichtern, die zum Fehler in der Anzeige des Effektes führt:

Ein solcher Fehler wird jedoch wohl eher nicht auftreten, da in diesem engen Abstand normaler weise keine Bulbs plaziert werden.

  Die Effekte und wie sie arbeiten

Der Light Sequenzer arbeitet grundsätzlich Sequenzen nach einem vorgegebenen Muster ab, jedoch können diese durch die Geschwindigkeit des Ablaufes, die Dauer der Pausen und Wiederholung des Effekts beeinflusst werden.

Diese Sequenzen basieren auf einem "Head"-Effekt. Wenn Sie beispielsweise alle Lichter von der unteren Basis des Spieltisches nach oben hin anschalten möchten, ist der "Head"-Effekt der Punkt, bei dem die Lichter angeschaltet werden. Dieser Punkt wechselt von Frame zu Frame weiter nach oben.

Jeder "Head"-Effekt kann einen "Tail"-Effekt haben, der dem "Head"-Effekt folgt. Der "Tail"-Effekt ist das Gegenteil des Zustandes, den der "Head"-Effekt hat. Hat dieser z. B. den Zustand ON, dann hat der "Tail"-Effekt den Zustand OFF.

Der zeitliche Abstand in dem der "Tail"-Effekt dem "Head"-Effet folgt, ist frei bestimmbar, sofern dieser überhaupt gewünscht ist. Die Geschwindigkeit, in der der "Tail"-Effekt abläuft, ist die gleiche, in der der "Head"-Effekt abläuft.

Scripting:

  <Integer> .UpdateInterval = { Periode in Millisekunden }

Diese Einstellung ermöglicht Ihnen die Veränderung der Geschwindigkeit, in der der Light Sequencer eine Effekt-Sequenz ablaufen lässt. Je geringer der Wert, um so schneller erfolgt der nächste Schritt im gewählten Effekt. Zum Verdeutlichen: Stellen Sie sich eine Reihe mit Lichtern vor. Die Effekt-Sequenz beginnt damit, dass das erste Licht an geht. Der Zeitraum bis zum Anschalten des nächsten Lichtes ist die hier angesprochene Periode in Millisekunden. Das UpdateInterval muss mindestens 5 Millisekunden betragen.

Diese Einstellung verändert jedoch nicht die aktuell ablaufende Effekt-Sequenz, sondern die Veränderung tritt erst dann ein, nachdem die Effekt-Sequenz abgelaufen ist, wie das folgende Code-Beispiel verdeutlicht.

  .Play( <Enumeration> Effect, <Integer> TailLength, <Integer> Repeat, <Integer> Pause, <String> SoundEffect )

Wenn Sie einee .Play() Methode erstellen, können Sie eine ganze Reihe verschiedner Effekte hintereinander Packen, wie es in obigem Beispiel-Code der Fall ist. Der Light Sequencer übernimmt dann die Kontrolle über die ihm zugeordneten Lichter. Er wird alle angewiesenen Effekte der Reihe nach abarbeiten, bis die Warteschlange leer ist, was durch das Empty() Ereignis gemeldet wird, oder bis Sie den Light Sequencer über die Methode .StopPlay() stoppen. Danach haben Sie über das Script wieder die Kontrolle über alle Lichter, deren Zustand (ON, OFF, BLINK) wieder dem entspricht, bevor der Light Sequencer eingeschaltet wurde.

Der .Play() Methode können 5 Parameter zugeordnet werden, jedoch ist nur der erste zwingend erforderlich. Die anderen können, falls nötig, übersprungen werden. Für diese werden dann die Standardwerte übernommen.

Wenn Sie die Effekte des Light Sequencers nur auf der Backbox anwenden wollen, dann entspricht im Ablauf die Unterkante der Backbox der Vorderkante des Spieltisches und die Oberkante der Backbox der hinteren Kante des Spieltisches.
Auf dem Bild links sehen Sie, wie ein bestimmter Effekt auf dem Spieltisch (respektive Backbox) abläuft. Die dunkleren Punkte repräsentieren den "Heat", während die helleren (grauen) Punkte den "Tail" darstellen. Die Pfeile zeigen die Richtung an, in die sich der "Head" bewegt. In unserem Beispiel von beiden Seiten gleichzeitig nach innen zur virtuellen Mitte des Spieltisches hin.

Effect: ist die Bezeichnung des Effektes wie beispielsweise SeqUpOn, der die Lichter von der vorderen Kante des Spieltisches hin zur oberen Kante einschaltet.

TailLength: Wie bereits erwähnt, hat jeder Effekt ein Tail (Rückseite), der diesem Effekt nachgeschaltet ist und diesen umkehrt. Wenn also beispielsweise mit SeqUpOn die Lichter von unten nach oben eingeschaltet wurden, erfolgt durch das Tail das Ausschalten von unten nach oben. TailLength ist der Zeitraum in Millisekunden, der angibt, wann die Umkehrung stattfindet.

Repeat: Dieser Parameter gibt an, wie oft der Effekt wiederholt werden soll. Damit kann also ein und der selbe Effekt mehrmals durchlaufen werden. Wenn kein Wert angegeben wird, wird der Effekt 1 mal durchgeführt.

Pause: spezifiziert den Zeitraum in Millisekunden, der zwichen dem aktuellen und dem nächsten Effekt liegen soll, oder bis der gleiche Effekt wiederholt wird. Wird kein Wert angegeben, wird die Pause mit 0 Millisekunden angenommen.

Sofern keine anderslautenden Vermerke aufgeführt sind, werden die Parameter in den folgenden Effekten entsprechend der oben genannten Art und Weise verwendet.

Nachfolgend werden alle möglichen Effekt-Sequenzen aufgeführt:

SeqUpOn /
SeqUpOff


SeqDownOn /
SeqDownOff


SeqRightOn /
SeqRightOff


SeqLeftOn /
SeqLeftOff


SeqDiagUpRightOn /
SeqDiagUpRightOff


SeqDiagUpLeftOn /
SeqDiagUpLeftOff


SeqDiagDownRightOn /
SeqDiagDownRightOff


SeqDiagDownLeftOn /
SeqDiagDownLeftOff


SeqMiddleOutHorizOn /
SeqMiddleOutHorizOff


SeqMiddleInHorizOn /
SeqMiddleInHorizOff


SeqMiddleOutVertOn /
SeqMiddleOutVertOff


SeqMiddleInVertOn /
SeqMiddleInVertOff


SeqStripe1HorizOn /
SeqStripe1HorizOff


SeqStripe2HorizOn /
SeqStripe2HorizOff


SeqStripe1VertOn /
SeqStripe1VertOff


SeqStripe2VertOn /
SeqStripe2VertOn


SeqHatch1HorizOn /
SeqHatch1HorizOff


SeqHatch2HorizOn /
SeqHatch2HorizOff


SeqHatch1VertOn /
SeqHatch1VertOff


SeqHatch2VertOn /
SeqHatch2VertOff


SeqCircleOutOn /
SeqCircleOutOff


SeqCircleInOn /
SeqCircleInOn


SeqClockRightOn /
SeqClockRightOff

Achtung: Tail wird
in Grad angegeben!


SeqClockLeftOn /
SeqClockLeftOff

Achtung: Tail wird
in Grad angegeben!


SeqRadarRightOn /
SeqRadarRightOff

Achtung: Tail wird
in Grad angegeben!


SeqRadarLeftOn /
SeqRadarLeftOff

Achtung: Tail wird
in Grad angegeben!


SeqWiperRightOn /
SeqWiperRightOff

Achtung: Tail wird
in Grad angegeben!


SeqWiperLeftOn /
SeqWiperLeftOff

Achtung: Tail wird
in Grad angegeben!


SeqFanLeftUpOn /
SeqFanLeftUpOff

Achtung: Tail wird
in Grad angegeben!


SeqFanLeftDownOn /
SeqFanLeftDownOff

Achtung: Tail wird
in Grad angegeben!


SeqFanRightUpOn /
SeqFanRightUpOff

Achtung: Tail wird
in Grad angegeben!


SeqFanRightDownOn /
SeqFanRightDownOff

Achtung: Tail wird
in Grad angegeben!


SeqArcBottomLeftUpOn /
SeqArcBottomLeftUpOff

Achtung: Tail wird
in Grad angegeben!


SeqArcBottomLeftDownOn /
SeqArcBottomLeftDownOff

Achtung: Tail wird
in Grad angegeben!


SeqArcBottomRightUpOn /
SeqArcBottomRightUpOff

Achtung: Tail wird
in Grad angegeben!


SeqArcBottomRightDownOn /
SeqArcBottomRightDownOff

Achtung: Tail wird
in Grad angegeben!


SeqArcTopLeftUpOn /
SeqArcTopLeftUpOff

Achtung: Tail wird
in Grad angegeben!


SeqArcTopLeftDownOn /
SeqArcTopLeftDownOff

Achtung: Tail wird
in Grad angegeben!


SeqArcTopRightUpOn /
SeqArcTopRightUpOff

Achtung: Tail wird
in Grad angegeben!


SeqArcTopRightDownOn /
SeqArcTopRightDownOff

Achtung: Tail wird
in Grad angegeben!


SeqScrewRightOn /
SeqScrewRightOff

Achtung: Tail wird
in Grad angegeben!


SeqScrewLeftOn /
SeqScrewLeftOff

Achtung: Tail wird
in Grad angegeben!


Spezial-Effekte:

SeqAllOff
 

Dieser Effekt wird alle in der Light List zugeordneten Lichter ausschalten. Nachdem der Effekt gestartet wurde, wird er nicht automatisch beendet, sondern muss mit der .StopPlay() Methode gestoppt werden, um den Zustand, den die Lichter vor dem Start des Light Sequencers hatten, wieder herzustellen.

Eieser Effekt ist sehr nützlich bei der Verwendung des "Tilt"-Mechanismus, da bei einem Eintreten von "Tilt" normalerweise alle Lichter ausgehen und erst mit dem Reset für eine neue Kugel wieder einschalten.

TailLength wird nicht verwendet.

Repeat wird nicht verwendet.

Pause wird nicht verwendet.

.


SeqAllOn

Dieser Effekt wird alle in der Light List zugeordneten Lichter einschalten. Nachdem der Effekt gestartet wurde, wird er nicht automatisch beendet, sondern muss mit der .StopPlay() Methode gestoppt werden, um den Zustand, den die Lichter vor dem Start des Light Sequencers hatten, wieder herzustellen.

TailLength wird nicht verwendet.

Repeat wird nicht verwendet.

Pause wird nicht verwendet.


SeqBlinking

Dieser Effekt wird alle in der Light List zugeordneten Lichter blinken lassen.

TailLength wird nicht verwendet.

Repeat normale Verwendung.

Pause normale Verwendung.

 


SeqRandom

Dieser Effekt wird alle in der Light List zugeordneten Lichter zufällig an und aus schalten.

TailLength enthält die Anzahl der Lichter, die pro Frame eingeschaltet werden.

Repeat wird nicht verwendet.

Pause gibt hier die Gesamtdauer für den Effekt an.

 

 


SeqDoNothing

Dieser Effekt wird den aktuellen Status der Lichter nicht verändern. Dies ist nützlich, um eine gewisse Zeitspanne ohne Aktion zwischen zwei Effekten einzufügen.

TailLength wird nicht verwendet.

Repeat normale Verwendung.

Pause enthält die Gesamtdauer für diesen Effekt.

 


SeqListOrder

Dieser Effekt wird alle Lichter der Light List in der dort organisierten Reihenfolge einschalten.

TailLength normale Verwendung.

Repeat normale Verwendung.

Pause normale Verwendung.

 


SeqRandomEffect

Dieser Effekt wird zufällig einen der verfügbaren Effekte ausführen.

TailLength normale Verwendung.

Repeat normale Verwendung.

Pause normale Verwendung.

 


Weitere Script- und Anwendungsbeispiele können Sie dem mit Future Pinball mitgelieferten LightSequencerDemo.fpt entnehmen.

  .StopPlay()

Diese Methode wird den Light Sequencer stoppen und den Originalzustand der verwendeten Lichter wieder herstellen, so wie sie vor dem Start des Light Sequencers waren.

  _Empty()

Dieses Ereignis tritt ein, wenn der Light Sequencer alle angewiesenen Effekte mit allen Wiederholungen abgearbeitet hat. Für den normalen Spielablauf hat dieses Ereignis keine besondere Bedeutung, jedoch kann er hilfreich bei der Erstellung des Attract Modus sein. Im Attract Modus werden normalerweise bestimmte Muster über eine spezielle Gruppe von Lichtern ausgeführt, jedoch werden nach einer gewissen Zeit oft die gesamten Lichter des Spieltisches mit einbezogen. Sie können dieses Ereignis verwenden, um wieder zur normalen Animation der Lichter zurückzukehren.

nach oben