Folge 2, Szene 4 neu nach Pascals Rückmeldung: Noa zählt Blätter für Pinos Nest (Haufen statt Reihe), zu wenige, Lulu hilft, Blätter wehen zum Nest; Refrain gesungen (Suno wie Folge 1); Nies-Geräusch vorgesehen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
dd834ca4e4
commit
75b28a9cab
15 changed files with 159 additions and 86 deletions
|
|
@ -90,31 +90,33 @@ Pino gähnt den ganzen Tag, und Lulu und die Erzählstimme erklären den Winters
|
|||
|
||||
**ERZÄHLSTIMME:** Igel bauen sich für den Winter ein Nest. Aus ganz vielen Blättern, unter einer Hecke oder einem Holzstapel. Da ist es trocken und warm.
|
||||
|
||||
**BILD:** Noa sammelt bunte Blätter und legt sie vor dem Holzstapel in eine Reihe. Pino schaut zu.
|
||||
**BILD:** Noa hockt sich vor den Holzstapel, dort wo das Nest hin soll. Sie schaut in die Kamera.
|
||||
|
||||
**NOA:** Zählst du mit? Eins … zwei … drei … vier … fünf!
|
||||
**NOA:** Pino braucht ein Nest aus ganz vielen Blättern. Hilfst du mir beim Zählen? Eins … zwei … drei … vier … fünf!
|
||||
|
||||
*Nach jeder Zahl eine kurze Pause zum Mitzählen.*
|
||||
*Nach jeder Zahl eine kurze Pause zum Mitzählen. Bei jeder Zahl wirft Noa ein Blatt auf den Nest-Haufen.*
|
||||
|
||||
**NOA:** Hm. Das sind noch zu wenige.
|
||||
|
||||
**BILD:** Lulu streckt den Hals ganz hoch in den Apfelbaum und zupft mit dem Maul die letzten Blätter ab.
|
||||
|
||||
**LULU:** Hier oben hängen noch welche! Die erreicht sonst keiner.
|
||||
**LULU:** Ich helfe euch! Hier oben hängen noch welche.
|
||||
|
||||
**BILD:** Lulu kommt mit einem dicken Bündel Blätter herunter. Ihre Nase kitzelt, sie kneift die Augen zu … und niest. Die Blätter fliegen in alle Richtungen und regnen auf Noa und Pino herab.
|
||||
**BILD:** Lulu kommt mit einem dicken Bündel Blätter herunter. Ihre Nase kitzelt, sie kneift die Augen zu … und niest. Die Blätter fliegen in alle Richtungen, der Wind trägt sie bis zum Nest.
|
||||
|
||||
*Hatschi! Rascheln, alle lachen.*
|
||||
|
||||
**LULU:** Oh! Entschuldigung!
|
||||
|
||||
**NOA** *(lacht)***:** Macht nichts. Jetzt haben wir noch mehr Blätter.
|
||||
**NOA** *(lacht)***:** Macht nichts! Jetzt haben wir ganz viele Blätter.
|
||||
|
||||
**BILD:** Zu dritt schieben sie die Blätter unter den Holzstapel. Pino rollt sie mit der Nase zurecht. Ein rundes, kuscheliges Nest entsteht. Pino schaut heraus, nur Nase und Augen.
|
||||
|
||||
**ERZÄHLSTIMME:** Ein Igelnest braucht ganz viele Blätter. Wenn ihr im Garten einen Laubhaufen liegen lasst, schenkt ihr einem Igel vielleicht ein Winterbettchen.
|
||||
**ERZÄHLSTIMME:** Jetzt ist das Nest schön weich und warm. Wenn ihr im Garten einen Laubhaufen liegen lasst, schenkt ihr einem Igel vielleicht ein Winterbettchen.
|
||||
|
||||
**BILD:** Die drei nebeneinander, die Figuren wippen im Takt. Clips 47–50 aus Folge 1.
|
||||
|
||||
*Refrain „Einer klein und einer groß“, einmal.*
|
||||
*Refrain „Einer klein und einer groß“, einmal, gesungen (Suno-Lied aus Folge 1).*
|
||||
|
||||
## Szene 5: Pino will nicht schlafen (3:10–3:45)
|
||||
|
||||
|
|
|
|||
|
|
@ -54,21 +54,23 @@ Spanische Sprechfassung für ElevenLabs, Entwurf vom 26.10.2026. Neutrales Spani
|
|||
|
||||
**NARRACIÓN:** Para el invierno, los erizos se hacen un nido. Con muchísimas hojas, debajo de un seto o de un montón de leña. Allí está seco y calentito.
|
||||
|
||||
**NOA:** ¿Cuentas conmigo? Uno… dos… tres… cuatro… ¡cinco!
|
||||
**NOA:** Pino necesita un nido con muchísimas hojas. ¿Me ayudas a contar? Uno… dos… tres… cuatro… ¡cinco!
|
||||
|
||||
*Después de cada número, una pausa corta para contar.*
|
||||
*Después de cada número, una pausa corta para contar. Con cada número, Noa echa una hoja al montón del nido.*
|
||||
|
||||
**LULU:** ¡Aquí arriba quedan algunas! Nadie más llega hasta aquí.
|
||||
**NOA:** Mmm. Todavía son muy pocas.
|
||||
|
||||
**LULU:** ¡Yo los ayudo! Aquí arriba quedan algunas.
|
||||
|
||||
*¡Achís! Crujido de hojas, todos se ríen.*
|
||||
|
||||
**LULU:** ¡Uy! ¡Perdón!
|
||||
|
||||
**NOA** *(se ríe)*: No pasa nada. Así tenemos todavía más hojas.
|
||||
**NOA** *(se ríe)*: ¡No pasa nada! Ahora tenemos muchísimas hojas.
|
||||
|
||||
**NARRACIÓN:** Un nido de erizo necesita muchas hojas. Mamás y papás: si dejan un montón de hojas en el jardín, a lo mejor un erizo encuentra allí su camita para el invierno.
|
||||
**NARRACIÓN:** Ahora el nido está blandito y calentito. Mamás y papás: si dejan un montón de hojas en el jardín, a lo mejor un erizo encuentra allí su camita para el invierno.
|
||||
|
||||
*Estribillo „Uno pequeño y otra alta“, una vez (ver Episodio 1).*
|
||||
*Estribillo „Uno pequeño y otra alta“, una vez, cantado (canción de Suno del Episodio 1).*
|
||||
|
||||
## Escena 5: Pino no quiere dormir (3:10–3:45)
|
||||
|
||||
|
|
|
|||
|
|
@ -54,21 +54,23 @@ Französische Sprechfassung für ElevenLabs, Entwurf vom 26.10.2026. Die Figuren
|
|||
|
||||
**NARRATION :** Pour l'hiver, les hérissons se construisent un nid. Avec plein de feuilles, sous une haie ou sous un tas de bois. Là, c'est sec et bien chaud.
|
||||
|
||||
**NOA :** Tu comptes avec moi ? Un… deux… trois… quatre… cinq !
|
||||
**NOA :** Pino a besoin d'un nid avec plein de feuilles. Tu m'aides à compter ? Un… deux… trois… quatre… cinq !
|
||||
|
||||
*Après chaque chiffre, une petite pause pour compter.*
|
||||
*Après chaque chiffre, une petite pause pour compter. À chaque chiffre, Noa lance une feuille sur le tas du nid.*
|
||||
|
||||
**LULU :** Il en reste là-haut ! Personne d'autre ne peut les attraper.
|
||||
**NOA :** Hum. Il n'y en a pas encore assez.
|
||||
|
||||
**LULU :** Je vous aide ! Il en reste là-haut.
|
||||
|
||||
*Atchoum ! Bruissement de feuilles, tout le monde rit.*
|
||||
|
||||
**LULU :** Oh ! Pardon !
|
||||
|
||||
**NOA** *(rit)* **:** Ce n'est pas grave. Comme ça, on a encore plus de feuilles.
|
||||
**NOA** *(rit)* **:** Ce n'est pas grave ! Maintenant, on a plein de feuilles.
|
||||
|
||||
**NARRATION :** Un nid de hérisson a besoin de beaucoup de feuilles. Chers parents : si vous laissez un tas de feuilles dans votre jardin, vous offrez peut-être un petit lit d'hiver à un hérisson.
|
||||
**NARRATION :** Maintenant, le nid est tout doux et bien chaud. Chers parents : si vous laissez un tas de feuilles dans votre jardin, vous offrez peut-être un petit lit d'hiver à un hérisson.
|
||||
|
||||
*Refrain « Un tout petit, une très grande », une fois (voir Épisode 1).*
|
||||
*Refrain « Un tout petit, une très grande », une fois, chanté (chanson Suno de l'Épisode 1).*
|
||||
|
||||
## Scène 5 : Pino ne veut pas dormir (3:10–3:45)
|
||||
|
||||
|
|
|
|||
|
|
@ -19,5 +19,6 @@
|
|||
"zugvoegel": {"sekunden": 5, "beschreibung": "A flock of wild geese honking high in the sky, flying away into the distance, gentle and far."},
|
||||
"malen": {"sekunden": 4, "beschreibung": "Crayon scribbling and drawing on paper on a wooden table, close and soft."},
|
||||
"kribbeln": {"sekunden": 2, "beschreibung": "Cute magical sparkle twinkle, soft glockenspiel shimmer, cartoon, happy."},
|
||||
"schlaff": {"sekunden": 2, "beschreibung": "Soft short descending cartoon slide whistle, a little sad but cute and gentle."}
|
||||
"schlaff": {"sekunden": 2, "beschreibung": "Soft short descending cartoon slide whistle, a little sad but cute and gentle."},
|
||||
"niesen": {"sekunden": 1.5, "beschreibung": "A single cute, funny cartoon sneeze 'ha-tschi!' from a friendly young animal character, light and playful, like in a preschool cartoon. No speech, no music."}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ export const Blaetterwind: React.FC<{anzahl?: number; seed?: string; tempo?: num
|
|||
};
|
||||
|
||||
// Blätterregen nach dem Niesen: Blätter fliegen ab `start` aus (x0, y0) und landen auf `boden`.
|
||||
export const Blaetterregen: React.FC<{start: number; x0: number; y0: number; boden: number; anzahl?: number; aus?: number}> = ({start, x0, y0, boden, anzahl = 34, aus = 1e9}) => {
|
||||
export const Blaetterregen: React.FC<{start: number; x0: number; y0: number; boden: number; anzahl?: number; aus?: number; seed?: string}> = ({start, x0, y0, boden, anzahl = 34, aus = 1e9, seed = 'regen'}) => {
|
||||
const frame = useCurrentFrame();
|
||||
const t = frame - start;
|
||||
const deck = Math.max(0, 1 - (frame - aus) / 60);
|
||||
|
|
@ -51,7 +51,7 @@ export const Blaetterregen: React.FC<{start: number; x0: number; y0: number; bod
|
|||
return (
|
||||
<>
|
||||
{new Array(anzahl).fill(0).map((_, i) => {
|
||||
const r = (k: string) => random(`regen${k}${i}`);
|
||||
const r = (k: string) => random(`${seed}${k}${i}`);
|
||||
const winkel = -Math.PI * (0.05 + 0.9 * r('w'));
|
||||
const v = 14 + r('v') * 22;
|
||||
// erst schneller Ausstoß (abgebremst), dann langsames Herabschaukeln
|
||||
|
|
|
|||
|
|
@ -16,14 +16,14 @@ import {HAUFEN_X} from './szene2';
|
|||
// Gesungen von Suno, gekürzt auf Refrain – Strophe 1 – Refrain (die ersten 12 Liedzeilen).
|
||||
// Die Zeilen liegen genau auf den gemessenen Suno-Zeiten, ohne Sprachaufnahmen.
|
||||
// Fehlt für eine Sprache der Eintrag, wird sie gesprochen über das Instrumental (95 BPM).
|
||||
type SunoLied = {
|
||||
export type SunoLied = {
|
||||
datei: string; // in public/, auf −14 LUFS
|
||||
bpm: number;
|
||||
zeiten: number[]; // Beginn der Zeilen r1–r4, s1–s4, w1–w4 in Sekunden
|
||||
ende: number; // letzte Zeile ausgesungen
|
||||
vor: number; // Sekunden Vorspiel vor der ersten Zeile
|
||||
};
|
||||
const SUNO_LIEDER: Partial<Record<typeof SPRACHE, SunoLied>> = {
|
||||
export const SUNO_LIEDER: Partial<Record<typeof SPRACHE, SunoLied>> = {
|
||||
// „Noa in der Mitte“ 25385c27, Zeiten aus aligned_lyrics (src/lieder/lied03/zeiten.ts)
|
||||
de: {
|
||||
datei: 'musik/lieder/lied03-de.mp3',
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import React from 'react';
|
|||
import {INTRO_OPTIONEN, Intro, OUTRO, Outro, introZeilen} from '../baukasten/buch';
|
||||
import {baueFolge, type SzenenEintrag} from '../baukasten/folge';
|
||||
import {mitKlang} from '../baukasten/geraeusche';
|
||||
import {LIED, Lied} from './lied';
|
||||
import {GESUNGEN, LIED, LIED_AB, LIED_DATEI, Lied} from './lied';
|
||||
import {TITEL, plane} from './plan';
|
||||
import {S2, Szene2} from './szene2';
|
||||
import {S3, Szene3} from './szene3';
|
||||
|
|
@ -51,9 +51,17 @@ export const SZENEN: SzenenEintrag[] = [
|
|||
name: 'Ein Bett aus Blättern',
|
||||
datei: 'szene4.tsx',
|
||||
plan: S4,
|
||||
K: mitKlang(Szene4, S4, {atmo: 'garten_tag', toene: [...sammeln, {name: 'blaetter_regen', bei: 'l2', versatz: -1.2, lautstaerke: 0.5}]}),
|
||||
K: mitKlang(Szene4, S4, {atmo: 'garten_tag', toene: [...sammeln, {name: 'niesen', bei: 'bild3', versatz: -0.05, lautstaerke: 0.7}, {name: 'blaetter_regen', bei: 'l2', versatz: -1.2, lautstaerke: 0.5}]}),
|
||||
},
|
||||
{
|
||||
name: 'Lied',
|
||||
datei: 'lied.tsx',
|
||||
plan: LIED,
|
||||
K: Lied,
|
||||
musik: GESUNGEN
|
||||
? {datei: LIED_DATEI, ab: LIED_AB, lautstaerke: 0.9, rein: 0.2, raus: 0.8}
|
||||
: {datei: 'musik/folge01/lied.mp3', lautstaerke: 0.4, ducken: 0.75, rein: 0.3, raus: 1.2},
|
||||
},
|
||||
{name: 'Lied', datei: 'lied.tsx', plan: LIED, K: Lied, musik: {datei: 'musik/folge01/lied.mp3', lautstaerke: 0.4, ducken: 0.75, rein: 0.3, raus: 1.2}},
|
||||
{name: 'Pino will nicht schlafen', datei: 'szene5.tsx', plan: S5, K: mitKlang(Szene5, S5, {atmo: 'garten_tag'})},
|
||||
{
|
||||
name: 'Noas Idee',
|
||||
|
|
|
|||
|
|
@ -4,13 +4,35 @@ import {Figur, Kamera} from '../baukasten/figur';
|
|||
import {Blende, Vignette, klatschFolge} from '../baukasten/helfer';
|
||||
import {BODEN, Ort} from '../baukasten/orte';
|
||||
import {SCHRIFT, Untertitel} from '../baukasten/untertitel';
|
||||
import {SPRACHE} from '../baukasten/sprache';
|
||||
import {plane as planeOhneStimme} from '../baukasten/zeit';
|
||||
import {SUNO_LIEDER} from '../folge01/lied';
|
||||
import {TEXTE, plane} from './plan';
|
||||
|
||||
// Refrain „Einer klein und einer groß“ (aus Folge 1), einmal. Die drei wippen im Takt.
|
||||
// Gesungen: der Refrain aus dem Suno-Lied von Folge 1 (erste vier Zeilen), ausgeblendet,
|
||||
// bevor die Strophe beginnt. Ohne Suno-Fassung für die Sprache: gesprochen über das Instrumental.
|
||||
|
||||
const TAKT = 19; // Frames pro Schlag (ca. 95 bpm)
|
||||
const SUNO = SUNO_LIEDER[SPRACHE];
|
||||
export const GESUNGEN = !!SUNO;
|
||||
const TAKT = SUNO ? (30 * 60) / SUNO.bpm : 19; // Frames pro Schlag
|
||||
const IDS = ['r1', 'r2', 'r3', 'r4'];
|
||||
export const LIED_DATEI = SUNO?.datei ?? '';
|
||||
export const LIED_AB = SUNO ? SUNO.zeiten[0] - SUNO.vor : 0; // ab hier läuft die Suno-Datei
|
||||
|
||||
export const LIED = plane('lied',
|
||||
export const LIED = SUNO
|
||||
? planeOhneStimme(
|
||||
IDS.map((id, i) => ({
|
||||
id,
|
||||
wer: 'ALLE' as const,
|
||||
text: TEXTE.zeilen[`lied/${id}`],
|
||||
// Lücke von 0,35 s zwischen den Zeilen fügt der Planer ein; r4 endet, wo die Strophe beginnt
|
||||
dauer: SUNO.zeiten[i + 1] - SUNO.zeiten[i] - 0.35,
|
||||
})),
|
||||
{vorlauf: SUNO.vor, nachlauf: 0.2},
|
||||
)
|
||||
: plane(
|
||||
'lied',
|
||||
[
|
||||
{id: 'r1', wer: 'ALLE', dauer: 3.2},
|
||||
{id: 'r2', wer: 'ALLE', dauer: 3.2},
|
||||
|
|
@ -18,7 +40,7 @@ export const LIED = plane('lied',
|
|||
{id: 'r4', wer: 'ALLE', dauer: 3.6},
|
||||
],
|
||||
{vorlauf: 1.0, nachlauf: 1.0},
|
||||
);
|
||||
);
|
||||
|
||||
const Note: React.FC<{x: number; y: number; s: number; farbe: string}> = ({x, y, s, farbe}) => (
|
||||
<svg width={60} height={80} viewBox="0 0 60 80" style={{position: 'absolute', left: x, top: y, transform: `scale(${s})`}}>
|
||||
|
|
|
|||
|
|
@ -131,8 +131,8 @@
|
|||
},
|
||||
"s4/n2": {
|
||||
"datei": "s4-n2.mp3",
|
||||
"dauer": 1.23,
|
||||
"text": "Zählst du mit?"
|
||||
"dauer": 5.07,
|
||||
"text": "Pino braucht ein Nest aus ganz vielen Blättern. Hilfst du mir beim Zählen?"
|
||||
},
|
||||
"s4/c1": {
|
||||
"datei": "s4-c1.mp3",
|
||||
|
|
@ -161,8 +161,8 @@
|
|||
},
|
||||
"s4/l1": {
|
||||
"datei": "s4-l1.mp3",
|
||||
"dauer": 3.87,
|
||||
"text": "Hier oben hängen noch welche! Die erreicht sonst keiner."
|
||||
"dauer": 3.24,
|
||||
"text": "Ich helfe euch! Hier oben hängen noch welche."
|
||||
},
|
||||
"s4/l2": {
|
||||
"datei": "s4-l2.mp3",
|
||||
|
|
@ -171,13 +171,13 @@
|
|||
},
|
||||
"s4/n3": {
|
||||
"datei": "s4-n3.mp3",
|
||||
"dauer": 3.24,
|
||||
"text": "Macht nichts. Jetzt haben wir noch mehr Blätter."
|
||||
"dauer": 3.55,
|
||||
"text": "Macht nichts! Jetzt haben wir ganz viele Blätter."
|
||||
},
|
||||
"s4/e4": {
|
||||
"datei": "s4-e4.mp3",
|
||||
"dauer": 3.24,
|
||||
"text": "Ein Igelnest braucht ganz viele Blätter."
|
||||
"dauer": 3.47,
|
||||
"text": "Jetzt ist das Nest schön weich und warm."
|
||||
},
|
||||
"s4/e5": {
|
||||
"datei": "s4-e5.mp3",
|
||||
|
|
@ -288,5 +288,10 @@
|
|||
"datei": "s7-p1.mp3",
|
||||
"dauer": 1.15,
|
||||
"text": "… bis bald …"
|
||||
},
|
||||
"s4/n4": {
|
||||
"datei": "s4-n4.mp3",
|
||||
"dauer": 2.85,
|
||||
"text": "Hm. Das sind noch zu wenige."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,8 +131,8 @@
|
|||
},
|
||||
"s4/n2": {
|
||||
"datei": "s4-n2.mp3",
|
||||
"dauer": 1.49,
|
||||
"text": "¿Cuentas conmigo?"
|
||||
"dauer": 4.99,
|
||||
"text": "Pino necesita un nido con muchísimas hojas. ¿Me ayudas a contar?"
|
||||
},
|
||||
"s4/c1": {
|
||||
"datei": "s4-c1.mp3",
|
||||
|
|
@ -161,8 +161,8 @@
|
|||
},
|
||||
"s4/l1": {
|
||||
"datei": "s4-l1.mp3",
|
||||
"dauer": 4.36,
|
||||
"text": "¡Aquí arriba quedan algunas! Nadie más llega hasta aquí."
|
||||
"dauer": 3.32,
|
||||
"text": "¡Yo los ayudo! Aquí arriba quedan algunas."
|
||||
},
|
||||
"s4/l2": {
|
||||
"datei": "s4-l2.mp3",
|
||||
|
|
@ -171,13 +171,13 @@
|
|||
},
|
||||
"s4/n3": {
|
||||
"datei": "s4-n3.mp3",
|
||||
"dauer": 3.63,
|
||||
"text": "No pasa nada. Así tenemos todavía más hojas."
|
||||
"dauer": 4.05,
|
||||
"text": "¡No pasa nada! Ahora tenemos muchísimas hojas."
|
||||
},
|
||||
"s4/e4": {
|
||||
"datei": "s4-e4.mp3",
|
||||
"dauer": 3.55,
|
||||
"text": "Un nido de erizo necesita muchas hojas."
|
||||
"dauer": 3.87,
|
||||
"text": "Ahora el nido está blandito y calentito."
|
||||
},
|
||||
"s4/e5": {
|
||||
"datei": "s4-e5.mp3",
|
||||
|
|
@ -288,5 +288,10 @@
|
|||
"datei": "s7-p1.mp3",
|
||||
"dauer": 1.41,
|
||||
"text": "…hasta pronto…"
|
||||
},
|
||||
"s4/n4": {
|
||||
"datei": "s4-n4.mp3",
|
||||
"dauer": 3.16,
|
||||
"text": "Mmm. Todavía son muy pocas."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,8 +131,8 @@
|
|||
},
|
||||
"s4/n2": {
|
||||
"datei": "s4-n2.mp3",
|
||||
"dauer": 1.31,
|
||||
"text": "Tu comptes avec moi ?"
|
||||
"dauer": 4.05,
|
||||
"text": "Pino a besoin d'un nid avec plein de feuilles. Tu m'aides à compter ?"
|
||||
},
|
||||
"s4/c1": {
|
||||
"datei": "s4-c1.mp3",
|
||||
|
|
@ -161,8 +161,8 @@
|
|||
},
|
||||
"s4/l1": {
|
||||
"datei": "s4-l1.mp3",
|
||||
"dauer": 3.63,
|
||||
"text": "Il en reste là-haut ! Personne d'autre ne peut les attraper."
|
||||
"dauer": 2.51,
|
||||
"text": "Je vous aide ! Il en reste là-haut."
|
||||
},
|
||||
"s4/l2": {
|
||||
"datei": "s4-l2.mp3",
|
||||
|
|
@ -171,13 +171,13 @@
|
|||
},
|
||||
"s4/n3": {
|
||||
"datei": "s4-n3.mp3",
|
||||
"dauer": 3.63,
|
||||
"text": "Ce n'est pas grave. Comme ça, on a encore plus de feuilles."
|
||||
"dauer": 3.47,
|
||||
"text": "Ce n'est pas grave ! Maintenant, on a plein de feuilles."
|
||||
},
|
||||
"s4/e4": {
|
||||
"datei": "s4-e4.mp3",
|
||||
"dauer": 2.93,
|
||||
"text": "Un nid de hérisson a besoin de beaucoup de feuilles."
|
||||
"dauer": 3.55,
|
||||
"text": "Maintenant, le nid est tout doux et bien chaud."
|
||||
},
|
||||
"s4/e5": {
|
||||
"datei": "s4-e5.mp3",
|
||||
|
|
@ -288,5 +288,10 @@
|
|||
"datei": "s7-p1.mp3",
|
||||
"dauer": 1.15,
|
||||
"text": "…à bientôt…"
|
||||
},
|
||||
"s4/n4": {
|
||||
"datei": "s4-n4.mp3",
|
||||
"dauer": 2.59,
|
||||
"text": "Hum. Il n'y en a pas encore assez."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,12 +11,20 @@ import {W} from '../baukasten/sprache';
|
|||
import {Untertitel} from '../baukasten/untertitel';
|
||||
import {plane} from './plan';
|
||||
|
||||
// Szene 4: Ein Bett aus Blättern. Zählen bis 5, Lulu niest, das Nest entsteht.
|
||||
// Szene 4: Ein Bett aus Blättern. Noa legt fünf Blätter auf Pinos Nest (Zählen bis 5),
|
||||
// das sind zu wenige; Lulu hilft, niest, die Blätter wehen bis zum Nest – das Nest entsteht.
|
||||
|
||||
const NOA_ZAEHL_X = 1170;
|
||||
const PINO_ZAEHL_X = 1790;
|
||||
const NOA_ZAEHL_X = 1330;
|
||||
const PINO_ZAEHL_X = 1700;
|
||||
const LULU_BAUM_X = 650;
|
||||
const REIHE = [0, 1, 2, 3, 4].map((i) => ({x: 1290 + i * 78, y: BODEN + 4}));
|
||||
// die ersten fünf Blätter landen dort, wo das Nest entsteht, als kleiner Haufen
|
||||
const HAUFEN = [
|
||||
{dx: -50, dy: 0, r: 80},
|
||||
{dx: 40, dy: -2, r: 130},
|
||||
{dx: -15, dy: -12, r: 40},
|
||||
{dx: 55, dy: -10, r: 160},
|
||||
{dx: 5, dy: -22, r: 100},
|
||||
].map((b) => ({x: NEST_X + b.dx, y: BODEN + 2 + b.dy, r: b.r}));
|
||||
|
||||
export const S4 = plane('s4', [
|
||||
{id: 'n1', wer: 'NOA'},
|
||||
|
|
@ -29,6 +37,7 @@ export const S4 = plane('s4', [
|
|||
{id: 'c3', wer: 'NOA', dauer: 1.1, pause: 0.5},
|
||||
{id: 'c4', wer: 'NOA', dauer: 1.1, pause: 0.5},
|
||||
{id: 'c5', wer: 'NOA', dauer: 1.4},
|
||||
{id: 'n4', wer: 'NOA'},
|
||||
{id: 'bild1', dauer: 2.6},
|
||||
{id: 'l1', wer: 'LULU'},
|
||||
{id: 'bild2', dauer: 2.4},
|
||||
|
|
@ -63,7 +72,7 @@ export const Szene4: React.FC = () => {
|
|||
const noaStehPose: [number, string][] = [
|
||||
[0, 'noa_A3_lachen'],
|
||||
[noaGehtBis, 'noa_A6_blick-rechts'],
|
||||
[z.c5.ende, 'noa_A3_lachen'],
|
||||
[z.n4.ende, 'noa_A3_lachen'],
|
||||
[z.bild3.start + 4, 'noa_B2_erschrocken'],
|
||||
[z.l2.ende, 'noa_A3_lachen'],
|
||||
[z.e4.start, 'noa_A3_lachen'],
|
||||
|
|
@ -73,7 +82,7 @@ export const Szene4: React.FC = () => {
|
|||
const HOCKE_BLENDE = 14;
|
||||
const hockZeiten: [number, number][] = [
|
||||
[-1000, z.n1.start + 30],
|
||||
[z.n2.start - 15, z.c5.ende],
|
||||
[z.n2.start - 15, z.n4.ende],
|
||||
[zurueck, z.e4.start],
|
||||
];
|
||||
const inHocke = hockZeiten.some(([a, b]) => f >= a && f < b);
|
||||
|
|
@ -114,6 +123,7 @@ export const Szene4: React.FC = () => {
|
|||
[pinoGehtBis, 'pino_A6_blick-rechts'],
|
||||
...zaehlen.map((c) => [c, 'pino_A4_staunen'] as [number, string]),
|
||||
[z.c5.ende, 'pino_A3_lachen'],
|
||||
[z.n4.start + 10, 'pino_A2_augen-halb'],
|
||||
[niesen + 4, 'pino_B2_erschrocken'],
|
||||
[z.n3.start + 20, 'pino_A3_lachen'],
|
||||
[z.bild4.ende - 30, 'pino_A2_augen-halb'],
|
||||
|
|
@ -123,7 +133,7 @@ export const Szene4: React.FC = () => {
|
|||
];
|
||||
const zaehlHuepfer = zaehlen.reduce((s, c) => s + huepfer(f, c + 4, 10, 10), 0);
|
||||
const nestVoll = kurve(f, [
|
||||
[zurueck + 20, 0.15],
|
||||
[zurueck + 20, 0.2],
|
||||
[z.bild4.ende, 1],
|
||||
]);
|
||||
const pinoImNestY = BODEN + 2 - huepfer(f, z.bild5.start, -10, 20);
|
||||
|
|
@ -188,7 +198,7 @@ export const Szene4: React.FC = () => {
|
|||
[z.e1.start + 60, 1380, 720, 1.35],
|
||||
[z.e3.ende, 1450, 780, 1.6],
|
||||
[z.n2.start, 1480, 820, 1.85],
|
||||
[z.c5.ende, 1480, 820, 1.85],
|
||||
[z.n4.ende, 1480, 820, 1.85],
|
||||
[amBaum, 470, 400, 1.85],
|
||||
[z.l1.ende, 500, 380, 1.9],
|
||||
[niesen - 5, 560, 370, 2.0],
|
||||
|
|
@ -214,11 +224,17 @@ export const Szene4: React.FC = () => {
|
|||
<Blatt key={`m${i}`} x={maul.x - 4 + (i - 2) * 9} y={maul.y + 12 + Math.abs(i - 2) * 4} r={(i - 2) * 30 + 180} s={0.42} farbe={c} />
|
||||
))}
|
||||
|
||||
{/* Reihe aus fünf Blättern vor dem Holzstapel */}
|
||||
{/* fünf Blätter: aus Noas Hand in hohem Bogen auf den Nest-Haufen, je Zahl eins */}
|
||||
{f < zurueck + 40 &&
|
||||
REIHE.map((p, i) =>
|
||||
f > zaehlen[i] - 6 ? <Blatt key={i} x={p.x} y={p.y - Math.max(0, 20 - (f - zaehlen[i] + 6) * 2)} r={90 + i * 10} s={0.8} farbe={LAUB[i]} deckkraft={f > zurueck ? 1 - (f - zurueck) / 40 : 1} /> : null,
|
||||
)}
|
||||
HAUFEN.map((p, i) => {
|
||||
const t = Math.min(1, Math.max(0, (f - (zaehlen[i] - 14)) / 14));
|
||||
if (f < zaehlen[i] - 14) return null;
|
||||
const hand = {x: noaX + 70, y: BODEN - 95};
|
||||
const e = t * t * (3 - 2 * t);
|
||||
const x = hand.x + (p.x - hand.x) * e;
|
||||
const y = hand.y + (p.y - hand.y) * e - Math.sin(t * Math.PI) * 60;
|
||||
return <Blatt key={i} x={x} y={y} r={t < 1 ? p.r + (1 - t) * 200 : p.r} s={0.8} farbe={LAUB[i]} deckkraft={f > zurueck ? 1 - (f - zurueck) / 40 : 1} />;
|
||||
})}
|
||||
<Nest x={NEST_X} y={BODEN} seite="hinten" voll={f < zurueck ? 0 : nestVoll} />
|
||||
{noaGeht ? (
|
||||
<Geher figur="noa" spiegeln x={noaX} y={BODEN} tempo={1.25} />
|
||||
|
|
@ -253,6 +269,8 @@ export const Szene4: React.FC = () => {
|
|||
<Nest x={NEST_X} y={BODEN} seite="vorne" voll={f < zurueck ? 0 : nestVoll} />
|
||||
{luluBeimNest}
|
||||
<Blaetterregen start={niesen} x0={maul.x} y0={maul.y} boden={BODEN + 20} aus={zurueck + 20} />
|
||||
{/* der Wind trägt einen Teil der Blätter bis zum Nest */}
|
||||
<Blaetterregen start={niesen + 16} x0={NEST_X} y0={180} boden={BODEN + 10} anzahl={22} aus={zurueck + 20} seed="nestregen" />
|
||||
</Kamera>
|
||||
{/* Zahlen beim Zählen */}
|
||||
{zaehlen.map((c, i) => (
|
||||
|
|
|
|||
|
|
@ -26,16 +26,17 @@
|
|||
"s4/e1": "Igel bauen sich für den Winter ein Nest.",
|
||||
"s4/e2": "Aus ganz vielen Blättern, unter einer Hecke oder einem Holzstapel.",
|
||||
"s4/e3": "Da ist es trocken und warm.",
|
||||
"s4/n2": "Zählst du mit?",
|
||||
"s4/n2": "Pino braucht ein Nest aus ganz vielen Blättern. Hilfst du mir beim Zählen?",
|
||||
"s4/c1": "Eins …",
|
||||
"s4/c2": "Zwei …",
|
||||
"s4/c3": "Drei …",
|
||||
"s4/c4": "Vier …",
|
||||
"s4/c5": "Fünf!",
|
||||
"s4/l1": "Hier oben hängen noch welche! Die erreicht sonst keiner.",
|
||||
"s4/n4": "Hm. Das sind noch zu wenige.",
|
||||
"s4/l1": "Ich helfe euch! Hier oben hängen noch welche.",
|
||||
"s4/l2": "Oh! Entschuldigung!",
|
||||
"s4/n3": "Macht nichts. Jetzt haben wir noch mehr Blätter.",
|
||||
"s4/e4": "Ein Igelnest braucht ganz viele Blätter.",
|
||||
"s4/n3": "Macht nichts! Jetzt haben wir ganz viele Blätter.",
|
||||
"s4/e4": "Jetzt ist das Nest schön weich und warm.",
|
||||
"s4/e5": "Wenn ihr im Garten einen Laubhaufen liegen lasst, schenkt ihr einem Igel vielleicht ein Winterbettchen.",
|
||||
"lied/r1": "Einer klein und einer groß,",
|
||||
"lied/r2": "und dazwischen – na, wer bloß?",
|
||||
|
|
|
|||
|
|
@ -26,16 +26,17 @@
|
|||
"s4/e1": "Para el invierno, los erizos se hacen un nido.",
|
||||
"s4/e2": "Con muchísimas hojas, debajo de un seto o de un montón de leña.",
|
||||
"s4/e3": "Allí está seco y calentito.",
|
||||
"s4/n2": "¿Cuentas conmigo?",
|
||||
"s4/n2": "Pino necesita un nido con muchísimas hojas. ¿Me ayudas a contar?",
|
||||
"s4/c1": "Uno…",
|
||||
"s4/c2": "Dos…",
|
||||
"s4/c3": "Tres…",
|
||||
"s4/c4": "Cuatro…",
|
||||
"s4/c5": "¡Cinco!",
|
||||
"s4/l1": "¡Aquí arriba quedan algunas! Nadie más llega hasta aquí.",
|
||||
"s4/n4": "Mmm. Todavía son muy pocas.",
|
||||
"s4/l1": "¡Yo los ayudo! Aquí arriba quedan algunas.",
|
||||
"s4/l2": "¡Uy! ¡Perdón!",
|
||||
"s4/n3": "No pasa nada. Así tenemos todavía más hojas.",
|
||||
"s4/e4": "Un nido de erizo necesita muchas hojas.",
|
||||
"s4/n3": "¡No pasa nada! Ahora tenemos muchísimas hojas.",
|
||||
"s4/e4": "Ahora el nido está blandito y calentito.",
|
||||
"s4/e5": "Mamás y papás: si dejan un montón de hojas en el jardín, a lo mejor un erizo encuentra allí su camita para el invierno.",
|
||||
"lied/r1": "Uno pequeño, una grande,",
|
||||
"lied/r2": "¿y en el medio quién será?",
|
||||
|
|
|
|||
|
|
@ -26,16 +26,17 @@
|
|||
"s4/e1": "Pour l'hiver, les hérissons se construisent un nid.",
|
||||
"s4/e2": "Avec plein de feuilles, sous une haie ou sous un tas de bois.",
|
||||
"s4/e3": "Là, c'est sec et bien chaud.",
|
||||
"s4/n2": "Tu comptes avec moi ?",
|
||||
"s4/n2": "Pino a besoin d'un nid avec plein de feuilles. Tu m'aides à compter ?",
|
||||
"s4/c1": "Un…",
|
||||
"s4/c2": "Deux…",
|
||||
"s4/c3": "Trois…",
|
||||
"s4/c4": "Quatre…",
|
||||
"s4/c5": "Cinq !",
|
||||
"s4/l1": "Il en reste là-haut ! Personne d'autre ne peut les attraper.",
|
||||
"s4/n4": "Hum. Il n'y en a pas encore assez.",
|
||||
"s4/l1": "Je vous aide ! Il en reste là-haut.",
|
||||
"s4/l2": "Oh ! Pardon !",
|
||||
"s4/n3": "Ce n'est pas grave. Comme ça, on a encore plus de feuilles.",
|
||||
"s4/e4": "Un nid de hérisson a besoin de beaucoup de feuilles.",
|
||||
"s4/n3": "Ce n'est pas grave ! Maintenant, on a plein de feuilles.",
|
||||
"s4/e4": "Maintenant, le nid est tout doux et bien chaud.",
|
||||
"s4/e5": "Chers parents : si vous laissez un tas de feuilles dans votre jardin, vous offrez peut-être un petit lit d'hiver à un hérisson.",
|
||||
"lied/r1": "Un tout petit, un très grand,",
|
||||
"lied/r2": "et au milieu, qui, dis-moi ?",
|
||||
|
|
|
|||
Loading…
Reference in a new issue