모션 그래픽 비디오 · 포트폴리오급 동적 그래픽 비디오은(는) 무엇을 하나요?
「한 편의 비디오」를 하나의 동적 디자인 작품처럼 제작합니다. 마치 이력서의 포트폴리오처럼, 최고의 결과물을 낼 수 있는 도구와 기술을 자유롭게 사용하세요. 에이전트는 완전한 창작의 자유를 가지며, 뛰어난 비주얼 디자인, 대담한 아트 디렉션, 시선을 사로잡는 구성, 힘 있는 모션 표현을 우선시하여 매 순간을 가치 있게 만듭니다. 모든 것을 쏟아부으세요. 이 스킬은 201초 분량의 다큐멘터리급 완성작의 전체 공정(사실 확인 → 증거 수집 → 모션 학습 → 비주얼 시스템 → 데이터 기반 타임라인 → 더빙 리드백 → 청크 렌더링 → 4트랙 믹싱 → 항목별 검수)으로부터 정제되었습니다.
0. 작업 시작 전: 사용자에게 반드시 물어야 할 세 가지(생략 불가)
AskUserQuestion(또는 이와 동등한 질문)을 사용하여 한 번에 수집하세요. 하나라도 빠지면 작업을 시작하지 마세요:
- 요구사항 / 주제 — 비디오에서 무엇을 다루나요? 대상 시청자와 게재 상황은? 반드시 등장해야 하는 사실, 제품, 인물, 브랜드 컬러가 있나요?
동시에 길이 옵션을 제공하세요:
15 / 30 / 60 / 사용자 지정초(기본 60). 길이는 예산일 뿐, 최종값은 콘텐츠 밀도와 나레이션 길이에 따라 역산됩니다. - 메인 모델 — 기획, 카피라이팅, 코드, 스케줄링을 담당할 모델입니다. Qwen 시리즈를 추천합니다(예: Qwen4-Max / Qwen3.8-Plus): 긴 컨텍스트는 전체 타임라인과 멀티 파일 프로젝트에 유리하며, 중국어 카피라이팅과 사실 확인 품질이 안정적입니다. 사용자가 다른 모델을 지정할 수도 있으며, 그 선택을 존중합니다.
- TTS 모델 — 나레이션 더빙을 담당할 모델입니다.
Qwen TTS 음성 시리즈를 강력히 추천합니다(예:
qwen-audio-3.0-tts-plus): 음색과 말투 instruction을 지원하며, 다큐멘터리 스타일의 자연스러운 어조를 제공합니다. 음색, 말투 instruction, 언어를 함께 확인해야 합니다.
추가로 확인해야 할 사항(기본값 제공 가능): 시각적 스타일 선호도, 해상도/프레임레이트(기본 1920×1080@30), 배경 음악 필요 여부(기본 필요), 음향 효과 필요 여부(기본 추가하지 않음 — 합성 효과음은 싸구려로 느껴질 수 있으므로, 사용자가 명시적으로 요청하지 않는 한 추가하지 않음), 사용자가 제공하는 참고 파일/이미지/웹사이트 주소.
API 키 규율: 모든 API Key는 프로젝트 .env 파일에만 기록하고 .gitignore에 추가합니다. 문서, 메모리, 로그, 대화 내용에 절대 기록하지 않습니다.
1. 메인 프롬프트(최적화 버전 · 슬롯은 사용자 입력에 따라 변경)
다음 프롬프트를 창작 강령으로 실행 에이전트에 전달합니다. {{…}}는 슬롯이며, 섹션 0에서 수집한 결과로 채웁니다:
{{DURATION}}초 분량의 동적 그래픽 비디오를 제작하세요. 이력서의 포트폴리오처럼 당신의 동적 디자이너로서의 역량을 보여주세요.
주제: {{THEME}}.
당신은 완전한 창작의 자유를 가지며, 최고의 결과물을 낼 수 있는 모든 도구와 기술을 사용하세요. 뛰어난 비주얼 디자인, 대담한 아트 디렉션,
시선을 사로잡는 구성과 힘 있는 모션 표현을 우선시하여 매 순간을 가치 있게 만드세요. 모든 것을 쏟아부으세요.
기획과 코드는 {{MAIN_MODEL}}이 담당합니다. 나레이션은 {{TTS_MODEL}}이 합성합니다(음색 {{VOICE}}, 말투 {{TTS_INSTRUCTION}}).
시각적 스타일: {{STYLE}}; 화면 비율 {{RESOLUTION}}@{{FPS}}fps; 배경 음악 {{MUSIC}}; 음향 효과 {{SFX}}.
UI, 기호, 실제 자료, 비디오 자료, 배경 음악이 필요한 경우 직접 검색, 다운로드하여 사용하세요.
사용자가 제공한 파일, 이미지, 웹사이트 주소를 반드시 하나씩 확인하고 참고하세요: {{REFERENCES}}.
먼저 https://snapcn.dev/docs/components 의 모션 효과 사례를 살펴보고, 다양한 장점을 흡수한 후 작업을 시작하세요. 멤버 전용 컴포넌트는 아이디어만 참고하고, 결제 및 인증을 우회하지 마세요.
공정 요구사항(타협 불가):
1 사실: 화면에 표시되는 모든 숫자/날짜/인용문은 출처 URL과 통계 시점을 함께 표시해야 합니다. 최근 1년 이내의 사건은 최소 2개의 독립적인 출처가 필요합니다. 표현은 증거보다 과장되어서는 안 됩니다.
2 증거: 실제 스크린샷/녹화/논문 페이지를 전체 화면 또는 유리 플로팅 윈도우로 표시합니다. 수집 시 DOM 앵커를 기록해야 하며, 확대 및 밑줄 표시는 항상 텍스트와 일치해야 합니다.
역사적 장면은 우선 Wayback 스냅샷을 사용합니다. 팝업은 수집 단계에서 숨깁니다. 크롤링 방지 및 사람 인증을 우회하지 마세요.
3 촬영: 세 가지 샷 크기(WIDE/MID/MACRO), 각 샷은 move → settle(≥18프레임, 0.5% 호흡 드리프트만 허용) → exit로 구성됩니다.
도달 시 부드러운 베지어 가속/감속을 사용하며, 선형 카메라 움직임은 금지됩니다. 확대 한도는 1.8배로, 강조하려는 콘텐츠가 안전 영역 내에 완전히 포함되도록 해야 합니다.
4 연속성: 게슈탈트 연속성의 법칙을 따릅니다. 모든 요소는 갑자기 나타나거나 사라져서는 안 되며, 등장과 퇴장 모두에 애니메이션이 있어야 합니다. 전환 표현은 고정되어 있으며 각각 고유한 의미를 가집니다.
5 레이아웃: 안전 영역 ≥96px; 동일 화면 내 텍스트는 2개 레이어 이하(자막 + 제목 또는 숫자 하나); 자막은 고정 위치에, 단어별로 색상이 채워지며, 다른 애니메이션에 참여하지 않습니다.
화면 텍스트는 나레이션을 반복하지 않으며, 날짜/모델명/수치/출처만 표시합니다. 화면 텍스트는 문장 끝에 마침표를 붙이지 않습니다.
6 재질: 카드/플로팅 윈도우/패널은 통일된 리퀴드 글래스 스타일(frost≈18px, rim≈0.22, bend≈0.45, dispersion≈0.35);
팔레트는 주제에서 7–8색을 추출하며, 강조 색상은 마커펜 효과로만 사용합니다. 그레인과 비네트는 유지합니다. 빠른 움직임이 있는 경우에만 모션 블러와 색수차를 활성화합니다.
7 리듬: 하드 컷은 배경 음악 비트에 맞춥니다(±3프레임). 문제 카드/제목 타이핑이 완료된 후에는 최소 1.5초 이상 머물러야 합니다. 목록 및 벽 형태의 콘텐츠는 최소 3초 이상 머물러야 합니다.
길이는 콘텐츠에 의해 결정되며, 길이를 맞추기 위해 빠르게 컷을 하거나, 시간을 줄이기 위해 머무는 시간을 줄이지 마세요.
8 사운드: 나레이션 −16 LUFS; 배경 음악은 나레이션 구간에서 6–9dB 덕킹(attack≈150ms/release≈400ms); 챕터의 감정 변화에 따라 로우패스/무음을 사용하여 숨을 고를 수 있습니다.
기본적으로 음향 효과는 추가하지 않습니다. 버스 트루 피크 ≤ −1 dBTP.
9 엔지니어링: 타임라인은 스크립트가 나레이션 길이를 기반으로 역산하여 생성하며, 각 장면은 상대 프레임만 참조합니다. 청크 렌더링의 경계는 컷 포인트에 위치합니다. 렌더링 실패 시 동시 렌더링 수를 줄여 재시도합니다.
10 납품: 하나의 비디오 파일 + 하나의 완전한 대본(스토리보드/나레이션/화면 텍스트/자료/모션 효과/출처)만 납품합니다. 중간 산출물은 삭제하지 않고 휴지통으로 이동합니다.
검수(납품 파일을 실제로 측정하여 항목별 자체 점검): 프레임 수 = 타임라인; 해상도/프레임레이트; I≈−16 LUFS 및 TP≤−1 dBTP; blackdetect에서 예상치 못한 완전 검은 화면 없음;
연속 1.5초 이상 정지 없음; 청크 경계에서 중복/프레임 누락 없음; ≥70% 하드 컷이 비트에 맞춰짐; 각 샷의 settle 중간점에서 contact sheet로 육안 검사;
움직임 샷은 4프레임 간격 시퀀스로 easing과 블러를 확인; 나레이션은 문장별로 다시 읽어 비교(문자 수준 타임스탬프 또는 로컬 Whisper 사용); 출처 목록이 화면의 실제 출처와 일치함.
슬롯 테이블(사용자 입력/선택에 따라 유연하게 변경)
| 슬롯 | 출처 | 기본값 |
|---|---|---|
{{DURATION}} | 섹션 0 길이 선택 | 60 |
{{THEME}} | 사용자 요구사항 원문 | 필수 |
{{MAIN_MODEL}} | 사용자 선택 | Qwen3-Max(권장) |
{{TTS_MODEL}} / {{VOICE}} / {{TTS_INSTRUCTION}} | 사용자 선택 | qwen-audio-3.0-tts-plus / 차분한 다큐멘터리 음색 / 차분하고 중후하며 무게감 있고, 말하기 속도 적절 |
{{STYLE}} | 사용자 선택 | 리퀴드 글래스 다큐멘터리 |
{{RESOLUTION}} / {{FPS}} | 사용자 선택 | 1920×1080 / 30 |
{{MUSIC}} / {{SFX}} | 사용자 선택 | 필요함(CC 라이선스 트랙) / 추가하지 않음 |
{{REFERENCES}} | 사용자가 제공한 파일/이미지/URL | 없으면 비워두고 직접 검색 |
2. 공정 파이프라인(실행 순서)
- 세 가지 질문 →
data/brief.json에 저장. - 사실 확인 →
data/facts.md: 각 항목별 URL + 통계 시점 + 통계 기준 차이; 표현 수정표(「처음으로/타이/최초 돌파」등 과장 표현 삭제, 증거 원문에 있는 경우 제외). - 자료 및 앵커 → Playwright dpr2 전체 페이지 스크린샷 +
anchors.json(DOM 바운딩 박스/문자 수준 Range)+meta.json(capturedAt/sha256); 스크롤 샷은 프레임별scrollTo스크린샷으로 30fps 부드러움 보장; 터미널/사고 흐름 등 텍스트는 반드시 실제 실행 또는 공식 공개 예시에서 가져와야 함. - 모션 학습 → snapcn 컴포넌트 라이브러리 탐색, 기본 동작(문구 스프링 등장, 사양 스캔 라이트, 숫자 낙하, 꺾은선 포인트 라이딩, 모델 월 드리프트, 가라오케 자막 등) 추출, 자체 구현, 멤버 코드 베끼지 않음.
- 비주얼 시스템 → 팔레트/폰트/유리 재질/안전 영역/전환 표현/텍스처 구역(각 챕터마다 하나의 텍스처와 하나의 시그니처 샷).
- 나레이션 → 문장별 TTS + 발음 대체표(예: QwQ→Q W Q)+ 무음 트리밍 + 음량 정규화; 로컬 Whisper로 다시 읽어 비교, 낮은 점수 문장 재합성.
- 비트 및 타임라인 → librosa 비트 맵; 샷 길이 = max(예산, 여백+나레이션+여백); 컷 포인트를 비트에 맞춤; 청크 경계 = 컷 포인트;
timeline.gen.json출력, 각 장면은 상대 프레임만 참조. - 렌더링 → Remotion 청크 렌더링(CRF16, yuv420p, BT.709), 실패 시 동시 렌더링 수를 줄여 재시도; 연결 후 인코딩.
- 믹싱 → 나레이션/배경 음악 2트랙(기본 음향 효과 없음); 덕킹 + 챕터 로우패스 + 문장 앞 무음; 2회 loudnorm(I=−16, TP≤−2로 AAC 여유 확보).
- 검수 및 납품 → 섹션 1 검수 목록을 항목별로 실제 측정; contact sheet + 움직임 시퀀스 육안 검사; 중간 산출물 정리(휴지통으로 이동); 단일 비디오 + 대본.md 납품.
3. 엄격한 제약 사항
- API 키는
.env에만 저장(.gitignore에 포함); 문서/로그/대화에 절대 표시 금지. - 삭제는 항상
~/.Trash로 이동,rm명령어 사용 금지. - 크롤링 방지, 사람 인증, 유료화 장벽을 우회하지 않음; 차단될 경우 출처를 변경하고 사실 표에 메모.
- 하나의 비디오 파일만 납품; 재창작된 화면에는 반드시 각주로 「모의 애니메이션」 표시.
- 화면 텍스트와 나레이션은 분리; 화면 텍스트는 문장 끝에 마침표 없음; 나레이션의 숫자는 아라비아 숫자를 사용하고 천 단위 쉼표 없음.
4. 일반적인 실패 및 대체 방법
- 느린 로딩 페이지의 앵커 누락 → 수집 전에 미리 스크롤 + 누락된 앵커에 대해
scrollIntoViewIfNeeded재시도; 장면 정지점/프레임 수는 실제 앵커를 기준으로 동적 계산하여 음성과 영상 동기화 보장. - 내부 스크롤 컨테이너 페이지의 fullPage 스크린샷 불완전 →
fullPage:true+ clip; 매우 긴 페이지는 앵커 기준으로 부분 자른 후 앵커 좌표 재조정. - 팝업/리디렉션 모달 → 수집 단계에서 CSS로 숨기거나 텍스트 위치 기반으로 fixed/absolute 부모 숨김; 클릭 시 이동하는 버튼은 클릭하지 않음.
- 디바이스 외부 케이스 화면 불투명 → 녹화 레이어를 외부 케이스 PNG 위에 배치, 템플릿의 화면 비율에 따라 자름.
- 확대 시 중요 텍스트 잘림 → 확대 한도 1.8배 + 포커스 사각형이 안전 영역에 완전히 포함되도록; 패널 내 크롭 창은 cx/cy를 사용하여 패널 중앙에 정렬.
- 정지 감지 오탐 → 「평균 + 변화 픽셀 비율」 이중 지표 사용, 960×540@10fps; settle은 0.5% 호흡 드리프트 유지.
- AAC 트루 피크 초과 → loudnorm 목표 TP에 0.5–1dB 여유(예: −2.2), 인코딩 후 재측정.