Communitygithub.com

모션 그래픽 비디오 · 포트폴리오급 동적 그래픽 비디오

포트폴리오급 동적 그래픽 비디오(15/30/60/사용자 지정 초)를 제작합니다: 다큐멘터리 증거 흐름 + 리퀴드 글래스 디자인 시스템 + 데이터 기반 타임라인 + TTS 나레이션 + 청크 렌더링 및 완전 검수를 제공합니다.

모션 그래픽 비디오 · 포트폴리오급 동적 그래픽 비디오란 무엇인가요?

이 스킬은 사용자가 요청한 주제에 대해 포트폴리오에 넣을 수 있는 수준의 동적 그래픽 비디오(motion graphics video)를 제작합니다. 15초, 30초, 60초 또는 사용자 지정 길이를 지원하며, 다큐멘터리 스타일의 사실 기반 증거 제시, 리퀴드 글래스 디자인 시스템, 데이터 기반 타임라인, TTS 나레이션, 청크 렌더링 및 완전 검수 프로세스를 포함합니다. 사용자는 작업 시작 전에 반드시 세 가지 정보(주제, 메인 모델, TTS 모델)를 제공해야 하며, Qwen 시리즈 모델 사용을 권장합니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있으며, 전체 제작 파이프라인(사실 확인 → 자료 수집 → 모션 학습 → 비주얼 시스템 → 타임라인 → 나레이션 → 렌더링 → 믹싱 → 검수)을 자동화합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qingtengCHINA/motion-graphics-video/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

모션 그래픽 비디오 · 포트폴리오급 동적 그래픽 비디오은(는) 무엇을 하나요?

「한 편의 비디오」를 하나의 동적 디자인 작품처럼 제작합니다. 마치 이력서의 포트폴리오처럼, 최고의 결과물을 낼 수 있는 도구와 기술을 자유롭게 사용하세요. 에이전트는 완전한 창작의 자유를 가지며, 뛰어난 비주얼 디자인, 대담한 아트 디렉션, 시선을 사로잡는 구성, 힘 있는 모션 표현을 우선시하여 매 순간을 가치 있게 만듭니다. 모든 것을 쏟아부으세요. 이 스킬은 201초 분량의 다큐멘터리급 완성작의 전체 공정(사실 확인 → 증거 수집 → 모션 학습 → 비주얼 시스템 → 데이터 기반 타임라인 → 더빙 리드백 → 청크 렌더링 → 4트랙 믹싱 → 항목별 검수)으로부터 정제되었습니다.


0. 작업 시작 전: 사용자에게 반드시 물어야 할 세 가지(생략 불가)

AskUserQuestion(또는 이와 동등한 질문)을 사용하여 한 번에 수집하세요. 하나라도 빠지면 작업을 시작하지 마세요:

  1. 요구사항 / 주제 — 비디오에서 무엇을 다루나요? 대상 시청자와 게재 상황은? 반드시 등장해야 하는 사실, 제품, 인물, 브랜드 컬러가 있나요? 동시에 길이 옵션을 제공하세요: 15 / 30 / 60 / 사용자 지정 초(기본 60). 길이는 예산일 뿐, 최종값은 콘텐츠 밀도와 나레이션 길이에 따라 역산됩니다.
  2. 메인 모델 — 기획, 카피라이팅, 코드, 스케줄링을 담당할 모델입니다. Qwen 시리즈를 추천합니다(예: Qwen4-Max / Qwen3.8-Plus): 긴 컨텍스트는 전체 타임라인과 멀티 파일 프로젝트에 유리하며, 중국어 카피라이팅과 사실 확인 품질이 안정적입니다. 사용자가 다른 모델을 지정할 수도 있으며, 그 선택을 존중합니다.
  3. 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. 공정 파이프라인(실행 순서)

  1. 세 가지 질문 → data/brief.json에 저장.
  2. 사실 확인 → data/facts.md: 각 항목별 URL + 통계 시점 + 통계 기준 차이; 표현 수정표(「처음으로/타이/최초 돌파」등 과장 표현 삭제, 증거 원문에 있는 경우 제외).
  3. 자료 및 앵커 → Playwright dpr2 전체 페이지 스크린샷 + anchors.json(DOM 바운딩 박스/문자 수준 Range)+ meta.json(capturedAt/sha256); 스크롤 샷은 프레임별 scrollTo 스크린샷으로 30fps 부드러움 보장; 터미널/사고 흐름 등 텍스트는 반드시 실제 실행 또는 공식 공개 예시에서 가져와야 함.
  4. 모션 학습 → snapcn 컴포넌트 라이브러리 탐색, 기본 동작(문구 스프링 등장, 사양 스캔 라이트, 숫자 낙하, 꺾은선 포인트 라이딩, 모델 월 드리프트, 가라오케 자막 등) 추출, 자체 구현, 멤버 코드 베끼지 않음.
  5. 비주얼 시스템 → 팔레트/폰트/유리 재질/안전 영역/전환 표현/텍스처 구역(각 챕터마다 하나의 텍스처와 하나의 시그니처 샷).
  6. 나레이션 → 문장별 TTS + 발음 대체표(예: QwQ→Q W Q)+ 무음 트리밍 + 음량 정규화; 로컬 Whisper로 다시 읽어 비교, 낮은 점수 문장 재합성.
  7. 비트 및 타임라인 → librosa 비트 맵; 샷 길이 = max(예산, 여백+나레이션+여백); 컷 포인트를 비트에 맞춤; 청크 경계 = 컷 포인트; timeline.gen.json 출력, 각 장면은 상대 프레임만 참조.
  8. 렌더링 → Remotion 청크 렌더링(CRF16, yuv420p, BT.709), 실패 시 동시 렌더링 수를 줄여 재시도; 연결 후 인코딩.
  9. 믹싱 → 나레이션/배경 음악 2트랙(기본 음향 효과 없음); 덕킹 + 챕터 로우패스 + 문장 앞 무음; 2회 loudnorm(I=−16, TP≤−2로 AAC 여유 확보).
  10. 검수 및 납품 → 섹션 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), 인코딩 후 재측정.

관련 스킬