看到 Claude Opus 5.5 制作的《I'm Upping My P(doom)》后,我开始测试一件事:让 coding agent 组织画面、动作、配音和剪辑,能否做出一支完整视频。

这轮已经做成两支片:《雨夜送药》150 秒,采用素材复用和二维角色动作;《垃圾車來了!》160 秒,把人物、物件和环境一起生成。两支片展示了不同的制作取舍,也让我把工作流整理成了三个方向。

从 Opus 5.5 的作品开始

Claude Pop - I'm Upping My P(Doom)

此媒体由 YouTube 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

作者公开了 PDoomVideo 源代码。项目说明中,Opus 5.5 负责分镜和动画代码,画面使用 p5.js、p5.brush、无头 Chrome 与 FFmpeg 渲染,音乐采用已有歌曲。

我想接着探索的,是 Agent 怎样组织制作过程。我的画面路线换成了 ImageGen:生成素材,审看动作与空间,再把选用画面、声音和字幕编成视频。

第一条:动图与动作库

动作库负责保存人物 ID、姿态、动作时间和预览。下面是八个生成姿态组成的挥剑动图,动作结束后回到起点,循环有明确的重置接点。

八个生成姿态组成的挥剑动图

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

这一层的价值是复用。后面要让同一个角色站立、转头或挥手,可以直接引用已经审看的动作,不必每次从一张人物设定重新开始。原创形象的参考图、表情、服装和动作索引也已预留,后续会从这里接入。

第二条:有限动画与低成本静态视频流

《雨夜送药》:素材复用与二维角色动作。

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

《雨夜送药》已经通过成片验收。它从下班收到消息、雨夜走到候车处,一直讲到回家送药。办公室、街口、候车、车内和回家这些镜头,用完整插画、停留和轻微运镜推进;74–84 秒的绕行段,则在同一背景上使用二维骨骼驱动角色纹理。

回看整片,这条路线的特点很清楚:场景稳定,少量画面就能承载完整故事。角色移动可以由程序持续计算,旁白和字幕把镜头连接起来。候车和办公室的画面停留较长,观感偏插画叙事;绕行段有明显的二维纸片感。它已经完成了有限动画的目标,接下来要加强的是人物与场景的互动。

素材怎么复用

我把有限动画(素材复用)分成两种镜头。第一种直接复用完整插画,适合听消息、看远处、车内休息和收尾。第二种保留背景,复用透明人物姿态或角色纹理,用于站立、短步和简单动作。

同一街区可以换成店外、人行道或候车空地。复用以镜头为单位,不需要把整支片锁在同一张背景上。人物要拿东西、坐下、跨台阶或被前景遮住时,先判断这个接触能否靠现有素材表达;复杂部分转到第三条整场景流程。

具体制作顺序是:

  1. 定义镜头的起点、终点、动作和道具状态,先标出需要接触环境的部分。
  2. 审看场景母图,确认地面、开放路线、障碍端点和机位。
  3. 选择同一人物、服装和道具状态的素材,保留鞋底和完整轮廓。
  4. 匹配人物比例、光线、落脚和影子,安排保持、移动、换脚与收势。
  5. 按实际旁白长度安排镜头和字幕,再检查完整音画与前后状态。

提示词也从构图阶段限制互动。例如:

角色在平坦开放的人行空地站立或短步,身体和鞋底完整可见。墙、车辆、桌椅与栏杆都在路线之外。角色不走到这些物件后方,不扶栏、不倚靠、不拿取背景物件,不跨台阶。已有提袋保持同一只手,起点与终点位于同一高度的地面。

成本节省来自复用背景、人物素材和剪辑流程,减少重复生成整张场景。切图、绑定和审看仍是制作工作,所以需要按镜头选择方案;遇到复杂互动,一直修合成反而会增加返工。

把滑脚单独拿出来测

支撑脚对照:保留与取消落脚约束。

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

同一纹理和路线做了两个版本:一个固定支撑脚,另一个让鞋底在支撑期间随人物前移。程序读取编码后的画面,用鞋底纹理匹配检查 0.25 秒内的位移。

条件 可见测量窗口 中位位移 95 分位
固定落脚 27 0px 3px
取消约束 18 20px 约 21px

这个对照把滑脚问题显示出来,也给后续动作库提供了一项可以重用的检查。人物有没有绕过护栏、有没有碰到物件,另看整段画面的空间关系。

第三条:参与环境互动的视频流

《垃圾車來了!》:人物、道具与背景整场景生成。

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

《垃圾車來了!》专门测试接触与状态变化。刚搬来的以安听见垃圾车音乐,提起分好的垃圾和回收物下楼;邻居的袋子勾到扶手,瓶罐掉落,她停下帮忙。两人倒完垃圾,一起走回公寓,陌生巷子也熟悉了一点。

这次每张图都把人物、物件、背景、光线和接触影子一起生成。下一步上传上一完整影格,再提供人物与场景参考,说明接下来的小动作。同一巷弄可以延伸到门口、人行道和收运点,背景不要求像素固定。

回看片子,最有用的改善在拿取和交付段:先放下自己的袋子,再蹲下拿瓶罐、放回邻居提袋;到了收运处,交付垃圾与回收后,手上的状态跟着改变。动作与物件关系直接画在场景里,比在固定底板上移动人物更适合这些事件。

全片选用了 76 张整场景姿态,配 11 段台湾中文旁白和 43 条字幕。步行等部分仍能看到姿态停留和切接;但相比上一条路线,故事中的具体接触已经更完整。原生成图是 836×470 和 1672×941,成片导出 1080p;迁移前网页用 540p 副本,现在由 ishare 提供自适应流媒体播放。

几次错误怎样改变了制作方法

绕行变成翻越护栏

早期反例:要求绕行,画面却出现扶栏与翻越姿态。

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

早期实验写的是从障碍旁绕过,生成的末段却伸手扶栏,腿也抬到护栏附近,让动作读成翻越。这是具体的路线和动作错误。后来低成本片改用明确的开放路线与二维控制;发展整场景路线时,也把人物与栏杆的复杂遮挡列为构图限制。

处理办法是先把端点和可走的空地放进镜头,手保持在身体旁,再看整段是否真的沿这条路线移动。单看脚底固定或人物朝前,容易漏掉人物与护栏的关系。

楼梯修正版仍有台阶异常

G09R 楼梯修正版,台阶、平台与扶手坡度不连贯

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

垃圾车故事的 G09、G10、G11 出现楼梯空间混乱。第一次重做后,G09R 看起来更接近公寓,但我在成片里又指出台阶异常。最后整组撤出,换门锁近景,再接鞋部和二楼平台,把下楼这件事讲清楚。

最后选用的门锁近景

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

这次处理直接改变了镜头设计。用近景避开复杂梯段,平坦平台承担拾瓶动作,叙事继续成立。后续遇到同类空间问题,也应先考虑机位和动作拆分。

道具数量和左右手会跳变

地上还有罐子,袋口却已出现另一只罐子的弃用画面

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

撿物段曾出现地上罐子还在、袋口却多出一只;门锁新组也有钥匙和袋把突然换手的格子。前者按库存重选,后者弃用第三格,保留第 1、2、4 格。自己的垃圾袋需要先放到墙边,才进入蹲下动作,不能提前消失。

这些错误让提示词变得具体:先握住再拿起,接住后才放手;写明每只手和每件物品的位置。失败图单独存放,正式时间线只引用审看后的影格。

声音与叙事一起调整

初版持续低频和重复高音铃声让画面显得诡异。后来移除了低鸣,把垃圾车音乐缩成短提示,加入稀疏钢琴,并在旁白时压低背景音。

配音改成第三人称画外旁白,字幕跟着旁白走。故事照样能展开,也避免画中人物的嘴型牵制台词。Edge 语音原路径遇到 403 后,换用我提供的 wangwangit/tts,通过本地 Microsoft REST 路径完成台湾中文旁白。

把雨夜花店做成连续视频

后续试播按这张六格图考虑情节:路过花店、发现倒盆、蹲下接触、扶正花盆、与店员致意,最后继续前行。

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

这张图负责故事与构图。它不是视频抽帧,也不能证明扶正和致意已经发生。制作时仍把动作拆成可观察的状态,先走近、停下,再蹲下触盆,确认接触后才进入扶正。

我在 gemini.google.com 生成了第一条连续片段,记录中的模型名称是“Gemini 4”;底层视频模型版本没有独立核实,不把它写成已确认的 Veo 对照实验。

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

片段为 10 秒、1280×720、24fps,240 帧都能完整解码。它保持了同一家花店、同一人物和一只倒地目标盆,呈现走近、停步、下蹲与伸手。这至少说明,从场景参考组织一段连续动作的路线有可行性,值得继续做下去。

接触还没有完成。女主蹲下的位置离盆沿太远,手伸向散落叶片;9 秒证据帧和最后一帧都看得到手与陶器之间的间隔。

ishare

此媒体由 ishare 提供。你同意此服务并请求查看后才会加载,当前尚未连接平台。

因此这条保留为可行性试播,审片结论仍是 NEEDS_REVIEW。没有可观察的触盆完成点,就不剪成“已经扶起”的片段,也不为了填满输出长度安排空动作。下一轮只改停步位置:走到外露盆沿旁,略弯肘就能触及后再蹲下。接触通过后,才继续扶正、与店员致意和离开。

Codex 在这里负责核对母图哈希、解码抽帧、检查物件数量、落脚与接触状态。媒体技术检查通过和剧情动作通过分别记录。实际网页附件与提交提示词没有留证,参考绑定保持未验证;不能仅凭画面相似就宣布参考图已正确绑定,也不能把这个缺口归咎于模型。

这轮研究留下什么

现在三条流程各有明确任务:动作库保存可引用的人物动作;低成本流程复用素材,完成插画式叙事和简单移动;整场景流程负责人与道具、环境的接触事件。

两支成片给出了实际制作结果,花店试播补上了连续生成视频的初步可行性与接触缺口。下一步加入原创形象时,我会沿用角色参考、表情、服装和动作索引,让同一个形象进入三种流程,再继续看动作与环境如何配合。

源码、提示词、审查结果和媒体清单整理在仓库的 video/:动作库、有限动画、整场景叙事和花店试播各一个目录。图片与视频迁到 ishare,仓库按链接引用;重建时按需下载原图并校验哈希,视频流媒体版不冒充原始下载文件。实际使用的 MIT 语音依赖已纳入 third_party/tts/,保留上游版本和许可证。

查看开源工作流

《垃圾車來了!》完整 1080p 成片

《雨夜送药》完整 720p 成片