게임 개발 · 기술 동향미로의 개발노트
카테고리

오후의 틈

읽기 쉬운 HUD·자연스러운 이동·넓어진 오후 광장과 로컬 AI 보충

개발 기록 · 블로그 공개

원본 기록 상태 완료

중앙 채팅·상태 팝업·가상 스크롤 목록·비모달 창·Enter 포커스·이동/추적을 개선했습니다.80×64m 광장과 하늘·태양, 클라이언트 최소5명 보충을 적용하고 최종 실제 웹을 검사했습니다.

UI 변경 전: 같은1920×1080·카메라 위치. 동작 코드 일부는 수정 후 상태에서 시각 기준만 촬영
UI 변경 전: 같은1920×1080·카메라 위치. 동작 코드 일부는 수정 후 상태에서 시각 기준만 촬영

작업 결과

씬/프리팹·자체 코드에 적용하고 최종 Unity Play93개와 실제 Chrome/Edge 웹 검사를 통과했습니다. 외부 원본은 보존합니다. 서버를 제어하거나 멀티플레이를 추가하지 않았습니다.

적용 내용

  • 좌상단 닉네임·상태, 머리 위 이름표를 어두운 배경/밝은 글자로 바꾸었습니다. 상태는 작은 팝업이고 상세 창은 X로 닫습니다.
  • 채팅은 하단 가운데600px,18px 글자와 반투명 어두운 기록 배경으로 바꿉니다. 상세 창을 열어도 다른 메뉴/월드 조작이 가능하며 실제 입력창 편집 중에는 이동을 막습니다. Enter 포커스는 UI Submit 다음 프레임에 적용합니다.
  • 캐릭터16개·일반 동작117개를 스크롤 목록으로 제공합니다. 씬의10개 행을 재사용합니다. 착석/전환30개는 일반 목록에서 제외하고 원본 카탈로그·벤치 착석을 보존합니다.
  • 클릭 경로6m 이상은 달리기, 도착2.8m 이내는 걷기입니다. 가속/감속과 거리별 추적 속도를 적용하고 카메라 강제 회전을 제거합니다. 수동 입력·입력창·대상 이탈 시 추적을 중단합니다.
  • 광장48×38→80×64m(면적 약2.81배). 산책로·분수 테라스·서쪽 쉼터·화단·상점·나무18개·총 벤치12개·저장 NavMesh를 배치합니다. 자체 텍스처 없는 하늘/태양과 기존 태양 광원을 연결합니다.
  • 실제 인원(본인 포함)5명 미만이면 각 클라이언트가 부족분만 로컬 AI로 채웁니다. 현재 멀티플레이 연결이 없으므로 기본은 본인1+AI4입니다. SetHumanPopulation은 향후 인원 수신부에서 호출할 연결 지점이며 서버 생성/동기화는 없습니다.
  • 이름표·대화·방문자 목록의 AI 꼬리표와 반복 자기소개를 없애고 일상 문구·발화 간격을 적용합니다. 프로필에는 AI 캐릭터와 기기 내 준비된 응답임을 명시합니다.

추가 보완: 일반 실행의 초당 진단 JSON/프레임 배열 발행을 끄고 측정 시에만 활성화했습니다. 실제 웹에서 발견한 자동 이동 중 동작 선택 충돌은 자동 경로/추적을 반환한 뒤 동작을 재생하도록 수정했습니다.

검증

빌드/브라우저 AI FPS 중앙값 프레임 p95 ms 최대 ms 전경 CPU 1코어 % 배경 CPU %
compare-before-0 0 30.01 34.0 34.0 10.20 2.497
compare-before-6 6 30.01 34.0 133.0 13.87 0.599
compare-before-12 12 30.01 34.0 118.0 14.70 0.448
final-0 0 30.01 34.0 36.0 9.07 0.324
final-6 6 30.01 34.0 100.0 12.77 1.340
final-12-long 12 30.01 34.0 142.0 14.61 0.014
final-edge-6 6 30.01 34.0 83.0 10.64 0.344

개발 화면

UI 변경 전: 같은1920×1080·카메라 위치. 동작 코드 일부는 수정 후 상태에서 시각 기준만 촬영

변경 후: 명확한 닉네임/상태와 가운데 채팅, 같은 카메라 위치

캐릭터 스크롤 목록

좌석 클립을 제외한 일반 동작 스크롤

실제 하늘·태양과 확장 광장

출처

중앙 아카이브 원문

같은 카테고리의 글

개발 기록 아카이브 전체 보기 ↗