- baukasten/drachen.tsx: <Drachen> als SVG (Raute mit Holzkreuz, leichter Stift-Rand), Schwanz mit wandernder Welle, weht mit `schwanz` zur Seite, liegt im Gras flach (`liegt`) und knickt an der Graskante um (`boden`); Schleifen gelb, grün, blau leuchten einzeln (`leuchten`, zum Zählen) - drachenHalt(): Knotenpunkt für die Drachenschnur, dreht mit - Flugbahnen: pendeln, steigen (auch aus dem Gras), trudeln (zwei Runden ins Gras), plumps (Windstoß hebt ihn kurz an); LIEGE_HOEHE für den liegenden Drachen - DrachenschnurTest zeigt die ganze Folge (14 s) mit Noa und Schnur Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
52 lines
3.1 KiB
TypeScript
52 lines
3.1 KiB
TypeScript
import React from 'react';
|
|
import {Composition} from 'remotion';
|
|
import {HintergrundAbend, PapierStruktur, VordergrundAbend} from './szenen/Hintergruende';
|
|
import {LaterneTest} from './szenen/LaterneTest';
|
|
import {GANGTEST_DAUER, GangTest} from './szenen/GangTest';
|
|
import {VerformTest} from './szenen/VerformTest';
|
|
import {DrachenschnurTest} from './szenen/DrachenschnurTest';
|
|
import {FolgenKompositionen} from './baukasten/folge';
|
|
import {NEST_BILD} from './baukasten/natur';
|
|
import {NestStill, ORTE, OrtStill} from './baukasten/orte';
|
|
import {F01} from './folge01/Folge01';
|
|
import {F02} from './folge02/Folge02';
|
|
import {F03} from './folge03/Folge03';
|
|
import {F08} from './folge08/Folge08';
|
|
import {Banner, BannerRahmen, Profilbild} from './kanal/KanalBilder';
|
|
import {VorschauF01} from './kanal/Vorschaubild';
|
|
import {ShortKompositionen} from './shorts/Short';
|
|
import {SHORTS_F01} from './shorts/folge01';
|
|
import {SZENEN as SZENEN_F01} from './folge01/Folge01';
|
|
import {LIED01_DAUER, Lied01} from './lieder/lied01/Lied01';
|
|
import {LIED03_DAUER, Lied03} from './lieder/lied03/Lied03';
|
|
|
|
const BILD = {fps: 30, width: 1920, height: 1080} as const;
|
|
|
|
export const Root: React.FC = () => (
|
|
<>
|
|
<Composition id="Lied01" component={Lied01} durationInFrames={LIED01_DAUER} {...BILD} />
|
|
<Composition id="Lied03-DE" component={Lied03} durationInFrames={LIED03_DAUER} {...BILD} />
|
|
<Composition id="GangTest" component={GangTest} durationInFrames={GANGTEST_DAUER} {...BILD} />
|
|
<Composition id="LaterneTest" component={LaterneTest} durationInFrames={420} {...BILD} />
|
|
<Composition id="VerformTest" component={VerformTest} durationInFrames={240} {...BILD} />
|
|
<Composition id="DrachenschnurTest" component={DrachenschnurTest} durationInFrames={420} {...BILD} />
|
|
<Composition id="HintergrundAbend" component={HintergrundAbend} durationInFrames={1} {...BILD} />
|
|
<Composition id="VordergrundAbend" component={VordergrundAbend} durationInFrames={1} {...BILD} />
|
|
<Composition id="PapierStruktur" component={PapierStruktur} durationInFrames={1} {...BILD} />
|
|
<FolgenKompositionen folge={F01} />
|
|
<FolgenKompositionen folge={F02} />
|
|
<FolgenKompositionen folge={F03} />
|
|
<FolgenKompositionen folge={F08} />
|
|
<ShortKompositionen szenen={SZENEN_F01} shorts={SHORTS_F01} />
|
|
<Composition id="Kanal-Profilbild" component={Profilbild} durationInFrames={1} fps={30} width={800} height={800} />
|
|
<Composition id="Vorschau-F01" component={VorschauF01} durationInFrames={1} {...BILD} />
|
|
<Composition id="Kanal-Banner" component={Banner} durationInFrames={1} fps={30} width={2560} height={1440} />
|
|
<Composition id="Kanal-Banner-Rahmen" component={BannerRahmen} durationInFrames={1} fps={30} width={2560} height={1440} />
|
|
{(['hinten', 'vorne'] as const).map((seite) => (
|
|
<Composition key={seite} id={`F2Nest-${seite}`} component={NestStill} defaultProps={{seite}} durationInFrames={1} fps={30} width={NEST_BILD.b} height={NEST_BILD.h} />
|
|
))}
|
|
{Object.keys(ORTE).map((name) => (
|
|
<Composition key={name} id={`F2Ort-${name.replace(/_/g, '-')}`} component={OrtStill} defaultProps={{name}} durationInFrames={1} {...BILD} />
|
|
))}
|
|
</>
|
|
);
|