BurningTimesAi/프로젝트/EerieVillage/기획/ux/01_모바일_터치_UX.md

5.9 KiB

type scope author date version project phase data_source status
상세_기획 모바일_터치_UX ux-designer 2026-04-23 v0.1 (Phase 3-B) EerieVillage Phase 3-B BT5-Plan 04_전투_기본_스펙 v0.1 + BT5-Dev 03_게임_제작_준비 확정 골격 — 수치 실측은 balance-designer + 개발팀 협의

01. 모바일 터치 UX

1. 재미 축 연결 (P30)

본 스킴이 강화하는 재미: 축 2 "액션 플랫포머 손맛". 가상 스틱·버튼의 즉각 반응(0.1초 이내)과 오입력 최소화 레이아웃이 이동·점프·공격의 체감 직결 요소다.

2. 조작 스킴 확정

액션 PC 입력 모바일 입력 비고
이동 WASD/방향키 좌측 가상 스틱 엄지 자연 안착 영역
점프 Space 우측 점프 버튼 오른 엄지 도달 상단
공격 마우스 좌클릭 우측 공격 버튼 오른 엄지 도달 하단

결정 근거: 04_전투_기본_스펙 §2 확정 스킴 계승. 단일 근거리 공격 1종으로 파일럿 시작 (공격 버튼 복수 기각안 계승).

3. 버튼 레이아웃 (화면 분할)

┌──────────────────────────────┐  ← 화면 상단 (HUD 영역)
│         [HUD]                │
├──────────────────────────────┤
│                              │
│   플레이 영역                │
│                              │
├────────────┬─────────────────┤
│  [가상스틱] │   [점프] [공격]  │  ← 입력 영역
│  왼손 엄지  │   오른손 엄지    │
└────────────┴─────────────────┘
             Safe Area (Home Indicator 회피)
  • 가상 스틱 반지름: 기본 60dp (BT 실측 전 후보값). 조이스틱 중심은 터치 다운 위치 추종
  • 점프 버튼: 우측 상단. 오른 엄지 자연 신전 위치
  • 공격 버튼: 우측 하단. 오른 엄지 굴곡 위치. 점프보다 크게 배치 (주요 인터랙션)
  • 투명도: 기본 70%, 입력 시 100% (비활성 구분 피드백)
  • Safe Area: 노치(iOS) · 상태표시줄(Android) 상단 + Home Indicator/제스처바 하단 회피 의무 → SafeAreaBorder 컴포넌트 신규 구현 필요 (BT.Framework Tier 2 이관, §6 참조)

4. 입력 시스템 설계

Unity Input System 액션 맵 기반:

  • Move (Value, Vector2) — 가상 스틱 → PC 키보드 WASD 동시 지원
  • Jump (Button) — 점프 버튼 → Space
  • Attack (Button) — 공격 버튼 → 마우스 좌클릭

UITouchHandler (BT.Framework Tier 2 신규 구현 예정): 가상 스틱 드래그 감도·데드존 처리 로직 캡슐화. 구현 전까지는 Unity OnScreenStick 임시 사용.

즉각 반응 의무: Input 감지 후 0.1초 이내 캐릭터 반응. 지연 시 플레이어가 입력 불인식으로 오인 (C7 피드백 원칙).

5. 피드백 설계

5-1. 피격 피드백 (3종 의무, 04_전투_기본_스펙 §6 계승)

피드백 종류 내용 인지 목표
시각 화면 테두리 붉은 섬광 + 캐릭터 깜박임(i-frame 표시) 0.3초 이내 인지
청각 피격 SFX (사운드팀 명세) 즉시 인지
진동 (모바일) 짧은 진동 1회 (~80ms) 즉각 체감

5-2. i-frame(무적 시간) 표시

  • 피격 후 N ms 동안 캐릭터 스프라이트 깜박임 (점멸 주기 80~120ms 후보)
  • 깜박임 종료 = 무적 해제 → 플레이어 학습 가능한 시각 언어
  • N 수치 (400~800ms)는 balance-designer + 개발팀 실측 확정

5-3. 버튼 입력 피드백

  • 버튼 눌림 시 시각적 눌림 애니메이션(스케일 축소 0.9x, 50ms) 의무
  • 성공 공격 적중 시 짧은 진동 1회 (~40ms) — 손맛 강화 (재미 축 2)

6. BT.Framework 재사용 매핑

BT.Framework 활용 용도 구현 시점
Log 입력 이벤트 디버그 로그 Tier 1 P0 즉시
ValidationEx 버튼 null 체크·스틱 범위 검증 Tier 1 P0 즉시
MathEx 스틱 감도·데드존 보정 연산 Tier 1 P0 즉시
SafeAreaBorder Safe Area 패딩 자동 적용 Tier 2 신규 구현 후
UITouchHandler 스틱 드래그·버튼 멀티터치 처리 Tier 2 신규 구현 후
BackKeyDispatcher Android 뒤로가기 키 → 일시정지 메뉴 Tier 2 신규 구현 후

Tier 2 3종 미구현 상태 (BT5-Dev 3단계 실측 확인 — Runtime/UI/Components/ 빈 디렉토리). 개발팀 이관 항목.

7. 기각안

  1. "스와이프 회피 제스처" — 기각. 캐주얼 포지션에서 스와이프는 이동 입력과 오입력 충돌 위험 과다. 라이프 1 전제에서 오입력 즉사는 재미 축 2 붕괴. 회피 메커니즘 도입은 PD 결정 대상 (04_전투_기본_스펙 §7 보류 계승).
  2. "고정 위치 가상 스틱" — 기각. 터치 다운 위치 추종 방식이 다양한 그립 스타일 수용성 높음. 고정 위치는 손 크기·그립 편차로 오입력 증가.
  3. "버튼 비표시(보이지 않는 탭 영역)" — 기각. 버튼 시각 피드백 부재는 입력 성공 여부 불확실성 유발. 플레이어가 입력이 먹혔는지 의심하게 만들어 C7 피드백 원칙 위반.

8. 개발팀 이관 항목

  • SafeAreaBorder · UITouchHandler · BackKeyDispatcher 컴포넌트 신규 구현 (BT.Framework Tier 2 승격 후 EerieVillage 편입)
  • Input System 액션 맵 에셋 생성 + PC/모바일 바인딩 구성
  • 피격 진동 Unity Handheld.Vibrate() 또는 플랫폼별 Haptic 구현

9. 변경 이력

일시 변경 사유 기안
2026-04-23 v0.1 Phase 3-B 초기 확정 BT6-Plan PD 지시 ux-designer