SuperAPI AI 工具集

remotion-interactivity

通用与其它

查看项目

更新于 10-16 01:10

技能介绍

用途:指导以特定方式编写 Remotion 标记,使 Remotion Studio 能识别代码结构并实现交互编辑,包括点击选中元素、拖拽/缩放/旋转、编辑 CSS 样式,以及编辑关键帧与缓动值;标记过于复杂时对应值会置灰。

主要能力与用法:

  1. 优先使用自带时间轴的交互组件。对填满父级的组件使用 Interactive.withSchema({wrapInSequence: true, layout: 'absolute-fill'}),由包装器提供视觉根与时间轴项并默认裁剪溢出,内部组件可返回 fragment;把时间、预挂载、尺寸和每实例样式放在导出组件上。
  2. 同一组视觉内容放在同一组件中,使其一起移动和裁剪。卡片、文本框、有自身边界的 SVG 可保留默认 layout: 'none' 并把 style 转发到视觉根。
  3. schema 中每个键是 Studio 可读写的 prop,支持 string、number、boolean、color、enum、array、asset、font-family、font-weight、translate、scale、rotation-css、rotation-degrees、transform-origin、uv-coordinate、svg-path、remotion-captions、hidden 等类型;每字段需 default 与 description,可用 keyframable: false 显示静态控件。可展开 Interactive.textSchema、backgroundSchema、borderRadiusSchema、borderSchema、captionsSchema、childrenSchema 等内置片段。
  4. 将可复用组件注册为 connected composition,使用与父级相同的导出组件引用(如 component={Scene}),wrapInSequence: true 时无需额外 Sequence。
  5. 时间属性直接放在组件上(name、from、durationInFrames、trimBefore、playbackRate、premountFor),避免多余 Sequence;多个同级共享时间、组件不处理时间或需尺寸时保留 Sequence。
  6. 每个可独立编辑的项使用独立 JSX 节点;.map() 等循环适合作为整体模板控制的重复输出,不适合需独立 ID、名称、属性、时间、顺序、删除或复制的实例。
  7. 用 Interactive.Div 等使 HTML/SVG 元素可交互(Img 已可交互);文本固定且仅用一次时直接内联;为元素添加描述性 name;CSS 样式保持内联,避免常量、展开和数学运算。
  8. 动画使用内联 interpolate(),输出范围、缓动、外推和输出属性用硬编码值;输入范围可用 useVideoConfig() 解构的 durationInFrames、fps、width、height,支持裸标识符、与数字相乘及减数字。
  9. SVG 路径使用 Interactive.Path 保持可编辑,安装 @remotion/paths 用 bunx remotion add @remotion/paths;路径变形用内联 interpolatePaths(),不要用 interpolatePath() 或提取变量。
  10. 使用 scale、translate、rotate CSS 属性,避免 transform。

限制:非内联样式、展开、常量引用、数学运算、任意变量、非 frame 变量均不被支持;嵌套标记与计算子元素目前只读;text-content 是 string 字段类型的已弃用别名;childrenSchema 目前使用默认值为 '' 的字符串字段,若组件要求纯字符串子元素应显式声明 type: 'string'。注册默认值不会自动从父实例复制 props。