Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions docs/제출용/종합설계/Product_Backlog_발표_대본.md
Original file line number Diff line number Diff line change
Expand Up @@ -256,3 +256,25 @@ Sprint 2에서는 그 위에 운영 이벤트와 대안 시나리오를 추가
정리하면, SafeCrowd에서 engine 파트 구현은 이후 도메인 시뮬레이션 로직을 안정적으로 올릴 수 있도록 ECS의 저장 구조와 실행 구조를 함께 구축한 작업이라고 말씀드릴 수 있습니다.

---

## 슬라이드 23. 2DMap

### 발표 대본
도메인 계층의 구현 내용을 설명하기에 앞서 계층의 역할에 대해 설명하겠습니다. 도메인 계층은 시설 레이아웃 정의와 에이전트 이동 로직 등 시뮬레이션의 핵심 규칙과 데이터 구조를 포함하는 계층입니다. 시뮬레이션의 토대가 되는 Map은 FacilityLayout2D, Zone2D, Connection2D, Barrier2D, SpawnZone2D로 이루어져 있습니다.
FacilityLayout2D는 전체 시뮬레이션의 최상위 컨테이너입니다.
Zone2D는 보행자가 이동할 수 있는 구역,
Connection2D는 구역과 구역을 잇는 통로,
Barrier2D는 에이전트의 이동을 막는 고정 장애물,
SpawnZone2D 에이전트의 생성 지점 역할을 수행합니다.
출구는 Zone2D의 하위 속성으로 지정되고, 출구와 연결된 Connection2D 객체도 출구 속성을 갖습니다. 이 요소들은 에이전트의 경로 계산에 사용되고, 에이전트가 exitzone에 도달하면 도착한 것으로 판단하게 됩니다.

---

## 슬라이드 24. Agent

### 발표 대본
스폰된 에이전트는 Position, Velocity, Goal, Agent 컴포넌트를 가집니다.
Position은 에이전트의 좌표, Velocity는 에이전트의 이동 방향과 속도, Goal은 목적지와 도착 여부, Agent는 에이전트 개인의 물리적 크기나 이동 능력치 등의 고유 속성을 정의합니다.
에이전트는 방향 벡터에 maxspeed 값을 곱해 이동 속도를 정합니다. 만약, 에이전트가 목적지에 도달했다면 goal의 도착 여부 값을 true로 설정하고 속도를 0으로 조정합니다.
충돌 여부 탐지를 위해서는 이동 경로상에 있는 벽 데이터를 가져와 다음 프레임 위치가 벽과 충돌이 발생하는지 계산합니다. 충돌이 발생하지 않은 경우, 속도를 그대로 유지하고 충돌이 발생한 경우, 벽의 법선 벡터를 구해 벽을 따라 이동하도록 처리합니다.
각 에이전트는 goal에 도착할 때까지 이 과정을 반복합니다.
Loading