From e67d886657ed34d9c521cc1c2e11038cb798dbfb Mon Sep 17 00:00:00 2001 From: gsh <144871327+95x8x9@users.noreply.github.com> Date: Sat, 11 Apr 2026 11:34:58 +0900 Subject: [PATCH] =?UTF-8?q?[Docs]=20domain=20part=20=EB=8C=80=EB=B3=B8=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added detailed presentation script for slides on 2DMap and Agent, explaining the roles and structures within the domain layer of the simulation. --- ...4\355\221\234_\353\214\200\353\263\270.md" | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git "a/docs/\354\240\234\354\266\234\354\232\251/\354\242\205\355\225\251\354\204\244\352\263\204/Product_Backlog_\353\260\234\355\221\234_\353\214\200\353\263\270.md" "b/docs/\354\240\234\354\266\234\354\232\251/\354\242\205\355\225\251\354\204\244\352\263\204/Product_Backlog_\353\260\234\355\221\234_\353\214\200\353\263\270.md" index 1a143cc..091f38f 100644 --- "a/docs/\354\240\234\354\266\234\354\232\251/\354\242\205\355\225\251\354\204\244\352\263\204/Product_Backlog_\353\260\234\355\221\234_\353\214\200\353\263\270.md" +++ "b/docs/\354\240\234\354\266\234\354\232\251/\354\242\205\355\225\251\354\204\244\352\263\204/Product_Backlog_\353\260\234\355\221\234_\353\214\200\353\263\270.md" @@ -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에 도착할 때까지 이 과정을 반복합니다.