Communitygithub.com

motion-video — criando um filme renderizado inteiramente por có…

Cria um filme inteiro renderizado por código (cada quadro computado por um programa): anúncios de introdução, anúncios de hype, tours de produto, showreels, vídeos explicativos narrados — público, tom, seções, transições, movimentos de câmera, exportação. Acionado por 「做一支產品介紹片/宣傳片/廣告」「酷炫、抓眼球的廣告」「做 showreel」「做旁白說明動畫」「影片怎麼分段、換段、轉場、運鏡」「這支片的基調/受眾」. NÃO é sobre easing de animação de UI (→ motion-design), nem estudo de vídeos de referência (→ case-library).

O que é motion-video — criando um filme renderizado inteiramente por có…?

Esta skill é um roteador especializado para produção de filmes inteiros renderizados por código, onde cada quadro é computado por um programa, cobrindo desde anúncios introdutórios até vídeos explicativos narrados. Ela fornece um fluxo de trabalho estruturado que começa com a definição de propósito, público, tom e energia, seguido pela escolha do tipo de filme, storyboard, implementação e exportação. A skill é suportada em plataformas como Claude Code, Cursor e Codex, e é acionada por comandos em chinês relacionados à produção de vídeos promocionais. Seu funcionamento é baseado em um sistema de evidências em camadas (usuário, medido, verificado, não validado) para garantir a qualidade das decisões criativas, e inclui ferramentas como `filmkit` para renderização e `check.py` para verificação de entregáveis, com regras claras para revisão e entrega final.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/WizerdBaChe/motion-video-kit/tree/HEAD/reference-impl/skills/motion-video

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

motion-video — criando um filme renderizado inteiramente por código

Skill roteadora para trabalhos em nível de FILME. Movimento em nível de elemento (duração, easing, springs, trocas de cor dentro de um componente) permanece em motion-design; leia ~/.claude/skills/motion-design/local/element-motion-params.md para os números de spring medidos. A evidência reside no laboratório <lab> (cartões techniques/Tnn, docs, medições); as ferramentas também ficam lá (usuário 2026-09-30), então esta skill cita seus caminhos em vez de copiá-los.

Toda regra nas referências carrega um nível de evidência (references/evidence-and-instruments.md §Tiers): usuário (o usuário julgou assistindo filmes), medido (um instrumento calibrado leu em filmes fonte), verificado (uma rodada cega A/B movimentou, intervalos disjuntos), não validado (medido nas fontes, nunca testado por imitação). Não afirme uma regra não validada como comprovada.

Tabela de roteamento

Se a tarefa é sobre…Leia
O que decidir primeiro; público, tom, cor de fundo, qual informação pertence; pareamento dispositivo-tom; materiais e textoreferences/whole-film-rules.md
Qual tipo de filme; esqueletos de seção (anúncio introdutório, anúncio de hype, tour de produto, showreel de dados, explicador narrado); storyboard vs um parágraforeferences/film-types.md
Mudanças de seção na barra ou na linha de narração; alinhamento de batida; transições (forma-para-forma, escurecer, wipe); movimentos de câmerareferences/rhythm-transitions-camera.md
Construir a página, renderização baseada em tempo, exportação para MP4, fidelidade do produto (arquivo de reivindicações), filmagem de um componente interativo ao vivo (§4 item 9), capa, loop de revisão, sourcing de música e licenças (§5)references/build-and-export.md
Níveis de evidência; qual instrumento de laboratório mede o quê; de onde cada número vemreferences/evidence-and-instruments.md
Filmagens ou mídia gerada (imagens locais do ComfyUI, clipes), corte nas batidas da música, uma EDL intercambiável — a rota de edição, não uma página baseada em tempo (decisão do usuário 2026-10-18); todo ativo carrega um arquivo de proveniência ou a renderização é recusadalaboratório tools/edit/README.md, laboratório de design docs/edit-route-design.md
Um processo físico ou algorítmico contínuo (uma frente crescendo, um campo se espalhando, uma onda viajando) — um ASSET manim (sequência PNG + proveniência) composto na página baseada em tempo, nunca um filme manim inteiro. Produção de filme inteiro e edição-e-composição (ativos que devem ser usados) são camadas separadas (decisão do usuário 2026-10-20); regras de composição são esparsas, primeira sonda em andamentolaboratório experiments/probe-manim-insert-ow2010/README.md; proposta ~/.claude/outputs/manim-explainer-route-20261020/
Parâmetros de spring / troca de cor para um elementomotion-design/local/element-motion-params.md
Antes do storyboard, todo filme: a camada de design compartilhada como cópia própria deste filme — a lista de falhas nela é vinculante (trabalho rejeitado pelo autor; nunca repita)<item>/inputs/design-axes.md, copiado por works_contract.py open (passo 0); um braço de laboratório obtém o mesmo arquivo de run_arm.py
O mesmo princípio em posts, decks ou páginas web (forma entre mídias, eixos A–I, eixos de geração J/K, escolas nomeadas) — teoria, leia ao escolher~/.claude/references/design-axes/

Ordem de trabalho (cada passo antes do próximo)

  1. Confirme antes de qualquer coisa (whole-film-rules.md §0): propósito / tipo de filme (anúncio introdutório, anúncio de hype, tour de produto, explicador, perfil), onde será exibido, o que o espectador deve fazer depois de assistir, o público, a ÚNICA coisa a lembrar, a ENERGIA (calmo / animado / hype; perguntado, nunca inferido do produto sozinho) e o fundo, os materiais e limites, a voz do conteúdo (marketing vs técnico leve) e a forma de apresentação (paginada vs palco contínuo). Um usuário presente → pergunte estes e aguarde. Sem supervisão → escreva cada um aberto para build/questions.md e pegue a leitura mais literal do pedido, declarada em build/plan.md. "產品介紹片" sozinho não resolve anúncio vs tour (usuário r14); "廣告" sozinho não resolve introdutório vs hype (usuário r15). Um nome de gênero ou forma no pedido (MAD, PV, showreel, …) é um tipo de filme E o nome do produto que o filme serve como seu tópico: resolva contra film-types.md §Naming e confirme essa definição com o usuário antes do storyboard; um nome sem entrada lá é perguntado, nunca inferido — um nome não confirmado é a falha de alvo errado / expectativa abaixo (usuário 2026-10-19: pedido MAD de uma linha cuja primeira rodada retornou um MV de código puro). Item formal ou rodada de laboratório? (formal = algo que o autor enviará ou entregará a alguém; a definição única vive em <works>/README.md). Formal → a PRIMEIRA escrita da tarefa é python -X utf8 ~/.claude/tools/design-axes-mount/works_contract.py open <works>/films/<film_id> --medium video --actor main-loop [--toolbox PATH:ROLE:FACET ...], qualquer que seja a pasta de onde veio o pedido; cole a linha 創作輸入 que imprime no contrato de limite, e construa dentro do item. Um gerador, componente ou página de OUTRA entrega (um script de ilustração de livro, um filme anterior) é uma entrada de toolbox com seu papel e faceta, nunca um padrão (um projeto de livro 2026-10-11: o gerador de arte linear do livro escalado para 1080p foi rejeitado, agora uma referência negativa). Rodada de laboratório → run_arm.py monta a mesma camada.
  2. Filme inteiro primeiro (whole-film-rules.md §1): nomeie o ÚNICO público, o que esse público precisa saber, o tom (a energia nomeada no passo 0; apenas se nenhum, do produto + público), e a ÚNICA cor de fundo (um anúncio de hype a afrouxa, whole-film-rules.md §6). Esses quatro são fixos antes que qualquer dispositivo seja escolhido. Se os documentos do produto não dizem o que uma funcionalidade resolve, pergunte ao proprietário (build-and-export.md §4 item 7); sem supervisão, escreva build/questions.md em vez de inventar um ponto de dor.
  3. Tipo de filme (film-types.md): anúncio introdutório, anúncio de hype, tour de produto, showreel de dados, explicador narrado, ou reel de perfil — a partir do propósito do passo 0, nunca de qual esqueleto está mais à mão. Escolha o esqueleto; decida storyboard (conteúdo fixo) vs um parágrafo (exiba muitas execuções).
  4. Fonte de ritmo (rhythm-transitions-camera.md §1): apenas música → mudanças de seção nas linhas de barra; narração ou letras presentes → mudanças de seção no início das linhas, e a música não está também rigidamente travada. Se um filme recebe narração segue o tipo de filme e tom (passo 1-2); um filme calmo pode ainda usar música com seções lentas.
  5. Tabela de storyboard antes do código: leia inputs/design-axes.md primeiro (tabela de roteamento, linha "Antes do storyboard"). Por seção t, título, visual, dados, layout, transição entrada/saída, objetivo da câmera, intenção de movimento (uma linha por elemento móvel e por camada de efeito empilhada: o que o movimento diz; um elemento sem linha fica parado ou vai, whole-film-rules.md §2a; um efeito nomeado recebe essa linha como descrição, já que um nome sozinho cujo catálogo e significados da indústria colidem é construído como o significado da indústria — laboratório r28, 3/3 execuções, leitor cego; laboratório docs/text-motion-vocabulary.md §3/§5), quadros-chave (linha do tempo keys[]: pelo menos um role: key por seção — o momento em que um espectador deve ler ou ver claramente, com um hold opcional; role: breakdown para uma pose dentro da seção que decide como o movimento viaja; as costuras entre seções são derivadas, nunca escritas; laboratório docs/agent-review-kbt-design.md §3), e 參考角色 K/工具箱 (none por padrão; um gerador ou componente reutilizado nomeia seu papel K e a faceta emprestada, e deve corresponder a uma entrada --toolbox de open). Mostre ao usuário e aguarde confirmação quando um usuário estiver presente. Registre cada decisão de design que você tomar com python ~/.claude/tools/process-ledger/ledger.py add no momento em que a tomar. O portador da tabela é regido (usuário 2026-10-08, laboratório docs/production-order.md última seção): um JSON film.timeline.json mais uma página de linha do tempo somente leitura gerada; necessário na aprovação = film_type, audience, energy, rhythm_source e por seção at, dur, freedom (travado / guiado / livre), motion_intent; camera goal / method usam os vocabulários fixos D1 / D2. A ferramenta (tools/timeline/, laboratório docs/timeline-layer-design.md) NÃO está construída antes de seu marco TL-1 — até lá mantenha a tabela markdown, usando esses nomes de campo (nomes de registros de cena que mudaram são mapeados na tabela §6.1 do design).
  6. Dispositivos: cada dispositivo tem seu próprio tom; um dispositivo que conflita com o tom do passo 1 é descartado, o tom nunca é alterado para se ajustar ao dispositivo (usuário 2026-09-30). Um dispositivo padrão (explosão de partículas, túnel, pilha de cartões flutuante, glitch, texto-grande-como-design, números falsos de HUD) é usado apenas com uma linha de intenção de movimento vinculando-o ao conteúdo (§2a).
  7. Construir (build-and-export.md §1): uma página HTML cujo cada quadro é uma função pura do tempo (window.__setTime(t)); sem timers, sem transições CSS.
  8. Exportar (build-and-export.md §2): exporte com filmkit, o tools/filmkit/render.py do laboratório (perfil lab-round), nunca um script de captura escrito à mão. Ele captura quadro a quadro, codifica, verifica, e só então publica o nome de saída; seu check.py decide se o ARQUIVO é entregável. Filmes formais agrupam suas fontes com @font-face (uma família sans licenciada abertamente que cobre CJK e Latim, e.g. Noto Sans TC; nunca confie nas fontes instaladas na máquina de exportação ou visualização, laboratório D26). Um filme formal exporta com --profile delivery-web (campos de formato, mais bloqueio FK-R-18 / FK-R-19 quando o filme não é um item de works aberto com open ou sua montagem está desatualizada). Loudness e pico verdadeiro são relatados por check.py como um fato (FK-R-17, info). Para julgá-los contra uma plataforma, passe --rules <rules file> --target <name>; um alvo é uma reivindicação no arquivo de regras com sua fonte e review_when, nunca assumido pela skill.
  9. Revisão (build-and-export.md §3): folha de filme inteiro a 1 fps primeiro, depois detalhes; feedback como "segundo / onde / mudança"; uma mudança de cada vez; no máximo 3 rodadas. Um filme formal é então revisado LADO A LADO: works_contract.py review <item> coloca a folha do candidato ao lado de um filme aprovado do mesmo tipo selecionado por tags (ou escreve reference: none), e o revisor não é o construtor (§3 item 9) — em uma única sessão, um subagente de contexto limpo lê deliver/_review/side-by-side.png e a primeira linha do veredito é reviewer: subagent-clean-context. works_contract.py deliver <item> recusa até que deliver/_review/verdict.md seja mais novo que o candidato. Caminho de revisão por agente (usuário 2026-10-19, laboratório docs/agent-review-kbt-design.md; o usuário dá direção e conteúdo de design apenas): um subagente maker constrói, a sessão main-loop que despacha revisa e nunca edita o filme; eles conversam através de arquivos (tools/review/review.py), gates G0 storyboard (maker revisa o diretor) → G1 stills chave (apenas itens difíceis) → G2 janelas K/T (sensação = POLISH) → G3 filme inteiro, no máximo 3 rodadas cada; apenas a lista de falhas, linhas de bloqueio do filmkit, fidelidade do produto e defeitos vistos uma vez podem BLOQUEAR; após a rodada 3, a melhor versão é enviada com os itens abertos listados, e o veredito diz reviewer: dispatcher-main-loop, user_watched: no (build-and-export.md §3 item 10).
  10. Entregar com a forma de aceitação abaixo. Destino: um item de works (<works>/films\<film_id>\, predicado em <works>/README.md); o projeto que o usuário nomeou mantém um ponteiro (_MOVED_<date>.txt) ou apenas seu próprio livro / dados. Um filme construído em seu próprio projeto e adotado (gerador estrangeiro) reentra com works_contract.py adopt <same root> --id <id> --revise após cada rodada aceita. Onde cada item está: <works>/STATUS.md (leia primeiro). Uma rodada de laboratório vai para <lab>\experiments\<round>\.

Modelos (usuário 2026-10-10, laboratório CLAUDE.md Decisões; causas experiments/r22-haiku/REPORT.md): Haiku nunca faz um filme, nem como condutor nem como trabalhador em qualquer passo acima; o conteúdo fixo de um componente conta como produção (laboratório D-T12).

Vereditos que esta skill pode dar, e como cada um é verificado

  • "Mudanças de seção ficam na barra / linha" → tools/measure_product.py ou tools/narrlock.py no MP4 renderizado (caminhos do laboratório).
  • "Movimento é contínuo sob narração" → tools/density.py parte móvel e paradas ainda executadas.
  • "Cada número / funcionalidade é real" → tools/fidelity.py + build/claims.json (T05).
  • "Há um movimento de câmera" → tools/camflow.py; execuções at_boundary precisam de uma olhada no quadro.
  • "O arquivo é entregável" (legível, comprimento esperado, tamanho e codec, som presente quando esperado, escrito pelo filmkit a partir das entradas agora em disco) → tools/filmkit/check.py (render.py o executa por conta própria). Saída 0 significa sem linha de bloqueio, nada sobre a imagem.
  • "Parece bom / corresponde à referência" → NUNCA a partir de números. Uma folha de quadros lida por modelo E a própria visualização do usuário (laboratório INV-6). Números provam o caminho dos dados, não a imagem. No caminho de revisão por agente este veredito nunca é dado: o filme é "entregue sob revisão por agente, não assistido pelo usuário" (veredito user_watched: no).
  • "Loudness está no alvo" → check.py --rules F --target NAME; um UNDET para um alvo sem tolerância é uma lacuna no arquivo de regras, não uma aprovação.

Forma de entrega (um humano deve assistir ao filme)

Cole as seções 1-4 de check.md (bloqueio / confirmado / precisa de olhada / indeterminado) verbatim (seção 5, as isenções declaradas do autor, permanece no arquivo) — para um filme formal da verificação --profile delivery-web, para que as linhas FK-R-18 (montagem de design-axes) e FK-R-19 (carimbo de works) estejam entre elas, mais a linha reference: de deliver/_review/report.md, incluindo as linhas rerun, antes da lista de verificação; as próprias perguntas da sessão seguem separadamente e nunca são misturadas nas seções coladas. Qualquer operação transform.py (normalize existe desde filmkit M3: transform.py normalize <in> --out <new> --target-lufs X --true-peak Y ou --rules F --target NAME; duck e convert não estão construídos) em um filme formal é perguntada primeiro, nomeando o novo arquivo que ela criaria.

Habilidades Relacionadas