About wechat-2d-render
A skill that runs a Remotion workflow to render a WeChat 2D animation to a MOV file. It uses a local project when available, supports custom props, and defaults to a ProRes 4444 output suited to transparent-background workflows.
Key features
- 01Run the Remotion render script
- 02Choose workspace and output paths
- 03Pass custom props JSON
- 04Default ProRes 4444 output
- 05Clone or reuse the local project
Use cases
- 01Render a WeChat chat animation
- 02Create a transparent-background MOV
- 03Render with custom composition props
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ vibe-motion/ skills --skill wechat-2d-renderAfter installing, type/wechat-2d-renderin Claude Code to confirm it loaded.
Bundled filesscripts/render_wechat_2d.sh
Details
From the project READMEWeChat 2D Render
Workflow
- Use
scripts/render_wechat_2d.shfrom this skill. - Pass
workspace_diras the first argument when the user specifies a folder; otherwise use the current directory. - Pass
output_pathas the second argument when the user specifies output; otherwise useout/wechat-2d-transparent.mov. - Pass a props JSON path as the third argument when the user provides custom Remotion props; otherwise use
shared/project/render-presets/default.json. - Run the script and wait for completion.
- Return the final absolute output path printed by the script.
Command
bash scripts/render_wechat_2d.sh [workspace_dir] [output_path] [props_file]
Installed Skill Resolution
Use the installed skill copy, not the source repo checkout:
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"
Behavior
- Reuse local repo if
workspace_dir/wechat-2dexists; otherwise clone from GitHub. - Track remote default branch (
origin/HEAD) when updating an existing repo. - Install dependencies with
pnpm install; ifpnpmis missing, enable it throughcorepack. - Run the project Remotion scripts:
pnpm run remotion:ensure-browserREMOTION_OUTPUT=... REMOTION_PROPS_FILE=... pnpm run remotion:render
- Default render target is the active composition from
shared/project/projectConfig.js, currently thewechat-chat-motionplugin viaScaffoldDemo30fps. - Default output is ProRes 4444 with
yuva444p10lepixel format and PNG image format, suitable for transparent-background workflows.
Project Notes
- The project uses a scaffold/plugin split:
preview/*for local UI controls and browser preview.remotion/*for Remotion entry wrappers.shared/scaffold/*for common runtime.shared/project/*for plugin and composition registry.shared/features/demoMotion/*for the WeChat chat scene.
- Animation state must be deterministic per frame. Remotion renders frames in parallel and out of order, so do not rely on timers, mutable cursors, previous renders, or render order.
- Frame-specific data should be built from
{frame, fps, loop, sceneContext, pluginParams}inbuildSceneProps. - Keep
videoWidthandvideoHeightas layout props; use a props JSON file for custom sizes.
Requirements
gitnodecorepackorpnpm- network access for clone/update and dependency install
Comments
Markdown supported