bc39455cfe
Song274Transect draws Route 274 in its true shape (the "Ground" view of song-274/route/274-transect.html) and plays it along with the song. - data.ts: reads song-274/route/ at load time (lyrics index, roster, route and the optional east/west stubs); nothing is copied into the code. Only sung nodes are shown; districts and 東に続く light nothing. - progress.ts: a "covered so far" paint over the dimmed road. Its head is pinned to each sung object's km as that line starts and glides between pins on a monotone cubic, so it never runs backwards. After 東に続く it runs out along the east stub; the west stub is always painted. - camera.ts: fixed close zoom during each narration part (lines under 20 s apart), following a Gaussian-smoothed head; pull back to frame the covered road plus some road ahead during breaks, and to the full map after the lyric. - nodeAnimation.ts: lightUp / switchOff as reusable functions over a NodeLook, with long lines switching off after MAX_LIT_S. - palette.ts: every colour as a named token (dark default, light alongside), including shrine and railway families. remotion.config.ts sets song-274/ as the public dir so staticFile() reaches the song's audio/ and route/ in place. Verified: eslint + tsc clean; stills checked across parts, breaks and the ending. Render with --muted and add audio with ffmpeg: Remotion's own AAC lands 42.75 ms late. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PLt25nCVMsoroKALYUBu6u
18 lines
627 B
TypeScript
18 lines
627 B
TypeScript
/**
|
|
* Note: When using the Node.JS APIs, the config file
|
|
* doesn't apply. Instead, pass options directly to the APIs.
|
|
*
|
|
* All configuration options: https://remotion.dev/docs/config
|
|
*/
|
|
|
|
import { Config } from "@remotion/cli/config";
|
|
import { enableTailwind } from '@remotion/tailwind-v4';
|
|
|
|
Config.setRspack(true);
|
|
Config.setVideoImageFormat("jpeg");
|
|
Config.setOverwriteOutput(true);
|
|
Config.overrideBundlerConfig(enableTailwind);
|
|
// Song branch: staticFile() paths resolve inside the song folder, so compositions
|
|
// read audio/, fonts/ and route/ where they already live instead of a copy.
|
|
Config.setPublicDir("song-274");
|