Folge 8: Pinos großer Schatten fällt vom Licht weg nach links, bleibt als Igel erkennbar (Weichzeichnung nicht mitvergrößert)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
4b12792ef1
commit
2f7a695be9
3 changed files with 8 additions and 4 deletions
|
|
@ -33,7 +33,10 @@ export const Szene6: React.FC = () => {
|
||||||
// Pino geht während der Frage schon los und steht beim Wachsen dicht an der Laterne
|
// Pino geht während der Frage schon los und steht beim Wachsen dicht an der Laterne
|
||||||
const PINO = gang('pino', z.e1.start + 20, PLATZ.noa + 90, LATERNE.x - 70, 2.5);
|
const PINO = gang('pino', z.e1.start + 20, PLATZ.noa + 90, LATERNE.x - 70, 2.5);
|
||||||
const wachsen = interpolate(f, [z.wachsen.start, z.wachsen.ende], [0, 1], {extrapolateLeft: 'clamp', extrapolateRight: 'clamp'});
|
const wachsen = interpolate(f, [z.wachsen.start, z.wachsen.ende], [0, 1], {extrapolateLeft: 'clamp', extrapolateRight: 'clamp'});
|
||||||
const kPino = steht ? 1.25 + wachsen * 4.6 : undefined; // bis knapp an die Dachkante
|
// Pino steht links dicht an der Laterne: sein Schatten fällt nach links (vom Licht weg) an die freie Wand
|
||||||
|
// und wächst, bis er etwa so hoch ist wie Lulus Schatten – als klar erkennbarer Igel, nicht als Ball.
|
||||||
|
const kPino = steht ? 1.25 + wachsen * 4.4 : undefined;
|
||||||
|
const versatz = steht ? 1 + wachsen * 4 : undefined;
|
||||||
const kam = kamFahrt(f, [
|
const kam = kamFahrt(f, [
|
||||||
[0, 1000, 560, 1.1],
|
[0, 1000, 560, 1.1],
|
||||||
[z.hinstellen.start, 900, 640, 1.25],
|
[z.hinstellen.start, 900, 640, 1.25],
|
||||||
|
|
@ -54,6 +57,7 @@ export const Szene6: React.FC = () => {
|
||||||
x: PINO.x(f),
|
x: PINO.x(f),
|
||||||
gang: PINO,
|
gang: PINO,
|
||||||
k: kPino,
|
k: kPino,
|
||||||
|
versatz,
|
||||||
y: BODEN + huepfer(f, z.p3.start, 18, 12) + huepfer(f, z.p3.start + 16, 14, 11),
|
y: BODEN + huepfer(f, z.p3.start, 18, 12) + huepfer(f, z.p3.start + 16, 14, 11),
|
||||||
drehung: f >= z.p3.start ? Math.sin(f * 1.4) * 2 : 0, // Stacheln zittern vor Freude
|
drehung: f >= z.p3.start ? Math.sin(f * 1.4) * 2 : 0, // Stacheln zittern vor Freude
|
||||||
}}
|
}}
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,7 @@ export const WandSchatten: React.FC<{
|
||||||
drehung={drehung}
|
drehung={drehung}
|
||||||
stauchY={stauchY}
|
stauchY={stauchY}
|
||||||
deckkraft={deckkraft}
|
deckkraft={deckkraft}
|
||||||
filter="brightness(0) blur(5px)"
|
filter={`brightness(0) blur(${(5 / k).toFixed(2)}px)`} // gleich weich, egal wie groß (sonst wird ein großer Schatten zum Ball)
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ export type Buehne = {
|
||||||
kam: {x: number; y: number; zoom: number};
|
kam: {x: number; y: number; zoom: number};
|
||||||
laterne: {inHand: boolean; x?: number; y?: number; licht: number; schwung?: number};
|
laterne: {inHand: boolean; x?: number; y?: number; licht: number; schwung?: number};
|
||||||
noa: {pose: string | Posenfolge; x?: number};
|
noa: {pose: string | Posenfolge; x?: number};
|
||||||
pino: {pose: string | Posenfolge; x: number; gang?: Gang; drehung?: number; y?: number; k?: number};
|
pino: {pose: string | Posenfolge; x: number; gang?: Gang; drehung?: number; y?: number; k?: number; versatz?: number};
|
||||||
lulu: {pose: string | Posenfolge; x?: number; hell?: number; drehung?: number; stauchY?: number; k?: number};
|
lulu: {pose: string | Posenfolge; x?: number; hell?: number; drehung?: number; stauchY?: number; k?: number};
|
||||||
wandExtra?: React.ReactNode; // z. B. Hand-Schatten
|
wandExtra?: React.ReactNode; // z. B. Hand-Schatten
|
||||||
f: number;
|
f: number;
|
||||||
|
|
@ -38,7 +38,7 @@ export const Wandszene: React.FC<Buehne> = ({kam, laterne, noa, pino, lulu, wand
|
||||||
<GartenAbend wandVoll />
|
<GartenAbend wandVoll />
|
||||||
{/* Schatten an der Wand (hinter den Figuren) */}
|
{/* Schatten an der Wand (hinter den Figuren) */}
|
||||||
<WandSchatten pose={lulu.pose} x={luluX} licht={lat} hoehe={340 * 2.05} k={kLulu} wand={WAND_VOLL} drehung={lulu.drehung} stauchY={lulu.stauchY} />
|
<WandSchatten pose={lulu.pose} x={luluX} licht={lat} hoehe={340 * 2.05} k={kLulu} wand={WAND_VOLL} drehung={lulu.drehung} stauchY={lulu.stauchY} />
|
||||||
<WandSchatten pose={pinoGeht ? 'pino_A6_blick-rechts' : pino.pose} x={pino.x} licht={lat} hoehe={340 * 0.4} k={kPino} wand={WAND_VOLL} drehung={pino.drehung} />
|
<WandSchatten pose={pinoGeht ? 'pino_A6_blick-rechts' : pino.pose} x={pino.x} licht={lat} hoehe={340 * 0.4} k={kPino} wand={WAND_VOLL} drehung={pino.drehung} versatz={pino.versatz} />
|
||||||
{wandExtra}
|
{wandExtra}
|
||||||
<Figur pose={lulu.pose} x={luluX} y={BODEN - 6} drehung={lulu.drehung} stauchY={lulu.stauchY} filter={hell < 1 ? `brightness(${hell})` : undefined} />
|
<Figur pose={lulu.pose} x={luluX} y={BODEN - 6} drehung={lulu.drehung} stauchY={lulu.stauchY} filter={hell < 1 ? `brightness(${hell})` : undefined} />
|
||||||
<Figur pose={noa.pose} x={noaX} y={BODEN} />
|
<Figur pose={noa.pose} x={noaX} y={BODEN} />
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue