フェーズとイベント — シナリオロジックの構造
画面下部の LOGIC カードがシナリオの動作定義の場です。このページではその各部分と実行順序について説明します。

4 つのレベル
Section titled “4 つのレベル”グラフは最も外側から順に、4 つのものを入れ子にしています。
| レベル | 説明 | OpenSCENARIO |
|---|---|---|
| フェーズ | 開始条件を持つ名前付きコンテナ。 | Act |
| アクター行 | フェーズに参加するエンティティごとの 1 行。 | ManeuverGroup (entityRef) |
| イベント | 1 つのトリガーと 1 つ以上のアクション。 | Event |
| END CONDITIONS | グラフの終端にあるノード。実行がいつ停止するかを決定。 | Storyboard の StopTrigger |
+ Phase をクリックしてフェーズを追加します。このボタンはシナリオに少なくとも 1 つのアクターが存在するまで無効です。ボタンのツールチップに「Add an actor first」と表示されます。
新しいフェーズは空では配置されません。1 クリックで Phase 1、エンティティのアクター行、デフォルト Change Speed アクションと Simulation time トリガーを持つ Event_1 が生成されます。同時にイベントエディタが右側に開きます。
インポートされたシナリオは元の act 名を保持するため、フェーズは CutInAndBrakeAct など Phase 1 ではない名前で呼ばれることもあります。
すべてのフェーズは Start 行を持ち、3 つの選択肢があります。
| 選択肢 | 意味 |
|---|---|
| At scenario start | フェーズは実行が開始されるとすぐにアクティブになります。 |
| After a delay… | フェーズは実行開始から固定秒数後にアクティブになります。 |
| Custom… | 任意のトリガー条件 — イベントトリガーに使われるのと同じカタログです。 |
フェーズの開始条件は、その上に描かれたフェーズから独立しています。At scenario start に設定された 2 つのフェーズはどちらも t=0 でアクティブになります。シーケンス処理は、カード表示上の上下順ではなく、設定した開始条件から生まれます。
フェーズの削除
Section titled “フェーズの削除”フェーズカード上の小さな × ボタンはそのフェーズを削除し、その中のすべてのイベント、アクション、トリガーも削除します — 確認プロンプトはありません。Ctrl+Z またはツールバーの ↶ ボタンで戻すことができます。
フェーズを右クリックすると Add Event (actor) と Delete Phase が表示されます。
イベントは動作の単位です。1 つのトリガー、1 つ以上のアクションを、1 つのアクターに適用します。
アクター行内の + Event で追加します。新しいイベントは最初と同じデフォルトで配置されます — Change Speed アクションと 0.00 s の Simulation time トリガーです。0.00 s に設定された 2 つのイベントは同時に発火するため、先に進む前にトリガーを設定します。
イベントカードを読む
Section titled “イベントカードを読む”各カードには 2 行の情報があります。
- 上部 — イベント名、発火した時刻 (
t=2.05s)、完了時の✓。 - 下部 — アクションの要約。例えば
8.3 m/s · over 2 s、1 → · over 30 m、same lane as Ego · over 3 s、parallel 0 m/s · @-4 m/s²。
発火時刻とチェックマークは再生中に入力されるため、グラフは実行ログとしても機能します。
イベントエディタ
Section titled “イベントエディタ”カードを選択すると、右上にエディタが開き、actor › event というヘッダが表示されます。

| セクション | 説明 |
|---|---|
| ACTOR | イベントが作用するエンティティ。 |
| TRIGGER | 1 つ以上の条件 (グループ化)。トリガーを参照。 |
| ACTION | トリガーが発火したときに実行される動作。アクションを参照。 |
| + Action | 同じイベントに別のアクションを追加します — トリガーが発火すると全て実行されます。 |
| ADVANCED | 下記の属性。 |
ADVANCED
Section titled “ADVANCED”| フィールド | 選択肢 | OpenSCENARIO |
|---|---|---|
| PROFILE | Linear / Cubic / Sinusoidal / Step | dynamicsShape |
| PRIORITY | Auto / overwrite / parallel / skip | Event@priority |
| REPEAT (EVENT) | イベントの繰り返し回数 | Event@maximumExecutionCount |
| REPEAT (GROUP) | アクターのグループの繰り返し回数 | ManeuverGroup@maximumExecutionCount |
| MANEUVER | イベントが属する Maneuver 名 | Maneuver@name |
| DELAY AFTER MET | トリガー条件が満たされた後の秒数 | Condition@delay |
PRIORITY は、このイベントが同じアクター上で実行中の別のイベント中に発火した場合に何が起こるかを決定します。overwrite は実行中のイベントを停止し、parallel は両方続行させ、skip は新しいイベントを破棄します。Auto は drawtonomy に選択させます。
MANEUVER はおもにラウンドトリップのために存在します。drawtonomy は Maneuver や Maneuver Group を独立したボックスとして描きませんが、その名前を保持するため、インポートされたシナリオはその同じ構造でエクスポートされます。
何がいつ実行されるか
Section titled “何がいつ実行されるか”- 実行が開始されます。開始条件が既に満たされているすべてのフェーズがアクティブになります。
- アクティブなフェーズ内では、各イベントが TRIGGER を毎ステップ評価します。トリガーが満たされ、さらに DELAY AFTER MET が経過すると、イベントのアクションが開始されます。
- アクションはその DYNAMICS に従って完了します (時間経過中、距離経過中、またはレート)。
- END CONDITIONS ノードが満たされると実行が停止します。
Automaticのままなら、「すべてが完了したとき」を意味します。 - FAIL CONDITION が任意のポイントでトリガーされた場合、実行は
FAIL結果で終了します。
ステップ 4 と 5 については、終了条件と失敗条件を参照してください。
変数とパラメータ
Section titled “変数とパラメータ”LOGIC カード上の {x} ボタンは PARAMETERS と VARIABLES パネルを開きます — OpenSCENARIO の ParameterDeclarations と VariableDeclarations です。パラメータは実行開始時に固定されます。変数は Set Variable と Modify Variable アクションで実行中に変更できます。
1 つの注意点があり、パネル自体にも記載されています。パラメータの編集は、インポート時にリテラル値で読み込まれたアクションに対して遡って変更を加えません。パラメータ参照がインポート時に解決されるからです。