방문자

오늘
—
어제
—
누적
—

불러오는 중

게임 개발 · 기술 동향 · 팀 블로그MIRO
헤드라인

오후의 틈

광장에 앉을 자리를 만든 이유

실제 웹 광장과 이동 조작 UI
실제 웹 광장과 이동 조작 UI

움직이는 광장에 멈출 이유를 더했습니다

오후의 틈의 첫 PC 웹 시제품은 작은 광장을 걷고 벤치에 앉는 1인 공간입니다. WASD·방향키·바닥 클릭으로 이동하고, 벤치 가까이에서 E 키나 버튼으로 착석·기립하도록 만들었습니다. 기능을 넓히기 전에 이동에서 휴식으로 넘어가는 짧은 흐름을 실제 브라우저에서 확인하는 것이 목표였습니다.

Low Poly Epic City의 카페·나무·벤치와 Low Poly Animated People의 방문자를 사용했습니다. 작은 광장과 벤치 세 개만 선별하고 원본 에셋과 데모 씬은 보존했습니다. 씬·UI·버튼 이벤트는 편집 가능한 Unity 오브젝트로 저장했으며 Runtime과 Editor 코드는 어셈블리를 분리했습니다.

앉을 수 있는 조건과 다시 움직일 조건을 나눴습니다

멀리서 버튼을 눌렀다고 곧바로 벤치에 앉아서는 안 됩니다. 벤치 근처에서만 착석하고, 앉아 있는 동안에는 이동을 제한하며, 일어서면 다시 이동하도록 구성했습니다. 벤치 세 곳 각각에서 이 전환을 실제 키보드와 마우스로 검사했습니다.

아래는 확인한 사용자 동작을 정리한 설명 도표입니다. 온라인 좌석 점유나 여러 사용자의 동시 착석 기능을 나타내지는 않습니다.

flowchart LR
  A["광장 이동"] --> B["벤치 가까이 접근"]
  B --> C["E 키 또는 버튼"]
  C --> D["착석과 이동 제한"]
  D --> E["기립"]
  E --> A

첫 웹 빌드는 UI만 보였습니다

첫 실행에서는 3D 광장이 보이지 않고 WebGL sampler mismatch가 발생했습니다. 실시간 그림자를 제외한 설정으로 다시 빌드한 뒤 3D 표시와 그리기 오류 해소를 확인했습니다. 해당 설정에서 문제가 사라진 사실은 확인했지만 엔진 내부의 근본 원인까지 밝혀냈다고 말하지는 않습니다.

한글 UI 폰트는 Nanum Gothic OFL 원본 2,054,744바이트에서 사용하는 글리프 중심의 73,616바이트로 줄였습니다. 최종 파일 전체는 17,505,239바이트입니다. 이 수치는 이번 시제품의 파일 크기이며 실제 다운로드 시간이나 다른 프로젝트의 절감률을 뜻하지 않습니다.

탭이 숨겨졌을 때도 따로 측정했습니다

Unity 6000.0.83f1·URP 17.0.4, Windows와 GTX 970 환경에서 Chrome·Edge를 확인했습니다. 두 브라우저 모두 중앙 FPS는 30.01, p95 프레임 시간은 34ms였습니다. 이동과 착석뿐 아니라 브라우저 예외와 WebGL 그리기 오류도 검사했습니다. 초기화 경고는 기록에 남아 있어 경고까지 전혀 없었던 실행은 아닙니다.

자동화 도구의 포커스 에뮬레이션이 가시성 검사에 개입하는 것을 확인한 뒤, 포커스를 강제하지 않는 별도 Chrome 연결로 실제 탭 숨김과 복귀를 검사했습니다. 숨김 상태의 목표 5FPS, 복귀 뒤 30FPS와 이동을 확인했습니다.

렌더러 작업 CPU는 전경 11.60%에서 숨김 0.08%로 줄었습니다. 이는 Chromium TaskDuration을 한 코어 기준으로 계산한 값이지 PC 전체나 GPU 사용률은 아닙니다. 시제품은 로컬 HTTP 서버에서 단기간 확인했으며 서버 배포·다중 접속·채팅·프로필은 이후 단계였습니다. 장시간 안정성과 모바일·다른 GPU 결과까지 이 측정으로 대신하지 않았습니다.

실제 웹 광장과 이동 조작 UI

실제 벤치 착석 동작

작업 근거

댓글

이 글에 대한 생각을 남겨 주세요.

댓글 삭제

헤드라인

같은 카테고리의 글

프로젝트 개발일지 전체 보기 ↗