이번 업데이트는 "NPC 대화 경험"을 중심으로 정리했습니다.

핵심 변경 사항

  • NPC 클릭 시 자동 이동 후 근거리 대화 시작.
  • 대화 중에는 플레이어와 대화 대상 NPC가 움직이지 않도록 고정.
  • Enter 1회 전송 후에도 대화 상태가 바로 풀리지 않도록 대화 고정 상태 추가.
  • 대화 중 카메라를 숄더뷰 느낌으로 강화:
    • 더 가까운 줌
    • 더 강한 측면 오프셋
    • 대화 종료 후 자연스럽게 원래 시점 복귀

NPC 이동/행동

  • 기존 루틴 이동을 자유 배회 기반으로 전환.
  • 시간대 거점은 유지하되 주변 랜덤 이동 + 간헐적 장거리 이동 추가.
  • NPC끼리 가까우면 잠깐 멈춰 상호작용 이벤트가 발생하도록 보강.

LLM 채팅 안정화

  • 모델 체인 순서 조정:
    1. gemini-2.0-flash
    2. gemini-2.5-pro
    3. gemma-3-27b-it
    4. gemma-3-12b-it
  • 연결 실패 시 로컬 응답 fallback 유지.
  • UI에 현재 모델/오류 상태 표시.

스트리밍 채팅(SSE)

  • 서버에 POST /api/npc-chat-stream 추가.
  • 클라이언트가 토큰 단위로 채팅 로그를 실시간 렌더.
  • 스트림이 비어 종료되면 일반 응답 경로로 자동 fallback 하도록 처리.
  • SSE 파서는 \n\n, \r\n\r\n 경계를 모두 처리하도록 보강.

UX/입력 처리

  • 채팅 입력창 포커스 중 월드 이동 키 입력 차단.
  • 입력 중 자동 이동 취소 및 월드 조작 단축키 무시.
  • 클릭 선택/드래그 카메라 동작 분리 유지.

다음

  • 대화 종료/해제 UX(Esc 등) 추가.
  • 대화 로그 포맷 개선(스트리밍 표시, 시스템 메시지 정리).
  • Cloud Run 배포 기준 스트리밍 안정성 점검.