Folge 1, Rückmeldung: Apfelübergabe und Hinunterbeugen mit Lulus Hals-Clip (Apfel bleibt im Maul, Bahn gemessen), Lulu wartet neben dem Apfel, Blume per Hocke übergeben, Übergabe weit im Bild, Laubhaufen in Szene 7 versetzt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lara 2026-11-02 14:38:58 +01:00
parent 88d2ae0f01
commit 4b99ae19c1
6 changed files with 134 additions and 68 deletions

View file

@ -71,3 +71,23 @@ export const hopfStauch = (frame: number, start: number, dauer = 12) => {
if (frame >= start && frame < start + dauer) return 1.04; if (frame >= start && frame < start + dauer) return 1.04;
return 1; return 1;
}; };
// Lulus Maul im Clip lulu_C9_hals-runter (gemessen an der Nase, Leinwand-Koordinaten),
// je [Clip-Bild (24 fps), cx, cy]. Für Dinge, die Lulu beim Halssenken im Maul trägt.
const C9 = {x: 294.7, y: 24.6, s: 709.43 / 662};
const C9_NASE: [number, number, number][] = [
[0, 276, 143], [17, 276, 143], [21, 260, 151], [25, 246, 158], [29, 231, 167], [33, 215, 179],
[37, 196, 197], [41, 180, 217], [45, 165, 245], [49, 151, 277], [53, 143, 301], [57, 134, 341],
[61, 130, 371], [65, 128, 403], [69, 126, 435], [73, 127, 461], [77, 129, 489], [81, 135, 520],
[85, 142, 542], [89, 147, 563], [93, 155, 577], [97, 166, 587], [101, 176, 593], [105, 181, 597], [120, 179, 596],
];
export const luluMaulC9 = (clipBild: number) => {
const b = Math.min(120, Math.max(0, clipBild));
let i = 0;
while (i < C9_NASE.length - 2 && C9_NASE[i + 1][0] < b) i++;
const [b0, x0, y0] = C9_NASE[i];
const [b1, x1, y1] = C9_NASE[i + 1];
const t = b1 === b0 ? 0 : (b - b0) / (b1 - b0);
// Maul knapp über der Unterkante der Nase
return {cx: C9.x + (x0 + (x1 - x0) * t) * C9.s, cy: C9.y + (y0 + (y1 - y0) * t - 6) * C9.s};
};

View file

@ -12,7 +12,7 @@ import {APFEL, BLUME_X, BLUME_Y, HAUFEN_X} from './szene2';
// Szene 3: Der Apfel ist zu hoch. Pino hüpft, Noa streckt sich – beide zu klein. // Szene 3: Der Apfel ist zu hoch. Pino hüpft, Noa streckt sich – beide zu klein.
// Pino-Bilder schauen nach rechts (zum Apfel); zu Noa (links) wird er gespiegelt. // Pino-Bilder schauen nach rechts (zum Apfel); zu Noa (links) wird er gespiegelt.
export const PINO_BAUM_X = 500; // Pino unter dem Apfel export const PINO_BAUM_X = 470; // Pino unter dem Apfel
export const NOA_BAUM_X = 330; // Noa am untersten Ast export const NOA_BAUM_X = 330; // Noa am untersten Ast
export const S3 = plane('s3', [ export const S3 = plane('s3', [

View file

@ -1,8 +1,8 @@
import React from 'react'; import React from 'react';
import {useCurrentFrame} from 'remotion'; import {useCurrentFrame} from 'remotion';
import {kurve} from '../bewegung'; import {kurve} from '../bewegung';
import {Figur, Geher, Kamera} from '../baukasten/figur'; import {ClipFigur, Figur, Geher, Kamera} from '../baukasten/figur';
import {Blende, Vignette, atmen, hopfStauch, huepfer, kamFahrt} from '../baukasten/helfer'; import {Blende, Vignette, atmen, hopfStauch, huepfer, kamFahrt, luluMaulC9, punkt} from '../baukasten/helfer';
import {Apfel, Blaetterwind, Blume, Laubhaufen} from '../baukasten/natur'; import {Apfel, Blaetterwind, Blume, Laubhaufen} from '../baukasten/natur';
import {BODEN, Ort} from '../baukasten/orte'; import {BODEN, Ort} from '../baukasten/orte';
import {Untertitel} from '../baukasten/untertitel'; import {Untertitel} from '../baukasten/untertitel';
@ -16,11 +16,13 @@ import {NOA_BAUM_X, PINO_BAUM_X} from './szene3';
// Lulus Maul mit dem Apfel (lulu_A_apfel) liegt 149 px links und 542 px über dem Fußpunkt: // Lulus Maul mit dem Apfel (lulu_A_apfel) liegt 149 px links und 542 px über dem Fußpunkt:
// so steht sie, dass sie den Apfel am Baum erreicht. // so steht sie, dass sie den Apfel am Baum erreicht.
export const LULU_APFEL_X = APFEL.x + 149; export const LULU_APFEL_X = APFEL.x + 149;
// Mit gesenktem Hals (lulu_A_hals-unten) liegt das Maul 244 px links vom Fußpunkt, knapp über dem Boden. // Den Hals senkt sie mit dem Clip lulu_C9_hals-runter; der Apfel bleibt dabei im Maul
const LULU_UNTEN_X = 840; // (Maul-Bahn gemessen, luluMaulC9). Unten liegt das Maul direkt neben Pino.
const LULU_WARTE_X = 930; // bis zum Pflücken etwas rechts vom Apfel const LULU_WARTE_X = 930; // bis zum Pflücken etwas rechts vom Apfel
const MAUL_UNTEN = {x: LULU_UNTEN_X - 244, y: BODEN - 22}; const C9_TEMPO = 1.3;
const APFEL_BODEN = {x: 578, y: BODEN - 14}; const C9_START = 17; // vorher steht sie im Clip still
const C9_UNTEN = 105; // Kopf unten
const c9Frames = (bilder: number) => (bilder * 30) / 24 / C9_TEMPO;
export const S4 = plane('s4', [ export const S4 = plane('s4', [
{id: 'bild0', dauer: 3.4}, {id: 'bild0', dauer: 3.4},
@ -33,55 +35,64 @@ export const S4 = plane('s4', [
{id: 'p2', wer: 'PINO'}, {id: 'p2', wer: 'PINO'},
{id: 'l2', wer: 'LULU'}, {id: 'l2', wer: 'LULU'},
{id: 'l3', wer: 'LULU'}, {id: 'l3', wer: 'LULU'},
{id: 'bild2', dauer: 3.4}, {id: 'bild2', dauer: 5.0},
{id: 'p3', wer: 'PINO'}, {id: 'p3', wer: 'PINO'},
{id: 'l4', wer: 'LULU'}, {id: 'l4', wer: 'LULU'},
{id: 'p4', wer: 'PINO'}, {id: 'p4', wer: 'PINO'},
{id: 'bild3', dauer: 3.6},
]); ]);
export const Szene4: React.FC = () => { export const Szene4: React.FC = () => {
const f = useCurrentFrame(); const f = useCurrentFrame();
const {z, dauer} = S4; const {z, dauer} = S4;
// Lulu stakst langsam von rechts herein (tapp, tapp) // Lulu stakst von rechts herein (tapp, tapp), wartet, tritt zum Apfel und frisst ihn
const luluAn = z.bild0.ende + 10; const luluAn = z.bild0.ende + 10;
const essen = z.bild2.start + 10; const essen = z.bild2.start + 10;
const unten = z.bild2.start + 52; const runter = essen + 30; // Hals senken (Clip)
const ablegen = z.bild2.ende - 6; const unten = runter + c9Frames(C9_UNTEN - C9_START);
const ablegen = unten + 10;
const hoch = z.p4.ende - 4; // Hals wieder heben (Clip rückwärts)
const oben = hoch + c9Frames(C9_UNTEN);
const luluX = kurve(f, [ const luluX = kurve(f, [
[0, 1650], [0, 1650],
[luluAn, LULU_WARTE_X], [luluAn, LULU_WARTE_X],
[essen - 16, LULU_WARTE_X], [essen - 16, LULU_WARTE_X],
[essen + 2, LULU_APFEL_X], [essen + 2, LULU_APFEL_X],
[unten, LULU_APFEL_X],
[unten + 14, LULU_UNTEN_X],
]); ]);
const luluY = BODEN - 6;
const luluGeht = f < luluAn; const luluGeht = f < luluAn;
const imClip = f >= runter && f < oben;
const luluPose: [number, string][] = [ const luluPose: [number, string][] = [
[0, 'lulu_A4_staunen'], [0, 'lulu_A4_staunen'],
[z.l1.start, 'lulu_A3_lachen'], [z.l1.start, 'lulu_A3_lachen'],
[z.l2.start, 'lulu_A5_blick-links'], [z.l2.start, 'lulu_A5_blick-links'],
[z.l3.start + 20, 'lulu_A4_staunen'], [z.l3.start + 20, 'lulu_A4_staunen'],
[essen, 'lulu_A_apfel'], [essen, 'lulu_A_apfel'],
[unten, 'lulu_A_hals-unten'], [oben - 1, 'lulu_A1_augen-zu'],
[z.p4.ende - 4, 'lulu_A3_lachen'], [oben + 6, 'lulu_A3_lachen'],
]; ];
// Der Apfel: am Baum → in Lulus Maul (im Bild lulu_A_apfel) → am Maul nach unten → vor Pino // Der Apfel: am Baum → im Maul (im Bild lulu_A_apfel) → im Maul mit nach unten → neben Pino
const apfelAmBaum = f < essen + 6; const apfelAmBaum = f < essen + 6;
const apfelAmMaul = f >= unten + 8; const clipBild = Math.min(C9_UNTEN, C9_START + ((f - runter) * C9_TEMPO * 24) / 30);
const apfel = apfelAmMaul const maul = luluMaulC9(clipBild);
? { const amMaul = punkt('lulu', luluX, luluY, maul.cx, maul.cy);
const APFEL_BODEN = {x: amMaul.x + 8, y: BODEN - 12};
const apfelSichtbar = f >= runter && f < 1e9;
const apfel =
f < ablegen
? amMaul
: {
x: kurve(f, [ x: kurve(f, [
[ablegen, MAUL_UNTEN.x], [ablegen, amMaul.x],
[ablegen + 12, APFEL_BODEN.x], [ablegen + 12, APFEL_BODEN.x],
]), ]),
y: kurve(f, [ y: kurve(f, [
[ablegen, MAUL_UNTEN.y], [ablegen, amMaul.y],
[ablegen + 12, APFEL_BODEN.y], [ablegen + 12, APFEL_BODEN.y],
]), ]),
} };
: APFEL;
// Pino staunt, freut sich; Stacheln halb hoch bei „noch viel größer“ (kurz aufplustern) // Pino staunt, freut sich; Stacheln halb hoch bei „noch viel größer“ (kurz aufplustern)
const pinoPose: [number, string][] = [ const pinoPose: [number, string][] = [
@ -116,10 +127,10 @@ export const Szene4: React.FC = () => {
[z.p2.start + 10, 520, 800, 1.8], [z.p2.start + 10, 520, 800, 1.8],
[z.l2.start + 10, 640, 430, 1.6], [z.l2.start + 10, 640, 430, 1.6],
[z.l3.ende, 620, 420, 1.7], [z.l3.ende, 620, 420, 1.7],
[unten - 10, 620, 440, 1.6], [essen + 20, 640, 470, 1.6],
[unten + 30, 570, 800, 1.8], [unten, 650, 640, 1.2],
[z.p3.start, 560, 780, 1.7], [z.p4.ende, 650, 640, 1.2],
[dauer, 600, 700, 1.4], [dauer, 680, 600, 1.15],
]); ]);
return ( return (
@ -129,14 +140,22 @@ export const Szene4: React.FC = () => {
<Blume x={BLUME_X} y={BLUME_Y} s={0.8} /> <Blume x={BLUME_X} y={BLUME_Y} s={0.8} />
{apfelAmBaum && <Apfel x={APFEL.x} y={APFEL.y} s={0.9} r={Math.sin(f * 0.05) * 4} />} {apfelAmBaum && <Apfel x={APFEL.x} y={APFEL.y} s={0.9} r={Math.sin(f * 0.05) * 4} />}
{luluGeht ? ( {luluGeht ? (
<Geher figur="lulu" x={luluX} y={BODEN - 6} tempo={0.6} /> <Geher figur="lulu" x={luluX} y={luluY} tempo={0.6} />
) : imClip ? (
f < hoch ? (
<ClipFigur name="lulu_C9_hals-runter" start={runter - c9Frames(C9_START)} tempo={C9_TEMPO} bis={C9_UNTEN / 24} x={luluX} y={luluY} />
) : ( ) : (
<Figur pose={luluPose} x={luluX} y={BODEN - 6} stauchY={atmen(f, 3, 0.006)} blende={14} /> <ClipFigur name="lulu_C9_hals-runter" start={hoch} tempo={C9_TEMPO} bis={C9_UNTEN / 24} rueckwaerts x={luluX} y={luluY} />
)
) : (
<Figur pose={luluPose} x={luluX} y={luluY} stauchY={atmen(f, 3, 0.006)} blende={14} />
)} )}
{/* Übergang Apfel-Bild → Clip: das Apfel-Bild blendet kurz aus */}
{f >= runter && f < runter + 8 && <Figur pose="lulu_A_apfel" x={luluX} y={luluY} deckkraft={1 - (f - runter) / 8} />}
<Laubhaufen x={HAUFEN_X} y={BODEN + 6} /> <Laubhaufen x={HAUFEN_X} y={BODEN + 6} />
<Figur pose={noaPose} x={NOA_BAUM_X} y={noaY} stauchY={atmen(f, 2)} blende={10} /> <Figur pose={noaPose} x={NOA_BAUM_X} y={noaY} stauchY={atmen(f, 2)} blende={10} />
<Figur pose={pinoPose} x={PINO_BAUM_X} y={pinoY} stauchY={pinoStauch} blende={10} /> <Figur pose={pinoPose} x={PINO_BAUM_X} y={pinoY} stauchY={pinoStauch} blende={10} />
{apfelAmMaul && <Apfel x={apfel.x} y={apfel.y} s={0.62} />} {apfelSichtbar && <Apfel x={apfel.x} y={apfel.y} s={0.8} />}
</Kamera> </Kamera>
<Blaetterwind anzahl={4} /> <Blaetterwind anzahl={4} />
<Vignette /> <Vignette />

View file

@ -1,7 +1,7 @@
import React from 'react'; import React from 'react';
import {useCurrentFrame} from 'remotion'; import {useCurrentFrame} from 'remotion';
import {kurve} from '../bewegung'; import {kurve} from '../bewegung';
import {Figur, Kamera} from '../baukasten/figur'; import {ClipFigur, Figur, Kamera} from '../baukasten/figur';
import {Blende, Vignette, atmen, hopfStauch, huepfer, kamFahrt} from '../baukasten/helfer'; import {Blende, Vignette, atmen, hopfStauch, huepfer, kamFahrt} from '../baukasten/helfer';
import {Blaetterwind, Blume, Laubhaufen} from '../baukasten/natur'; import {Blaetterwind, Blume, Laubhaufen} from '../baukasten/natur';
import {BODEN, Ort} from '../baukasten/orte'; import {BODEN, Ort} from '../baukasten/orte';
@ -44,23 +44,29 @@ export const Szene5: React.FC = () => {
const f = useCurrentFrame(); const f = useCurrentFrame();
const {z, dauer} = S5; const {z, dauer} = S5;
// Lulu neigt sich zur Blume (nach links), wackelt, richtet sich wieder auf // Lulu senkt den Hals (Clip) bis zur Hälfte, bleibt wackelnd stecken, hebt ihn wieder (Clip rückwärts)
const C9_TEMPO = 1.1;
const C9_START = 17;
const C9_HALB = 52; // so weit kommt sie
const c9 = (bilder: number) => (bilder * 30) / 24 / C9_TEMPO;
const beugA = z.bild1.start; const beugA = z.bild1.start;
const beugE = z.l4.ende; const halb = beugA + c9(C9_HALB - C9_START);
const neigen = kurve(f, [ const wieder = z.l4.ende - 6;
[beugA, 0], const aufrecht = wieder + c9(C9_HALB);
[beugA + 36, 1], const imClip = f >= beugA && f < aufrecht;
[beugE - 10, 1], const steckt = kurve(f, [
[beugE + 18, 0], [halb - 6, 0],
[halb + 6, 1],
[wieder - 6, 1],
[wieder + 4, 0],
]); ]);
const wackeln = neigen * (Math.sin(f * 0.55) * 3 + Math.sin(f * 0.23) * 2); // angestrengtes Wackeln: kleine Kipp- und Federbewegung um die Füße
const luluDreh = -24 * neigen + wackeln * 1.4; const luluDreh = steckt * (Math.sin(f * 0.6) * 1.6 + Math.sin(f * 0.27) * 1.2);
const luluFeder = 1 - steckt * 0.012 * (1 + Math.sin(f * 0.9));
const luluPose: [number, string][] = [ const luluPose: [number, string][] = [
[0, 'lulu_A4_staunen'], [0, 'lulu_A4_staunen'],
[z.l1.start + 10, 'lulu_A3_lachen'], [z.l1.start + 10, 'lulu_A3_lachen'],
[beugA + 10, 'lulu_A1_augen-zu'], [aufrecht - 1, 'lulu_B1_traurig'],
[z.l3.start, 'lulu_B2_erschrocken'],
[z.bild2.start, 'lulu_B1_traurig'],
[z.n1.start + 20, 'lulu_A4_staunen'], [z.n1.start + 20, 'lulu_A4_staunen'],
]; ];
@ -101,7 +107,15 @@ export const Szene5: React.FC = () => {
<Ort name="garten_herbst" /> <Ort name="garten_herbst" />
<Laubhaufen x={HAUFEN_X} y={BODEN + 6} /> <Laubhaufen x={HAUFEN_X} y={BODEN + 6} />
<Blume x={BLUME_X} y={BLUME_Y} s={0.8} r={Math.sin(f * 0.07) * 3} /> <Blume x={BLUME_X} y={BLUME_Y} s={0.8} r={Math.sin(f * 0.07) * 3} />
<Figur pose={luluPose} x={LULU_BLUME_X} y={BODEN - 6} drehung={luluDreh} stauchY={atmen(f, 3, 0.006)} blende={12} /> {imClip ? (
f < wieder ? (
<ClipFigur name="lulu_C9_hals-runter" start={beugA - c9(C9_START)} tempo={C9_TEMPO} bis={C9_HALB / 24} x={LULU_BLUME_X} y={BODEN - 6} drehung={luluDreh} stauchY={luluFeder} />
) : (
<ClipFigur name="lulu_C9_hals-runter" start={wieder} tempo={C9_TEMPO} bis={C9_HALB / 24} rueckwaerts x={LULU_BLUME_X} y={BODEN - 6} drehung={luluDreh} />
)
) : (
<Figur pose={luluPose} x={LULU_BLUME_X} y={BODEN - 6} stauchY={atmen(f, 3, 0.006)} blende={12} />
)}
<Figur pose={noaPose} x={NOA_BLUME_X} y={BODEN + kn.y + huepfer(f, z.n1.start, 18, 10)} stauchY={atmen(f, 2) * kn.stauch} drehung={kn.dreh} blende={10} /> <Figur pose={noaPose} x={NOA_BLUME_X} y={BODEN + kn.y + huepfer(f, z.n1.start, 18, 10)} stauchY={atmen(f, 2) * kn.stauch} drehung={kn.dreh} blende={10} />
<Figur pose={pinoPose} x={PINO_BLUME_X} y={BODEN + kp.y + huepfer(f, z.n1.ende - 10, 26, 12)} stauchY={atmen(f, 1, 0.01) * kp.stauch * hopfStauch(f, z.n1.ende + 2)} drehung={kp.dreh} blende={10} /> <Figur pose={pinoPose} x={PINO_BLUME_X} y={BODEN + kp.y + huepfer(f, z.n1.ende - 10, 26, 12)} stauchY={atmen(f, 1, 0.01) * kp.stauch * hopfStauch(f, z.n1.ende + 2)} drehung={kp.dreh} blende={10} />
</Kamera> </Kamera>

View file

@ -46,7 +46,7 @@ export const Szene6: React.FC = () => {
[da, PINO_AN_BLUME.x], [da, PINO_AN_BLUME.x],
[zurueck, PINO_AN_BLUME.x], [zurueck, PINO_AN_BLUME.x],
[mitteZurueck, VORN.x], [mitteZurueck, VORN.x],
[wieder, NOA_BLUME_X + 120], [wieder, NOA_BLUME_X + 80],
]); ]);
const pinoBoden = kurve(f, [ const pinoBoden = kurve(f, [
[hin, BODEN], [hin, BODEN],
@ -67,30 +67,43 @@ export const Szene6: React.FC = () => {
const s = 136 / 571; // Pino: Bildschirm-Pixel je Leinwand-Pixel const s = 136 / 571; // Pino: Bildschirm-Pixel je Leinwand-Pixel
const pfoten = {x: pinoX + 4, y: pinoBoden - 210 * s}; const pfoten = {x: pinoX + 4, y: pinoBoden - 210 * s};
// Die Blume: am Zaun → in Pinos Pfoten → zu Noa, die sie hochhält // Die Blume: am Zaun → in Pinos Pfoten → Noa hockt sich hin und nimmt sie → steht auf und hält sie hoch
const geben = z.bild1.start + 6; const hocke = wieder - 12;
const hoch = geben + 26; const nehmen = wieder + 14;
// rechte Hand in noa_A_arme-hoch: Leinwand (800, 190), Fuß (675, 700), Maßstab 340/535 const aufstehen = nehmen + 14;
const NOA_HAENDE = {x: NOA_BLUME_X + 79, y: BODEN - 310}; const BLENDE = 14;
// Hände: noa_B_hocken auf den Knien (Leinwand ca. 700, 520), noa_A_arme-hoch rechte Hand (800, 190); Fuß (675, 700), Maßstab 340/535
const m = 340 / 535;
const HAND_HOCKE = {x: NOA_BLUME_X + (700 - 675) * m, y: BODEN + (520 - 700) * m};
const HAND_OBEN = {x: NOA_BLUME_X + (800 - 675) * m, y: BODEN + (190 - 700) * m};
let blume: {x: number; y: number; s: number} = {x: BLUME_X, y: BLUME_Y, s: 0.8}; let blume: {x: number; y: number; s: number} = {x: BLUME_X, y: BLUME_Y, s: 0.8};
if (f >= pflueck && f < geben) blume = {x: pfoten.x, y: pfoten.y + 20, s: 0.55}; if (f >= pflueck) blume = {x: pfoten.x, y: pfoten.y + 20, s: 0.55};
if (f >= geben) if (f >= nehmen)
blume = { blume = {
x: kurve(f, [ x: kurve(f, [
[geben, NOA_BLUME_X + 120], [nehmen, pfoten.x],
[hoch, NOA_HAENDE.x], [nehmen + 10, HAND_HOCKE.x],
[aufstehen, HAND_HOCKE.x],
[aufstehen + BLENDE, HAND_OBEN.x],
]), ]),
y: kurve(f, [ y: kurve(f, [
[geben, BODEN - 20], [nehmen, pfoten.y + 20],
[hoch, NOA_HAENDE.y], [nehmen + 10, HAND_HOCKE.y + 12],
[aufstehen, HAND_HOCKE.y + 12],
[aufstehen + BLENDE, HAND_OBEN.y + 12],
]),
s: kurve(f, [
[nehmen, 0.55],
[aufstehen + BLENDE, 0.62],
]), ]),
s: 0.62,
}; };
const wechsel = (t: number) => (f >= t && f < t + BLENDE ? Math.sin(((f - t) / BLENDE) * Math.PI) : 0);
const noaStauch = 1 - 0.05 * wechsel(hocke) + 0.03 * wechsel(aufstehen);
const noaPose: [number, string][] = [ const noaPose: [number, string][] = [
[0, 'noa_A3_lachen'], [0, 'noa_A3_lachen'],
[geben, 'noa_A_arme-hoch'], [hocke, 'noa_B_hocken'],
[z.e1.start, 'noa_A_arme-hoch'], [aufstehen, 'noa_A_arme-hoch'],
[z.e3.start, 'noa_A3_lachen'], [z.e3.start, 'noa_A3_lachen'],
]; ];
const blumeImBild = f < z.e3.start; const blumeImBild = f < z.e3.start;
@ -114,7 +127,7 @@ export const Szene6: React.FC = () => {
[da, 1450, 780, 1.7], [da, 1450, 780, 1.7],
[zurueck, 1350, 780, 1.6], [zurueck, 1350, 780, 1.6],
[wieder, 960, 740, 1.6], [wieder, 960, 740, 1.6],
[hoch, 960, 660, 1.5], [aufstehen + BLENDE, 960, 680, 1.5],
[nahA - 1, 960, 660, 1.5], [nahA - 1, 960, 660, 1.5],
[nahA, LULU_NASE.x - 20, LULU_NASE.y + 60, 3.2], [nahA, LULU_NASE.x - 20, LULU_NASE.y + 60, 3.2],
[nahE - 1, LULU_NASE.x - 20, LULU_NASE.y + 60, 3.0], [nahE - 1, LULU_NASE.x - 20, LULU_NASE.y + 60, 3.0],
@ -133,7 +146,7 @@ export const Szene6: React.FC = () => {
<Laubhaufen x={HAUFEN_X} y={BODEN + 6} /> <Laubhaufen x={HAUFEN_X} y={BODEN + 6} />
{f < pflueck && <Blume x={BLUME_X} y={BLUME_Y} s={0.8} r={Math.sin(f * 0.07) * 3} />} {f < pflueck && <Blume x={BLUME_X} y={BLUME_Y} s={0.8} r={Math.sin(f * 0.07) * 3} />}
<Figur pose={luluPose} x={LULU_BLUME_X} y={BODEN - 6} stauchY={atmen(f, 3, 0.006)} blende={12} /> <Figur pose={luluPose} x={LULU_BLUME_X} y={BODEN - 6} stauchY={atmen(f, 3, 0.006)} blende={12} />
<Figur pose={noaPose} x={NOA_BLUME_X} y={BODEN + huepfer(f, hoch, 14, 10)} stauchY={atmen(f, 2) * hopfStauch(f, hoch + 10)} blende={10} /> <Figur pose={noaPose} x={NOA_BLUME_X} y={BODEN + huepfer(f, aufstehen + BLENDE, 14, 10)} stauchY={atmen(f, 2) * noaStauch * hopfStauch(f, aufstehen + BLENDE + 10)} blende={BLENDE} />
{pinoGehtHin ? ( {pinoGehtHin ? (
<Geher figur="pino" spiegeln x={pinoX} y={pinoBoden} tempo={1.4} /> <Geher figur="pino" spiegeln x={pinoX} y={pinoBoden} tempo={1.4} />
) : pinoGehtZurueck ? ( ) : pinoGehtZurueck ? (

View file

@ -63,7 +63,7 @@ export const Szene7: React.FC = () => {
<> <>
<Kamera {...kam}> <Kamera {...kam}>
<Ort name="garten_herbst_abend" /> <Ort name="garten_herbst_abend" />
<Laubhaufen x={HAUFEN_X + 220} y={BODEN + 6} /> <Laubhaufen x={HAUFEN_X + 470} y={BODEN + 6} />
<Figur pose="lulu_B_liegt" x={LULU_X} y={BODEN + 10} stauchY={atmen(f, 3, 0.008)} /> <Figur pose="lulu_B_liegt" x={LULU_X} y={BODEN + 10} stauchY={atmen(f, 3, 0.008)} />
<Figur pose="noa_B_sitzt" x={NOA_X} y={BODEN + 10} stauchY={atmen(f, 2, 0.008)} /> <Figur pose="noa_B_sitzt" x={NOA_X} y={BODEN + 10} stauchY={atmen(f, 2, 0.008)} />
<Apfel x={PINO_X + 70} y={BODEN - 6} s={0.62} r={-20} /> <Apfel x={PINO_X + 70} y={BODEN - 6} s={0.62} r={-20} />