import React from 'react';
import {
AbsoluteFill,
Img,
interpolate,
staticFile,
useCurrentFrame,
useVideoConfig,
} from 'remotion';
import { VerticalTicker, TickerColumn } from './VerticalTicker';
const BG = '#101014';
const shot = (file: string) => (
);
// 3 列差速反向(配方卡参数:loop 12/9/14s,中列反向)
export const buildColumns = (loops: [number, number, number]): TickerColumn[] => [
{
items: ['card1.png', 'card2.png', 'card3.png', 'card10.png'].map(shot),
durationInSeconds: loops[0],
direction: -1,
},
{
items: ['card4.png', 'card5.png', 'card6.png', 'projects-empty.png'].map(shot),
durationInSeconds: loops[1],
direction: 1,
},
{
items: ['card7.png', 'card8.png', 'card9.png', 'float-search.png'].map(shot),
durationInSeconds: loops[2],
direction: -1,
},
];
export const PageWaterfallWall: React.FC = () => {
const frame = useCurrentFrame();
const { durationInFrames } = useVideoConfig();
// 镜头缓推寄生在外层,墙自身循环、镜头单向
const push = interpolate(frame, [0, durationInFrames], [1, 1.06]);
return (
);
};
// 接缝自检用:短 loop(3s=90f)、无镜头推,f0 与 f90 应逐像素一致
export const SeamTest: React.FC = () => (
);