Brand Loop (nahtloser Flüssigkeitshintergrund)
scripts/scene.py baut das gesamte Studio in Blender auf und rendert es:
- Blobs: Metabälle in zwei Familien, die sich nur untereinander vereinen. Sie sind glänzend und flüssig, mit einem zweifarbigen Verlauf, der der Stauchung jedes Blobs folgt.
- Hintergrund: eine warme, gebrochen weiße Wand mit sich ausbreitenden Ringen – zwei pro Schleife.
- Beleuchtung: ein elliptisches Hauptlicht mit weichen Schatten, dazu Reflexions-Softboxen für den Glanz der Flüssigkeit.
- Kamera: 50 mm Objektiv bei f/2, für geringe Schärfentiefe.
Jede Bewegung ist eine Sinus-Schwingung mit ganzen Zyklen pro Schleife, sodass Bild N exakt Bild 0 entspricht. Die Bildmitte bleibt für ein darübergelegtes Logo oder einen Titel frei. Das Video enthält weder Text noch Ton.
Voraussetzungen: Blender 4.2+ mit EEVEE (getestet auf 5.2, Apple Silicon GPU) sowie ffmpeg mit libx264 und libx265.
Arbeitsablauf
1. Farben
Die kühle Familie verwendet 5 Abstufungen (dunkel bis hell) für die großen Blobs. Die warme Familie verwendet 3 Abstufungen für die Akzent-Blobs. Du kannst sie auf zwei Arten ermitteln:
- Aus einem Logo:
python3 scripts/palette.py logo.pnggibt die Hauptfarben und einen Vorschlag für--cool/--warmaus. Du kannst auch--logo logo.pngdirekt anloop.shübergeben. - Aus Marken-Hex-Werten: Weniger Abstufungen sind in Ordnung, da sie interpoliert werden.
Die beiden Familien sollten deutlich unterscheidbar sein, z. B. Blau und Orange oder Petrol und Koralle. Mischfarben würden dort, wo Blobs verschmelzen, grau werden – deshalb werden sie getrennt gehalten. --paper "#fcfbf8,#f2eae0" legt die Hintergrundfarbe in der Mitte und an den Ecken fest.
2. Vorschau (ca. 1 Minute)
<pfad-zum-skill>/scripts/loop.sh --name acme --cool "#0b3d91,#1565c0,#1e88e5,#42a5f5,#80d8ff" --warm "#ff6f00,#ffa000,#ffca28" --preview
Lies <name>/<name>-preview.png – es zeigt sechs Momentaufnahmen aus der Schleife – und prüfe:
- Die Farben wirken wie die der Marke.
- Der Hintergrund ist nicht grau.
- Die beiden Familien durchdringen sich nie.
3. Rendern (langwierig – im Hintergrund ausführen)
<pfad-zum-skill>/scripts/loop.sh --name acme --cool ... --warm ... # 4K 60 fps, 10 Sek.
<pfad-zum-skill>/scripts/loop.sh --name acme --res 1920x1080 ... # 1080p, etwa 4× schneller
Auf einem M1 Pro dauert eine 10‑Sekunden‑Schleife in 4K bei 60 fps etwa 95 Minuten (600 Bilder, ca. 9,5 s pro Bild bei 2 Blender-Prozessen), in 1080p etwa 25 Minuten. Bei Unterbrechung wird das Rendern an der Stelle fortgesetzt. Bilder werden nach der Kodierung gelöscht, es sei denn, du verwendest --keep-frames.
Ausgabe in <name>/:
<name>-4k60-loop.mp4: H.264, läuft überall.-loop-hevc10.mp4: 10‑Bit, weichste Farbverläufe, für Editoren.-1080p60-loop.mp4: für das Web.-still.pngund-keyframes.png.
4. Prüfung
- Das Skript gibt eine Nahtprüfung aus. Der PSNR des Schritts „letztes zu erstem Bild“ muss nahe am PSNR eines normalen Schritts liegen; ist er deutlich niedriger, ist etwas nicht periodisch.
- Lies
-keyframes.png. - Teile dem Benutzer mit, dass die Schleife ohne sichtbare Naht läuft, und erinnere ihn daran, in seinem Player oder Editor die Endlosschleife zu aktivieren.
Stellschrauben
Du kannst folgende Parameter direkt an scene.py übergeben – entweder durch Bearbeiten des LOOK-Arrays in loop.sh oder durch direkten Aufruf von Blender:
--key,--fillund--wash: Lichtstärken.--emitund--world: Helligkeit des Hintergrunds.--ringamtund--ringbump: Stärke der Ringe.--fstop: Unschärfe (niedriger = unscharf).--glow: Lebendigkeit der Blobs.--dur: Länge der Schleife; die Bewegung bleibt bei jeder Länge periodisch.
Anordnung, Größen und Pfade der Blobs sind in der BLOBS-Liste in scene.py. Positionen sind in Metern angegeben; das Bild in der Fokusebene ist 0,864 × 0,486 m groß. Nach Verschieben von Blobs prüfen, dass die beiden Familien nie näher als die Summe ihrer Größen kommen.