기존 .xosc 파일 열고 재생하기
drawtonomy는 OpenSCENARIO 1.x 형식의 .xosc 파일을 읽고 WebAssembly로 컴파일된 esmini에서 브라우저에서 실행합니다. 가져온 시나리오는 읽기 전용이 아닙니다. 액션, 이벤트, 액션, 트리거는 처음부터 작성하는 데 사용하는 것과 동일한 에디터에 표시됩니다.
두 파일이 모두 필요합니다
섹션 제목: “두 파일이 모두 필요합니다”.xosc는 액터가 수행하는 작업을 설명합니다. 도로는 포함하지 않습니다. RoadNetwork 요소에 OpenDRIVE .xodr를 참조합니다. 도로가 없으면 엔터티를 배치할 장소가 없으므로 drawtonomy는 가져오기 전에 이를 요청합니다.
시작하기 전에 두 파일을 모두 준비합니다. .xosc가 esmini 리포지토리에서 나온 경우, 일치하는 .xodr는 resources/xosc/ 옆의 resources/xodr/에 있습니다.
시나리오를 여는 세 가지 방법
섹션 제목: “시나리오를 여는 세 가지 방법”드래그 드롭
섹션 제목: “드래그 드롭”파일 관리자에서 .xosc 및 .xodr을 선택하고 캔버스에 함께 드롭합니다. 이것이 가장 짧은 경로입니다. drawtonomy는 자동으로 페어링하고 한 단계에서 가져옵니다. 도로가 로드되고, 액터가 위에 배치되고, LOGIC 카드가 채워집니다. 두 번째 프롬프트가 없습니다.
페어링은 .xosc가 RoadNetwork 요소에서 명명한 도로를 키로 합니다. 드롭한 .xodr이 참조하는 것이 아니거나 .xosc만 드롭한 경우, drawtonomy는 쌍을 완성할 수 없고 OPENDRIVE MAP REFERENCED 배너로 폴백되므로 올바른 도로 파일을 가리킬 수 있습니다.
Import 메뉴
섹션 제목: “Import 메뉴”햄버거 메뉴 → Import…, 그러면 .xosc를 선택합니다.
파일 다이얼로그는 한 번에 하나의 파일만 가져오므로, drawtonomy는 화면 맨 위에 배너를 표시합니다:
OPENDRIVE MAP REFERENCED
cut-in.xosc→../xodr/e6mini.xodr

Open .xodr을 클릭하고 도로 파일을 선택합니다. 배너에는 × 버튼도 있습니다. 이를 해제하면 아무 것도 로드하지 않고 가져오기가 종료되므로 취소하려는 경우가 아니면 Open .xodr을 사용합니다.
GitHub 링크에서
섹션 제목: “GitHub 링크에서”앱 URL에 ?open=과 GitHub 파일 URL을 추가합니다:
https://drawtonomy.com/?open=https://github.com/esmini/esmini/blob/master/resources/xosc/cut-in.xosc그 링크는 라이브입니다. 시도해 보세요:
drawtonomy에서 esmini cut-in 시나리오 열기 →
drawtonomy는 .xosc를 가져오고, RoadNetwork 참조를 읽고, 동일한 리포지토리에서 동일한 커밋 또는 분기에서 .xodr을 가져옵니다. 또한 시나리오가 참조하는 Catalogs 디렉토리를 열거하고 찾은 카탈로그 파일을 로드합니다. 카탈로그가 자동으로 해결되는 유일한 경로입니다.
수락하는 것과 수락하지 않는 것:
| 허용 호스트 | github.com 파일 blob 링크 및 raw.githubusercontent.com |
| 거부됨 | 다른 호스트 및 tree/ 디렉토리 링크 |
| 리포지토리 | 공개여야 합니다. 가져오기는 인증되지 않습니다 |
| 속도 제한 | 카탈로그 나열은 인증되지 않은 GitHub API를 사용하며, 시간당 60개 요청으로 제한됩니다 |
| 절대 도로 경로 | Windows 경로(C:\…)를 가리키는 RoadNetwork는 해결할 수 없습니다. 대신 .xodr을 요청받습니다 |
단일 링크로 검토자와 실행 가능한 시나리오를 공유할 수 있으므로 충분합니다. 다운로드나 설치가 없습니다.
편집한 시나리오 공유하기
섹션 제목: “편집한 시나리오 공유하기”?open= 경로는 GitHub에서 읽으므로, 편집한 시나리오를 공유하려면 파일을 GitHub이 제공할 수 있는 위치에 배치합니다:
- drawtonomy에서 **Export →
OpenSCENARIO (.xosc)…**를 선택하고 INCLUDE를.xosc+.xodr로 설정하여 도로가 시나리오와 함께 이동하도록 합니다. (내보내기에서 상대RoadNetwork경로를 유지합니다.) - 두 파일을 공개 GitHub 리포지토리에 커밋하고 푸시합니다.
.xosc파일의 GitHub blob URL을 복사합니다 (파일 페이지의github.com/…/blob/…링크) 및https://drawtonomy.com/?open=에 추가합니다.
그 링크를 여는 모든 사람이 편집한 시나리오, 도로, 그리고 리포지토리에 포함된 모든 카탈로그를 받습니다. ?open=이 동일한 리포지토리에서 카탈로그를 로드하므로 자동으로 해결됩니다.
가져오기가 생성하는 것
섹션 제목: “가져오기가 생성하는 것”성공적인 가져오기 후, drawtonomy는 자동으로 Scenario 모드로 전환되고 LOGIC 카드가 채워집니다:
- 각 OpenSCENARIO **
Act**는 이름을 유지하면서 Phase가 됩니다.CutInAndBrakeAct이름의 시나리오는 그 이름의 phase를 표시합니다. - 각 **
Event**는 이를 수행하는 액터 아래의 이벤트 카드가 되며, 원래 이벤트 이름으로 표시됩니다. - 스토리보드의 **
StopTrigger**는 END CONDITIONS 노드가 됩니다. 예를 들어After CutInManeuver ends.
이벤트 카드를 클릭하면 이벤트 에디터가 열립니다. 트리거, 액션, 동작 프로필, 우선순위는 모두 왕복하므로, 가져온 Time gap to actor 트리거는 동일한 임계값을 가진 Time gap to actor로 읽혀집니다. Maneuver 및 ManeuverGroup 이름은 카드에 표시되지 않고 ADVANCED 섹션 아래에 유지됩니다.
카탈로그 경고 정보
섹션 제목: “카탈로그 경고 정보”많은 공개된 시나리오는 <CatalogLocations>를 선언하고 외부 카탈로그 파일에서 차량 모델을 가져옵니다. 그러한 파일을 가져올 때, drawtonomy는 정보 토스트를 표시합니다:
This scenario references external Catalogs that were not provided. Drop the catalog files with the .xosc, or actors may not load.
이것을 정보로, 오류로는 아니라고 읽습니다:
.xosc가 카탈로그 위치를 선언할 때마다 표시되며, 실제로 누락된 것이 있는지 여부와 관계없이 표시됩니다.- 표준 차량 카탈로그 항목은 drawtonomy의 기본 제공 모델에 매핑되므로, 대부분의 경우 모든 액터가 올바른 모양, 색상, 시작 위치로 로드되고, 시나리오가 완전히 재생됩니다.
- 토스트는 몇 초 후 자동으로 사라집니다. 다시 읽어야 할 경우 파일을 다시 가져옵니다.
- 카탈로그는
?open=GitHub 경로에서 자동으로 해결됩니다.
가져오기 후 액터가 실제로 누락된 경우, 이는 명확하게 표시됩니다. 영향을 받는 엔터티는 캔버스에 나타나지 않습니다.
가져온 시나리오 편집하기
섹션 제목: “가져온 시나리오 편집하기”가져오기 후 아무 것이나 변경할 수 있지만, 한 가지 세부 사항이 사람들을 혼동시킵니다. LOGIC 카드의 {x} 버튼인 Variables 패널이 직접 말합니다:
Editing values here does not change actions already imported with a literal value (references are resolved at import time).
즉, 원본 .xosc가 $HostVehicle_Speed를 사용했고 그 매개변수가 27.7이었다면, 가져온 액션은 참조가 아니라 27.7을 유지합니다. 나중에 매개변수를 변경해도 액션이 움직이지 않습니다. 액션 자체를 편집합니다.
재생 및 검사
섹션 제목: “재생 및 검사”LOGIC 카드 상단의 트랜스포트 행이 실행을 제어합니다: 재생 및 일시 중지, 시작으로 재설정, 재생 속도, 카메라 추적, 고스트 트레일, 판정 배지. 타임라인을 드래그하거나 클릭하여 임의의 순간으로 탐색합니다. 전체 세트는 Playback을 참조하세요.
가져온 시나리오에 대해 채택할 가치가 있는 두 가지 습관:
- 재생하기 전에 카메라 추적을 설정합니다. 가져온 도로 네트워크는 종종 킬로미터 길이이고, 기본 카메라는 아무 것도 추적하지 않습니다.
- 감시 대신 탐색합니다. 모든 자세는 시뮬레이션에서 나오므로, 컷인의 정확한 프레임에서 일시 중지하는 것은 추정이 아닙니다.
문제 해결
섹션 제목: “문제 해결”| 증상 | 원인 |
|---|---|
.xosc를 선택한 후 아무 것도 로드되지 않음 | 도로 파일이 제공되지 않았습니다. 다시 가져오고 배너에서 Open .xodr을 사용합니다. |
| 액터가 모두 서로 겹쳐 있음 | 도로가 로드되지 않아 모든 엔터티가 원점으로 폴백되었습니다. .xodr이 시나리오와 일치하는지 확인합니다. |
| 액터가 중간에 멈추고 다시 움직이지 않음 | 도로의 끝에 도달했습니다. 도로를 연장하거나 더 긴 .xodr을 사용합니다. |
| 매번 가져올 때 카탈로그 토스트 표시 | <CatalogLocations>를 가진 모든 .xosc에 대해 예상됩니다. 위를 참조하세요. |
| GitHub 링크가 거부됨 | github.com blob 링크와 raw.githubusercontent.com만 허용되며, 리포지토리는 공개여야 합니다. |
참고 자료
섹션 제목: “참고 자료”- 브라우저에서 OpenSCENARIO 파일 시뮬레이션 — 플레이어 중심 가이드, 동영상 내보내기 포함.
- Phase와 이벤트
- 재생
- OpenSCENARIO란?
- esmini란?