O que motionkit faz?
Raiz do kit: a pasta onde esta skill está localizada, um nível acima (chame-a de $KIT; se a skill foi vinculada simbolicamente, resolva o link — ex.: ~/.claude/skills/motionkit → <clone>/skill, então $KIT = <clone>). É destilada de 60 vídeos de referência curados pelo usuário; siga-a em vez de padrões genéricos de motion.
Inegociáveis (preferências permanentes do usuário)
- Sem cortes repentinos. Cada mudança de cena é carregada por algo em ambos os lados da costura (
$KIT/grammar/01-continuity.md). No máximo ⅓ das costuras podem ser cortes secos, e apenas em uma batida forte. - Líquido, fluido, arredondado. Ease-outs de cauda longa, squash/stretch no contato, mudanças de material antes da forma, desfoque como cola (
02-motion-easing.md). - Nunca gerar ou sintetizar música. Use a faixa do usuário. Se nenhuma for fornecida, peça uma. O kit não inclui música.
- Câmera decidida pelo conteúdo (rodadas 3–4): planeje uma rota variada (nunca a mesma direção duas vezes seguidas: trucks L/R, pedestals up/down, diagonais, pushes, pulls, holds) e alterne batidas de câmera com batidas de elemento onde elementos polidos interagem sob uma câmera parada; sincronize eventos com a música (
sync_check.pylift ≥ ×1.35;beatSync()para faixas ambientes, grade de batidas para faixas rítmicas). Filmes conduzidos por texto → câmera travelling de acompanhamento que DESLIZA (splinee:"glide"através de alvos de palavras, easings de sino entre regiões — nunca hops por palavra); filmes conduzidos por elementos → câmera quase travada com apenas movimentos motivados e semeados (camSeed,seed) — nunca viajar por viajar, nunca um padrão repetido. Regra anterior, ainda verdadeira para filmes de texto: (rodada 2: "é só a perspectiva, a câmera não está se movendo"): follow-cam na palavra ativa/protagonista através de um mundo maior que o quadro, carrier travel entre estações para histórias de objeto único, camada de referência de paralaxe sempre presente ($KIT/grammar/08-camera.md§ v3,$KIT/research/camera-notes.md, primitives §19–20). Além disso: (o usuário chamou sua ausência de "FALHA MAIOR MAIOR MAIOR"): construa cada filme como um mundo 3D visto através decamera-rig.js; câmera se movendo ≥ 65% dos quadros (referências: mediana 77%, medida comresearch/camera_motion.py); legendas acompanham o mundo, dwells continuam viajando, ritmo dwell-and-sweep, ≥ 3 camadas de profundidade com paralaxe, DOF, deriva handheld, motion blur em sweeps ($KIT/grammar/08-camera.md). - Barra de polimento (
$KIT/grammar/09-polish-bar.md): apenas glows justos (sem halos, nunca escalar um elemento brilhante, sem grandes filtros de desfoque SVG — gradientes + granulação); morphs de contêiner são geometria SVG para que os cantos permaneçam arredondados em cada quadro (sem revelações por clip-path); a interface com texto chega da profundidade/desfoque suave — sem scale-pops, sem layouts de adesivos inclinados; todo objeto plano recebe sombra + rim + sombra de contato. - Elementos e fontes profissionais: construa peças de UI/3D a partir de
$KIT/elements/(vejaelements/showcase/eresearch/element-notes.md); tipografia de$KIT/fonts/FONTS.md— nunca padrões genéricos. - Acabamento profissional: um destaque por linha, ênfase itálico-serif ou salto de peso, cada quadro tem ≤ 3 elementos focais, uma constante persistente (tela, título, horizonte ou neblina) ao longo do filme.
- Reels primeiro a menos que instruído ao contrário: 1080×1920, texto na faixa de 168–1330 px, ≤ 5 palavras por linha, nada abaixo de 28 px, quadro 0 é o gancho (nunca preto, nunca um logotipo).
- Seja eficiente em tokens: um arquivo de cena por capítulo (ou um para um morph contínuo inteiro), snapshot apenas mudanças de estado.
Fluxo de trabalho
- Brief (curto). Assunto/marca, mensagem, formato, duração, o arquivo de música. Pergunte apenas o que está faltando; uma rodada.
- Escolha um estilo de
$KIT/styles/STYLES.md(tabela no final mapeia briefs → estilos). Leia o cartão completamente; abra 1–2 de suas notas de referência em$KIT/research/video-notes/para detalhes. - Analise a música:
npx hyperframes audio <track> --only kind,bpm,beats,downbeats,sections,onsets --json. Rítmica → grade de batidas (beat(n),bar(k), primitives §1). Ambiente → capítulos nos limites das seções, eventos heróis nas onsets mais fortes (--threshold 0.3). - Planeje em uma tabela: capítulos × (janela de tempo, carrier para o próximo, estado do objeto, legenda, movimento de câmera). Nomeie o carrier e o movimento de câmera para cada costura; se não conseguir, redesenhe a costura. Disponha os capítulos como lugares em um mundo 3D.
- Construa com HyperFrames (carregue
/hyperframesprimeiro para o contrato). Comece a partir do sample mais próximo (v2 = com câmera):$KIT/samples/a-ember-lumen(S1),b-morph-nook(S2),c-neon-aura(S3),d-saas-tally(S4) —cp -Rpara o novo projeto, depois reescreva. Use blocos de$KIT/primitives/PRIMITIVES.md. Coloque paleta + fontes na raizdata-composition-variables. - Verifique:
npx hyperframes check --json 2>/dev/null(stderr é ruidoso) → corrija erros, avalie avisos →npx hyperframes snapshot --at <cada mudança de estado + meio-sweep> -o .snap/x→ leia a folha de contato → corrija (amplie cantos e glows:snapshot --zoom). Passe por07-engineering-pitfalls.mde pela lista de verificação09-polish-bar.md. Após a renderização, meça o movimento da câmera:python3 $KIT/research/camera_motion.py <dir-com-mp4> out.json— alvomoving_frac≥ 0.65 (quartil inferior das referências; mediana 0.77). - Renderize:
npx hyperframes render -o <out>.mp4. Abra a prévia do Studio antes de uma renderização final quando o usuário estiver revisando.
Referências rápidas
- Carriers (escolha 3–5 por filme): element-becomes-world · zoom-through · shape morph · guide object · one card many states · iris · colour flood · blur whip · continuous world camera · anchored word · shape rhyme · carry-across · particle dissolve · medium wipe.
- Paleta de easing: chegada
expo.out/power4.out0.5–0.9 s · saídapower3.in(40–50% da entrada) · câmera/morphpower2.inOut· mola premiumback.out(1.4)· linear apenas para órbita/rotação/progresso. - Tipo: blur-in por palavra (sem translate) · cinza→tinta leitura acompanhada · palavra tipo slot-machine · pílula de destaque keyword · destaque itálico-serif · ícone inline na frase.
- Formas de história: problema(escuro)→revelação→funcionalidades→CTA · caos→ordem · um protagonista muitos estados · prompt→resultado · manifesto com palavra ancorada · micro-loop.
Expandindo o kit
Quando o usuário adicionar novos vídeos de referência: faça folhas de contato (com timestamp, amostragem de 0.33–1 s) + tiras de 10 fps nas transições, escreva uma nota por vídeo em research/video-notes/, adicione linhas a research/INDEX.md, e incorpore novos padrões nos arquivos de gramática/estilo. Quando uma construção ensinar um novo bug ou primitivo, adicione-o a 07-engineering-pitfalls.md / PRIMITIVES.md.