Files
hushroom/.cli/tasks/0010-flight-starfield-spawn-widen-speed-down.md

93 lines
3.6 KiB
Markdown

# .gemini/current.md
## TASK_META (수정 금지)
- TASK_TITLE: Flight 스타필드 튜닝 — 중심 과집중 완화(넓은 스폰) + 속도 감속(유영 느낌)
- TASK_SLUG: flight-starfield-spawn-widen-speed-down
## 현재 문제(관찰)
- 별이 중심점(소실점)에서만 생성되는 느낌이 강해 인공적이다.
- 별 이동 속도가 너무 빠르게 느껴져 “유영”이 아니라 “워프/가속”처럼 보인다.
## 작업 목표
`@src/app/flight/page.tsx` 배경 스타필드를 아래처럼 튜닝한다:
1. 별 생성 분포를 넓혀 “중심에서만 뿜는 느낌”을 완화한다(자연스럽게).
2. 전체 속도를 낮춰 “조용한 전진/유영” 느낌으로 만든다.
3. 가시성(안 보임 문제)은 유지한다(너무 희미해지지 않게).
4. UI는 변경하지 않는다(배경만).
## 작업 요구사항
### 1) 스폰 분포 넓히기(필수)
- 별의 초기 (x,y) 분포를 “소실점 주변 아주 좁은 반경”에서만 뽑지 말 것.
- 아래 중 1개 이상을 적용해 “넓은 영역에서 자연스럽게 시작”되게:
- A) 스폰 반경 확대: vp 기준 반경 **120~360px** 범위에서 랜덤 분포
- B) 링/도넛 분포: 반경 80~320px에서 더 자주 뽑고(중심은 덜),
중심 반경 0~60px 영역은 스폰 확률을 낮춤
- C) 화면 전체 분포 + z/스케일로 전진감 유지: (x,y)는 화면 랜덤, z로 원근만 제공
- 단, “완전 랜덤”으로 바꾸면 전진감이 약해질 수 있으니,
소실점(vp)을 기준으로 하는 투영 구조는 유지하되 **초기 분포만 넓혀**라.
### 2) 속도 감속(필수)
- 전체 속도를 1차로 20~40% 낮춘다(체감상 확실히 느려져야 함).
- 속도 티어를 아래 범위로 조정(권장):
- 느림(75~90%): 0.004 ~ 0.009
- 중간(10~25%): 0.009 ~ 0.014
- 빠름(0~3%): 0.014 ~ 0.018 (가능하면 0~2%로 제한)
- “워프처럼 길게 늘어지는” 인상을 줄이기 위해,
꼬리 길이도 속도와 함께 약간 줄이되 ‘안 보임’이 생기지 않게 하한 유지:
- 꼬리 있는 별(10~25%)의 길이: **4~10px** (하한 4px 유지)
### 3) 소실점 위치(권장)
- 소실점(vp)은 화면 정중앙보다 **살짝 위** 유지(예: -40~-90px).
- 완전 대칭을 피하기 위해 x도 소폭 오프셋(±10~25px, 고정) 가능.
### 4) 밀도/가시성 유지(필수)
- 저밀도 유지:
- 데스크탑 18~45 / 모바일 12~30
- 가시성 하한 유지:
- 일반 alpha 0.25~0.55, 강조 0.55~0.85
- radius 일반 0.7~1.2, 강조 1.2~1.8
### 5) 리사이클(필수)
- 화면 밖/z 임계치 도달 시 재스폰하되,
재스폰도 위 “넓은 스폰 분포” 규칙을 적용한다(중심에만 몰지 말 것).
### 6) 모션 접근성(필수)
- prefers-reduced-motion: reduce:
- 정지(우선) 또는 speed 10~20%로 감속
## Non-scope
- UI(A안) 변경 금지
- 타이머 로직 변경 금지
- 신규 기능 추가 금지
- 다른 페이지 변경 금지
## 적용 파일
- 필수: `@src/app/flight/page.tsx`
## 완료 조건(AC)
- [ ] 별 생성이 중심점에 과도하게 몰리지 않고 넓은 영역에서 자연스럽게 시작한다
- [ ] 속도가 확실히 느려져 “유영/조용한 전진” 느낌이 난다(워프/가속 인상 없음)
- [ ] 가시성은 유지되어 별이 충분히 보인다(너무 희미해지지 않음)
- [ ] 저밀도 범위(데스크탑 18~45 / 모바일 12~30)가 유지된다
- [ ] UI는 변경되지 않았다
- [ ] prefers-reduced-motion에서 정지 또는 크게 약화된다
## 완료 후 출력(최소)
- 수정된 파일 경로 목록
- AC 항목별 체크 결과(OK/NO)