From b74cd4953e26b87b861c4ed9d12b06907a325bc2 Mon Sep 17 00:00:00 2001 From: Lara Date: Sat, 7 Nov 2026 22:49:49 +0000 Subject: [PATCH] Folge 9, Szene 2: Higgsfield-Pose noa_A_drachen-vorn, Schwanz mit Schleifen in Remotion, Nahaufnahme zeigt alle drei Schleifen Co-Authored-By: Claude Opus 5.5 --- remotion/src/folge09/szene2.tsx | 48 +++++++++++++++------------------ 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/remotion/src/folge09/szene2.tsx b/remotion/src/folge09/szene2.tsx index 152cf9c..7f2c3df 100644 --- a/remotion/src/folge09/szene2.tsx +++ b/remotion/src/folge09/szene2.tsx @@ -8,10 +8,9 @@ import {Untertitel} from '../baukasten/untertitel'; import {plane} from './plan'; import {LuluImWind, PLATZ, WindGarten} from './teile'; -// Szene 2: Mein Drachen. Windiger Nachmittag; Noa hält ihren roten Papierdrachen vor der Brust an den -// beiden Seitenspitzen (Pose noa_A_drachenschnur: die Hände stehen auseinander, der Drachen verdeckt die -// Spule). Die Fäustlinge werden über dem Drachen noch einmal gezeichnet, damit sie ihn sichtbar halten. -// Die drei Schleifen am Schwanz leuchten beim Zählen nacheinander auf. +// Szene 2: Mein Drachen. Windiger Nachmittag; Noa hält ihren roten Papierdrachen an den Seitenspitzen vor der +// Brust (Higgsfield-Pose noa_A_drachen-vorn, der Drachenkörper ist mitgemalt). Den Schwanz mit den drei +// Schleifen zeichnet Remotion an die untere Spitze – die Schleifen leuchten beim Zählen nacheinander auf. export const S2 = plane('s2', [ {id: 'bild0', dauer: 2.6}, @@ -28,33 +27,30 @@ export const S2 = plane('s2', [ const klemm = {extrapolateLeft: 'clamp', extrapolateRight: 'clamp'} as const; -// Fäustlinge in noa_A_drachenschnur (Leinwand, gemessen) -const LINKS = {cx: 709, cy: 453, rx: 32, ry: 30}; -const RECHTS = {cx: 806, cy: 423, rx: 20, ry: 30}; -const POSE = 'noa_A_drachenschnur'; +// Drachen in noa_A_drachen-vorn (Leinwand, gemessen): obere Spitze 686/336, Kreuz 686/441, untere Spitze 686/651 +const OBEN = {cx: 686, cy: 336}; +const KREUZ = {cx: 686, cy: 441}; +const UNTEN = {cx: 686, cy: 651}; export const Szene2: React.FC = () => { const f = useCurrentFrame(); const {z, dauer} = S2; - const hand = (h: typeof LINKS) => { - const m = punkt('noa', PLATZ.noa, BODEN, h.cx, h.cy); - const e = punkt('noa', PLATZ.noa, BODEN, h.cx + h.rx, h.cy + h.ry); - return {...m, clip: `ellipse(${e.x - m.x}px ${e.y - m.y}px at ${m.x}px ${m.y}px)`}; - }; - const l = hand(LINKS); - const r = hand(RECHTS); - // Leistenkreuz in der Mitte zwischen den Händen, Querleiste von Hand zu Hand (Drachen: ±40 px bei s = 1) - const d = {x: (l.x + r.x) / 2, y: (l.y + r.y) / 2}; - const neigung = (Math.atan2(r.y - l.y, r.x - l.x) * 180) / Math.PI; - const groesse = Math.hypot(r.x - l.x, r.y - l.y) / 80; - const noaPose = ; + const p = (q: typeof OBEN) => punkt('noa', PLATZ.noa, BODEN, q.cx, q.cy); + const oben = p(OBEN); + const unten = p(UNTEN); + const d = p(KREUZ); + // Remotion-Drachen genau deckungsgleich (1 = 120 px hoch, Spitze 78 px unter dem Kreuz); sichtbar ist + // nur, was unter der unteren Spitze liegt: der Schwanz. + // (im Bild nachgemessen: deckungsgleich mit s = halbe Spitzen-Höhe / 120) + const groesse = (unten.y - oben.y) / 120; + const nurSchwanz = `polygon(0 ${unten.y - 2}px, 100% ${unten.y - 2}px, 100% 100%, 0 100%)`; const leuchte = (id: 'z1' | 'z2' | 'z3') => interpolate(f, [z[id].start, z[id].start + 6, z[id].frei, z[id].frei + 8], [0, 1, 1, 0.25], klemm); const kam = kamFahrt(f, [ [0, 1060, 540, 1.0], [z.bild0.ende, 1060, 600, 1.15], [z.n2.ende, 1000, 560, 1.2], - [z.e1.start + 20, d.x, d.y + 30, 2.0], // Nahaufnahme Drachen zum Zählen - [z.e2.ende, d.x, d.y + 30, 2.0], + [z.e1.start + 20, d.x + 140, BODEN - 70, 1.5], // Nahaufnahme Drachen samt Schleifen im Gras zum Zählen + [z.e2.ende, d.x + 140, BODEN - 70, 1.5], [dauer, 1060, 600, 1.15], ]); return ( @@ -63,10 +59,10 @@ export const Szene2: React.FC = () => { - {noaPose} - -
{noaPose}
-
{noaPose}
+ +
+ +