import React from 'react'; import {useCurrentFrame} from 'remotion'; import {kurve} from '../bewegung'; import {ClipFigur, Figur, Kamera} from '../baukasten/figur'; import {Blende, Vignette, atmen, huepfer, kamFahrt} from '../baukasten/helfer'; import {Funkeln} from '../baukasten/natur'; import {KALENDER_TUER1, KalenderAufTisch, KalenderMalen, Ort} from '../baukasten/orte'; import {Untertitel} from '../baukasten/untertitel'; import {plane} from './plan'; // Szene 6: Noas Idee. Abends in Noas Zimmer, Noa malt den Kalender. const N = 420; // Noas Größe im Zimmer (näher an der Kamera) const NOA_X6 = 800; const PINO_X6 = 1090; const TISCH_Y = 802; const LULU_X6 = 1440; export const S6 = plane('s6', [ {id: 'bild0', dauer: 3.0}, {id: 'malen', dauer: 5.5}, {id: 'l1', wer: 'LULU', text: 'Was malst du da, Noa?'}, {id: 'n1', wer: 'NOA', text: 'Einen Kalender! Mit 24 Türchen.'}, {id: 'n2', wer: 'NOA', text: 'Wir öffnen jeden Tag eins. Und hinter jedem Türchen steckt etwas, das Pino wach hält.'}, {id: 'p1', wer: 'PINO', text: 'Was denn?'}, {id: 'n3', wer: 'NOA', text: 'Etwas zum Entdecken, zum Basteln, zum Backen und zum Singen.'}, {id: 'n4', wer: 'NOA', text: 'Und wenn das letzte Türchen offen ist, ist Winterfest!'}, {id: 'bild1', dauer: 2.0}, {id: 'p2', wer: 'PINO', text: 'Meine Stacheln kribbeln!'}, {id: 'bild2', dauer: 4.2}, ]); export const Szene6: React.FC = () => { const f = useCurrentFrame(); const {z, dauer} = S6; // Noa malt: Blick von oben aufs Blatt, während „malen“ und während sie antwortet (n1). // Langsamer Anfang, dazwischen Zimmer (es geht weiter), bei n1 ist er fast fertig. const malP = kurve(f, [ [z.malen.start, 0], [z.malen.start + 50, 0.03], [z.malen.ende, 0.2], [z.n1.start, 0.8], [z.n1.ende, 0.96], ]); const malSicht = (f >= z.malen.start && f < z.l1.start) || (f >= z.n1.start && f < z.n1.ende + 6); const malt = f < z.n1.ende; const luluX = kurve(f, [ [20, 1900], [z.bild0.ende, LULU_X6], ]); const sprung = z.bild1.start; const imSprung = f >= sprung && f < sprung + 58; const kribbeln = f > z.p2.start - 5 && f < z.p2.ende + 10; const zitter = kribbeln ? Math.sin(f * 2.3) * 3 : 0; const kalender = f >= z.bild2.start; const tippen = [z.bild2.start + 45, z.bild2.start + 75]; const tippY = tippen.reduce((s, t) => s + Math.max(0, Math.sin(Math.min(1, Math.max(0, (f - t) / 14)) * Math.PI)) * 30, 0); const leuchten = kalender ? 0.5 + 0.5 * Math.sin((f - z.bild2.start) * 0.15) : 0; const kam = kamFahrt(f, [ [0, 960, 540, 1.0], [z.bild0.ende, 1060, 560, 1.15], [z.l1.start, 1080, 640, 1.5], [z.n1.ende, 1060, 650, 1.5], [z.p1.start, 980, 650, 1.6], [z.n4.ende, 960, 640, 1.5], [sprung + 10, 1050, 700, 2.0], [z.p2.ende, 1060, 710, 2.1], ]); const kalKam = kamFahrt(f, [ [z.bild2.start, 960, 540, 1.0], [dauer, KALENDER_TUER1.x - 40, KALENDER_TUER1.y, 1.6], ]); if (malSicht) { return ( <> ); } if (kalender) { return ( <>
{/* Buntstift tippt auf Türchen 1 */}
); } return ( <> {f >= z.malen.start && } {imSprung ? ( ) : ( )} {kribbeln && } ); };