// trailer-bumper|前置速剪预告 // 结构即全部:三连 9f 速剪(A 整页 / B 整页 / A 2.2x 怼脸特写)→ 6f 纯黑喘息 // → 正式开场大标题淡入+微升 16f 定格。每个速剪镜头内部带 1→1.04 轻推近。 // 收尾真静止:49f 后所有动画结束,静止 91f(>40f)。 import React from 'react'; import { useCurrentFrame, interpolate, Easing } from 'remotion'; import { G, FakeDashboard } from '../../_fixtures/Fixtures'; // 时间轴(帧) const CUT_1 = 0; // 镜头1:variant A 整页 const CUT_2 = 9; // 镜头2:variant B 整页 const CUT_3 = 18; // 镜头3:variant A 2.2x 怼脸特写 const BLACK = 27; // 纯黑静默 const TITLE = 33; // 正式开场 const TITLE_IN = 16; // 标题淡入+微升时长 // 速剪镜头内部轻推近:镜头内 local 0→9f,scale 1→1.04(线性,活镜头感) const push = (frame: number, start: number) => interpolate(frame, [start, start + 9], [1, 1.04], { extrapolateLeft: 'clamp', extrapolateRight: 'clamp', }); export const TrailerBumper: React.FC = () => { const frame = useCurrentFrame(); // —— 段落 1–3:三连速剪 —— if (frame < BLACK) { let inner: React.ReactNode; if (frame < CUT_2) { // 镜头1:A 整页 + 轻推近 inner = (