aboutsummaryrefslogtreecommitdiffstats
path: root/scenes/overlay.py
diff options
context:
space:
mode:
Diffstat (limited to 'scenes/overlay.py')
-rw-r--r--scenes/overlay.py43
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)