재생 — 시나리오 실행, 탐색, 추적 및 기록
시나리오를 실행하는 데 필요한 모든 컨트롤은 LOGIC 카드 맨 위의 한 줄에 있습니다. 실행 자체는 esmini를 WebAssembly로 컴파일하여 브라우저에서 실행합니다.

조작 막대
섹션 제목: “조작 막대”| 컨트롤 | 동작 |
|---|---|
| ▶ / ❚❚ | 실행을 시작하거나 일시정지합니다. 런타임이 워밍업되는 동안 로딩 상태를 표시합니다. |
| ⏮ | 시작 위치로 초기화합니다. |
| 0.00s | 시뮬레이션 시간입니다. 실행 중에 증가합니다. |
| 1x | 재생 속도 — 0.25x, 0.5x, 1x, 2x, 4x. |
| Follow: Off | 카메라 대상 — Off 또는 시나리오의 모든 엔티티. |
| Ghost | 모션 트레일. 팝오버가 열려 OFF, 0.25s, 0.5s, 1s, 2s, 5s를 선택할 수 있습니다. |
| PASS / FAIL / RUN / IDLE | 판정 배지. 종료 및 실패 조건을 참고하세요. |
카드 자체에는 두 가지 컨트롤이 더 있습니다: **{x}**는 매개변수와 변수 패널을 열고, **˅**는 카드를 접어 캔버스에 전체 화면을 제공합니다. 카드의 상단 모서리는 크기 조정 핸들(LOGIC 패널 크기 조정)입니다 — 위상 그래프가 더 많은 공간이 필요할 때 위로 드래그하세요.
도로가 없으면 조작 막대에 No road — draw a road or import .xodr이 표시되며, 두 문구 모두 링크입니다.
타임라인
섹션 제목: “타임라인”조작 막대 아래는 타임라인입니다. 첫 번째 실행 전에는 Run ▶ to see the timeline이 표시됩니다.

실행이 시작되면 다음과 같이 채워집니다:
- 각 액터별 블록 — 액터가 뭔가 하는 시간 구간.
- 마커 — 각 이벤트가 시작되는 위치.
- 플레이헤드 — 현재 시뮬레이션 시간.
타임라인의 아무 곳이나 클릭하거나 드래그하여 탐색할 수 있습니다. 탐색은 정확합니다. 모든 자세는 시뮬레이션에서 가져오므로 도착하는 프레임은 모든 엔티티에 대해 정의된 상태를 갖습니다. 이것이 재생을 리뷰하는 데 유용하게 만드는 이유입니다. 컷인의 정확한 순간에서 일시정지하고 기하학을 검사할 수 있으며, 실행이 계속되는 동안 추측할 필요가 없습니다.
자 (ruler)에는 숫자가 표시되지 않으므로 탐색 후 0.00s 표시에서 시간을 읽으세요.
카메라 추적
섹션 제목: “카메라 추적”
Follow: Off가 기본값이며, 카메라는 남긴 위치에 유지됩니다. 드롭다운에는 Follow: Off와 엔티티당 하나의 항목이 나열됩니다 — Follow: Ego, Follow: OverTaker 등.
화면보다 긴 모든 것에 대해 이를 켜세요. 가져온 도로 네트워크는 흔히 킬로미터 단위로 길며, 추적 대상이 없으면 액터가 몇 초 내에 화면 밖으로 나가고 실행이 깨진 것처럼 보입니다. 실제로는 그렇지 않습니다.
고스트 트레일
섹션 제목: “고스트 트레일”
Ghost는 액터의 외형을 캔버스에 고정된 간격으로 인장하여 눈에 띄는 모션 트레일을 남깁니다. 팝오버에서 간격을 선택하세요: OFF, 0.25s, 0.5s, 1s, 2s, 5s.
인장은 시간에 따라 균일하게 간격이 띄어져 있으므로 캔버스의 간격은 속도를 나타냅니다. 인장이 몰려 있으면 제동이고, 퍼져 있으면 가속입니다. 이것이 숫자를 읽지 않고 속도 프로필을 볼 수 있는 가장 빠른 방법입니다.
고스트는 또한 이미지와 SVG 내보내기로 구워지므로 슬라이드를 위해 저장한 그림이 단일 프레임이 아닌 궤적을 보여줍니다. 경로 및 풋프린트를 참고하세요.
판정 배지
섹션 제목: “판정 배지”
| 배지 | 의미 |
|---|---|
IDLE | 실행 중이 아닙니다. |
RUN | 실행 중이며, 아직 실패 조건이 발동하지 않았습니다. |
PASS | 종료 조건에 도달했으며, 실패 조건이 발동하지 않았습니다. |
FAIL | 실패 조건이 발동했으며, 실행이 그곳에서 멈추었습니다. |
실패 조건이 발동하면 배지가 빨간색 **FAIL**로 바뀌고, 타임라인의 발동 시점에 일치하는 × 마커가 나타납니다:

“Run”이라는 라벨의 버튼은 없습니다. ▶ 버튼이 시나리오를 시작하고, RUN은 진행되는 동안 나타나는 배지입니다.
실행 기록
섹션 제목: “실행 기록”햄버거 메뉴 → Export → **Export video…**에서 실행을 영상 파일로 기록합니다. 내보내기는 브라우저에서 실행되므로 업로드되지 않습니다. 화면비와 카메라 옵션은 OpenSCENARIO 파일을 브라우저에서 시뮬레이션에서 다루었습니다.
Export 서브메뉴의 나머지 부분은 그 옆에서 유용합니다: 시나리오의 OpenSCENARIO (.xosc)…, 도로의 .xodr (OpenDRIVE), 그림의 이미지 형식, 공유 가능한 링크의 Copy URL.
시나리오를 .xosc로 내보내기
섹션 제목: “시나리오를 .xosc로 내보내기”Export → OpenSCENARIO (.xosc)… (시나리오 모드에만 해당)는 바로 다운로드하지 않습니다. 먼저 작은 대화상자를 엽니다:
| 필드 | 선택지 |
|---|---|
| VERSION | OpenSCENARIO 스키마 버전 — 1.0, 1.1 또는 1.2 (기본값 1.1). 1.3은 표시되지만 회색으로 처리됨 (“coming soon”), 아직 선택 불가. |
| INCLUDE | .xosc 단독, 또는 .xosc + .xodr 함께 (도로와 스토리보드). |
| TARGET SIMULATOR | esmini 또는 Generic. esmini는 esmini 런타임용 출력을 조정합니다. |
| FILE NAME | 파일의 기본 이름. |
필요한 버전과 번들링을 선택한 후 확인하여 다운로드합니다. 그 옆의 .xodr (OpenDRIVE) 항목은 대조적으로 대화상자 없이 즉시 (기본 이름 Untitled-<date>-<time>.xodr) 도로를 기록합니다. 전체 왕복을 esmini로 보내려면 OpenDRIVE / OpenSCENARIO / esmini로 내보내기를 참고하세요.
실행의 일부만 기록하기
섹션 제목: “실행의 일부만 기록하기”RANGE는 실행의 얼마나 많은 부분이 파일에 도달하는지 결정합니다. Full로 열립니다. 전체 실행입니다. 이전처럼요. Trim으로 전환하여 구간을 기록합니다:
-
Export → **Export video…**를 열고, Trim을 클릭합니다.
-
두 개의 핸들이 탐색 막대에 나타납니다. 각 범위의 끝에 하나씩. 그 사이에 있는 것이 기록되는 것이고; 막대의 나머지는 어두워집니다.

-
막대를 따라 핸들을 드래그하거나, Start [s] 및 **End [s]**에 초를 입력합니다. 대화상자는 그들 아래에 개수를 유지합니다.
5 s selected.
-
Start를 클릭합니다. 파일은 정확히 선택한 범위만큼 지속됩니다.
핸들이 켜져 있는 동안 플레이헤드는 계속 활성입니다. 범위 안을 클릭하고 기록하기 전에 프레임을 확인할 수 있습니다.
범위는 의도적으로 기억되지 않습니다. **Export video…**를 열 때마다 Full에서 다시 시작합니다. 화면비, 카메라와 고스트는 하우스 스타일이며 유지되지만, 범위는 하나의 시나리오와 연결됩니다. 모든 실행은 길이가 다르므로 지난번의 초는 여기서 잘못된 위치에 도달합니다.
아무것도 움직이지 않으면
섹션 제목: “아무것도 움직이지 않으면”| 증상 | 가능한 원인 |
|---|---|
| 액터가 전혀 움직이지 않음 | 아직 아무 이벤트도 발동하지 않음 — 트리거의 SECONDS를 확인하거나, 페이즈의 Start 조건이 만족되는지 확인합니다. |
| 액터가 주행한 후 영구적으로 멈춤 | 도로의 끝에 도달했습니다. 도로를 연장하거나 더 긴 .xodr을 가져옵니다. |
| 액터가 즉시 화면 밖으로 이동 | 카메라 추적이 Off입니다. |
| Change Lane 이벤트가 발동했으나 옆으로 움직임이 없음 | TARGET이 여전히 Same lane이고 액터가 자신을 참조하고 있습니다. 액션을 참고하세요. |
| 두 이벤트가 동시에 발동 | 두 트리거 모두 아직 0.00 s입니다. |