Halli hallo,
ich mach mal das Beste draus. Erst einmal die Grundvoraussetzungen: Du brauchst zu der bereits bestehenden Ampeltextur eine weitere Textur, welche nur das einzelne der 4 Lichter beinhaltet. Diese benötigt eine Nachttextur, welche den Lichtschein darstellt. Das Ziel ist es also, die einzelnen Lampen je nach Signalbild zum Leuchten zu bringen. In Blender brauchen wir dann also einmal das Gehäuse und alle 4 Lampen als extra Objekt:
Name ist egal, Hauptsache 4 Objekte. Das Ganze wird exportiert und in LOTUS importiert und es sollten dann auch min. 5 Objekte in LOTUS vorhanden sein.
(Mein Signal baut auf einem Signal von Rolf auf, vielen Dank auch nochmal hier an der Stelle)
Alle einzelnen Lampen haben nun die gleiche Textur. Nun ist Textur nicht gleich Material, demnach verwenden wir den Kopieren-Button hier unten rechts mehrmals:
4 Lichter, 4 Materials, alle bitte mit unterschiedlichem Namen. Innen drin sieht das Material wie folgt aus:
Falls du eine Normalentextur hast, dann ist es als Materialtyp "Komplex mit Normal Map". Ansonsten benötigst du zwingend bei der Nachtextur die Variablensteuerung. Aber woher die Variable nehmen, wenn nicht stehlen?
Im OpenSource-Ordner gibt es das Skript TrafficLight_Moule_Dummy.pas. Öffnen, Strg+A, Strg+C neue .pas-Datei im Ordner, in dem Texturen und x3d-Datei liegt anlegen, Strg+V, Strg+S. pas-Dateien kannst du mit einem Normalen Texteditor öffnen.
Nächster Schritt: Skripten. Uns interessieren erst einmal die Public Vars. Im Dummy Skript sieht es wie folgt aus:
Wir brauchen aber 4 Lichter, daher 4 Light-Variablen:
Die Variable trafficlight_phase zeigt uns die Zahl an, welche wir im Map-Editor eingestellt haben. Grün ist also bspw. von 6-8. Wir kümmern uns erst einmal nur um F0 und F1. Demnach leuchtet oben in der Mitte immer. Schauen wir damit zuerst in die Prozedur "SimStep":
Jede Light-Variable (wir haben 4 davon), muss hier einmal durch die ExpAppBool-Funktion definiert werden. Die untere Leuchte sieht also so aus:
Oben in der Mitte kann auf "true" gesetzt werden. Die Bedingung für die äußeren beiden Variablen ist der umgekehrte Fall der light_U-Variable.
Weiterhin gibt es die SimStep-LOD-Prozedur. In unserem Fall können wir für LODs differenzierter arbeiten als im Dummy-Skript. Oben in der Mitte ist immer 1, unten in der Mitte ist wieder 1, wenn folgende Bedingung zutrifft:
Ansonsten sind die anderen beiden Variablen auf 1 zu setzen. Speichern und importieren nicht vergessen.
Können wir nun die Variablen in die Materials eintragen. Es wäre ganz gut, wenn die Materials die passenden Variablen bekommen.
Als nächstes oder auch letztes sind die Lichtquellen dran. Wir brauchen, oh Wunder, 4 Lichtquellen:
So sieht die obere Hälfte der Lichtquellendefinition aus. Wichtig ist, der Intensität der Lichtquelle wieder durch die Skriptvariable gesteuert wird. Die untere Hälfte der Definition ist Spielerei, da wissen andere Leute mehr als ich.
Merke also:
Das habe ich schon mehrmals gelesen. aber quasi nur "Ägypthen" verstanden
Das Ägypten braucht es gar nicht, wir sind nach wie vor bei der Straßenbahn. Vielleicht gibt es nun andere Fragezeichen, deswegen bei Fragen fragen.
Greets