SuperAPI AI 工具集

wechat-2d-render

设计与创作

查看项目

更新于 10-15 15:38

技能介绍

WeChat 2D Render 是一个基于 Remotion 的技能,用于渲染默认的微信风格 2D 聊天动画视频。

用途 该技能面向需要生成微信聊天动画视频的用户。当用户提出微信聊天动画相关需求时,可使用此技能完成渲染。

主要能力

  • 克隆或更新 GitHub 仓库 https://github.com/sxhzju/wechat-2d。
  • 使用 Remotion 渲染默认的微信风格 2D 聊天动画视频。
  • 支持自定义工作目录、输出路径和 Remotion props 文件。
  • 默认输出为 ProRes 4444 格式,像素格式 yuva444p10le,图像格式 PNG,适合透明背景工作流。

使用方式 使用技能中的脚本 scripts/render_wechat_2d.sh。

命令格式: bash scripts/render_wechat_2d.sh [workspace_dir] [output_path] [props_file]

参数说明:

  • 第一个参数 workspace_dir:当用户指定文件夹时传入;否则使用当前目录。
  • 第二个参数 output_path:当用户指定输出时传入;否则使用 out/wechat-2d-transparent.mov。
  • 第三个参数 props_file:当用户提供自定义 Remotion props 时传入;否则使用 shared/project/render-presets/default.json。

运行脚本并等待完成,返回脚本打印的最终绝对输出路径。

已安装技能解析: 使用已安装的技能副本,而非源仓库检出:

skill_dir="" for base in "${AGENTS_HOME:-$HOME/.agents}" "${CLAUDE_HOME:-$HOME/.claude}" "${CODEX_HOME:-$HOME/.codex}"; do if [ -d "$base/skills/wechat-2d-render" ]; then skill_dir="$base/skills/wechat-2d-render" break fi done [ -n "$skill_dir" ] || { echo "wechat-2d-render skill not found under ~/.agents, ~/.claude, or ~/.codex"; exit 1; }

bash "$skill_dir/scripts/render_wechat_2d.sh" "$(pwd)" "$(pwd)/out/wechat-2d-transparent.mov"

行为

  • 如果 workspace_dir/wechat-2d 存在,则复用本地仓库;否则从 GitHub 克隆。
  • 更新现有仓库时,跟踪远程默认分支(origin/HEAD)。
  • 使用 pnpm install 安装依赖;如果缺少 pnpm,则通过 corepack 启用。
  • 运行项目 Remotion 脚本: pnpm run remotion:ensure-browser REMOTION_OUTPUT=... REMOTION_PROPS_FILE=... pnpm run remotion:render
  • 默认渲染目标是 shared/project/projectConfig.js 中的活动合成,当前为通过 ScaffoldDemo30fps 的 wechat-chat-motion 插件。
  • 默认输出为 ProRes 4444,像素格式 yuva444p10le,图像格式 PNG,适合透明背景工作流。

项目说明 项目采用 scaffold/plugin 分离结构:

  • preview/* 用于本地 UI 控件和浏览器预览。
  • remotion/* 用于 Remotion 入口包装。
  • shared/scaffold/* 用于通用运行时。
  • shared/project/* 用于插件和合成注册表。
  • shared/features/demoMotion/* 用于微信聊天场景。

动画状态必须每帧确定。Remotion 并行且乱序渲染帧,因此不要依赖计时器、可变游标、先前渲染或渲染顺序。

帧特定数据应在 buildSceneProps 中基于 {frame, fps, loop, sceneContext, pluginParams} 构建。

将 videoWidth 和 videoHeight 保留为布局属性;使用 props JSON 文件自定义尺寸。

要求

  • git
  • node
  • corepack 或 pnpm
  • 网络访问,用于克隆/更新和依赖安装