SuperAPI AI 工具集

video-coder

设计与创作

查看项目

更新于 10-16 07:46

技能介绍

用途

Video Coder 是 outscal/video-generator 技能库中的一个技能,定位为“面向教育内容的专家级 React 视频场景组件创建器”。它用于构建生产级、视觉风格鲜明的视频场景组件,动画基于 framer-motion 实现。

主要能力

该技能围绕 React 视频场景组件的编写规范展开,核心能力包括:

  • 组件结构规范:规定场景组件以 export default Scene{N}; 形式导出,其中 {N} 为场景编号(如 Scene0、Scene1、Scene2)。currentTime 是相对于视频开始的全局时间值。
  • 父 div 与 motion.div 的职责划分:父 div 负责定位、静态变换(旋转、翻转)与 z-index;motion.div 只负责动画(透明度、缩放、位移)。示例中父 div 使用 className 设置 top、left、z-index,用 style.transform 设置 rotate、scaleX(-1);motion.div 使用 initial、animate、transition 处理 opacity、scale 等。
  • 子组件性能要求:所有子组件必须使用 React.memo,并定义在模块层级(主 Scene 组件之外)。原因是视频组件随 currentTime 变化每秒重渲染约 60 次,若不用 React.memo,子组件会不必要地重渲染,导致动画抖动;模块级定义可保证引用稳定。
  • 模块级定义内容:子组件(始终用 React.memo 包裹)、用于定位的 wrapper div、动画变体(variants)、静态数据(位置、配置)。
  • 状态更新节流:建议用 Math.floor(currentTime / 42) 作为依赖,每 42ms 更新一次状态,避免过度重渲染,同时匹配 24fps 视频输出。
  • 显式 props 传递:所有依赖需作为显式 props 传入,React.memo 才能正确工作。
  • 坐标与定位约定:形状/文字/图标的位置始终指元素中心点;路径的所有坐标是绝对屏幕位置,无需 position/size 字段。旋转约定为 0° 朝上、90° 朝右、180° 朝下、270° 朝左,正值顺时针,负值逆时针。示例视口为 1920×1080,屏幕中心 x=960、y=540。
  • 过渡与缓动:涵盖 tween(基于时长、精确计时)、spring(基于物理、弹跳/弹性)、inertia(基于动量减速)三种过渡类型;transition 可配置 duration、ease、delay、repeat、repeatType、times 等。缓动函数包括 linear、easeIn、easeOut、easeInOut、circIn/Out/InOut、backIn、backOut、backInOut、anticipate、steps(n) 等。spring 可配置 stiffness、damping,注意不能将 bounce 与 stiffness/damping/mass 混用。
  • 旋转与翻转:静态朝向(资源面向某方向)用 wrapper div 处理;动画旋转用 motion.div 的 rotate,支持连续旋转(repeat: Infinity)、自定义轴心(transformOrigin)。
  • 路径动画:沿 SVG 路径动画有专门文档(path-following.md);当路径同时有 path-draw 和 follow-path 动画时,需对两者应用相同缓动以保持同步。

使用方式

该技能以规范与代码模式的形式提供,供开发者在编写 React 视频场景组件时遵循。资料中未提供安装命令或调用方式,暂未提供。

适用场景

适用于制作教育类视频内容中的 React 场景组件,尤其是需要 framer-motion 动画、且对渲染性能与动画稳定性有要求的场景。

限制

资料未说明收费、价格、平台支持范围等信息,暂未提供。