// Camera: o empurrão lento do filme para camadas 2D (texto, foto recortada, cartão). // O Produto3D tem a própria câmera 3D (órbita/distância por chaves); esta só aproxima o quadro. // Valores do filme: +3 a +6% de zoom por plano, curva suave, nunca tremor. import React from 'react'; import {AbsoluteFill, useCurrentFrame} from 'remotion'; import {CURVAS, NomeCurva, lerp, seg} from '../base'; import {useDuracaoCena} from '../transicoes/Cena'; export type CameraProps = { /** zoom no início e no fim da cena (1 = parado; 1.05 = empurrão do filme) */ de?: number; para?: number; /** deriva horizontal total em px (−30 a 30) */ deriva?: number; /** ponto que a câmera aproxima, em % da tela */ foco?: [number, number]; curva?: NomeCurva; children: React.ReactNode; }; export const Camera: React.FC = ({de = 1, para = 1.04, deriva = 0, foco = [50, 48], curva = 'suave', children}) => { const t = CURVAS[curva](seg(useCurrentFrame(), 0, useDuracaoCena())); return {children}; };