用途:将新闻简报或博客封面制作为无缝循环 GIF,尺寸 896×640,180 帧,20fps(9 秒)。核心目标是让封面在信息流中通过微小运动获得注意,同时保证循环不跳变、第 1 帧作为静帧单独看仍然合理。
主要能力:仅让用户明确指定的一个元素运动;支持两种输入——已完成的静态图片(PNG)或 HTML 构建的封面;对 HTML 封面按时间函数仅动画指定元素,并添加 window.seek(seconds) 以便逐帧捕获;对静态图片通过颜色遮罩定位指定元素,软化边缘后仅改变遮罩内像素;使用单一正弦周期或“绘制-保持-淡出”方式跨越 9 秒,使最后一帧平滑流入第一帧;旋转循环使第 1 帧为完整画面;提供无抖动编码的 ffmpeg 命令;提供测量循环接缝与运动幅度的脚本。
使用方式:开始前若存在 brand.md 和 MOTION.md 需先阅读;若不存在,先运行 brand-intake,或索取十六进制色码、字体和 logo 文件。第 1 步向用户询问三件事并等待:封面(896×640 或同 7:5 比例的更大图像)、要运动的那一个元素(需明确命名)、运动方式(脉冲、绘制、缓慢漂移或发光,只选一种)。第 2 步构建:HTML 封面仅动画指定元素,添加 window.seek(seconds),以 20fps 捕获 180 帧;图片封面在代码中动画静帧,按颜色制作遮罩,逐帧仅改变遮罩内像素。第 3 步测量:使用提供的 ffmpeg 和 python3 命令输出帧数、接缝值和运动幅度。
适用场景:新闻简报封面、博客封面在收件箱或信息流中的动态展示;需要以静帧形式出现在链接预览中的封面;需要严格控制运动范围、避免相机运动或全图变化的场景。
限制与注意事项:只应动画被命名的元素;视频模型可能添加相机运动,代码动画是锁定相机的唯一方式;不要在中间帧测量运动,正弦在中间会回到零;ffmpeg 的 eq 滤镜需加 eval=frame;应缩小到 240px 宽检查运动元素是否仍可见;上传时需确认链接仍以 .gif 结尾,避免被转换为 PNG 导致动画丢失。目标参考:180 帧,接缝 0.0 到 0.3,运动幅度约 0.7 到 2.8,文件大小 0.6 到 2.3 MB;运动幅度接近零表示没有可见运动。