Communitygithub.com

MotionKit

프리미엄/리퀴드/컷 없는 모션 그래픽 생성 스킬. Apple, OpenAI, Anthropic 스타일의 네온 림라이트, 글래스, 메타볼 효과를 HyperFrames로 제작하며 사용자 제공 음악에 맞춰 애니메이션됩니다.

MotionKit란 무엇인가요?

MotionKit은 프리미엄 리퀴드 모션 그래픽을 제작하기 위한 전문 AI 에이전트 스킬입니다. HyperFrames 기반으로 구축되었으며 Apple, OpenAI, Anthropic 등 최고 제품 영화에서 볼 수 있는 부드럽고 유려한 전환과 네온 림, 글래스 오브, 메타볼 형태 변환을 제공합니다. 모든 장면은 '컷 없음' 원칙에 따라 캐리어(carrier) 기법으로 자연스럽게 연결되며, 사용자가 제공한 음악 트랙에 맞춰 비트와 코드 진행을 동기화합니다. 캠코더는 항상 3D 세계에서 움직이며(프레임의 65% 이상), 깊이 계층과 시차 효과로 전문적인 깊이감을 창출합니다. 이 스킬은 Claude Code, Cursor 등 다양한 AI 코딩 에이전트에서 사용할 수 있으며, 사전 정의된 스타일(Styles), 프리미티브(Primitives), 엘리먼트(Elements) 라이브러리를 참조하여 물방울처럼 매끄러운 이징, 스쿼시/스트레치, 재질 변화를 자동으로 적용합니다. 사용자는 음악 파일만 제공하면 되며, MotionKit은 분석된 음악 구조에 따라 장(chapter)을 나누고 각 장면에 적합한 캠코더 이동과 시각적 효과를 자동 배치합니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/DyneStein/motionkit/tree/main/skill

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

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

문서

MotionKit은(는) 무엇을 하나요?

킷 루트: 이 스킬이 위치한 폴더의 상위 폴더($KIT; 스킬이 심링크된 경우 링크 해결 — 예: ~/.claude/skills/motionkit → <clone>/skill, 따라서 $KIT = <clone>). 사용자가 선별한 60개 참조 비디오에서 추출된 지침입니다. 일반 모션 기본값 대신 이 지침을 따르세요.

필수 사항 (사용자의 고정 선호도)

  1. 갑작스러운 컷 없음. 모든 장면 전환은 전환점 양쪽에서 캐리어에 의해 수행됩니다($KIT/grammar/01-continuity.md). 최대 1/3의 전환만 하드 컷일 수 있으며, 강한 비트에서만 허용됩니다.
  2. 리퀴드, 유려함, 둥글게. 긴 꼬리의 이즈아웃, 접촉 시 스쿼시/스트레치, 모양 변경 전 재질 변화, 블러를 접착제로 사용(02-motion-easing.md).
  3. 음악을 생성하거나 합성하지 마세요. 사용자의 트랙을 사용하세요. 제공된 트랙이 없으면 요청하세요. 킷에는 음악이 포함되어 있지 않습니다.
  4. 카메라는 콘텐츠에 따라 결정(라운드 3–4): 다양한 경로 계획(동일 방향 연속 사용 금지: L/R 트럭킹, 위/아래 페데스탈, 대각선, 푸시, 풀, 홀드) 및 카메라 비트와 요소 비트를 번갈아 배치하여 정지 카메라 아래에서 정교한 요소가 상호작용하도록 하고, 이벤트를 음악에 동기화(sync_check.py 리프트 ≥ ×1.35; 앰비언트 트랙은 beatSync(), 리드미컬한 트랙은 비트 그리드)하세요. 텍스트 중심 영화 → 대상어를 통해 글라이드(스플라인 e:"glide", 영역 간 벨 이즈 — 단어별 홉 금지)하는 여행용 팔로우캠을 사용하고, 요소 중심 영화 → 동기 부여된 시드 이동(camSeed, seed)만 있는 거의 고정된 카메라를 사용하세요 — 자체 목적의 이동 금지, 반복 패턴 금지. 텍스트 영화에도 적용되는 이전 규칙: (라운드 2: "그냥 관점일 뿐, 카메라는 움직이지 않음"): 프레임보다 더 큰 세계에서 활성 단어/주인공을 팔로우하는 팔로우캠, 단일 개체 스토리의 경우 스테이션 간 캐리어 이동, 항상 시차 참조 레이어 유지($KIT/grammar/08-camera.md § v3, $KIT/research/camera-notes.md, 프리미티브 §19–20). 또한 (사용자가 이를 "매우 매우 매우 심각한 결함"이라고 불렀습니다): 모든 영화를 camera-rig.js를 통해 보이는 3D 세계로 구축하세요. 카메라는 프레임의 ≥ 65% 동안 움직여야 합니다(참조: 중앙값 77%, research/camera_motion.py로 측정). 캡션은 세계를 따라 움직이며, 머무름도 계속 움직이고, 머무름-스위프 리듬을 유지하며, ≥ 3개의 깊이 레이어와 시차, 심도, 핸드헬드 드리프트, 스위프 시 모션 블러를 적용하세요($KIT/grammar/08-camera.md).
  5. 폴리시 바 ($KIT/grammar/09-polish-bar.md): 타이트한 글로우만 사용(헤일로 금지, 글로우 요소 크기 조절 금지, 대형 SVG 블러 필터 금지 — 그라디언트 + 그레인 사용). 컨테이너 모프는 SVG 지오메트리이므로 모서리가 모든 프레임에서 둥글게 유지됩니다(클립-패스 노출 금지). 텍스트가 있는 UI는 깊이/소프트 포커스에서 나타나며 — 스케일 팝업 금지, 기울어진 스티커 레이아웃 금지. 모든 평면 객체에는 셰이드 + 림 + 접촉 그림자가 적용됩니다.
  6. 프로페셔널 요소 및 폰트: $KIT/elements/에서 UI/3D 조각 구축 (elements/showcase/ 및 research/element-notes.md 참조). $KIT/fonts/FONTS.md에서 타입 선택 — 일반 기본값 절대 사용 금지.
  7. 프로페셔널 마감: 줄당 하나의 악센트, 이탤릭-세리프 또는 굵기 점프 강조, 모든 프레임에는 ≤ 3개의 초점 요소, 영화 전반에 걸친 지속적인 상수(캔버스, 제목, 수평선 또는 안개)가 있어야 합니다.
  8. 달리 명시되지 않으면 릴 우선: 1080×1920, 텍스트는 168–1330 px 영역, 줄당 ≤ 5단어, 28px 미만 금지, 프레임 0은 후크(검은색 금지, 로고 금지).
  9. 토큰 효율적: 챕터당 하나의 씬 파일(또는 연속 모프 전체에 대해 하나), 상태 변경만 스냅샷.

워크플로우

  1. 브리프 (짧게). 주제/브랜드, 메시지, 형식, 길이, 음악 파일. 누락된 것만 질문; 한 라운드.
  2. 스타일 선택 $KIT/styles/STYLES.md (하단 표: 브리프 → 스타일 매핑). 해당 카드 전체 읽기; $KIT/research/video-notes/에서 참조 노트 1–2개 열어 세부 확인.
  3. 음악 분석: npx hyperframes audio <track> --only kind,bpm,beats,downbeats,sections,onsets --json. 리드미컬 → 비트 그리드 사용(beat(n), bar(k), 프리미티브 §1). 앰비언트 → 섹션 경계에서 챕터 나누기, 가장 강한 온셋에서 히어로 이벤트(--threshold 0.3).
  4. 하나의 테이블로 계획: 챕터 × (시간 윈도우, 다음 챕터로의 캐리어, 객체 상태, 캡션, 카메라 이동). 모든 전환점에 대해 캐리어와 카메라 이동 이름 지정; 불가능하면 전환 재설계. 챕터를 하나의 3D 세계 내 장소로 배치.
  5. HyperFrames로 구축 (먼저 /hyperframes 로드하여 계약 확인). 가장 가까운 샘플에서 시작 (v2 = 카메라 포함): $KIT/samples/a-ember-lumen (S1), b-morph-nook (S2), c-neon-aura (S3), d-saas-tally (S4) — cp -R로 새 프로젝트에 복사 후 재작성. $KIT/primitives/PRIMITIVES.md 블록 사용. 루트 data-composition-variables에 팔레트 + 폰트 배치.
  6. 검증: npx hyperframes check --json 2>/dev/null (stderr는 시끄러움) → 오류 수정, 경고 평가 → npx hyperframes snapshot --at <모든 상태 변경 + 중간 스위프> -o .snap/x → 콘택트 시트 읽기 → 수정 (모서리와 글로우 확대: snapshot --zoom). 07-engineering-pitfalls.md 및 09-polish-bar.md 체크리스트 실행. 렌더 후 카메라 모션 측정: python3 $KIT/research/camera_motion.py <mp4-디렉토리> out.json — moving_frac ≥ 0.65 목표 (참조 하위 사분위수; 중앙값 0.77).
  7. 렌더: npx hyperframes render -o <out>.mp4. 사용자가 검토할 때 최종 렌더 전에 Studio 미리보기 열기.

빠른 참조

  • 캐리어 (영화당 3–5개 선택): 요소-세계-되기 · 줌-스루 · 쉐입 모프 · 가이드 오브젝트 · 하나의 카드 여러 상태 · 아이리스 · 컬러 플러드 · 블러 휩 · 연속 세계 카메라 · 앵커드 워드 · 쉐입 라임 · 캐리-어크로스 · 파티클 디졸브 · 미디엄 와이프.
  • 이즈 팔레트: 도착 expo.out/power4.out 0.5–0.9 초 · 퇴장 power3.in (진입의 40–50%) · 카메라/모프 power2.inOut · 프리미엄 스프링 back.out(1.4) · 선형은 오비트/회전/진행에만.
  • 타입: 단어별 블러-인 (트랜슬레이트 없음) · 회색→잉크 따라 읽기 · 슬롯머신 단어 · 하이라이트 필 키워드 · 이탤릭-세리프 악센트 · 문장 내 인라인 아이콘.
  • 스토리 형태: 문제(어두움)→공개→특징→CTA · 혼돈→질서 · 하나의 주인공 여러 상태 · 프롬프트→결과 · 앵커드 워드가 있는 매니페스토 · 마이크로 루프.

킷 확장하기

사용자가 새 참조 비디오를 추가할 때: 콘택트 시트 생성(타임스탬프 포함, 0.33–1 초 샘플링) + 전환 시 10fps 스트립, 비디오당 노트를 research/video-notes/에 작성, 행을 research/INDEX.md에 추가, 새 패턴을 문법/스타일 파일에 접목. 빌드에서 새 버그나 프리미티브가 발견되면 07-engineering-pitfalls.md / PRIMITIVES.md에 추가.

관련 스킬