From 8f3ce567dd2d1b9d43c938d47c9cc90250282a84 Mon Sep 17 00:00:00 2001 From: Pascal Scholz Date: Thu, 29 Oct 2026 19:48:57 +0000 Subject: [PATCH] Folge 2: fertiges Nest vorberechnet, Nachtfilter nur auf Figuren, bessere Hand beim Malen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Szene „Pino will nicht schlafen“ rendert damit 2,7-mal, „Gute Nacht“ 2,2-mal so schnell. Co-Authored-By: Claude Opus 5.5 --- remotion/README.md | 13 +++++++++- remotion/public/orte/nest_hinten.png | Bin 0 -> 36853 bytes remotion/public/orte/nest_vorne.png | Bin 0 -> 20902 bytes remotion/src/Root.tsx | 6 ++++- remotion/src/baukasten/figur.tsx | 5 ++-- remotion/src/baukasten/natur.tsx | 27 +++++++++++++++++--- remotion/src/baukasten/orte.tsx | 28 +++++++++++++++------ remotion/src/baukasten/posen.ts | 36 +++++++++++++++++++++++++++ remotion/src/folge02/szene7.tsx | 16 ++++++------ 9 files changed, 108 insertions(+), 23 deletions(-) create mode 100644 remotion/public/orte/nest_hinten.png create mode 100644 remotion/public/orte/nest_vorne.png diff --git a/remotion/README.md b/remotion/README.md index 857004e..e8acfcd 100644 --- a/remotion/README.md +++ b/remotion/README.md @@ -131,8 +131,19 @@ python3 werkzeuge/posen.py # Posen und C ``` Mit `pip install "rembg[gpu]"` nutzt `rembg` eine Nvidia-Grafikkarte automatisch (auf dem VPS gibt es keine; dort ca. 3 s pro Bild). -Orte neu vorberechnen (nach Änderungen in `orte.tsx`): +Orte neu vorberechnen (nach Änderungen in `orte.tsx` bzw. am Nest in `natur.tsx`): `npx remotion still src/index.ts F2Ort-garten public/orte/garten.webp --image-format=webp` +Bilder mit durchsichtigem Hintergrund (Zimmerwand, Tisch, Nest) als PNG +rendern (`--image-format=png`): Remotions WebP-Ausgabe speichert keine +Transparenz. + +### Was das Rendern bremst +Gemessen im Entwurf (halbe Auflösung, 4 Kerne auf dem VPS): die meisten +Szenen schaffen 3,5–5,5 Bilder/s. Teuer sind viele einzeln gezeichnete +Elemente (z. B. über 70 Blätter im Nest) und CSS-Filter oder Mischmodi über +das ganze Bild. Darum: Fertiges wie das Nest als Bild vorberechnen +(`F2Nest-…`), Filter nur auf die Figuren legen (`filter`-Prop von `Figur`/ +`ClipFigur`/`Nest`), keine `mixBlendMode`-Ebenen über das ganze Bild. ## Bekannte Grenzen - Die Figuren haben nur die Pose ihres Bildes. Neue Posen brauchen ein neues diff --git a/remotion/public/orte/nest_hinten.png b/remotion/public/orte/nest_hinten.png new file mode 100644 index 0000000000000000000000000000000000000000..1acc5db7fc9d2aacb6f26ddf9812dd71c05f3fd3 GIT binary patch literal 36853 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

tH+Z>>i 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 H+eQ2Zr0DRI literal 0 HcmV?d00001 diff --git a/remotion/src/Root.tsx b/remotion/src/Root.tsx index 7e7f29f..3823f3b 100644 --- a/remotion/src/Root.tsx +++ b/remotion/src/Root.tsx @@ -4,7 +4,8 @@ import {HintergrundAbend, PapierStruktur, VordergrundAbend} from './szenen/Hinte import {LaterneTest} from './szenen/LaterneTest'; import {VerformTest} from './szenen/VerformTest'; import {FolgenKompositionen} from './baukasten/folge'; -import {ORTE, OrtStill} from './baukasten/orte'; +import {NEST_BILD} from './baukasten/natur'; +import {NestStill, ORTE, OrtStill} from './baukasten/orte'; import {F02} from './folge02/Folge02'; const BILD = {fps: 30, width: 1920, height: 1080} as const; @@ -17,6 +18,9 @@ export const Root: React.FC = () => ( + {(['hinten', 'vorne'] as const).map((seite) => ( + + ))} {Object.keys(ORTE).map((name) => ( ))} diff --git a/remotion/src/baukasten/figur.tsx b/remotion/src/baukasten/figur.tsx index d900f6e..a5818f8 100644 --- a/remotion/src/baukasten/figur.tsx +++ b/remotion/src/baukasten/figur.tsx @@ -33,12 +33,13 @@ type Lage = { stauchY?: number; deckkraft?: number; schatten?: boolean; + filter?: string; // CSS-Filter nur auf die Figur (z. B. Nacht), billiger als über das ganze Bild children: React.ReactNode; figur: FigurName; }; // Gemeinsamer Rahmen: Leinwand der Figur so legen, dass der Fußpunkt auf (x, y) liegt. -const Rahmen: React.FC = ({x, y, hoehe, spiegeln, drehung = 0, stauchX = 1, stauchY = 1, deckkraft = 1, schatten = true, figur, children}) => { +const Rahmen: React.FC = ({x, y, hoehe, spiegeln, drehung = 0, stauchX = 1, stauchY = 1, deckkraft = 1, schatten = true, filter, figur, children}) => { const f = FIGUREN[figur]; const s = hoehe / f.refHoehe; return ( @@ -57,7 +58,7 @@ const Rahmen: React.FC = ({x, y, hoehe, spiegeln, drehung = 0, stauchX = 1 /> )}

-
+
{children}
diff --git a/remotion/src/baukasten/natur.tsx b/remotion/src/baukasten/natur.tsx index 3015992..464f055 100644 --- a/remotion/src/baukasten/natur.tsx +++ b/remotion/src/baukasten/natur.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import {random, useCurrentFrame} from 'remotion'; +import {Img, random, staticFile, useCurrentFrame} from 'remotion'; import {SCHRIFT} from './untertitel'; // Kleine, per Code gezeichnete Dinge: Blätter, Vögel, Schnee, Nest, Zzz, Funkeln. @@ -168,17 +168,36 @@ const nestBlaetter = (seite: 'hinten' | 'vorne') => }); const NEST = {hinten: nestBlaetter('hinten'), vorne: nestBlaetter('vorne')}; -export const Nest: React.FC<{x: number; y: number; voll?: number; seite: 'hinten' | 'vorne'; s?: number}> = ({x, y, voll = 1, seite, s = 1}) => ( -
+// Das fertige Nest (voll = 1) kommt als vorberechnetes Bild (public/orte/nest_*.png, +// Komposition F2Nest-…); nur das wachsende Nest wird Blatt für Blatt gezeichnet. +export const NEST_BILD = {b: 440, h: 260, x: 220, y: 180}; // Bildgröße und Lage des Ankerpunkts + +export const NestBlaetter: React.FC<{voll?: number; seite: 'hinten' | 'vorne'}> = ({voll = 1, seite}) => ( + <> {seite === 'hinten' && (
)} {NEST[seite].map((b, i) => b.reihe < voll ? : null, )} -
+ ); +export const Nest: React.FC<{x: number; y: number; voll?: number; seite: 'hinten' | 'vorne'; s?: number; filter?: string}> = ({x, y, voll = 1, seite, s = 1, filter}) => + voll >= 1 ? ( + + ) : ( +
+ {seite === 'hinten' && ( +
+ )} + +
+ ); + // Zzz, die aufsteigen und verblassen. export const Zzz: React.FC<{x: number; y: number; start: number; ende?: number; s?: number}> = ({x, y, start, ende = 1e9, s = 1}) => { const frame = useCurrentFrame(); diff --git a/remotion/src/baukasten/orte.tsx b/remotion/src/baukasten/orte.tsx index 8d361ec..a2eb851 100644 --- a/remotion/src/baukasten/orte.tsx +++ b/remotion/src/baukasten/orte.tsx @@ -1,6 +1,7 @@ import React from 'react'; import {AbsoluteFill, Img, random, staticFile} from 'remotion'; import './untertitel'; // lädt die Schrift für den Kalender +import {NEST_BILD, NestBlaetter} from './natur'; // Orte der Folge 2 in Aquarell-Optik. Werden einmal als PNG vorberechnet // (Kompositionen „F2Ort…“, siehe README) und in den Szenen als Bild benutzt. @@ -385,7 +386,7 @@ export const KalenderMalen: React.FC<{p: number; wackeln: number}> = ({p, wackel let spitze: {x: number; y: number}; let farbe = '#c8642c'; if (p < titelAnteil) { - spitze = {x: 560 + tp * 800, y: 175 + Math.sin(tp * 60) * 14}; + spitze = {x: 440 + tp * 1060, y: 175 + Math.sin(tp * 60) * 14}; } else { const t = kTuer(aktiv); farbe = t.farbe; @@ -400,7 +401,7 @@ export const KalenderMalen: React.FC<{p: number; wackeln: number}> = ({p, wackel - + Pinos Winterfest-Kalender @@ -431,11 +432,15 @@ export const KalenderMalen: React.FC<{p: number; wackeln: number}> = ({p, wackel - - - - - + {/* Ärmel */} + + + {/* Handrücken und Finger, die den Stift halten */} + + + + + ); @@ -455,6 +460,15 @@ export const ORTE: Record = { kalender: () => , kalender_leer: () => , }; +// Fertiges Nest zum Vorberechnen (440 × 260, Anker bei NEST_BILD.x/y) +export const NestStill: React.FC<{seite: 'hinten' | 'vorne'}> = ({seite}) => ( + +
+ +
+
+); + export const OrtStill: React.FC<{name: string}> = ({name}) => { const K = ORTE[name]; return ( diff --git a/remotion/src/baukasten/posen.ts b/remotion/src/baukasten/posen.ts index 83e3d3d..139d01c 100644 --- a/remotion/src/baukasten/posen.ts +++ b/remotion/src/baukasten/posen.ts @@ -894,6 +894,15 @@ export const POSEN: Record = { }; export const CLIPS: Record = { + "lulu_C1_gehen-schleife": { + "figur": "lulu", + "datei": "bibliothek/clips/lulu_C1_gehen-schleife.webm", + "x": 488.67289719626166, + "y": 31.077881619937692, + "b": 422.2305295950155, + "h": 705.1464174454828, + "frames": 121 + }, "lulu_C9_hals-runter": { "figur": "lulu", "datei": "bibliothek/clips/lulu_C9_hals-runter.webm", @@ -903,6 +912,15 @@ export const CLIPS: Record = { "h": 715.8629283489096, "frames": 121 }, + "noa_C1_gehen-schleife": { + "figur": "noa", + "datei": "bibliothek/clips/noa_C1_gehen-schleife.webm", + "x": 537.9688473520249, + "y": 147.8878504672897, + "b": 312.9221183800623, + "h": 555.1152647975077, + "frames": 121 + }, "noa_C4_winken": { "figur": "noa", "datei": "bibliothek/clips/noa_C4_winken.webm", @@ -912,6 +930,24 @@ export const CLIPS: Record = { "h": 546.5420560747663, "frames": 121 }, + "noa_C5_hinsetzen": { + "figur": "noa", + "datei": "bibliothek/clips/noa_C5_hinsetzen.webm", + "x": 531.5389408099688, + "y": 159.67601246105917, + "b": 430.803738317757, + "h": 542.2554517133956, + "frames": 121 + }, + "pino_C1_gehen-schleife": { + "figur": "pino", + "datei": "bibliothek/clips/pino_C1_gehen-schleife.webm", + "x": 475.8130841121495, + "y": 65.37071651090342, + "b": 469.38317757009344, + "h": 623.7009345794391, + "frames": 121 + }, "pino_C3_freudensprung": { "figur": "pino", "datei": "bibliothek/clips/pino_C3_freudensprung.webm", diff --git a/remotion/src/folge02/szene7.tsx b/remotion/src/folge02/szene7.tsx index 3081ab9..7ffc3d1 100644 --- a/remotion/src/folge02/szene7.tsx +++ b/remotion/src/folge02/szene7.tsx @@ -12,6 +12,7 @@ import {plane} from './plan'; const NOA_X7 = 1140; const LULU_X7 = 1800; const LATERNE = {x: 1290, y: BODEN + 10}; +const NACHT = 'brightness(0.62) saturate(0.8) hue-rotate(-8deg)'; // nur auf Figuren und Nest export const S7 = plane('s7', [ @@ -68,7 +69,6 @@ export const Szene7: React.FC = () => { <> -
{f < winken ? ( { x={NOA_X7} y={BODEN} stauchY={atmen(f, 2)} + filter={NACHT} /> ) : ( - + )} - +
- +
- + { ]} x={LULU_X7} y={BODEN - 10} + filter={NACHT} stauchY={atmen(f, 3, 0.006)} drehung={f > z.t1.start && f < z.t1.ende ? Math.sin((f - z.t1.start) * 0.25) * 2 : 0} /> -
{/* warmes Licht der Laterne */}
{ top: LATERNE.y - 560, width: 1040, height: 900, - background: `radial-gradient(closest-side, rgba(255, 200, 110, ${0.42 * flackern}), rgba(255, 180, 90, 0.12) 55%, rgba(255, 180, 90, 0) 100%)`, - mixBlendMode: 'screen', + background: `radial-gradient(closest-side, rgba(255, 200, 110, ${0.3 * flackern}), rgba(255, 180, 90, 0.08) 55%, rgba(255, 180, 90, 0) 100%)`, }} />