Ingeniería
Cómo funciona el zoom automático de Kamo
De los clics del ratón en bruto a una cámara que se desliza. Las reglas de agrupación, los tiempos y la física de resorte detrás de cada zoom.
· 5 min de lectura · Por Doug Siqueira
Cada clic en una grabación de Kamo se convierte en un zoom que parece hecho por alguien manejando una cámara. No hay IA de por medio, solo unas pocas reglas simples y algo de física. Aquí va la receta completa.
1. Qué cuenta como clic
Mientras grabas, Kamo escribe en un archivo el movimiento, los clics y el desplazamiento del ratón, con el mismo reloj que el video. Cuando el proyecto se abre por primera vez, Kamo lee esos eventos y solo se fija en las pulsaciones del botón izquierdo dentro del área grabada.
- Los clics derecho y central nunca hacen zoom.
- El desplazamiento y el simple movimiento nunca crean un zoom.
- Los clics fuera de la ventana o el área grabada se ignoran.
2. Agrupar clics en tomas
Si cada clic tuviera su propio zoom, completar un formulario sacudiría la cámara como un teléfono en la mano. Por eso Kamo agrupa los clics en tomas. Un clic se suma a la toma actual cuando se cumplen estas dos condiciones:
- llega menos de 1,5 segundos después de que se soltó el clic anterior, y
- cae dentro de un cuarto de la diagonal de la pantalla desde el primer clic de la toma (unos 550 px en una pantalla 1080p).
Medir desde el primer clic, y no desde el último, es importante: si no, una cadena de pasitos podría arrastrar la toma de un lado a otro de la pantalla.
3. Tiempos
Cada toma empieza 0,3 segundos antes de su primer clic, así quien mira ya está viendo el lugar correcto cuando llega el clic, y se mantiene 1 segundo después de soltar el último. Una toma dura al menos 0,6 segundos. Cuando dos tomas se superpondrían, se funden en una.
La cámara hace zoom a 2× por defecto, apuntando a la posición media de los clics de la toma, y se desplaza hacia dentro en los bordes para no mostrar nunca nada fuera del video. Dentro de un zoom, la cámara sigue suavemente al cursor y los arrastres.
4. El resorte
Los zooms nunca usan una transición lineal. La cámara es un resorte amortiguado (rigidez 170, amortiguación 26), el mismo tipo de movimiento que sientes en una buena animación de teléfono: arranca rápido, frena con suavidad y se asienta sin tambalearse.
Dos detalles hacen que se sienta bien:
- El resorte se resuelve de forma exacta, en forma cerrada, en vez de simularse paso a paso. Todas las velocidades de fotogramas obtienen la misma curva, así que la vista previa y la exportación a 60 fps coinciden.
- El resorte tarda unos 0,6 segundos en llegar, así que la cámara empieza a moverse antes del clic y llega a él con un margen de un fotograma. Los zooms seguidos van directo de un objetivo al siguiente, sin alejarse entre medias.
5. El cursor va en el mismo resorte
Kamo graba la pantalla sin el cursor de Windows y dibuja el suyo a partir del recorrido del ratón. Usa el mismo resorte en cada eje. Como el recorrido completo se conoce de antemano, el cursor puede mirar unos 150 ms hacia delante, así que se desliza sin quedarse atrás de tu mano. En cada clic, el error que queda se va desvaneciendo para que el cursor esté exactamente sobre el punto del clic en el fotograma del clic.
6. La última palabra siempre es tuya
Cada zoom aparece como un bloque en la línea de tiempo. Arrástralo, estíralo, cambia su escala, bórralo o haz doble clic para añadir el tuyo. Cualquier bloque que tocas pasa a ser manual, y Regenerar zooms solo reemplaza los automáticos.
Todo es determinista (misma grabación, mismos zooms) y rápido: los zooms de una grabación de 10 minutos se generan en menos de un segundo.
El código es de código abierto por si quieres leerlo, y puedes probar el zoom en tu navegador ahora mismo.
