Ticker Vertical 3D para Remotion
Este skill proporciona un patrón arquitectónico y un componente reutilizables para crear animaciones de desplazamiento 3D infinitas y de múltiples columnas (a menudo usadas para galerías de fotos, muros de fotos 3D, vitrinas tecnológicas o créditos) en Remotion.
Cómo funciona
La ilusión de desplazamiento infinito se logra mediante la duplicación del dominio y la aritmética modular, combinadas con transformaciones CSS 3D:
- La matemática del infinito: Duplicamos la lista de contenido (
[...items, ...items]). Calculamos unprogressde 0 a 1 basado en la velocidad de fotogramas y la duración deseada del bucle. Desplazamos la columna de0%a-50%(o de-50%a0%para la dirección inversa). Como el contenido está duplicado, el fotograma en-50%se ve idéntico al fotograma en0%, creando un bucle sin costuras cuando se reinicia. - Perspectiva 3D: Un contenedor padre aplica
perspective: 1000px,rotateX(20deg)yscale(1.2). La escala es crucial para que los bordes superior e inferior inclinados se extiendan más allá de los límites de la pantalla 2D, evitando que el fondo vacío se vea. - Enmascaramiento: Se colocan superposiciones CSS
linear-gradientde forma absoluta en la parte superior e inferior con un altozIndexpara desvanecer suavemente el contenido en el color de fondo.
Cómo usar este skill
Cuando un usuario solicite una galería de desplazamiento vertical o un ticker infinito:
- Copiar el asset: Proporciona o copia el componente genérico ubicado en
assets/VerticalTicker.tsxen la carpetacomponents/animationsde su proyecto. - Configurar: Guía al usuario para importar y renderizar el componente
<VerticalTicker />dentro de su<Composition />de Remotion. - Adaptar los datos: El componente no depende de datos específicos. Acepta cualquier array de URLs de imágenes o nodos React como columnas. Puedes especificar diferentes
durationInSecondsydirection(1 o -1) por columna para lograr el paralaje.
Assets proporcionados
assets/VerticalTicker.tsx: El componente de Remotion altamente reutilizable y fuertemente tipado que implementa el patrón de desplazamiento infinito 3D.