Dokumentenversion 1.5

Stand vom 07.03.2023

Erstellt vom RajoJoey / https://vpuniverse.com

Veröffentlichung mit Genehmigung

Anleitung zur Konvertierung von Flipper in Virtual Reality

Bei dieser Anleitung handelt es sich um eine simple Konvertierung eines EM-Tisches in die VR-Umgebung. D. h. der normale Tisch wird ergänzt um einen VR-Raum mit Uhr und – wenn vorhanden – Flyer. Ferner wird der Tisch in ein Cabinet gesetzt. Das Artwork des Cabinets und der Backbox ist zunächst generisch; also für alle Tische gleich. Wer das korrekte Artwork haben möchte kann es aber auf einfache Art und Weise selber erstellen und einfügen.

Außerdem werden in die Tische Animationen der Buttons (Plunger, Flippertasten, Startbutton, Magnasave-Buttons) eingebaut.

Die Änderung der Helligkeit und der Farbgestaltung ist durch die 15 LUT-Files möglich.

Mein Anliegen war, eine für alle Anwender möglichst einfache Konvertierung zu ermöglichen, da das Spielen eines normalen Tisches in VR – also im komplett schwarzen Raum – zumindest für mich keinen Spaß macht. Ich hoffe daher, dass in Zukunft sich einige Leute aufraffen und wenigstens diese schnelle Konvertierung machen und die Tische hochladen; so sie denn die Berechtigung dafür haben. 😉

Viele Dinge, die ich beschreibe, sind dazu noch optional (kursiv geschrieben). Aber selbst wenn alles integriert wird, sollte eine Konvertierung in 15 Minuten möglich sein (wenn man einige Konvertierungen gemacht hat). Findet und verwendet man das spezielle Artwork des Cabinets, kommen wahrscheinlich noch mal ca. 15 Minuten hinzu, um die Grafiken zu fertigen.

Ich habe mich erst einmal auf die Loserman76 Tische konzentriert, da es davon sehr viele gibt, fast alle relativ identisch sind und die gleiche Tischgröße (Gottlieb) aufweisen. Sollte man andere Hersteller verwenden, so kann man auch bereits gefertigte VR-Konvertierungen zur Hand nehmen und die Cabinets dieser Tische verwenden.

Im Download findet ihr die Materialien und Bilder, die ihr benötigt, sowie das Template für die Gottlieb-Tische. Dort sind auch PSD-Files vorhanden, um die Grafiken für das Cabinet etc. zu verändern.

Und nun genug der Vorrede. Starten wir!

Vorgehensweise:

  1. Download des Templates
  2. Öffnen des zu konvertierenden Tisches im Editor
  3. Import der Materialien
  4. Import der Grafiken
  5. Öffnen des Template-Tisches im selben Editor (keinen neuen Editor öffnen)
  6. Anlegen von Layern im zu konvertierenden Tisch (optional)
  7. Kopieren und Einfügen der Objekte
  8. Anlegen von Kollektionen
  9. Einfügen der Zeilen im Script
Download des Templates

In der Datei befinden sich der VR-Tisch, die Materialien und die Grafiken. Ich kopiere und entpacke die Datei immer in den Ordner des zu konvertierenden Tisches. Ihr könnt ihn aber überall ablegen und entpacken. Download

Öffnen des zu konvertierenden Tisches im Editor

Ladet den zu konvertierenden Tisch in den Editor. Falls ihr noch ältere Versionen verwendet, nehmt die neuesten von hier:
10.7.2: https://github.com/vpinball/vpinball/releases/tag/v10.7.2-366-f94da1e (Anmelden an Github, um die Version runterzuladen)
10.8.0: https://github.com/vpinball/vpinball/actions/workflows/vpinball.yml (Log in to Github, click on last workflow and download 32bit version)

Import der Materialien

Mit F4 oder über das Menü den Material Manager öffnen und die Datei „_VR_Materials.mat“ aus dem Template-Ordner importieren.

Danach mit „OK“ das Fenster wieder schließen.

Import der Grafiken

Mit F3 oder über das Menü den Image Manager öffnen. Anschließend aus dem Template-Ordner alle Bilddateien importieren. Solltet ihr den Flyer nicht verwenden, könnt ihr ihn bereits hier abwählen.

(Optional)

Jetzt habt ihr die Möglichkeit, Grafiken für das Cabinet, die Backbox oder den Flyer zu ändern. Klickt dazu im Image Manager auf einen der Einträge Flyer1, VR_Back_UV_Map oder VR_Cab_UV_Map. Wenn ihr den Eintrag markiert habt, klickt ihr rechts im Menü auf den Button „Reimport From“ und bestätigt, dass ihr die Grafik ändern wollt. Wählt eure neue Grafik für den jeweiligen Eintrag und nach ein paar Sekunden wird dieser angezeigt. Die neuen Grafiken könnt ihr mit den .psd-Dateien erstellen, die im Template-Ordner liegen.

Danach mit „OK“ das Fenster wieder schließen.

(Optional)

Import der Sounds

Beim Ändern der LUT-Files ist ein Sound zu hören (click.wav), ebenso wenn man das Ende der Auswahlmöglichkeiten erreicht hat (gun.wav). Diese Sounds könnt ihr importieren.

Nachdem sich der Sound Manager (F2) geöffnet hat, klickt ihr auf „Import“ wählt die beiden Sounds aus dem Template-Ordner und schließt anschließend das Fenster wieder.

(Optional)

Änderung einiger Einstellungen für den Tisch

Ich ändere immer einige Einstellungen für den Tisch. Wollt ihr das ebenfalls machen, nehmt sie wie folgt vor. Dazu klickt ihr in den Editor, ohne ein Objekt zu markieren. Danach muss im rechten Bereich „Table1“ stehen. Klickt auf den Tab „User“, wenn er nicht aktiv sein sollte. Setzt den Haken bei „Night->Day cycle“ und stellt den Slider auf die Position 2.

Klickt auf den Tab „Visuals“, wenn er nicht aktiv sein sollte. Ich verwende immer meinen eigenen Ball. Nehmt dazu die folgenden Einstellungen vor. Natürlich könnt ihr euren eigenen Ball ebenfalls verwenden. Dazu müsst ihr diesen im Image Manager ebenfalls importieren.

Klickt auf den Tab „Lights“, wenn er nicht aktiv sein sollte.

Klickt auf „Light Emission Color“ klickt anschließend auf das weiße Quadrat. Folgende Werte werden nun übernommen.

Anschließend stellt noch die im Bild zu sehenden Werte ein und wählt im Dropdown-Feld „VR_Roomenvironment“ aus.

Loserman76 hat eine Rampe, die zu groß ist und in VR außerhalb des Tisches zu sehen ist. Dabei handelt es sich bisher meistens um die „Ramp19“. Wenn ihr das Objekt schnell finden wollt, gebt den Namen im Layer-Bereich im Suchfeld ein und bestätigt. Danach sollte die Rampe angezeigt werden. Wenn ihr einen Doppelklick auf den Eintrag macht, wird er markiert. Jetzt könnt ihr im oberen Bereich „Properties“ die Breite der Rampe ändern. Das Playfield hat bei den Tischen normalerweise eine Breite von 952. Klickt auf den Tab „Visuals“ und tragt bei „Top With“ und „Bottom With“ 952 ein.

Weiterhin gibt es in fast jedem Tisch die „Wall78“. Diese ragt ebenfalls aus dem Cabinet in VR heraus. Um hier eine Änderung vorzunehmen, müsst ihr die beiden rot markierten Punkte links oben und links unten markieren.

Das ist manchmal schwierig, da die Timer im Weg sind und ausgewählt werden. Markiert die Timer und verschiebt sie. Wenn ihr die erste rote Markierung angeklickt habt, haltet die Umschalttaste gedrückt und klickt auf den zweiten Punkt. Dann könnt ihr mit der Pfeiltaste nach Links die Punkte nach rechts verschieben, so dass sie im Bereich des Cabinets liegen. Wenn ihr dabei die Hochstelltaste gedrückt haltet, erfolgt das Verschieben schneller.

Öffnen des Template-Tisches im selben Editor (keinen neuen Editor öffnen)

Im geöffneten Editor über das Menü mit „Open“ den VR-Template-Tisch „! VRRoom Template (Gottlieb) 10.7.2“ laden. Solltet ihr einen Wedge Head-Tisch verwenden, wählt ihr das Template aus. Hierbei ist die Backbox anders. Dann müsst ihr auch andere Grafiken aus dem Template-Ordner verwenden.

Jetzt seht ihr im Menüpunkt „Window“ die beiden geladenen Tische und könnt zwischen ihnen umschalten.

Seht ihr hinter einem Tischnamen ein Sternchen, bedeutet das, dass sich in dem Tisch ungespeicherte Änderungen befinden.

Ihr müsstet euch nun im Template-Tisch befinden. Falls das nicht der Fall ist, wählt ihn bitte aus. Im rechten Bereich des Editors seht ihr die Eigenschaften des Tisches und der Objekte. Darunter befindet sich der Bereich für die Layer.

So sollte es zumindest aussehen. Leider ist dieser Bereich – speziell der für die Layer – mit sehr vielen Bugs versehen. Ihr solltet somit zwischen Arbeitsschritten auch immer mal wieder eine Speicherung vornehmen.

Die Vorgehensweise, die ich beschreibe, ist nur eine von vielen. Aber es hat sich gezeigt, dass dabei meistens keine Fehler auftreten. Auch muss man nicht für die einzelnen Bereiche – wie ich – spezielle Layer anlegen.

Als Erstes macht ihr einen Doppelklick auf den Layer „VR Room and Cabinet“. Nach ein paar Sekunden seht ihr im Editor, dass alle Objekte blau markiert (ausgewählt) sind. Klickt jetzt nicht mehr in das Editor-Fenster, denn damit werden die Objekte wieder abgewählt oder nur das Angeklickte ausgewählt.

Wählt im Edit Menü „Copy“ aus.

Jetzt wechselt ihr über Window im Menü in den zu konvertierenden Tisch. Sobald dieser erscheint, drückt ihr STRG+V (CTRL+V) oder im Edit Menü „Paste“. Damit werden alle VR-Objekte eingefügt und sie bleiben markiert. Da wir schon alle Objekte markiert haben, legen wir sofort für diese eine neue Kollektion an. Entweder ihr ruft den Collection Manager über das Menü Table auf oder – einfacher – drückt F8.

Wenn der Manager geöffnet ist, klickt ihr auf „Create from selection“. Es wird eine neue Kollektion mit dem Namen „Collection001“ angelegt. Diesen Namen ändert ihr in „ColRoomMinimal“. Verwendet ihr einen anderen Namen, müsst ihr das nachher im Script ebenfalls ändern. Also einfach den Namen verwenden. Dann passt es auch mit dem Script.

Loserman verwendet stets eine Kollektion mit dem Namen „DesktopCrap“. Markiert diese und löscht sie mit „Delete“. Sie wird nicht mehr benötigt.

(Optional)

Die Objekte der VR-Umgebung sollten immer noch markiert sein. Klickt wieder nicht in das Editor-Fenster, sondern im Layer-Bereich auf das kleine Plus-Symbol. Mit diesem wird ein neuer Layer hinzugefügt. Wie ihr diesen benennt, ist egal. Ich verwende immer den Namen aus dem Template-Tisch.

Klickt mit der Maus in das Feld, wenn der Name blau markiert ist. Wenn ihr den Namen eingegeben habt, benutzt möglichst nicht die Return-Taste, um die Eingabe zu beenden, sondern klickt einfach mit der Maus auf den Eintrag. Je nachdem was vorher gemacht wurde, geschieht es ab und zu, dass sich der Layer-Bereich aufhängt und keinerlei Bearbeitung mehr möglich ist. Dann hilft nur Speichern des Tisches, das Schließen von VPX und und den Tisch neu zu öffnen.

Die Objekte sollten immer noch alle markiert sein und der neue Layer ebenfalls. Jetzt klickt ihr auf das kleine Symbol im Layer-Bereich oben links. Damit fügt ihr die ausgewählten Objekte zu diesem Layer und könnt sie durch Setzen des Hakens vor dem Layernamen sichtbar machen oder ausblenden.

Jetzt machen wir das genau das Gleiche mit den VR-Timern. Ihr wechselt zum Template-Tisch, macht einen Doppelklick auf „VR Timer“, kopiert die vier markierten Timer, wechselt zum anderen Tisch und fügt sie ein.

(Optional)

Legt einen neuen Layer an, benennt diesen ggf. um und fügt die Timer zu diesem Layer hinzu

Als Letztes kommt noch der Layer Backdrop. Hier befindet sich im Template-Tisch nur die LUTBox. Diese zeigt im Desktopmodus an, welches LUT ausgewählt worden ist. Wechselt wieder zum Template-Tisch und klickt im linken Bereich des Editors auf das Symbol für „Backglass View

Darin befindet sich nur ein Objekt. Das markiert und kopiert ihr. Wechselt zum anderen Tisch. Dort ist jetzt „BackglassView“ schon geöffnet. Fügt jetzt die LUTBox mit STRG+V (CTRL+V) ein. Wahrscheinlich befinden sich in der Ansicht noch wesentlich mehr Objekte. Alle vorhandenen sollen jetzt in einer eigenen Kollektion abgelegt werden.

Zieht mit der Maus ein Rechteck um alle Objekte. Danach sind diese blau markiert.

Sofern noch alle Objekte markiert sind, ruft ihr wieder mit F8 den Collection Manager auf, klickt erneut auf „Create from selection“ und vergebt der Kollektion den Namen „ColBackdrop“.

Erneut der Hinweis: Wenn ihr einen anderen Namen wählt, müsst ihr das später im Script ändern.

(Optional)

Ihr könnt wieder einen eigenen Layer für diese Objekte anlegen. Ich lege ihn stets an und benenne ihn mit „Backdrop“.


Es gibt in den Loserman76 und anderen Tischen normalerweise noch drei Objekte, die in VR ausgeblendet werden müssen. Das sind bei Loserman76 „Ramp3“, „Ramp4“ und „Ramp17“, manchmal auch „Ramp2“, „Ramp8“ und „Ramp17“. Bei den Objekten handelt es sich um die linke und rechte Rail und die Lockdownbar. Diese müssen der Collection „ColBackdrop“ hinzugefügt werden. Ihr öffnet den Collection Manger (F8), wenn er nicht mehr offen sein sollte, macht einen Doppelklick auf „ColBackdrop“, such im linken Bereich die drei Objekte und schiebt sie in den rechten Bereich mit den kleinen Pfeilen. Danach mit „OK“ schließen.

Einfügen der Zeilen im Script

Um es einfacher zu gestalten, lege ich beide Script-Fenster immer nebeneinander. Also öffnet den ersten Tisch und klickt auf den Script Editor.

Dann wechselt ihr zum anderen Tisch und öffnet dort ebenfalls den Script-Editor. Legt beide Fenster nebeneinander.

Markiert den ersten Teilabschnitt des Template-Tisches und kopiert ihn; Zeile 1 - 20. Sucht (STRG+F) jetzt im neuen Tisch Sub Table1_Init. Dieser befindet sich bei den Loserman76 Tischen normalerweise nach den ganzen Dim-Befehlen. Vor diesem Sub fügt ihr die kopierten Zeilen ein.

Da ihr jetzt den Bereich Table1_init seht, könnt ihr auch die Script-Zeilen am Anfang des Subs löschen, da diese nicht mehr benötigt werden. Falls ihr das nicht macht, kommt es zu einem Fehler beim Start, da die Kollektion gelöscht wurde.

  1. If Table1.ShowDT = false then
  2. For each obj in DesktopCrap
  3. obj.visible=False
  4.  next
  5. End If

Jetzt sucht ihr im neuen Tisch nach dem Sub Table1_exit. Hier befinden sich Befehle, die beim Verlassen des Tisches aufgerufen werden. Fügt den Befehl:

saveLUT

ein. Dabei sind die Schreibweise oder wo der Befehl im Sub steht egal.

Jetzt sucht den Sub Table1_KeyDown(ByVal keycode). Bei Loserman ist der normalerweise ebenfalls direkt unter dem Sub Table1_exit. In diesem und dem Sub Table1_KeyUp(ByVal keycode) wird die Steuerung der Button usw. geregelt.

Markiert und kopiert die Zeilen 35 – 78 aus dem Template-Tisch und fügt sie nach dem Beginn des Sub Table1_KeyDown(ByVal keycode) im neuen Tisch ein.

Jetzt sucht nach dem Sub Table1_KeyUp(ByVal keycode).

Markiert und kopiert die Zeilen 84 – 106 aus dem Template-Tisch und fügt sie nach dem Beginn des Sub Table1_KeyUp(ByVal keycode) im neuen Tisch ein.

Abschließend markiert und kopiert ihr die Zeilen 110 bis zum Ende des Scripts. Wechselt dann in den neuen Tisch, scrollt bis ans Ende des Scripts und fügt dort die Zeilen ein.

In den letzten beiden Subs (saveLUT und loadLUT), also ganz am Ende des Scripts, befinden sich drei Zeilen mit dem Namen, unter dem der Tisch das zuletzt aufgerufene LUT abspeichert. Diese drei Namen müsst ihr ändern. Dabei ist es egal, wie ihr den Namen vergebt. Er muss nur in allen drei Zeilen identisch sein.

Anmerkung: Die Zeilen mit vorangestelltem ' im Script sind Kommentare, die nur zur Erläuterung vorhanden sind. Natürlich kann man – wenn man will – diese Zeilen auch löschen. Auch ist es möglich, manche Bereiche woanders einzufügen, ohne dass es VPX stört. Ich habe es mir so angewöhnt, da es einfacher ist und ich weiß, wo ich die Teilbereiche finde.

Damit ist die Konvertierung abgeschlossen. Ihr solltet nun auf jeden Fall noch einmal speichern.

Danach könnt ihr den Tisch starten und schauen, ob Fehler auftreten. Falls das der Fall ist oder Objekte zu sehen sind, die am Desktop oder in VR eigentlich nicht zu sehen sein sollten, kann es daran liegen, dass diese in der jeweiligen Kollektion nicht vorhanden sind oder das irgendwo im Script noch Aufrufe vorhanden sind und die Objekte deshalb nicht ausgeblendet werden. Dann müssen diese Zeilen im Script ebenfalls gesucht und abgeändert werden. Bei Loserman’s Tischen sieht man manchmal noch die Reels etc. im VR-Modus, obwohl sie in den Kollektionen korrekt vorhanden sind.

Sollte etwas nicht funktionieren, teilt es mir bitte mit. Vielleicht können wir das Problem gemeinsam lösen. Auch würde ich mich freuen, wenn ihr Verbesserungsvorschläge für dieses Tutorial sendet. Mir ist klar, dass die Anleitung recht umfangreich geworden ist. Die eigentliche Konvertierung geht aber schnell. Ich musste etwas mehr ins Detail gehen, da nicht jeder mit dem Editor vertraut ist.

Rajo Joey, v1.5 (lang), 07.03.2023

Die Tutorials finden sich bei VPUniverse zum Downlood auch in englischer Sprache

Login Form