Brand loop (bucle de fondo líquido sin costuras)
scripts/scene.py construye todo el estudio en Blender y lo renderiza:
- Gotas: metaballs en dos familias que solo se fusionan entre sí. Son brillantes y líquidas, con un color bicolor que sigue el aplanamiento de cada gota.
- Fondo: una pared cálida de color blanco roto con anillos de ondas que se expanden desde el centro, dos por bucle.
- Iluminación: una luz principal elíptica con sombras suaves, más cajas de luz solo de reflejo para el brillo líquido.
- Cámara: lente de 50 mm a f/2, que da poca profundidad de campo.
Cada movimiento es una onda senoidal de ciclos completos por bucle, por lo que el fotograma N es exactamente igual al fotograma 0. El centro del fotograma permanece libre para un logotipo o título superpuesto. El video no tiene texto ni sonido.
Requisitos: Blender 4.2+ con EEVEE (probado en 5.2, GPU Apple Silicon) y ffmpeg con libx264 y libx265.
Flujo de trabajo
1. Colores
La familia fría usa 5 tonos, de oscuro a claro, para las gotas grandes. La familia cálida usa 3 tonos para las gotas de acento. Puedes obtenerlos de dos formas:
- Desde un logotipo:
python3 scripts/palette.py logo.pngimprime sus colores principales y un par sugerido--cool/--warm. También puedes pasar--logo logo.pngdirectamente aloop.sh. - Desde valores hexadecimales de la marca: menos tonos están bien, porque se interpolan.
Mantén las dos familias claramente diferentes, como azul y naranja o verde azulado y coral. Los colores mezclados se volverían grises donde las gotas se fusionan, por lo que se mantienen separadas. --paper "#fcfbf8,#f2eae0" establece los colores del centro y las esquinas del fondo.
2. Previsualización (aproximadamente 1 minuto)
<skill>/scripts/loop.sh --name acme --cool "#0b3d91,#1565c0,#1e88e5,#42a5f5,#80d8ff" --warm "#ff6f00,#ffa000,#ffca28" --preview
Lee <name>/<name>-preview.png, que muestra seis momentos a lo largo del bucle, y verifica:
- Que los colores se lean como los de la marca.
- Que el fondo no sea gris.
- Que las dos familias nunca se corten entre sí.
3. Renderizado (largo: ejecútalo en segundo plano)
<skill>/scripts/loop.sh --name acme --cool ... --warm ... # 4K 60 fps, 10 s
<skill>/scripts/loop.sh --name acme --res 1920x1080 ... # 1080p, aproximadamente 4x más rápido
En un M1 Pro, un bucle de 10 s a 4K60 tarda unos 95 minutos (600 fotogramas, unos 9,5 s cada uno con 2 procesos de Blender), y 1080p unos 25 minutos. El renderizado se reanuda donde se detuvo si se interrumpe. Los fotogramas se eliminan después de la codificación a menos que pases --keep-frames.
Salida en <name>/:
<name>-4k60-loop.mp4: H.264, se reproduce en todas partes.-loop-hevc10.mp4: 10 bits, degradados más suaves, para editores.-1080p60-loop.mp4: para la web.-still.pngy-keyframes.png.
4. Verificación
- El script imprime una verificación de costura. El PSNR del paso del último al primer fotograma debe ser cercano al PSNR de un paso normal; si es mucho menor, algo no es periódico.
- Lee
-keyframes.png. - Indica al usuario que el bucle no tiene costuras visibles y recuérdale que active el bucle en su reproductor o editor.
Controles
Pasa cualquiera de estos directamente a scene.py, ya sea editando el array LOOK de loop.sh o ejecutando Blender tú mismo:
--key,--filly--wash: niveles de luz.--emity--world: brillo del fondo.--ringamty--ringbump: intensidad de las ondas.--fstop: desenfoque (más bajo es más borroso).--glow: viveza de las gotas.--dur: duración del bucle; el movimiento sigue siendo periódico en cualquier duración.
La disposición, los tamaños y las trayectorias de las gotas están en la lista BLOBS en scene.py. Las posiciones están en metros, y el fotograma en el plano de enfoque es de 0,864 × 0,486 m. Después de mover las gotas, verifica que las dos familias nunca se acerquen a menos de la suma de sus tamaños.