用途:按特定方式编写 Remotion 标记,使 Remotion Studio 能识别代码结构并实现交互:点击选中元素、拖拽/缩放/旋转、编辑 CSS 样式、编辑关键帧与缓动值。若标记过于复杂,相关值会变灰不可编辑。
主要能力与用法: 用 Interactive 组件包裹 HTML/SVG 元素,如 <Interactive.Div name="Greeting card" style={{fontSize:80,padding:24}}>Hello</Interactive.Div>,即可在 Studio 中设置样式和关键帧;元素多时时间线可能混乱。 固定且仅用一次的文本直接写在交互元素内,动态或复用的文本才用 prop 或变量。 为交互元素添加描述性 name 属性,如 <Img name="Avatar" .../>、<Video name="Background" .../>、<Sequence name="Title">。 CSS 样式全部内联:直接传普通对象,不要引用常量、对象展开或运算。 动画使用内联 interpolate() 调用,输出范围、缓动、外推和输出属性用硬编码值;输入范围可用从 useVideoConfig() 解构的 durationInFrames、fps、width、height,支持 durationInFrames、2fps、fps2、durationInFrames-1。不支持变量运算、任意变量的 interpolate、非内联调用。 使用 scale、translate、rotate 属性,避免 transform。 合成元数据保持内联:width、height、fps、durationInFrames、defaultProps 内联且不做类型断言;仅动态部分用 calculateMetadata()。defaultProps 为内联对象字面量时 Props 编辑器可回写视觉编辑。 effects 数组也不应计算,参数内联且数组形状稳定;不支持的包括条件 effects、非内联参数。需要不同版本时渲染独立元素。 自定义用户组件可用 Make a component interactive 设为交互。若组件主要由视频和音频片段组成,见 Video editing 最佳实践以让片段在时间线中可交互编辑。
限制:标记过复杂时值不可编辑(变灰);不支持非内联样式、展开、常量引用、运算、任意变量、transform。