# task-462.1 보고서: Threads용 에반 스타일 다이나믹 영상 생성

## 작업 요약
에반(Maker Evan) 스타일로 Threads에 올릴 보험 콘텐츠 영상 1건을 생성했다.
업로드 없이 영상 파일만 제작 완료.

## 에반 레퍼런스 vs 우리 영상 비교

| 항목 | 에반 레퍼런스 | 우리 영상 |
|------|-------------|----------|
| 배경색 | #000000~#111111 다크 | #0C0C12 다크 |
| 강조색 | 녹색 (#00DC64) | 테마 기반 랜덤 (NavyGold: 골드 #C9A84C) |
| 레이아웃 변주 | 매 프레임 다른 배치 | 5장면 모두 다른 레이아웃 |
| 타이핑 애니메이션 | 한 글자씩 등장 | chars_per_second=15 타이핑 |
| 시간차 등장 | 요소별 순차 등장 | delay 기반 staggered animation |
| 시각 요소 | 라운드카드, 필뱃지, 프로그레스바, 아이콘 | 라운드카드, 필뱃지, 프로그레스바 |
| 자막 | 하단 자막 표시 | (미적용 - 추후 추가 가능) |

## 콘텐츠 구성 (5장면, 총 25초)

1. **Hook (5초)**: "보험료, 매달 새고 있진 않나요?" + 절약 뱃지
2. **통계 (5초)**: "78%" 대형 숫자 + "가입 3년 안에 해지" 카드
3. **체크리스트 (6초)**: 3개 카드 순차 등장 (특약정리, 중복확인, 갱신전환)
4. **비교 (5초)**: 프로그레스 바 비교 (미활용 15% vs 풀활용 95%)
5. **CTA (4초)**: "점검하세요" + @서울대보험쌤 뱃지

## 영상 스펙
- 포맷: MP4, H.264
- 해상도: 1080x1920 (세로형)
- 길이: 25초 (15~30초 범위 내)
- FPS: 30
- 파일 크기: 463KB

## 생성/수정 파일 목록

### 신규 파일
- `video/evan_dynamic.py` — 에반 다이나믹 렌더러 (EvanDynamicRenderer 클래스)
- `video/tests/test_evan_dynamic.py` — 테스트 5건

### 산출물
- `/home/jay/projects/ThreadAuto/output/videos/threads_evan_style.mp4` — 영상 파일
- `/home/jay/projects/ThreadAuto/output/videos/threads_evan_style_thumb.png` — 썸네일

## 테스트 결과
- `video/tests/test_evan_dynamic.py`: **5/5 PASSED** (0.82s)
  - test_renderer_init: PASS
  - test_render_single_scene_returns_rgb_frames: PASS
  - test_no_black_frames: PASS
  - test_varied_layouts: PASS
  - test_staggered_delays: PASS

## 기술 구현 핵심
- `EvanDynamicRenderer` 클래스: PIL 기반 프레임별 렌더링
- 4가지 요소 타입: text, rounded_rect, pill_badge, progress_bar
- 애니메이션: typing (글자 순차), fade_in (alpha 블렌딩), progress (easeOutCubic)
- 테마 색상: `renderer/themes.py`의 `get_random_theme()`으로 랜덤 선택
- 중앙 정렬: x="center" 지원 (텍스트 너비 기반 자동 계산)

## 버그 유무
- 없음

## 머지 판단
- **머지 필요**: Yes
- **브랜치**: task/task-462.1-dev1
- **워크트리 경로**: /home/jay/projects/ThreadAuto/.worktrees/task-462.1-dev1
- **머지 의견**: 신규 파일 추가만 있어 충돌 가능성 없음. 테스트 5/5 통과. 기존 코드 수정 없음.
