1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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)
|