diff options
Diffstat (limited to 'scenes/overlay.py')
| -rw-r--r-- | scenes/overlay.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/scenes/overlay.py b/scenes/overlay.py new file mode 100644 index 0000000..0a3eb71 --- /dev/null +++ b/scenes/overlay.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +"""Capa de interfaz del canal (chip, barra de progreso y subtitulos) para los +videos renderizados en Blender. Se renderiza con --transparent y se compone +encima del 3D, asi el estilo sale del mismo codigo que los videos de Manim. + + NAME=bolapeluda CHIP=Topología CHIPCOL=celeste manim --transparent ... + +Tambien escribe out/<name>_timeline.json, que es lo que despues leen el script +de Blender (para animar) y build_video.py (para colocar el audio). +""" +import os, sys +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from manim import * +from tiktok import * + +COLORES = {"ambar": AMBAR, "verde": VERDE, "rosa": ROSA, "celeste": CELESTE} + + +class Overlay(TikTok): + NAME = os.environ.get("NAME", "") + + def backdrop(self): + return VGroup() # el fondo punteado va aparte, debajo del 3D + + def construct(self): + self.prepare() + chip = self.chip(os.environ.get("CHIP", ""), + COLORES[os.environ.get("CHIPCOL", "ambar")]) + self.add(chip) + for i in range(len(self.segs)): + with self.beat(i) as b: + b.wait(b.floor) + self.finish() + + +class Fondo(TikTok): + """Un solo frame con la trama de puntos, para usar de fondo.""" + NAME = "fondo" + + def construct(self): + self._sub = None + TikTok.backdrop(self) + self.wait(0.1) |