Phasen und Ereignisse — wie Szenariologik strukturiert wird
Die LOGIC-Karte am unteren Rand des Bildschirms ist der Ort, an dem sich das Verhalten eines Szenarios abspielt. Diese Seite erklärt die einzelnen Teile und die Reihenfolge ihrer Ausführung.

Die vier Ebenen
Abschnitt betitelt „Die vier Ebenen“Das Diagramm verschachtelt vier Dinge, von außen nach innen.
| Ebene | Was es ist | OpenSCENARIO |
|---|---|---|
| Phase | Ein benannter Container mit einer Start-Bedingung. | Act |
| Akteur-Zeile | Eine Zeile pro Entität, die an der Phase teilnimmt. | ManeuverGroup (ihre entityRef) |
| Ereignis | Ein Auslöser plus eine oder mehrere Aktionen. | Event |
| END CONDITIONS | Der Knoten am Ende des Diagramms. Entscheidet, wann die Ausführung endet. | der StopTrigger des Storyboard |
Klicken Sie auf + Phase, um eine zu erstellen. Der Button ist deaktiviert, solange das Szenario über keinen Akteur verfügt — der Tooltip zeigt Add an actor first.
Eine neue Phase ist nicht leer. Ein Klick erzeugt Phase 1, eine Akteur-Zeile für Ihre Entität und Event_1 mit einer Standard-Change Speed-Aktion und einem Standard-Simulation time-Auslöser. Der Ereignis-Editor öffnet sich gleichzeitig rechts.
Importierte Szenarien behalten die ursprünglichen Act-Namen, daher kann eine Phase beispielsweise CutInAndBrakeAct statt Phase 1 heißen.
Die Start-Zeile
Abschnitt betitelt „Die Start-Zeile“Jede Phase hat eine Start-Zeile mit drei Optionen:
| Option | Bedeutung |
|---|---|
| At scenario start | Die Phase wird aktiv, sobald die Ausführung beginnt. |
| After a delay… | Die Phase wird nach einer festen Anzahl von Sekunden aktiv. |
| Custom… | Jede Auslöserbedingung — der gleiche Katalog wie bei Ereignis-Auslösern. |
Die Start-Bedingung einer Phase ist unabhängig von den Phasen darüber. Zwei Phasen, beide auf At scenario start gesetzt, werden beide bei t=0 aktiv. Die Reihenfolge ergibt sich aus den Start-Bedingungen, die Sie festlegen, nicht aus der vertikalen Anordnung der Karten.
Eine Phase löschen
Abschnitt betitelt „Eine Phase löschen“Das kleine × auf einer Phasenkarte löscht sie, zusammen mit jedem Ereignis, jeder Aktion und jedem Auslöser darin — ohne Bestätigungsaufforderung. Machen Sie das rückgängig mit Strg+Z oder der ↶-Schaltfläche in der Symbolleiste.
Ein Rechtsklick auf eine Phase zeigt Add Event (actor) und Delete Phase.
Ereignisse
Abschnitt betitelt „Ereignisse“Ein Ereignis ist die Verhaltenseinheit: ein Auslöser, eine oder mehrere Aktionen, angewendet auf einen Akteur.
Fügen Sie eines mit + Event in der Akteur-Zeile ein. Jedes neue Ereignis kommt mit den gleichen Standards wie das erste — eine Change Speed-Aktion und einen Simulation time-Auslöser bei 0.00 s. Zwei Ereignisse auf 0.00 s starten gleichzeitig, daher ändern Sie den Auslöser, bevor Sie weitermachen.
Eine Ereigniskarte lesen
Abschnitt betitelt „Eine Ereigniskarte lesen“Jede Karte trägt zwei Zeilen:
- Obere Zeile — der Ereignisname, die Simulationszeit, bei der er ausgelöst wurde (
t=2.05s), und ein✓, sobald er abgeschlossen ist. - Untere Zeile — eine Zusammenfassung der Aktion, beispielsweise
8.3 m/s · über 2 s,1 → · über 30 m,gleiche Fahrspur wie Ego · über 3 s, oderparallel 0 m/s · @-4 m/s².
Die Auslösezeit und das Häkchen werden während der Wiedergabe gefüllt, daher funktioniert das Diagramm auch als Ausführungsprotokoll.
Der Ereignis-Editor
Abschnitt betitelt „Der Ereignis-Editor“Wenn Sie eine Karte wählen, öffnet sich der Editor oben rechts mit der Überschrift actor › event.

| Abschnitt | Was er enthält |
|---|---|
| ACTOR | Die Entität, auf die das Ereignis wirkt. |
| TRIGGER | Eine oder mehrere Bedingungen, gruppiert. Siehe Triggers. |
| ACTION | Was geschieht, wenn der Auslöser aktiv wird. Siehe Actions. |
| + Action | Fügt eine weitere Aktion zum gleichen Ereignis hinzu — alle starten, wenn der Auslöser aktiv wird. |
| ADVANCED | Die folgenden Attribute. |
ADVANCED
Abschnitt betitelt „ADVANCED“| Feld | Optionen | OpenSCENARIO |
|---|---|---|
| PROFILE | Linear / Cubic / Sinusoidal / Step | dynamicsShape |
| PRIORITY | Auto / overwrite / parallel / skip | Event@priority |
| REPEAT (EVENT) | wie oft das Ereignis wiederholt wird | Event@maximumExecutionCount |
| REPEAT (GROUP) | wie oft die Gruppe des Akteurs wiederholt wird | ManeuverGroup@maximumExecutionCount |
| MANEUVER | der Name des Maneuvers, zu dem das Ereignis gehört | Maneuver@name |
| DELAY AFTER MET | Sekunden zu warten, nachdem der Auslöser erfüllt ist | Condition@delay |
PRIORITY entscheidet, was geschieht, wenn dieses Ereignis auslöst, während ein anderes Ereignis noch auf dem gleichen Akteur läuft: overwrite stoppt das laufende, parallel lässt beide laufen, und skip verwirft das neue. Auto lässt drawtonomy entscheiden.
MANEUVER existiert hauptsächlich für Round-Tripping. drawtonomy zeichnet Maneuvers oder Maneuver-Gruppen nicht als separate Boxen, bewahrt aber ihre Namen, sodass ein importiertes Szenario mit der gleichen Struktur exportiert wird.
Was läuft wann
Abschnitt betitelt „Was läuft wann“- Die Ausführung startet. Jede Phase, deren Start-Bedingung bereits erfüllt ist, wird aktiv.
- Innerhalb einer aktiven Phase bewertet jedes Ereignis seinen TRIGGER bei jedem Schritt. Wenn der Auslöser erfüllt ist — plus etwaige DELAY AFTER MET — starten die Aktionen des Ereignisses.
- Aktionen laufen bis zur Fertigstellung gemäß ihrer DYNAMICS (über eine Zeit, über eine Entfernung oder mit einer Rate).
- Die Ausführung endet, wenn der END CONDITIONS-Knoten erfüllt ist. Bei
Automaticbedeutet das „wenn alles beendet ist”. - Wenn eine FAIL CONDITION zu einem beliebigen Zeitpunkt auslöst, endet die Ausführung mit einem
FAIL-Verdikt statt.
Siehe End and fail conditions für die Schritte 4 und 5.
Variablen und Parameter
Abschnitt betitelt „Variablen und Parameter“Die {x}-Schaltfläche auf der LOGIC-Karte öffnet das Panel PARAMETERS und VARIABLES — die ParameterDeclarations und VariableDeclarations von OpenSCENARIO. Parameter sind am Anfang einer Ausführung festgelegt; Variablen können während einer mit den Aktionen Set Variable und Modify Variable geändert werden.
Ein Vorbehalt, der im Panel selbst festgehalten ist: Das Bearbeiten eines Parameters ändert nicht rückwirkend Aktionen, die mit einem literalen Wert importiert wurden, weil Parameter-Verweise bei der Importzeit aufgelöst werden.