Files
hushroom/.cli/tasks/0009-flight-starfield-forward-visible-no-dust.md

4.2 KiB

.gemini/current.md

TASK_META (수정 금지)

  • TASK_TITLE: Flight 스타필드 가시성/전진감 개선 — “먼지 낙하” 제거 + 원근 전진(소실점) + 저밀도 유지
  • TASK_SLUG: flight-starfield-forward-visible-no-dust

현재 문제(관찰)

  • “한 방향 전진감”을 적용했더니 별이 위→아래로 떨어지는 먼지처럼 보인다.
  • 별이 너무 희미하고 꼬리가 짧아 거의 보이지 않는다.

작업 목표

@src/app/flight/page.tsx 배경 스타필드를 다음처럼 조정한다:

  1. 낙하(먼지) 느낌을 제거하고 **원근 기반 전진감(소실점/투영)**으로 보이게 한다.
  2. 저밀도(산만하지 않게)는 유지하되, 별이 확실히 ‘보일 정도’로 가시성을 올린다.
  3. X자 교차/워프 느낌은 만들지 않는다(과한 방사형/대칭 금지).
  4. UI는 변경하지 않는다(배경만).

핵심 구현 방향(권장: 3D 투영 스타필드)

  • 별을 (x,y,z)로 관리하고 z를 프레임마다 감소시키며 투영:
    • 소실점(vp)은 화면 정중앙보다 살짝 위(예: centerY - 40~90px)
    • 투영: sx = vpX + (x - vpX) / z, sy = vpY + (y - vpY) / z
    • z가 작아질수록 별이 바깥으로 “퍼져 나가며” 전진감이 생김
  • “먼지 낙하”가 생기는 vBase 수직 이동 방식은 제거하거나, 투영 방식으로 전환한다.

스타일 규격(이미지 없이 구현 가능)

A) 가시성(필수: ‘안 보임’ 해결)

  • 별 밝기(alpha) 최소치를 둔다:
    • 일반 별: alpha 0.25 ~ 0.55
    • 강조 별(10~20%): alpha 0.55 ~ 0.85
  • 별 크기:
    • 일반: radius 0.7 ~ 1.2
    • 강조: radius 1.2 ~ 1.8
  • 색상은 흰색 계열 유지(과한 색 금지)

B) 속도/전진감(필수)

  • 너무 느리면 먼지/정지처럼 보임 → 최소 속도 확보:
    • z 감소량(또는 speed)은 티어로:
      • 느림(70~85%): 0.006 ~ 0.012
      • 중간(15~30%): 0.012 ~ 0.022
      • 빠름(0~5%): 0.022 ~ 0.030 (과하면 워프 느낌, 최소로)
  • “한 방향”은 수직 낙하가 아니라 소실점 기반 투영으로 만든다.

C) 꼬리(스트릭)는 ‘소수만’ + 길이는 보일 정도로(필수)

  • 별의 7590%는 점(꼬리 없음 또는 13px)
  • 10~25%만 짧은 꼬리:
    • 길이: 4~12px (현재 “안 보임” 이슈 해결을 위해 하한 4px)
  • 긴 꼬리(> 16px) 금지
  • 꼬리는 별 이동 벡터의 반대 방향으로 그린다(선형)

D) X자/과한 방사형(워프) 방지(필수)

  • 소실점(vp)을 정중앙에 두지 말고 살짝 오프셋(위로 + 약간 좌/우 10~30px 랜덤 고정)하여 완벽한 대칭을 깨라.
  • FOV(퍼짐 정도)가 과하면 워프처럼 보임 → z 범위와 투영 스케일을 조정해 “부드럽게” 퍼지도록.
  • 별 개수는 적게 유지해 과한 선 교차 인상을 줄인다.

E) 밀도(저밀도 유지)

  • 데스크탑: 18 ~ 45
  • 모바일: 12 ~ 30
  • 중앙 UI 보호:
    • 타이머 중심 반경 R(예: 150~220px)에서는
      • 별 스폰 확률↓ 또는 alpha 하향(완전 공백 금지)

F) 리사이클(필수)

  • 별이 화면 밖으로 나가거나 z가 임계치 이하가 되면:
    • z를 큰 값으로 재설정하고,
    • x,y는 소실점 주변 영역에서 재스폰(반경 30~120px) → “중심에서 시작” 느낌 유지

G) 모션 접근성(필수)

  • prefers-reduced-motion: reduce:
    • 애니메이션 정지(우선) 또는 speed 10~20%로 감속

Non-scope

  • UI(A안) 변경 금지
  • 타이머 로직 변경 금지
  • 신규 기능 추가 금지
  • 다른 페이지 변경 금지

적용 파일

  • 필수: @src/app/flight/page.tsx

완료 조건(AC)

  • “먼지 낙하(위→아래)” 인상이 사라지고, 원근 전진감(소실점 퍼짐)으로 보인다
  • 별이 ‘확실히 보이는’ 밝기/크기/꼬리(하한 포함)로 개선되었다
  • 과한 대칭 방사형(워프/X자) 인상이 없다(오프셋/스케일로 완화)
  • 저밀도(데스크탑 1845 / 모바일 1230)가 유지되어 산만하지 않다
  • UI는 변경되지 않았다
  • prefers-reduced-motion에서 정지 또는 크게 약화된다

완료 후 출력(최소)

  • 수정된 파일 경로 목록
  • AC 항목별 체크 결과(OK/NO)