Bastidores
Como funciona o zoom automático do Kamo
Dos cliques crus do mouse a uma câmera que desliza. As regras de agrupamento, o tempo e a física de mola por trás de cada zoom.
· 5 min de leitura · Por Doug Siqueira
Cada clique numa gravação do Kamo vira um zoom que parece feito por alguém operando uma câmera. Não tem IA nenhuma envolvida, só algumas regras simples e um pouco de física. Aqui está a receita inteira.
1. O que conta como clique
Enquanto você grava, o Kamo escreve num arquivo o movimento do mouse, os cliques e a rolagem, no mesmo relógio do vídeo. Quando o projeto é aberto pela primeira vez, o Kamo lê esses eventos e olha só para os cliques com o botão esquerdo dentro da área gravada.
- Cliques com o botão direito e o do meio nunca dão zoom.
- Rolagem e movimento simples nunca criam zoom.
- Cliques fora da janela ou da área gravada são ignorados.
2. Agrupando cliques em cenas
Se cada clique ganhasse o seu próprio zoom, preencher um formulário chacoalharia a câmera como um celular na mão. Então o Kamo agrupa os cliques em cenas. Um clique entra na cena atual quando as duas condições são verdadeiras:
- ele vem menos de 1,5 segundo depois de o clique anterior ser solto, e
- ele cai a até um quarto da diagonal da tela do primeiro clique da cena (cerca de 550 px numa tela 1080p).
Medir a partir do primeiro clique, e não do último, faz diferença: senão, uma sequência de passinhos poderia arrastar a cena de um lado ao outro da tela.
3. O tempo
Cada cena começa 0,3 segundo antes do primeiro clique, para quem assiste já estar olhando para o lugar certo quando o clique acontece, e segura 1 segundo depois do último clique ser solto. Uma cena dura pelo menos 0,6 segundo. Quando duas cenas se sobrepõem, elas viram uma só.
Por padrão, a câmera dá zoom de 2×, mirando na posição média dos cliques da cena, e é empurrada para dentro nas bordas para nunca mostrar nada fora do vídeo. Dentro de um zoom, a câmera segue o cursor de leve, com um pouco de atraso.
4. A mola
Os zooms nunca usam easing linear. A câmera é uma mola amortecida (rigidez 170, amortecimento 26), o mesmo tipo de movimento que você sente numa boa animação de celular: começa rápido, desacelera suave e assenta sem balançar.
Dois detalhes fazem a diferença:
- A mola é resolvida de forma exata, com uma fórmula fechada, em vez de ser simulada passo a passo. Qualquer taxa de quadros dá a mesma curva, então a prévia e a exportação a 60 fps batem.
- A mola leva cerca de 0,6 segundo para chegar, então a câmera começa a se mover antes do clique e chega nele dentro de um quadro. Zooms seguidos vão direto de um alvo para o outro, sem afastar no meio.
5. O cursor anda na mesma mola
O Kamo grava a tela sem o cursor do Windows e desenha o seu próprio a partir do caminho do mouse. Ele usa a mesma mola em cada eixo. Como o caminho inteiro já é conhecido, o cursor pode olhar cerca de 150 ms à frente, e assim desliza sem ficar atrás da sua mão. Em cada clique, o erro que sobra é dissolvido para o cursor ficar exatamente no ponto do clique, no quadro do clique.
6. A última palavra é sempre sua
Cada zoom aparece como um bloco na linha do tempo. Arraste, estique, mude a escala, apague, ou dê dois cliques para adicionar o seu. Qualquer bloco que você mexer vira manual, e Regenerar zooms só substitui os automáticos.
Tudo é determinístico (mesma gravação, mesmos zooms) e rápido: os zooms de uma gravação de 10 minutos são gerados em menos de um segundo.
O código é aberto, se você quiser ler, e dá para testar o zoom no navegador agora mesmo.
