Communitygithub.com

motion-proof

Remotion 코드를 사용하여 15~60초 분량의 런칭 비디오와 모션 그래픽을 제작합니다. 모션 디자이너의 움직임 규칙과 자동 제어(정지 프레임, 검은 화면, 볼륨, 웹 최적화 품질)를 적용하여 결과물이 AI로 만든 것처럼 보이지 않게 합니다. 런칭 비디오, 제품 또는 UI 애니메이션, 모션 그래픽 요청이나 이미 렌더링된 비디오 검토 시 사용하세요.

motion-proof란 무엇인가요?

이 스킬은 Remotion(React 기반)을 사용하여 코드로 애니메이션 비디오를 제작하는 전문적인 워크플로우를 제공합니다. AI가 만든 듯한 '인공스러운' 비디오와 전문적인 비디오의 차이는 주로 움직임(곡선, 리듬, 자연스러운 멈춤)과 리뷰(프레임 단위 확인 및 측정)에 있습니다. 이 스킬은 이 두 가지를 모두 다룹니다. 브리핑, 시각적 스토리보드, 단일 설정 파일, Remotion 애니메이션, 렌더링, 사운드 추가(LUFS 노멀라이즈), 품질 측정, 사람의 눈으로 검토, 웹 버전 생성 등 완전한 파이프라인을 안내합니다. 또한 H.264(yuv420p, bt709) 60fps 출력, 수학적 움직임 규칙, 프레임 정확도, 자동화된 검증 스크립트 등 엄격한 규칙을 적용합니다. 이 스킬은 Remotion 프로젝트에서 작동하며, Node.js 20+, ffmpeg(웹 버전의 경우 libvmaf 포함), 그리고 `medir.mjs`, `cuadros.mjs`, `unir.mjs`, `volumen.mjs`, `web.mjs` 같은 제공된 스크립트를 사용합니다. 주요 사용 사례는 제품 런칭 비디오, UI/모션 그래픽 데모, 그리고 기존 비디오의 프레임 정확도 및 품질 검토입니다.

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

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

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

문서

Motion Proof

당신은 코드로 애니메이션 비디오를 만듭니다. 모든 프레임은 하나의 프로그램(Remotion, React 사용)에서 생성됩니다. 'AI 티가 나는' 영상과 전문적인 영상을 가르는 요소는 거의 항상 두 가지입니다. 바로 움직임(곡선, 리듬, 숨 쉬는 듯한 멈춤)과 리뷰(프레임 단위로 보고 측정하는 것)입니다. 이 스킬은 이 두 가지를 모두 제공합니다.

시작하기 전에

  1. 도구를 확인하세요: node --version (20 이상) 및 ffmpeg -version. 웹 버전을 위해서는 libvmaf가 포함된 ffmpeg가 필요합니다 (ffmpeg -filters에 libvmaf가 나열되어 있어야 함).
  2. Remotion 프로젝트가 없다면 npx create-video --yes --blank mi-video로 생성하고, npx remotion skills add로 공식 스킬을 추가하세요. Remotion API 관련 질문이 있을 때 이 스킬들을 사용하세요.
  3. remotion.config.ts에 Config.setColorSpace("bt709");를 추가하세요. 이렇게 하지 않으면 비디오가 전체 범위(yuvj420p)로 출력되어 일부 재생기에서 색상이 변경됩니다.
  4. plantilla/movimiento.ts를 프로젝트(예: src/lib/movimiento.ts)로 복사하고 plantilla/Ejemplo.tsx를 참고하여 패턴(스프링이 있는 계단식 진입, 드리프트, 카메라 푸시, 클릭 및 모션 블러)을 확인하세요.
  5. scripts/ 폴더의 프로그램은 node <이 스킬 폴더>/scripts/<프로그램>.mjs로 실행합니다. 별도 설치가 필요하지 않습니다.

프로세스

  1. 브리핑 (Brief). 제품이 무엇인지, 대상이 누구인지, 시청자가 최종적으로 무엇을 해야 하는지, 포맷(16:9, 9:16, 1:1) 및 길이를 파악합니다. 중요한 정보가 누락된 경우 진행하기 전에 질문하세요.
  2. 시각적 스토리보드 (Guion visual) 를 referencias/guion-visual.md에 작성합니다: 각 장면은 시작 프레임과 끝 프레임이 정확히 명시되어야 하며, 총 길이에 합산되어야 합니다. 사용자가 승인할 때까지 애니메이션을 만들지 마세요.
  3. 단일 설정 파일 (Un solo archivo de configuración) 에 텍스트, 숫자, 색상 및 시간을 저장합니다. 텍스트 변경은 한 줄이면 되며, 시간 값은 이미지와 사운드가 동일한 위치에서 읽습니다.
  4. 애니메이션 (Animar) 은 referencias/movimiento.md를 따라 진행하세요. 먼저 'AI를 드러내는 것들' 목록을 읽으세요.
  5. 테스트 프레임 (Cuadros de prueba) (npx remotion still 또는 renderStill)을 각 장면 전환 및 모든 카메라 움직임에서 생성하세요. 전체 렌더링 전에 확인하세요. 카메라를 한 지점으로 확대하면 그 지점에서 먼 곳은 바깥쪽으로 밀려납니다. 모든 카메라 편집은 프레임 단위로 검토됩니다.
  6. 렌더링 (Render) 은 H.264 (yuv420p, bt709) 60fps로 합니다. 세로 및 정사각형 비디오는 다른 장면 구성으로 재조립되며, 가로 비디오를 자르지 않습니다.
  7. 사운드 (Sonido) 는 referencias/sonido.md를 따릅니다: unir.mjs로 음악을 합치고 volumen.mjs로 -14 LUFS로 설정합니다.
  8. 측정 (Medir) 은 medir.mjs로 합니다. 실패할 경우 비디오를 수정합니다. 측정 도구는 오류가 거짓이고 측정을 통해 증명된 경우에만 변경하며, 그 경우 납품 시에 알립니다.
  9. 육안 검토 (Revisar a ojo) 는 cuadros.mjs(프레임 시트)와 referencias/revision.md 목록을 사용합니다.
  10. 웹 버전 (Versión web) 은 web.mjs로 필요한 경우 가벼운 파일을 생성합니다.
  11. 납품 (Entregar) 할 때는 mp4, 측정 결과, 그리고 확인할 수 없었던 사항(예: 아무도 사운드를 듣지 못한 경우)을 함께 전달합니다.

고정 규칙

  • 모든 프레임은 프레임 번호만으로 생성되며, 모션 블러로 인해 소수점을 가질 수 있습니다. useState, setTimeout, CSS 전환 또는 고정 시드 없는 Math.random()은 사용하지 마세요.
  • 타이포그래피는 첫 번째 프레임 전에 로드됩니다. Times New Roman이 표시되는 프레임은 오류입니다.
  • 어떤 것도 직선이나 일정한 속도로 움직이지 않으며, 완전히 정지해 있지도 않습니다.
  • 중요한 텍스트는 최소 1.5초 동안 화면에 표시됩니다. 카운터는 약 1초에 걸쳐 올라갑니다.
  • 의도적으로 화면 밖으로 나가는 경우가 아니라면 어떤 것도 프레임 밖으로 나가지 않습니다.
  • 확인되지 않은 사항은 '확인되지 않음'이라는 표현으로 명시합니다.

명령어

node scripts/medir.mjs video.mp4 --ancho 1920 --alto 1080 --fps 60 --duracion 30 --informe medicion.json
node scripts/cuadros.mjs video.mp4 hoja.png --cantidad 12
node scripts/cuadros.mjs video.mp4 cambios.png --segundos 4.5,9,15.2,22
node scripts/unir.mjs video-mudo.mp4 musica.wav con-sonido.mp4
node scripts/volumen.mjs con-sonido.mp4 final.mp4
node scripts/web.mjs final.mp4 web.mp4 --poster poster.jpg --segundo 28

medir.mjs는 조건을 충족하면 종료 코드 0을, 그렇지 않으면 1을 반환하며 각 오류를 텍스트로 나열합니다. cuadros.mjs는 비디오의 여러 순간을 한 번에 검토할 수 있는 이미지를 생성합니다. 무음 비디오의 경우 medir.mjs에 --mudo를 추가하세요.

관련 스킬