# task-624.1: Remotion ShortForm에 에반 6원칙 적용 + MoviePy 비교 벤치마크

## 목표
MoviePy의 에반 6원칙을 Remotion ShortForm에 동일하게 적용하여, **같은 콘텐츠·같은 철학으로 두 엔진의 영상을 비교**할 수 있게 한다.

## 프로젝트 경로
`/home/jay/projects/ThreadAuto/`

## 에반 6원칙 (MoviePy 현재 구현 분석)

### 원칙 1: 검정 배경
- MoviePy: `bg_color: (15, 15, 15)` (styles.py EVAN_STYLE)
- Remotion: 현재 gradient 배경 사용 → **검정 단색으로 통일 필요**

### 원칙 2: 테마 색상 (accent)
- MoviePy: `accent_color: (0, 220, 100)`, `accent2_color: (255, 215, 0)`
- Remotion: 테마 시스템 있음 (themes/types.ts) → 같은 색상 값 적용

### 원칙 3: 레이아웃 변주
- MoviePy: scene_composer.py에서 슬라이드 타입별(cover, card_list, detail, body, cta) 다른 레이아웃
- Remotion: 5개 씬 컴포넌트(Hook, Checklist, Data, Info, CTA) → 타입 매핑 확인

### 원칙 4: 타이핑 애니메이션
- MoviePy: `typing_speed: 12.0` (글자/초), evan_dynamic.py에서 프레임별 글자 수 계산
- Remotion: `useTypingEffect` 훅 있음 (animations/typing.ts) → 같은 속도 적용

### 원칙 5: 시간차 등장
- MoviePy: `element_delay: 0.8`초 간격으로 요소들 순차 등장
- Remotion: 현재 HookScene에서 title(0-20f), body(15-35f) 시간차 있음 → 0.8초 간격으로 통일

### 원칙 6: 다이나믹 효과
- MoviePy: `_ease_out_cubic`, fade_in, scale 등 프레임 단위 이징
- Remotion: `interpolate`, `spring` 사용 → 같은 이징 커브 적용

## 작업 범위

### 1. 에반 6원칙 Remotion 적용
- 기존 `remotion/src/scenes/` 5개 씬 컴포넌트에 에반 스타일 적용
- MoviePy의 `video/styles.py` EVAN_STYLE 값을 Remotion 테마로 정확히 이식
  - bg: `#0F0F0F` (검정)
  - accent: `#00DC64` (초록)
  - accent2: `#FFD700` (골드)
  - typing_speed: 12 chars/sec
  - element_delay: 0.8초
  - fade_duration: 0.5초
  - scene_hold: 2.0초
- HookScene, ChecklistScene, DataScene, InfoScene, CtaScene 각각 업데이트

### 2. 비교 벤치마크 스크립트
- `remotion/comparison/` 디렉토리 생성
- `compare_engines.py`: 같은 슬라이드 JSON 입력으로:
  1. MoviePy 렌더: `video/` 모듈 사용 → `output/comparison/moviepy_{timestamp}.mp4`
  2. Remotion 렌더: `remotion/render_bridge.py` 사용 → `output/comparison/remotion_{timestamp}.mp4`
  - ⚠️ **파일명 겹치지 않게**: `moviepy_` / `remotion_` prefix 필수
- 샘플 슬라이드 JSON: 5장짜리 보험 콘텐츠 (cover + 3 body + cta)

### 3. render_bridge.py의 render_shortform() 연동 확인
- 현재 `render_shortform()` 함수가 있지만, ShortForm composition과 실제 연동되는지 확인
- scene_composer.py의 슬라이드 타입 → Remotion SceneType 매핑 확인/수정
  - MoviePy: cover, card_list, detail, body, summary_cta
  - Remotion: hook, checklist, data, info, cta
  - 매핑: cover→hook, card_list→checklist, detail→data, body→info, summary_cta→cta

### 4. 결과 비교 리포트
- 두 영상의 프레임 스냅샷 비교 (5장면 각 키프레임)
- 비교 항목: 레이아웃 일치도, 애니메이션 부드러움, 텍스트 가독성
- 리포트: `/home/jay/projects/ThreadAuto/remotion/comparison/COMPARISON_REPORT.md`

## 참조 파일 (반드시 읽을 것)
1. `/home/jay/projects/ThreadAuto/video/evan_dynamic.py` — MoviePy 에반 렌더러
2. `/home/jay/projects/ThreadAuto/video/styles.py` — 에반 스타일 프리셋
3. `/home/jay/projects/ThreadAuto/video/scene_composer.py` — 슬라이드→장면 변환
4. `/home/jay/projects/ThreadAuto/remotion/src/compositions/ShortForm/index.tsx` — Remotion ShortForm
5. `/home/jay/projects/ThreadAuto/remotion/src/scenes/` — 5개 씬 컴포넌트
6. `/home/jay/projects/ThreadAuto/remotion/render_bridge.py` — Python↔Remotion 브릿지
7. `/home/jay/projects/ThreadAuto/remotion/src/animations/` — 타이핑, Ken Burns 등

## 보고서
- 경로: `/home/jay/workspace/memory/reports/task-624.1.md`
- 완료: `bash /home/jay/workspace/scripts/finish-task.sh task-624.1`
