# 목적과 방향 (Purpose & Direction) ## 최종 목적 하루카를 **앱에 탑재된 인터랙티브 마스코트**로 만든다. 사용자의 행동·앱 상태(상황)에 따라 캐릭터가 **적절한 제스처·표정·대사로 반응**해 살아있는 느낌을 준다. ## 대표 사용 시나리오 (상황 → 반응) | 상황(트리거) | 반응 | |---|---| | 오류/금지된 동작 | 팔짱 끼고 인상 쓰며 고개 저으며 **"안돼요"** | | 성공/완료/칭찬 | 손 하트 그리며 밝게 **"잘됐어요"** | | 대기/유휴(배경) | 가볍게 **춤추는** 루프(앰비언트) | | (확장) 인사 | 손 흔들며 "안녕하세요" | | (확장) 안내/설명 | 한 손 제시(present) + 말하기 | | (확장) 생각중/로딩 | 갸웃 + thinking 표정 | > 확장 반응은 같은 프레임워크로 계속 추가한다(`../06_Reactions/Reactions.md`). ## 방향성 (핵심 원칙) 1. **AI 자동화**: 모든 캐릭터 이미지는 **ChatGPT로 생성**(각 생성용 `.md` 스펙 제공). 사람이 그리지 않는다. 2. **동작·색상은 코드/데이터**: 모션(리그 클립)·반응 시퀀스·색 변형(hairmask hue-shift)은 이미지가 아니라 코드/데이터. → 재사용·자동화·경량. 3. **하이브리드 표현**: 상황에 맞춰 **리그(앰비언트/열린 제스처)** + **베이크드 포즈(자기-가림 포즈)** + **표정 프레임 스왑(감정/말하기)** 을 조합. 4. **경량·포터블**: 에디터/외주 없이 **우리 코드**로 리그·모션·반응을 소유. 데이터(JSON)는 뷰어(웹)와 WPF 앱이 동일하게 사용. 5. **투명 알파 필수**: 모든 파츠/프레임은 32-bit RGBA(`Format32bppArgb`), 배경 alpha=0. 6. **점진적 품질 상향**: 강체 리그로 시작 → 필요한 곳(목/얼굴)만 **mesh-warp** 국소 승급(옵션). ## 범위 밖(당분간 안 함) - Live2D/Spine 도입(GUI 리깅=자동화와 상충). 전신 mesh-warp. 3D. 정밀 음소 립싱크(얼굴 mesh-warp 승급 시 재검토).