# The Wild Reach Studio · 1.2.0

256×256m의 숲·고원·습지·성채를 탐험하는 Three.js / WebGL2 게임입니다. 세계관에 맞춘 HUD·지도·여행 기록·유물 가방·설정·일시 정지·시작/이어하기·완료 화면을 새로 만들고, 엄격한 TypeScript 계층으로 저장·오디오·캐시를 연결했습니다.

## 실행

Bun 1.4.x가 설치되어 있다면:

```sh
bun install --frozen-lockfile
bun run dev
```

`http://127.0.0.1:3004`를 엽니다. 실제 검증 도구 버전은 Bun 1.4.2, TypeScript 7.0.2입니다. 타입 검사·테스트·빌드를 한 번에 실행하려면 `bun run verify`를 사용합니다.

빌드된 파일도 포함합니다. Bun 없이 이 폴더에서 `python3 -m http.server 8080`을 실행한 뒤 `http://localhost:8080`으로 열어도 플레이할 수 있습니다. HTML을 파일로 직접 열면 3D 파일과 오프라인 저장이 동작하지 않습니다.

게임 안의 ‘월드와 에셋 다운로드’는 실행 폴더의 ZIP을 제공합니다. 압축 해제 후에도 이 기능을 사용하려면 내려받은 ZIP을 `index.html`과 같은 폴더에 두거나 `python tools/package_studio.py`로 생성하세요.

WASD/방향키 이동, Shift 달리기, E 조사, Space 마법, J 기록, I 가방, P/Escape 쉬기입니다. 모바일은 화면 방향키와 행동 버튼을 사용합니다. 새 탐험 후 조작 안내가 나타나며, 세 유물은 어느 순서로든 모을 수 있습니다.

## 포함 내용

- GLB 40개와 Blender 편집 원본 40개: 캐릭터·연결된 월드·환경·신규 식생·달의 아치.
- 원본 SVG HUD/UI 장식, 실제 진행과 연결된 일지·가방·목표 거리와 방향.
- 지역별 원본 임시 BGM 4개, Kenney CC0 효과음 9개, Fish Audio 한국어 음성 5개·정확한 자막, 음량/음소거·교차 전환·음성 중 음악 더킹.
- 검증한 위치·유물·설정의 자동 저장과 이전 정상 기록 복구.
- 설정의 '이 세계 저장하기'로 준비하는 콘텐츠 해시 기반 오프라인 캐시. 캐시 비우기는 여정 기록을 지우지 않습니다.
- Bun 빌드·개발 서버, TypeScript 소스, 상태·저장·캐시 테스트, 제작/공급자/라이선스/검증 기록.

FlowMusic 생성 세션은 이 환경에 연결되어 있지 않습니다. 실제 Flow 곡 대신 **원본 임시 음악**임을 명시하고 교체 도구를 제공합니다. Fish Audio는 사용자가 확인한 무료 모델 `s2.1-pro-free`로 실제 한국어 음성 5개를 생성·검증했습니다. 원고·WAV·길이·파일/PCM 해시·생성 영수증과 안전한 서버 CLI를 포함하며, API 키는 브라우저와 패키지에 들어 있지 않습니다. 상태는 `assets/audio/manifest.json`, `assets/audio/voice-cues.json`과 오디오 문서에서 확인할 수 있습니다.

새 잎의 바람·물결·입자는 JS 런타임에서 움직입니다. 정적 전체 월드 GLB에는 기존 배치가 들어 있으며 새 식생·아치는 별도 GLB입니다. 원래 1.1.0 패키지는 수정하지 않았습니다.

[플레이 흐름](docs/GAME-UX.md) · [아키텍처](docs/ARCHITECTURE.md) · [빌드/캐시](docs/BUILD-CACHE.md) · [오디오](docs/AUDIO.md) · [공급자 상태](docs/AUDIO-PROVIDERS.md) · [Fish 원고/반입](docs/VOICE-PIPELINE.md) · [제작 파이프라인](docs/PRODUCTION-PIPELINE.md) · [라이선스](LICENSE.md)
