// 慢推压迫(slow-push-in)——studiobinder camera movements。 // 景 A(帧 0–120):深色底 + 白色大数字 "10x",scale 用 Easing.in(Easing.quad) // 从 1.00 匀加速推到 1.14——前 2 秒几乎不可察,后段明显可感;同时四角径向 // 暗角 opacity 0→0.5 同步加深,构成压迫感的第二来源。 // 帧 120 无任何过渡硬切景 B:满屏亮色 FakeDashboard(A) 真静止 30f—— // 暗→亮的大反差让"切"这一拍才响。 import React from 'react'; import { useCurrentFrame, interpolate, Easing } from 'remotion'; import { G, FakeDashboard } from '../../_fixtures/Fixtures'; const CUT = 120; // 硬切帧 export const SlowPushIn: React.FC = () => { const frame = useCurrentFrame(); // ---- 景 B:帧 120 起,满屏亮面板,完全静止 ---- if (frame >= CUT) { return ; } // ---- 景 A:0–120f 慢推 ---- // 匀加速推近:Easing.in(quad)——前段几乎不可察,后段可感 const scale = interpolate(frame, [0, CUT], [1.0, 1.14], { easing: Easing.in(Easing.quad), extrapolateLeft: 'clamp', extrapolateRight: 'clamp', }); // 暗角同步加深:压迫感的第二来源 const vignette = interpolate(frame, [0, CUT], [0, 0.5], { easing: Easing.in(Easing.quad), extrapolateLeft: 'clamp', extrapolateRight: 'clamp', }); return (
{/* 被推近的内容层:整体 scale */}
10x
FASTER THAN BASELINE
{/* 暗角层:四角径向渐变,随推近同步加深 */}
); };