Ice Motion: ofício do movimento
Este skill decide como as coisas se movem. Ele é chamado por um workflow (ice-film, ice-explainer, ice-remake, ice-edit, ice-lottie) depois que o brief e a direção existem. Ele escreve o plano de movimento; nunca constrói ou renderiza.
1. O que este skill possui e para onde aponta
| Possui | Aponta para |
|---|---|
| Tarefas de movimento, verbos de movimento, causa e efeito | Tipo cinético, legendas, tempo de leitura, cadência de digitação de texto de exibição: ice-type |
| Durações, easing, escalonamentos, sobreposição, molas | Música, SFX, narração, grades de batida, temporização de palavras: ice-audio |
| Política de pausa (vivo, apenas câmera, imobilidade verdadeira, sem inatividade) | Portões, verificação de costura, varredura de quadros, medição de densidade: ice-qa |
| Catálogo de cortes e transições, política de transição | Sintaxe do motor, render, captura de obturador, zonas seguras da plataforma: ice-engines |
| Costuras, arrasto, lei do vetor, entregas | Arte e estilos de desenho, rigs de personagens, gramáticas de narração: ice-styles |
| Câmera, composição, tamanho do herói, luz de encenação, medidas de riqueza | Paleta, pareamento de tipos, impressões digitais antissemelhança, registro de decisões: ice-direction |
| Movimento 2D, 2.5D e 3D; física; morphing; loops | Formas de letras e direções árabes e da direita para a esquerda: ice-arabic |
| Movimento de cursor e demonstração de UI dentro de filmes | Movimento de UI de aplicativo e site de envio, Lottie, preparação de vetor de logotipo: ice-lottie |
| Deck de movimentos, movimentos atômicos, plantas de cena | Verdade do ativo, captura de UI real, logotipos: ice-assets |
Aponte para outros skills pelo nome; nunca reescreva suas regras.
2. Procedimento quando chamado
- Leia os slots do brief (tipo de filme ou edição, plataforma, proporção, duração, idioma, registro, palavras da marca) e o registro de direção. Se o tipo estiver faltando, pergunte ao workflow, não adivinhe.
- Abra
references/motion-language-by-type.mde defina a linguagem de movimento do filme: política de pausa, política de transição, política de câmera, política de overshoot, gramática de clock e blur, ritmo. Aplique as predefinições do setor e personalidade da marca apenas onde o brief estiver omisso. - Escreva a personalidade do movimento: uma metáfora mais 3-5 regras (
references/motion-grammar.mdseção 8). Existem vários exemplos variados lá; nunca copie um. - Distribua a paleta de movimento: 3 movimentos centrais, no máximo 2 acentos, no máximo 1 assinatura, evitando os movimentos centrais do filme anterior (
references/move-deck.md,references/anti-slideshow-and-density.mdseção 6). - Para cada batida, escreva sua tarefa de movimento e verbo, temporização e easing, e seu nível de importância (
references/motion-grammar.md,references/timing-and-easing.md,references/measured-motion.md). - Para cada limite, escreva uma linha de costura com o portador, vetores de saída e entrada e a razão (
references/seams-and-carry.md,references/transition-policy.md,references/cut-catalog.md). - Para cada movimento de câmera, escreva sua razão e janela (
references/camera.md). - Verifique o plano em relação às regras antislideshow e aos alvos de densidade para o tipo (
references/anti-slideshow-and-density.md), e em relação ao piso de riqueza visual: leia os números do piso da tabela "Piso de riqueza" do tipo de filme (o workflow ice-filmreferences/film-types/<type>.md) e as medidas e correções emreferences/composition-and-staging.mdseção 7. Um plano abaixo do piso é reencenado antes que qualquer coisa seja construída. - Para comerciais, jornadas de produto e filmes liderados por texto sem narração, também escreva o contrato de movimento verificável por máquina (forma:
assets/motion-contract.example.json; doutrina:references/continuous-journey.md) e executepython scripts/validate_motion_contract.py ice/plan/motion-contract.json --project-root .até que imprima PASS. Entregue o plano ao workflow; ice-qa verifica o render. Três coisas que o validador verifica literalmente:- Referências: três referências específicas ao papel com notas de decomposição. Quando a pesquisa datada não encontrou nenhuma referência que você pudesse realmente assistir, escreva
"references": [](ou as que você tem) mais"referencesWaiver": {"reason": "<o que foi pesquisado, por que nenhuma é assistível>", "researchNote": "ice/research/<note>.md"}; nunca aponte uma referência para uma nota que descreve um filme que você não viu. - Linhagem: através de cada limite ele compara ids, não imagens:
transition.semanticIdda cena de saída deve ser igual aentry.semanticIdda próxima cena, então dê ao objeto carregado o mesmosemanticIdem ambos os lados. Que a imagem realmente carrega é julgado no render por ice-qa e pelo revisor. - Verbos genéricos (slide, grow, scale, float e o restante de sua lista) falham a menos que o objeto seja literalmente esse mecanismo; então adicione
"literalMechanism": "<o mecanismo real em uma frase>"àquelaprimaryMotionou unidade de texto.
- Referências: três referências específicas ao papel com notas de decomposição. Quando a pesquisa datada não encontrou nenhuma referência que você pudesse realmente assistir, escreva
- Registre cada decisão de movimento com sua razão e fonte através de ice-direction (
ice/DIRECTION.md).
3. Leis universais (válidas em todos os tipos)
- Cada movimento faz um trabalho (direcionar atenção, carregar continuidade, mostrar mudança, expressar caráter) ou é cortado.
- Movimento segue o significado: fluxos fluem, construções montam, contagens regressivas marcam, rotas desenham em sua direção, números contam enquanto sua causa muda.
- Um movimento focal de cada vez; elementos de suporte esperam, o focal nunca espera.
- Entradas desaceleram, saídas aceleram, movimentos na tela fazem ease in e out, impactos aceleram no contato; nunca linear para movimentos espaciais a menos que mecânicos; nunca um único ease em tudo (pelo menos 3 caracteres de easing por filme).
- Saídas são mais rápidas que entradas; entradas usam 2-3 canais em decaimento, nunca opacidade sozinha; nunca crescer a partir de zero.
- Escalonamentos ficam abaixo de cerca de 0,5 s por grupo, irregulares, em ordem de importância; deslocamentos mais curtos que os movimentos que deslocam.
- Contraste é a mensagem: varie velocidade (cena mais lenta cerca de 3x a mais rápida), duração do plano, densidade e imobilidade; gaste escala, efeitos e acentos uma vez.
- Algo cruza cada limite: um objeto carregado, um vetor correspondente, a voz ou a batida; a saída da cena A decide a entrada da cena B (mesmo eixo, direção, velocidade).
- A câmera é pontuação: ela se move por uma razão nomeada, lenta para transições, rápida apenas para acentos, nunca três avanços para dentro seguidos.
- Pausas são decisões: a política de pausa do filme é escolhida pelo tipo e aplicada em todos os lugares; uma cena que fica sem conteúdo é encurtada ou recebe história, nunca oscila.
- Cada quadro é uma função pura do tempo: molas de forma fechada, aleatoriedade semeada, sem relógio de parede, sem resolvedores com estado.
- Efeitos nunca compensam layout fraco, poses fracas ou evidência ausente.
4. Conflitos resolvidos por escopo (resumo)
| Pergunta | Resposta por tipo | Arquivo |
|---|---|---|
| O que se move durante uma pausa? | Vivo (lançamento, anúncio de app, social, hype), apenas câmera (explicador, talking-head, dados, longa-metragem), imobilidade verdadeira como pontuação (marca, descansos de arte, descansos cinéticos, comédia), sem inatividade (tutorial de UI, lançamento narrado) | references/holds-and-stillness.md |
| Crossfades? | Proibidos entre cenas em lançamento, anúncio de app, hype, cinético, colagem, liderado por música, social; permitidos como "isto continua" em marca calma, arte, longa-metragem, podcast, gráfico-para-gráfico | references/transition-policy.md |
| Cortes secos? | Cerca de 95% das mudanças em metragem editada, explicadores e colagem; em filmes onde a câmera é a editora apenas em um tempo fraco, no máximo duas vezes | references/transition-policy.md |
| Overshoot? | Nenhum para dados, finanças, saúde, luxo, câmera, texto; pequeno para lançamento e UI; uma mola por filme de consumo; divertido apenas para crianças e mascotes | references/timing-and-easing.md |
| Saídas em cenas não finais? | Proibidas onde a transição é a saída (filmes de lançamento montados); saídas curtas aceleradas ou rebaixar no lugar em explicadores narrados | references/transition-policy.md |
| Preencher o quadro ou fundo grande vazio? | Preencher (spots de negócios, explicadores, todo anúncio vertical) ou cerca de 70% de fundo texturizado (referências de gênero minimalista, marcas calmas, paisagem apenas): escolha por gênero de referência e registro. De qualquer forma, o piso de riqueza do tipo é válido; "premium" subtrai desordem, nunca plenitude | references/composition-and-staging.md seções 2 e 7 |
| Câmera durante pausas? | Avanço lento 3-6% (políticas A e B); travada (C e D) | references/camera.md, references/holds-and-stillness.md |
5. Contrato de saída: o plano de movimento
O workflow o armazena como ice/plan/motion-plan.md. Preencha cada slot; slots são espaços reservados, nunca valores de exemplo.
## Linguagem de movimento
tipo: <tipo de filme ou edição> | política de pausa: <A|B|C|D> | transições: <primária + acentos> | política de câmera: <...>
overshoot: <nenhum|pequeno|uma mola|divertido> | clock: <fps, suave ou gradual> | gramática de blur: <smear|crisp|shutter>
personalidade: <uma metáfora> + <3-5 regras>
paleta: core <movimento, movimento, movimento> | acentos <movimento, movimento> | assinatura <movimento ou nenhum>
riqueza: hero_share <n> | hero_width <n ou n/a> | frame_fill <n de 16> | empty_half <s> | depth_layers <n> | in_shot_motion <n por cento> | longest_still <s> | light_events <n> | real_material <por cento ou n/a> (números do piso do arquivo do tipo de filme)
## Batidas (uma linha cada)
| t in-out | função da batida | importância 1-3 | elemento focal | trabalho | verbo | easing | duração | escalonamento | compra |
## Costuras (uma linha por limite)
| corte t | movimento de saída (eixo, direção, velocidade, blur) | tipo de costura | movimento de entrada | portador | par de easing | deixa | razão |
## Janelas de câmera
| de | ápice | fim da pausa | para | alvo | movimento | razão |
6. Arquivos
| Necessidade | Abrir | Quando |
|---|---|---|
| Definir a linguagem de movimento para um tipo, setor ou marca | references/motion-language-by-type.md | Primeiro, toda vez |
| Decidir se e por que algo se move; verbos; causa e efeito; personalidade | references/motion-grammar.md | Planejando cada batida |
| Durações, direção de easing, escalonamentos, lei de sobreposição, política de overshoot, âncoras de temporização | references/timing-and-easing.md | Temporizando cada batida |
| Números humanos medidos e os 12 eases ajustados | references/measured-motion.md e scripts/measured-eases.mjs | Lançamento, anúncio de app, UI, hype; combinando um movimento de referência |
| Fórmulas de mola, guia de amortecimento, famílias predefinidas, curvas cúbicas de Bézier nomeadas | references/springs-and-curves.md e scripts/springs.mjs | Qualquer mola ou curva personalizada |
| O que acontece durante pausas; pausas finais; congelamentos; loops | references/holds-and-stillness.md | Antes de qualquer pausa ou final |
| Construção exata de um corte ou transição | references/cut-catalog.md | Construindo uma costura |
| Qual transição, quantas, política de crossfade e saída, campos do plano de costura | references/transition-policy.md | Escolhendo costuras |
| Arrasto, lei do vetor, contratos de entrega, tolerâncias, protagonista raiz | references/seams-and-carry.md | Cada limite |
| Filmes de uma forma, um mundo e um ator | references/one-take-films.md | A direção pede um filme contínuo |
| Razões de câmera, regras de rig, durações de movimento, shake, limites de densidade | references/camera.md | Qualquer movimento de câmera |
| Ponto focal, tamanho do herói, camadas, layout, encenação, luz de encenação, o piso de riqueza visual (seção 7) | references/composition-and-staging.md | Enquadrando cada plano; verificando o plano no passo 8 |
| 2D vs 2.5D vs 3D, paralaxe, profundidade de campo, valores de voo 3D | references/depth-and-3d.md | Batidas de profundidade ou 3D |
| Modos de falha de slideshow, ritmo, alvos de densidade, regras de gasto | references/anti-slideshow-and-density.md | Revisando o plano |
| Princípios de animação como engenharia, receitas de física, morphing, desenho, loops | references/physics-and-morphing.md | Batidas físicas ou de morphing |
| Cursor, clique, arrasto, interruptores, estados de agente, receitas de demonstração de UI | references/cursor-and-ui.md | Qualquer demonstração de UI |
| Movimentos pequenos com tabelas de valor e um seletor de intenção | references/atomic-moves.md | Escolhendo um movimento para uma batida |
| Deck de movimentos de 46 cartas, nomes recusados, catálogos de mecanismos | references/move-deck.md | Distribuindo a paleta de movimento |
| Plantas com código de tempo, construções de plano, esqueletos de tempo | references/shot-blueprints.md | Planejando uma sequência de planos |
| Clocks de quadro, gramáticas de blur, quando usar motion blur, granulação | references/motion-blur-and-clock.md | Definindo o clock e o blur |
| Um protagonista raiz, cadeia de estados, canais de herança, registros de corte seco, texto que age, encerramento (original do fundador) | references/continuous-journey.md | Comerciais e jornadas de produto |
| Contrato de decisão física, arremesso, atração, encerramento de UI rígida, som por fase de movimento (original do fundador) | references/motion-choreography.md | Batidas físicas ou causais |
| Contratos de unidade de foco de quadro e texto, teste de necessidade de câmera, verbos de câmera, fórmula de âncora 2D (original do fundador) | references/semantic-camera.md | Toda decisão de câmera em comerciais |
| Forma do contrato de movimento | assets/motion-contract.example.json | Escrevendo um contrato de movimento (valores são apenas ilustração) |
Scripts (Windows, macOS, Linux). Versões mínimas do Node e Python: runtimes no arquivo references/versions.json do skill ice-engines; pacotes Python: scripts/requirements.txt (pinos exatos em sincronia com versions.json).
| Script | Runtime | Uso |
|---|---|---|
node scripts/measured-eases.mjs [ease] [samples] | Node | Imprimir ou importar os 12 eases medidos |
node scripts/springs.mjs [w z seconds] | Node | Imprimir ou importar molas de forma fechada e tempos de estabilização |
python scripts/validate_motion_contract.py <contract.json> [--project-root <folder>] | Python, biblioteca padrão | Portão estrito de causal, temporal, divulgação, linhagem, câmera e contrato de som; exit 1 lista falhas |
python scripts/audit_web_section_motion.py <project folder> | Python, biblioteca padrão | Rejeita padrões de código de seção da web animada (exit 1) |
python scripts/audit_motion.py --video <mp4> --audio <wav> | Python com numpy e opencv-python-headless | Ataques de áudio e densidade de mudança visual versus uma referência; um diagnóstico, não um veredito |
Os arquivos do fundador carregam a nota "Do skill de design de movimento comercial do fundador".