Realistisches Lichtsteuerungssystem!
Mit dem voll-replizierten Kennleuchten- und Sirenen-Steuerungssystem, kannst du deinem Unreal Engine Spiel, Cinematic oder deiner Simulation den nächsten „Kick“ geben. Echte Signalleuchten? Kein Problem.
Beschreibung
Das Siren Control System (SCS) bietet dir ein herrlich schadenfrohes Arsenal an Funktionen, um deine heillos übermotivierten Einsatzfahrzeuge ins Rampenlicht zu rücken. Steuere Lichtbalken, Sirenen und Blinksignale direkt in deinen Blueprints, und freu dich darauf, dass selbst taube KI-Figuren vor deiner pixelperfekten Licht- und Klanggewalt kapitulieren. Du lieferst die Assets, SCS die Funktionalität.
- Multiplayer Ready
- Sirenen-Steuerungssystem
- Dynamische Blinksignale, Multi Color
- Einfache Blueprint Integration
- Alley Lights, Blinker und Signal-Matrix
- Performant und einfach zu nutzen
Siren Control System: Showcase
Das Siren Control System hilft dir dabei, performante und vorallem schöne Lichtbalken-Effekte mit Sirenensteuerung zu erstellen. Füge deine Assets (Sirene, Lichtbalken) ein und genieße in wenigen Minuten ein episches Erlebnis für dein Spiel, Cinematic oder deine Simulation. Geeignet für Einsatzfahrzeuge jeglicher Art, darunter auch Baustellen- und Flughafenfahrzeuge. Worauf wartest du?
Dokumentation & News
Inhalsverzeichnis
Erste Schritte
Lichtbalken
SCS bietet dir die Funktionalität für deinen bereits bestehenden 3D-Lichtbalken. In folgender Dokumentation wird dir erklärt, wie du dein 3D Modell anpassen musst, damit es mit SCS funktioniert.
Sirene und Matrix
Die Sirene und auch bspw. Matrix-Texturen müssen von dir kommen. Im „Actor“ selbst, kannst du die Matrix und die Sirene(n) in ein paar Sekunden hinzufügen. Nutze am besten hochwertige Sounds in Verbindung mit SoundCues.
Verfügbare Blueprint Nodes
Start Blue Light
- Target:
SCS Actor
- Description: Startet das erste Lichtmuster des Lichtbalkens.
Stop Blue Light
- Category:
SCS Actor
- Description: Stoppt das aktuelle Lichtmuster des Lichtbalkens.
Change Light Pattern
- Target:
SCS Actor
- Description: Ändert das Lichtmuster zum dem nächsten oder vorherigen verfügbaren Muster.
- Inputs:
Next
(Bool): Wenn „true“, nächstes Muster abspielen.
Go to Pattern by Row Name
- Target:
SCS Actor
- Description: Ändert das aktuelle Lichtmuster direkt zu einem von die spezifizierten Muster – DataTable Row Name.
- Inputs:
Pattern Row Name
(Name): Name der DataTable Reihe die abgespielt werden soll.
Toggle Siren
- Target:
SCS Actor
- Description: Startet / deaktiviert die Sirene.
- Inputs:
Activate
(Bool): Wenn „true“, aktiviert Sirene.
Change Siren Sound
- Target:
SCS Actor
- Description: Spielt nächste / vorherige Sirene aus der Liste.
- Inputs:
Next
(Bool): Wenn „true“, nächste Sirene abspielen.
Start Matrix
- Target:
SCS Actor
- Description: Startet die Matrix.
- Erklärung: Die Matrix zeigt Inhalte wie „Stopp, Polizei“ an.
Stop Matrix
- Target:
SCS Actor
- Description: Deaktiviert die Matrix.
Change Matrix Info
- Target:
SCS Actor -> MatrixLogic
(Component) - Description: Wechselt zum nächsten / vorherigen Matrix-Listeintrag.
- Inputs:
Next
(Bool): Wenn „true“, wechselt zu nächstem Listeneintrag.
Activate Blinker
- Target:
SCS Actor -> BlinkerLogic
(Component) - Description: Aktiviert/deaktiviert den Blinker oder wechselt den Status des Blinkers.
- Inputs:
BlinkerType
(Enum): Wähle den Blinkertyp. Left; Right; HazardActivate
(Bool): Wenn „true“, aktviert den Blinkermodus.
Set Alley Lights Mode
- Target:
SCS Actor -> AlleyLightsLogic
(Component) - Description: Aktiviert/deaktiviert die Alley Lights oder wechselt den Status der Alley Lights.
- Inputs:
New Mode
(Enum): Wähle den Alley Light Modus. Off; Front; Back; Left; Right, Front/Back; Left/Right; AllAround.Activate
(Bool): Wenn „true“, aktiviert Alley Lights.
3D Modell anpassen
Deine 3D Modell anpassen oder neu erstellen
- Lade dein Objekt in bspw. Blender oder erstelle einen neuen Lichtbalken.
- Die Flächen deines Objektes die später eine Leuchtfunktion haben sollen, benötigen ein eigenes Material. Mehrere Flächen die immer gleichzeitig leuchten sollen, können sich natürlich ein Material teilen.
- Stelle sicher das deine Materials immer sinnvoll benannt wurden, um später Mehraufwand zu vermeiden.
Material Slots
- Dein bestehender Lichtbalken sollte ein Material Slot für jede individuell-leuchtende Stelle haben.
- Spare performance, in dem du Flächen die immer zusammen leuchtest, nur ein Material Slot.
- Pro „einzeln-ansprechbare“ Leuchtfläche, muss ein Material her.
- Du kannst diese Flächen unabhängig von anderen Material (Slots) einzeln in der Unreal Engine später ansteuern.
- Fertige am besten ein Textdokument oder ein Screenshot deines Models an, wo die jeweiligen IDs sichtbar sind, so sparst du später Zeit und Nerven:
Textur – ein Muss?
- Für ein realistisches 3D Objekt, kann man Texturen nur nahelegen.
- Sie sind jedoch kein Muss. Im Demo Content des Plugins findest du ein universelles Master-Material.
- Wenn du Texturen nutzen willst, werden diese empfohlen:
– Albedo, Normal, ORM*, Emissive
* Ambient Occlusion, Roughness, Metallic (Channel-Packed)
Hinweis: In diesem Beispiel nutze ich L für Links, R für Rechts usw. Dies ist nicht zwingend notwendig, du kannst das benennnen wie du magst. Eine nachvollziehbare Logik ist aber sinnvoller, als ein durcheinander, denn du musst später diese Slots zuweisen.
Lichtbalken Logik erstellen
Demo Content
SCS bietet dir Demo Content an, darunter einen Lichtbalken und eine Kennleuchte, die voll intergriert sind und funktionieren. Diesen Content findest du unter /Plugins/SCS Content/
. Solltst du den Inhalt im Content Browser nicht sehen, klicke im Content Browser oben rechts auf „Settings“ und aktiviere „Show Plugin Content“.
Blueprint Actor erstellen
- Gehe in den Content-Browser und erstelle einen Ordner namens „SCS_Lichtbalken_1“ oder anders.
- Erstelle einen Blueprint Actor mit Rechtsklick -> Blueprint Class. Wähle hier die Klasse „Actor“ aus.
- Nenne die Datei BP_SCS_Lightbar oder anders.
- Klicke oben links auf „File“->“Reparent Blueprint“.
- Wähle hier „Light Pattern Actor“ aus.
- Dir sollten jetzt unter „Components“ neue Komponenten gelistet werden.
Mesh zuweisen
- Füge dein Static Mesh bei der „Light Mesh“ Komponente hinzu.
- Achte darauf das du das Mesh nur dort zuweist.
DataTables erstellen (Blinker und Light Pattern)
- Gehe in den Ordner wo du dein Blueprint Actor erstellt hast.
- Mache einen Rechtsklick und wähle „Miscellaneous“ und dann „DataTable“. Diesen Vorgang wiederholst du zwei Mal:
- Wähle als Structure „Light Pattern Struct“
- Wähle als Structure „Blinker Row“
- Nenne die DataTables „DT_Blinker“ / „DT_LightPattern“ oder ähnlich.
DataTables im Blueprint zuweisen
- In deinem Blueprint Actor müssen wir die Data Tables an bis zu zwei Orten zuweisen. Dies wird in kommenden Updates vereinfacht.
- Gehe auf deinen EventGraph und platziere „Event Begin Play“.
- Verbinde „Event Begin Play“ mit der Node „Set Light Pattern Table“. Wähle hier dein „DT_LightPattern“ aus.
- Verbinde eine weitere Node namens „Intialize (BlinkerLogic)“. Wähle hier „DT_Blinker“ aus.
- Verbinde bei „InMeshComponent“ „Light Mesh“ welches du obenlinks aus deinem Components-Fenster ziehen kannst.
DataTables in der Blueprint Class zuweisen
- Klicke oben in der Mitte auf „Class Default“ und gehe auf der rechten Seite auf folgende Kategorien:
- „Light Pattern“
- „Blinker“
- Füge hier jeweils das zugehörige DataTable noch einmal ein.
Blinker Logik einstellen
- Öffne „DT_Blinker“.
- Erstelle drei neue Einträge mit den „RowNames“: Left; Right; Hazard.
- Wähle für jeden einzelnen Typen seinen „Blinker Type“ aus.
- Bei den „Material Slot Names“ wählst du die Material Slot Namen aus, die deinen Blinker auf deinem Static Mesh darstellen. Beispielsweise hat die linke Seite vorne und hinten jeweils eine Fläche.
- „Blink Duration“ gibt an, wie lange ein Blinker aufleuchten soll.
- „Pause Interval“ gibt an, wie lange die Pause zwischen dem Blinken ist.
- „Color Tint“ ist die Farbe des Blinkers, „Inactive Color Tint“ ist die Farbe wenn der Blinker inaktiv ist – meistens weiß.
- „Emissive Intensity“ gibt die Leuchtkraft des Blinkers an.
Blaulicht Logik einstellen
- Öffne „DT_LightPattern“.
- Erstelle einen neuen Einträge welchen wir „Links Rechts Muster“ nennen oder anders nennen.
- Aktiviere unten „bLoop“, damit das Muster sich wiederholt.
- „Active Lights“ stellt den Zyklus des Musters da, jeder Eintrag ist ein Zyklus.
- Füge bei „Active Lights“ drei Einträge hinzu.
- Bei „LightSlotID“ musst du alle für den Zyklus aktiven MaterialSlot Flächen einfügen. Bspw. „LF1; L0; LB1“. Bei „Emmissive Intensity“ gibst du die Leuchtkraft an. Aktiviere „bUseColorTint“ und wähle „Blau“ aus. Aktiviere „bUseRealLight“.
System aktivieren ohne Fahrzeug
- Um das System zu nutzen müssen wir unser SCS-Blueprint in das Level platzieren.
- Öffne dein Controller Blueprint.
- Bei „Event Begin Play“ fügst du „Get Actor of Class“ hinzu.
- Suche hier nach deinem SCS-Blueprint.
- Ziehe von „Get Actor of Class“ das „Return Value“ heraus und erstelle eine Variable.
- Jetzt kannst du diese Variable nutzen und von dort aus „Start Blue Light“ bspw. ansprechen.
Alley Lights Logik einstellen
- Öffne deinen Blueprint Actor.
- Gehe in den Content Browser und erstelle per „Rechtsklick“ -> „Misc…“ -> „Data Table“ ein Data Table mit dem Typ „Alley Light Row“.
- Öffne dieses und füge maximal 8 Einträge hinzu in denen du Front/Back/Left/Right/LeftRight/FrontBack/AllAround Scheinwerfer definierst. Achte darauf das der „DirectionMode“ stimmt. Aktiviere ggf. „bUseRealLight“.
- Gehe zurück in dein Blueprint und füge bei „Event Begin Play“ eine weitere Node namens „Intialize (AlleyLightsLogic)“ hinzu.
- Füge nun das DataTable hinzu.
- Die Steuerung der Alley Lights findest du im DemoContent Ordner: „PC_ExampleController“, „SetAlleyLightsMode“(Target=SCS_Actor -> AllesLightsLogic)
Matrix Logik einstellen
Um das Matrix System zu nutzen benötigst du 1) auf deinem Mesh ein MaterialSlot namens „Matrix“ und 2) Texturen mit Mustern oder Texten drauf die auf das Mesh passen.
- Öffne deinen Blueprint Actor.
- Klicke oben in der Mitte auf „Class Defaults“.
- Suche rechts im Details-Panel nach der Kategorie „Matrix“.
- Aktiviere „bHasMatrix“.
- Gehe in den Content Browser und erstelle per „Rechtsklick“ -> „Misc…“ -> „Data Table“ ein Data Table mit dem Typ „Matrix Row“.
- Öffne dieses und füge deine gewünschten Einträge hinzu.
- „Emissive Intensity“ ist die Leuchtkraft.
- „StepDuration“ ist die Dauer der Anzeige.
- „Matrix Color“ ist die Farbe der Emissive Texture.
- Füge unter „Emissive Texture“ (Array) deine „Text-Emissive-Texturen“ hinzu.
- Gehe nun zurück in deinen Blueprint Actor und füge unter „Class Defaults“ -> „Matrix“ dein DataTable ein.
Alternativ kannst du die Matrix auch als Verkehrsleitsystem „zweckentfremden“.
Echtes Licht aktivieren
- Öffne deinen Blueprint Actor.
- Klicke oben in der Mitte auf „Class Defaults“.
- Suche rechts im Details-Panel nach der Kategorie „Light Pattern“.
- Aktiviere „bUseRealSpotLights“.
- „Spotlight Light Pool“ limitiert die Anzahl der echten Lichter, solltest du es nicht übertrieben haben, kannst du hier eine „0“ eintragen oder ggf. „24“.
- „Real Spotlight Intensity“ legt die Leuchtkraft der Lichter fest.
- Geh in dein „DT_LightPattern“ und aktiviere bei den gewünschen „Active Lights“ Einträgen „bUseRealLight“.
Zusätzlich müssen wir die Positionen der Lichter über „MeshSockets“ definieren.
- Öffne dein StaticMesh.
- Klicke auf „Window“->“Socket Manager“.
- Füge Mesh Sockets hinzu und benenne diese genau so wie deine MaterialSlots die Leuchten sollen. Je Slot ein Socket.
- Richte die Sockets so aus, dass sie a) an der richtigen Position sind und b) immer mit dem roten Pfeil in die Leuchtrichtung zeigen.
Hinweis: Umso mehr „echte“ Lichter ihr aktiviert, umso mehr Performance kostet euch das. Zu dem spielt eine Optimierung eurer bisherigen Szene eine große Rolle, wie viel FPS dieses Feature am Ende kostet. Unoptimierte Szenen mit vielen Objekten und ggf. sogar noch Nebel, können für einen im Verhältnis erhöhrten Verbrauch führen.
Sirene hinzufügen
- Öffne deinen Blueprint Actor.
- Klicke oben in der Mitte auf „Class Defaults“.
- Suche rechts im Details-Panel nach der Kategorie „Siren“.
- Füge so viele Sirenen in das „Siren Sounds Cue“ Array ein wie du magst. Eintrag [0] stellt die erste Sirene da.
- Bei „Priority Siren ID“ kannst du die Index Nr. (Siren Sounds Cue) angeben, welche deine „Priority Siren“ sein soll.
- Das Gleiche gilt für „Dual Tone Siren ID“. Füge hier eine ID aus dem „Siren Sounds Cue“ Array als Dual-Tone-Siren hinzu. Diese Sirene wird parallel gespielt.
Lightbar System zu Auto Blueprint hinzufügen
Wenn du ein eigenes Fahrzeug System oder ein Plugin nutzt wie AVS, dann kannst mit wenigen Klicks das System integrieren.
- Öffne dein Fahrzeug Blueprint.
- Klicke oben rechts im „Components“-Fenster „Add“.
- Suche nach „Child Actor“ und füge dieses hinzu.
- Weise dem „Child Actor“ dein SCS-Blueprint zu.
- Bei „Event Begin Play“ fügst du jetzt einen „Cast To <dein-Blueprintnamen>“ hinzu.
- Ziehe deinen „Child Actor“ in deinen „Blueprint Graph“ und ziehe von diesem „get child actor“ heraus.
- Diesen verbindest du jetzt mit „Cast To“ und speichest das „Return Value“ als Variable. Nun kannst du das System nutzen.
Vergleiche die Demo Blueprints aus dem „Plugin Content Folder“.
Befehle als Client ausführen (Multiplayer-Logik)
Das SirenControlSystem ermöglicht es dir enorm einfach eine Server<->Client Funktionalität zu erstellen. Angenommen du hast ein Multiplayer-Fahrzeug System wie „AVS“ o.ä. wo Spieler bereits einsteigen können, kannst du folgendes machen:
- Öffne dein Fahrzeug Blueprint und befolge die Schritte aus dem vorherigen Punkt / Thema.
- Nachdem du SCS integriert hast, kannst du jetzt aus deiner SCS Actor Variable bspw. „Start Blue Light“ aktivieren.
- Füge einen InputKey wie „Num1“ oder irgendeine InputAction hinzu, die der Client/Server nutzen kann.
- Erstelle ein neues Event und nenne es „ActivateBlueLight“ (Typ: Run on Server) und verbinde dieses Event mit „StartBlueLight“ von der SCS Actor Variable.
- Verbinde deine InputAction mit „ActivateBlueLight“.
- Eröffne ein Multiplayer Match mit einem Client Spieler, steige in das Auto ein und probiere es aus.
- Result: Der Server und Client sollten Änderungen sehen.
Hinweise
- Plattformunterstützung: Das Plugin unterstützt theoretisch neben Windows, MacOS, Linux auch andere Plattformen. Aber das wurde nicht weiter getestet – Nutzung auch eigene Gefahr.
- Performance: Umso mehr komplexe Actors genutzt werden, umso mehr kostet das Performance. Umso mehr LightSlots du nutzt, umso unperformanter wird es. Achte darauf das bei RealLight Nebel auch performance kosten kann.
Video Tutorials
Gedulde dich noch etwas, aktuell gibt es nur englische Video-Tutorials, aber deutsche folgen bald!
Troubleshooting & Common Issues
Strahler leuchten in falscher Farbe: Dies hängt meistens mit einem fehlerhaften eigenen Material zusammen, wo Nodes fehlen oder der erweitere „EM“ Modus nicht aktiviert wurde. Schau dir das Beispiel-Material an und vergleiche es mit deinem. Alternativ hast du in deinem DataTable die falsche Farbe eingetragen oder „UseColorTint“ nicht aktiviert.
Manche LightSlots strahlen kein Licht aus: Das „echte Licht“ ist aktuell noch experimentell. Stelle sicher das du alle MeshSockets korrekt benannt hast und diese mit deinen LightSlotIDs übereinstimmen.
Roadmap
Planned Release.
- Modular Power-Flasher / Intersection Flasher Extension
- Cruising Light’s
- Random Flash Patterns
- Lightbar Asset Pack
Initial Release.
- Siren Controls
- Light Controls
- Matrix Controls
- Alley Light Controls
- Dynamic Multi-Color Lights & Dynamic Sirens
- Experimental Real Light
Keine Einträge.