
本文目录
站立时刚好放得下的角色,一跳起来就可能顶到画面边缘。我们用 PhotoCraft MCP 给橙色机器人增加上方透明留白,再把这张 PNG 交给 AnimGen MCP 生成动作。导出后有两帧出现少量残色,也回到 PhotoCraft 中做了清理。
下面保留了完整的一次跳跃,包括落地和恢复站姿,仍按原来的 24 FPS 播放。浅色背景只是为了方便观看,下载的 WebM 和 PNG 帧仍然透明。
把 PhotoCraft MCP 接到本地素材目录
这次使用官方 PhotoCraft 0.9.0 CLI,实测日期为 2026 年 10 月 14 日,系统为 macOS。CLI 可以启动无界面的 MCP 服务,本文的图片操作不需要打开编辑器窗口。桌面版的安装方式见 PhotoCraft 下载指南。
准备一个工作目录和其中的 output 子目录,然后让 MCP 客户端按下面的参数启动下载好的程序。示例路径需要换成你自己的绝对路径:
photocraft-cli mcp \
--automation-read-root /absolute/path/robot-project \
--automation-write-root /absolute/path/robot-project/output
这两个目录限定服务可以读写的位置。doc_open 的路径相对于读取目录,doc_save 的路径相对于写入目录。连接后先打开 PNG,再通过 command_list 查询需要的命令。官方 MCP 文档说明了无界面模式、命令发现,以及供 UI 工具使用的 bridge 模式。
AnimGen 按 MCP 客户端接入指南连接。它是使用 OAuth 的远程服务,地址为 https://api.animgen.com/mcp;本案例中的 PhotoCraft 则运行在本机。
给机器人上方留出空间,不缩放角色
原始机器人 PNG为 1254 × 1254。我们先复制文档,再把画布扩为 2160 × 1620,锚点设为底部居中,扩展区域保持透明。
查询到 image.canvasSize 后,传给 command_run 的参数如下:
{
"id": "image.canvasSize",
"params": {
"width": 2160,
"height": 1620,
"relative": false,
"anchor": "bottom",
"extensionColor": "transparent"
}
}
原图在新画布中的位置为 x=453、y=366,原区域的 RGBA 像素保持一致,新增区域的 Alpha 全为零。图中的灰色面板用于展示画布范围,没有写进 PNG。可以下载实际用于生成的图片检查。
我们同时保存了 .pcraft 工程和 PNG。由于 PhotoCraft 已经准备好留白,本次没有再开启 AnimGen 的 Expand Canvas。
把 PNG 的实际内容上传到 AnimGen
本地 PhotoCraft 文件路径不能直接当成远程服务的输入。客户端先调用 prepare_image_upload,按返回的方法和请求头传输文件字节,再调用 complete_image_upload。取得的 file_id 才用于生成请求。这次上传完成后返回的文件大小和 SHA-256 与 PhotoCraft 导出文件一致。
可以把下面这段英文任务说明交给同时连接了两个 MCP 的助手。它是可复用的任务模板,不是逐条工具调用记录:
Use PhotoCraft MCP to open my transparent robot PNG and duplicate it.
Expand the canvas to 2160 x 1620, bottom-centred, with transparent margins.
Save a new PNG without resizing the character.
Use AnimGen MCP to upload that PNG's actual bytes. Discover the available
models and quote a 4-second, 480p, 4:3 jump with automatic Alpha Key.
Show me the model and credit quote, and wait for approval before generation.
Keep the camera fixed and the whole robot in frame. Ask for a crouch,
an in-place jump and a landing. Save the task ID and wait for completion.
Reuse that source video for transparent exports; do not generate again
when selecting frames. Preserve 24 FPS and check the exported alpha.
上传、报价和任务轮询的详细说明,可以继续看 AnimGen MCP 实测教程。
批准一次生成,保留同一份源视频
本次批准的设置为 Seedance 2.0 Fast、4 秒、480p、4:3 和自动 Alpha Key。生成实扣 36 积分,透明导出的报价和实扣均为 0 积分,没有再次生成动作。
| 项目 | 本次结果 |
|---|---|
| 返回视频 | 752 × 560、24 FPS、97 帧 |
| 实测时长 | 约 4.04 秒 |
| 动作 | 连续跳跃两次,再恢复准备姿势 |
| 最终生成扣费/退款 | 36/0 积分 |
| 导出扣费 | 0 积分 |
虽然请求写的是单次跳跃,模型实际做了两次。第一段仍然可以选出来使用。这些费用对应本次实测,自己的模型和参数应重新获取报价,具体见定价页。
当前 FPS 导出模式接受精灵图及其 JSON 配套输出。我们按 24 FPS 导出这两项,再根据完整视频的 97 帧另行导出透明视频与 PNG 序列。两组请求都复用同一视频资产,并设置了零积分上限。
用 PhotoCraft 清理两张落地帧
检查最初导出的 97 帧序列时,在浅色和深色背景上能看到源帧 48、49 的头部附近有少量偏绿色残影,时间在第一次落地附近。这种局部问题可以直接修帧,不必重新生成视频。
我们在 PhotoCraft 中打开受影响 PNG 的副本,通过 select.rect 和 edit.clear 清除残色所在的小块空白区域,再保存 PNG。像素核对确认,选区之外的像素没有变化,其余 95 帧也与原版完全一致。
这些对比图由真实导出帧排版而成,图内标签为英文,没有仿造编辑器界面。清理保留了原画布尺寸和地面阴影。如果残色已经覆盖角色本身,应先按照透明动画边缘处理指南检查,不要直接删掉角色像素。
保留一次跳跃,仍然按 24 FPS 播放
最终片段共 77 帧、24 FPS,约 3.21 秒,保留了下蹲、起跳、腾空、落地和起身。整理素材时使用完整 WebM 中的全部帧,没有补帧,也没有改变速度。
角色恢复准备姿势后片段才结束,可以播放一次后切换到下一动作,没有把它做成无缝循环。挥剑动作案例介绍了类似的单次动作播放,行走动画教程则讨论循环处理。
下面把同一段完整跳跃放在浅色和深色背景上,方便检查轮廓:
下载素材,在自己的项目里检查
| 文件 | 内容 |
|---|---|
| 处理后的角色 PNG | 实际用于生成的 2160 × 1620 PhotoCraft 输出 |
| 透明跳跃 WebM | 完整的 77 帧跳跃,752 × 560、24 FPS;VP9 压缩后约 436 KB |
| PNG 序列 ZIP | 77 张透明图片,编号对应完整 WebM 内的第 0–76 帧 |
| 精灵图与 JSON | 相同的 77 帧,图集 6016 × 5600,包含逐帧时长 |
| 素材记录 | 尺寸、费用、清理选区和文件哈希 |
精灵图保留了原始帧分辨率,导入前需要确认目标环境能接收 6016 像素宽的纹理。也可以下载 PNG 序列,按目标环境重新缩放和拼合。保留统一的逐帧画布,才能保留角色真实的跳跃高度。
PhotoCraft MCP 常见问题
PhotoCraft MCP 负责生成 AI 动画吗?
本流程中,PhotoCraft 编辑输入画布和导出像素;AnimGen 生成动作并提供初始透明导出。客户端协调两个服务,并在它们之间传递文件。
整个流程都是免费的吗?
本地 PhotoCraft 编辑没有消耗生成积分。本次 AnimGen 生成费用为 36 积分,导出为 0 积分。MCP 客户端使用的 AI 模型还可能有单独费用。
能换成自己的角色吗?
可以。使用真正带 Alpha 的 PNG,在运动方向留出空间,再检查下蹲、腾空最高点和落地姿势。如果希望直接在浏览器中操作,可以从透明动画制作工具开始,同样按这些关键姿势检查结果。

