페이즈와 이벤트 — 시나리오 로직 구조
화면 하단의 LOGIC 카드가 시나리오의 동작 정의 공간입니다. 이 페이지에서는 각 구성 요소가 무엇이고 어떤 순서로 실행되는지 설명합니다.

네 가지 계층
섹션 제목: “네 가지 계층”그래프는 바깥쪽부터 차례로 네 가지를 중첩합니다.
| 계층 | 설명 | OpenSCENARIO |
|---|---|---|
| 페이즈 | 시작 조건을 가진 명명된 컨테이너. | Act |
| 액터 행 | 페이즈에 참여하는 각 엔티티별 행. | ManeuverGroup (그 entityRef) |
| 이벤트 | 한 개의 트리거와 하나 이상의 액션. | Event |
| END CONDITIONS | 그래프 끝의 노드. 실행이 언제 멈출지 결정. | 스토리보드의 StopTrigger |
페이즈
섹션 제목: “페이즈”+ Phase를 클릭하면 페이즈를 추가합니다. 시나리오에 최소한 하나의 액터가 있을 때까지 이 버튼은 비활성화되며, 툴팁에 Add an actor first 메시지가 표시됩니다.
새 페이즈는 빈 상태로 나타나지 않습니다. 한 번의 클릭으로 Phase 1과 액터 행 하나, 그리고 기본 Change Speed 액션과 기본 Simulation time 트리거를 가진 Event_1이 생성됩니다. 동시에 이벤트 에디터가 오른쪽에서 열립니다.
가져온 시나리오는 원래의 Act 이름을 유지하므로, 페이즈가 Phase 1 대신 CutInAndBrakeAct 같은 이름일 수 있습니다.
Start 행
섹션 제목: “Start 행”모든 페이즈는 세 가지 옵션을 가진 Start 행을 갖습니다.
| 옵션 | 의미 |
|---|---|
| At scenario start | 실행이 시작될 때 페이즈가 활성화됩니다. |
| After a delay… | 실행 시작으로부터 정해진 초 후에 페이즈가 활성화됩니다. |
| Custom… | 모든 트리거 조건 — 이벤트 트리거와 같은 카탈로그를 사용합니다. |
페이즈의 시작 조건은 위의 페이즈들과 무관합니다. 두 페이즈 모두 At scenario start로 설정되면 둘 다 t=0에서 활성화됩니다. 순서는 카드의 수직 배치가 아니라 설정한 시작 조건에서 나옵니다.
페이즈 삭제
섹션 제목: “페이즈 삭제”페이즈 카드의 작은 **×**를 클릭하면 그 안의 모든 이벤트, 액션, 트리거와 함께 페이즈가 삭제됩니다. 확인 프롬프트가 나타나지 않습니다. Ctrl+Z를 누르거나 툴바의 ↶ 버튼으로 실행 취소할 수 있습니다.
페이즈를 마우스 우클릭하면 **Add Event (actor)**와 Delete Phase 옵션이 나타납니다.
이벤트
섹션 제목: “이벤트”이벤트는 동작의 단위입니다: 하나의 트리거, 하나 이상의 액션을 하나의 액터에 적용합니다.
액터 행의 + Event를 클릭하면 추가할 수 있습니다. 각 새 이벤트는 첫 번째와 같은 기본값으로 도착합니다 — Change Speed 액션과 0.00 s의 Simulation time 트리거. 0.00 s로 설정된 두 이벤트는 동시에 발동하므로, 진행하기 전에 트리거를 설정하세요.
이벤트 카드 읽기
섹션 제목: “이벤트 카드 읽기”각 카드는 두 줄을 표시합니다.
- 상단 줄 — 이벤트 이름, 발동한 시뮬레이션 시간 (
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².
발동 시간과 체크 마크는 재생 중에 채워지므로, 그래프는 실행 로그로도 작동합니다.
이벤트 에디터
섹션 제목: “이벤트 에디터”카드를 선택하면 에디터가 오른쪽 상단에서 열리며 제목은 actor › event입니다.

| 섹션 | 내용 |
|---|---|
| ACTOR | 이벤트가 작용하는 엔티티. |
| TRIGGER | 하나 이상의 조건, 그룹화됨. 트리거 참고. |
| ACTION | 트리거가 발동했을 때 일어나는 동작. 액션 참고. |
| + Action | 같은 이벤트에 다른 액션을 추가합니다 — 트리거가 발동할 때 모두 실행됩니다. |
| ADVANCED | 아래 속성들. |
ADVANCED
섹션 제목: “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@name |
| DELAY AFTER MET | 트리거가 만족한 후 대기할 초 | Condition@delay |
PRIORITY는 이벤트가 발동할 때 같은 액터에서 다른 이벤트가 이미 실행 중인 경우 어떻게 할지 결정합니다: overwrite는 실행 중인 것을 중단하고, parallel은 둘 다 계속 실행하며, skip은 새 이벤트를 무시합니다. Auto는 drawtonomy가 선택하도록 합니다.
MANEUVER는 주로 라운드 트리핑을 위해 존재합니다. drawtonomy는 매뉴버나 매뉴버 그룹을 별도 상자로 그리지 않지만, 가져온 시나리오가 동일한 구조로 내보내지도록 이름을 보존합니다.
언제 무엇이 실행되는가
섹션 제목: “언제 무엇이 실행되는가”- 실행이 시작됩니다. Start 조건이 이미 만족된 모든 페이즈가 활성화됩니다.
- 활성 페이즈 내에서 각 이벤트는 매 스텝마다 TRIGGER를 평가합니다. 트리거가 만족되었을 때 — DELAY AFTER MET 포함 — 이벤트의 액션이 시작됩니다.
- 액션들은 DYNAMICS (시간 동안, 거리 동안, 또는 속도로)에 따라 완료됩니다.
- END CONDITIONS 노드가 만족되면 실행이 중단됩니다.
Automatic으로 남겨두면 “모든 것이 완료되었을 때”를 의미합니다. - FAIL CONDITION이 언제든 발동하면 실행이
FAIL결과로 종료됩니다.
4단계와 5단계는 End and fail conditions를 참고하세요.
변수와 파라미터
섹션 제목: “변수와 파라미터”LOGIC 카드의 {x} 버튼을 열면 PARAMETERS와 VARIABLES 패널이 나타나고, OpenSCENARIO의 ParameterDeclarations과 VariableDeclarations이 표시됩니다. 파라미터는 실행 시작 시 고정되며, 변수는 Set Variable과 Modify Variable 액션으로 실행 중에 변경할 수 있습니다.
한 가지 주의할 점은 패널에도 명시되어 있습니다: 파라미터를 편집해도 리터럴 값으로 가져온 액션에는 소급 적용되지 않습니다. 파라미터 참조는 가져올 때 해석되기 때문입니다.