Motion Proof
당신은 코드로 애니메이션 비디오를 만듭니다. 모든 프레임은 하나의 프로그램(Remotion, React 사용)에서 생성됩니다. 'AI 티가 나는' 영상과 전문적인 영상을 가르는 요소는 거의 항상 두 가지입니다. 바로 움직임(곡선, 리듬, 숨 쉬는 듯한 멈춤)과 리뷰(프레임 단위로 보고 측정하는 것)입니다. 이 스킬은 이 두 가지를 모두 제공합니다.
시작하기 전에
- 도구를 확인하세요:
node --version(20 이상) 및ffmpeg -version. 웹 버전을 위해서는 libvmaf가 포함된 ffmpeg가 필요합니다 (ffmpeg -filters에libvmaf가 나열되어 있어야 함). - Remotion 프로젝트가 없다면
npx create-video --yes --blank mi-video로 생성하고,npx remotion skills add로 공식 스킬을 추가하세요. Remotion API 관련 질문이 있을 때 이 스킬들을 사용하세요. remotion.config.ts에Config.setColorSpace("bt709");를 추가하세요. 이렇게 하지 않으면 비디오가 전체 범위(yuvj420p)로 출력되어 일부 재생기에서 색상이 변경됩니다.plantilla/movimiento.ts를 프로젝트(예:src/lib/movimiento.ts)로 복사하고plantilla/Ejemplo.tsx를 참고하여 패턴(스프링이 있는 계단식 진입, 드리프트, 카메라 푸시, 클릭 및 모션 블러)을 확인하세요.scripts/폴더의 프로그램은node <이 스킬 폴더>/scripts/<프로그램>.mjs로 실행합니다. 별도 설치가 필요하지 않습니다.
프로세스
- 브리핑 (Brief). 제품이 무엇인지, 대상이 누구인지, 시청자가 최종적으로 무엇을 해야 하는지, 포맷(16:9, 9:16, 1:1) 및 길이를 파악합니다. 중요한 정보가 누락된 경우 진행하기 전에 질문하세요.
- 시각적 스토리보드 (Guion visual) 를
referencias/guion-visual.md에 작성합니다: 각 장면은 시작 프레임과 끝 프레임이 정확히 명시되어야 하며, 총 길이에 합산되어야 합니다. 사용자가 승인할 때까지 애니메이션을 만들지 마세요. - 단일 설정 파일 (Un solo archivo de configuración) 에 텍스트, 숫자, 색상 및 시간을 저장합니다. 텍스트 변경은 한 줄이면 되며, 시간 값은 이미지와 사운드가 동일한 위치에서 읽습니다.
- 애니메이션 (Animar) 은
referencias/movimiento.md를 따라 진행하세요. 먼저 'AI를 드러내는 것들' 목록을 읽으세요. - 테스트 프레임 (Cuadros de prueba) (
npx remotion still또는renderStill)을 각 장면 전환 및 모든 카메라 움직임에서 생성하세요. 전체 렌더링 전에 확인하세요. 카메라를 한 지점으로 확대하면 그 지점에서 먼 곳은 바깥쪽으로 밀려납니다. 모든 카메라 편집은 프레임 단위로 검토됩니다. - 렌더링 (Render) 은 H.264 (yuv420p, bt709) 60fps로 합니다. 세로 및 정사각형 비디오는 다른 장면 구성으로 재조립되며, 가로 비디오를 자르지 않습니다.
- 사운드 (Sonido) 는
referencias/sonido.md를 따릅니다:unir.mjs로 음악을 합치고volumen.mjs로 -14 LUFS로 설정합니다. - 측정 (Medir) 은
medir.mjs로 합니다. 실패할 경우 비디오를 수정합니다. 측정 도구는 오류가 거짓이고 측정을 통해 증명된 경우에만 변경하며, 그 경우 납품 시에 알립니다. - 육안 검토 (Revisar a ojo) 는
cuadros.mjs(프레임 시트)와referencias/revision.md목록을 사용합니다. - 웹 버전 (Versión web) 은
web.mjs로 필요한 경우 가벼운 파일을 생성합니다. - 납품 (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를 추가하세요.