UI 규칙 & 구현
4. UI 시스템 규칙
4-1. 공통 규칙
| 항목 | 규칙 |
|---|---|
| 해상도 | 1920×1080 네이티브 (16:9). Viewport stretch mode, aspect keep |
| 입력 | 키보드 + 마우스 (Phase 1~2), 터치 (Phase 3+) |
| 애니메이션 | 모든 UI 전환 easeOutCubic, 0.2~0.5초 |
| 글래스 블러 | BackBufferCopy + blur shader (반경 12px) |
| 네온 글로우 | 외곽 글로우 shader (blur 4~12px, Hept32 네온) |
| 사운드 | 호버(tick.wav), 클릭(click.wav), 레벨업(levelup.wav) |
| 키 바인딩 | ESC=일시정지, I=인벤토리, Q=소환수 |
4-2. 데미지 팝업
| 유형 | 크기 | 색상 | 특수 효과 |
|---|---|---|---|
| 일반 데미지 | Damage M (32px) | 백색 (#FFFFFF) | 위로 떠오름 (40px, 0.5초) → 페이드 |
| 크리티컬 | Damage L (48px) | 골드 (#ECAB11) + 네온 글로우 | 1.5배 크기 + shake |
| 힐 | Damage S (24px) | 그린 (#08B23B) | "+" 접두사, 위로 부유 |
| 독/DoT | Damage S (24px) | 라임 (#47F641) | 위로 떠오름 |
| 영혼 스 킬 | 36px | 영혼 고유색 + glow | 영혼별 컬러 적용 |
| 보스 데미지 | Damage L (48px) | 적색 (#DA2424) | 숫자 + 작은 흔들림 |
4-3. 레이어 순서 (z-index)
| z-index | 레이어 | 설명 |
|---|---|---|
| 0 | 게임 월드 | 배경, 적, 플레이어 |
| 10 | HUD | 상시 표시 UI |
| 15 | 데미지 팝업 | 월드 좌표 기반 |
| 20 | 이벤트 UI | 레벨업, 포획, 보스 연출 |
| 25 | 인벤토리 | 오버레이 |
| 30 | 일시정지 | 오버레이 |
| 40 | 다이얼로그 | 설정, 확인 팝업 |
4-4. 설정 화면
v4.0 확장: 화면모드 드롭다운 추가. 트렌드 근거: Steam EA 최소 요구사항.
| 요소 | 스타일 | 내용 |
|---|---|---|
| 모달 | 글래스, 라운드 24px, 800×500px | 설정 패널 |
| BGM 볼륨 | 슬라이더 (골드 #ECAB11), 라운드 | 0~100% |
| SFX 볼륨 | 슬라이더 (골드 #ECAB11), 라운드 | 0~100% |
| 화면모드 | 드롭다운 (글래스, 라운드 8px) | 창 모드 / 전체화면 / 보더리스 |
| 화면 흔들림 | 토글 스위치, 글래스 | ON/OFF |
| 데미지 숫자 | 토글 스위치, 글래스 | ON/OFF |
| 닫기 | 글래스 버튼, 라운드 12px | "닫기" |
접근 경로:
- 타이틀 화면 → "설정" 버튼 (v4.0 신규)
- 인게임 → 일시정지 → "설정" 버튼 (기존
pass→ 구현)
5. 씬 트리 구조
5-1. Phase 1 (구현 완료)
5-2. Phase 2 (목표)
6. 구현 상태 추적
Phase 1 (전체 완료)
| # | 화면 | 구현 파일 | 상태 |
|---|---|---|---|
| 1 | 인게임 HUD | ui/hud.gd | 완료 |
| 2 | 레벨업 선택 | ui/level_up_panel.gd | 완료 |
| 3 | 게임오버 + 정산 | ui/game_over_panel.gd | 완료 |
| 4 | 일시정지 메뉴 | ui/pause_menu.gd | 완료 |
| 5 | 인벤토리 | ui/inventory_panel.gd | 완료 |
| 6 | 음양 게이지 | ui/hud.gd (내장) | 완료 |
| 7 | 데미지 팝업 | ui/damage_popup.gd | 완료 |
Phase 2 (구현 예정)
| # | 화면 | 예상 파일 | 우선순위 |
|---|---|---|---|
| 1 | 타이틀 화면 | ui/title_screen.gd | P0 |
| 2 | 캐릭터 선택 | ui/character_select.gd | P0 |
| 3 | 영 혼 선택 | ui/soul_select.gd | P1 |
| 4 | 저주 선택 | ui/curse_select.gd | P1 |
| 5 | 거점 (무당집) | hub/hub_scene.gd | P1 |
| 6 | 대장장이 | hub/blacksmith_ui.gd | P1 |
| 7 | 사당 | hub/shrine_ui.gd | P1 |
| 8 | 포획 프롬프트 | ui/capture_prompt.gd | P1 |
| 9 | 요괴 도감 | ui/bestiary.gd | P2 |
| 10 | 영혼 관리 | ui/soul_manager.gd | P1 |
| 11 | HUD 확장 (저주/소환수/보스HP) | ui/hud.gd 확장 | P0 |
| 12 | 설정 메뉴 | ui/settings_modal.gd | P1 |
| 13 | HP 저체력 펄스+비네팅 | ui/hud.gd 확장 | P2 |
Phase 3 (구현 예정)
| # | 화면 | 예상 파일 | 우선순위 |
|---|---|---|---|
| 1 | 사당 영구 업그레이드 (11종) | hub/shrine_ui.gd 확장 | P0 |
| 2 | 요괴 도감 + 달성 보상 | ui/bestiary.gd | P0 |
| 3 | 혼백 상점 (구미호) | hub/gumiho_shop.gd | P1 |
| 4 | 업적 시스템 (4카테고리) | ui/achievements.gd | P1 |
| 5 | FTUE 오버레이 | ui/ftue_overlay.gd | P1 |
| 6 | 캐릭터 잠금 실루엣 | ui/character_select.gd 확장 | P1 |
| 7 | 화면 가장자리 적 방향 표시 | ui/hud.gd 확장 | P2 |
| 8 | 업적 달성 토스트 | ui/toast.gd | P1 |
7. 데이터 참조
| 파일 | 용도 | 상태 |
|---|---|---|
data/waves/wave_01~10.json | 웨이브 스폰 구성 | 완료 |
data/levelup.json | XP 곡선 + 레벨업 선택지 풀 | 완료 |
data/weapons.json | 무기 스탯 (Phase 2: 12종 확장) | 완료 → 확장 |
data/enemies.json | 적 스탯 (Phase 2: +보스 3종) | 완료 → 확장 |
data/characters.json | 캐릭터 4종 | 완료 |
data/souls.json | 영혼 4종 | 완료 |
data/curses.json | 저주 6종 | Phase 2 |
data/shrine.json | 사당 업그레이드 11종 | Phase 2 |
data/bestiary.json | 도감 12종 (포획 기록) | Phase 2 |
data/achievements.json | 업적 40종 (조건/보상) | Phase 3 |
data/ftue.json | FTUE 해금 조건 매핑 | Phase 3 |
data/unlocks.json | 캐릭터 해금 진행 상태 | Phase 3 |