让 AI 生成一个练武的人,再要求摄影机绕着他移动。人物可能抬手、转身,衣服和院落也都像那么回事,但背景几乎没变:它完成了人物动作,摄影机却留在原地。再接上第二个镜头,问题还会增加。机位换到哪里了?院门还在同一侧吗?两段画面能否让观众相信这是同一个空间?
ShotVerse 把这个问题拆成两步:先从文字规划出相机轨迹,再让视频模型按轨迹生成。它值得创作者关注的地方,是让“怎么拍”变成一份可以单独检查的中间结果。下面结合它的具体方法和实验,看看这一步能解决什么,又还解决不了什么。[1]
01一个“环绕”,还欠多少信息
相机轨迹,是摄影机在一段时间里的位置和朝向序列。 单个时刻的位置与朝向叫相机位姿。把这些时刻按顺序连起来,才知道摄影机从哪出发、往哪走,以及一路看着哪里。
“绕人物一圈”只有动作名称。摄影机离人物多远,从正面还是侧面开始,几秒走完,运动中要不要一直对准脸,都还没有说清楚。两个模型甚至两次生成,对这句话给出不同拍法,并不奇怪。
可以把要求收窄成:“摄影机从人物右前方缓慢移向正前方,始终看向上半身,四秒内完成这一段弧线。”它仍是文字,但已经能检查起点、终点、方向和时长。如果工具支持显式轨迹,还可以把这些要求落实成逐帧的相机参数。文字负责表达意图,轨迹负责把其中的空间与时间关系写具体。
02切过镜头,房间还得是同一间
统一坐标系,就是让不同镜头用同一套空间基准描述机位。 想象桌子和门的位置已经画在一张俯视图上。第一个镜头的相机在桌前,第二个在桌侧,两个机位都能落到这张图里,空间关系才有可比性。
如果每个镜头都各自把“第一帧相机的位置”设为原点,单看一条轨迹可能很平顺,但这些数字不能直接拼成一份拍摄计划。还要对齐方向、位置和尺度。相同的“向右移动”,放到两个不同的局部坐标里,未必对应房间里的同一个方向。
ShotVerse 的数据处理会先屏蔽动态前景,利用静态背景分别重建每个镜头;再选取跨镜头的关键帧做联合重建,通过共享锚点,把各条局部轨迹对齐到全局空间。用移动的人物当唯一定位参照,容易把人物运动和相机运动混在一起,因此背景在这里承担了定位作用。[1]
数据量也要分开看。作者收集了 20,500 段单镜头片段;多镜头实验从其中选出 2,750 段,组成 1,100 个场景,其中 1,000 个训练、100 个测试,场景互不重叠。每个序列 249 帧,分辨率 843 × 480,包含 2—4 个镜头。20,500 不能读成已经有两万多场完整的多镜头训练戏。
03先规划,再生成:中间要有轨迹
Planner 是规划器,负责把拍摄说明变成轨迹;Controller 是执行器,负责按轨迹生成视频。 两者分别训练,却使用相互对应的文字、轨迹和视频数据,避免规划出的拍法与执行器学过的控制条件完全脱节。[1]
拍摄说明也分两层。全局描述交代同一场戏的人物、场景和整体事件;逐镜头描述写各段动作、景别与运镜。Planner 为每个镜头保留专门的轨迹查询位置,再通过解码器输出长短不同的轨迹序列。这样,“镜头二向左环绕”就有明确归属。
Controller 以 HoloCine 的多镜头生成模型为基础,将相机位姿编码成特征,送入生成网络。可以把它理解为:生成某一帧时,模型除读取“画面里是什么”,还会收到“这一帧的相机在哪里、朝向哪”。HoloCine 原本就联合处理整场戏的多个镜头,ShotVerse 在此基础上加入相机控制。[1][2]
4D RoPE 是这里另一处值得理解的设计。 它给位置编码增加“镜头编号”,与帧、画面高度和宽度一起使用。“4D”指四个索引维度,并不表示相机在四维空间里移动。镜头一的最后一帧和镜头二的第一帧虽然时间相邻,却需要发生剪切;把镜头归属写进编码,有助于模型区分镜头内部的连续运动与镜头之间的切换。
04看数据时,把规划和执行分开
一次生成失败,可能是轨迹本身没有表达拍摄意图,也可能是轨迹正确、模型没执行出来。ShotVerse 把评估分为三条:A 看文字能否变成合适的轨迹,B 给定目标轨迹检查视频执行,C 从文字出发检查最终多镜头视频。拆开之后,分数才对应具体问题。
先看执行能力。 表中的方法都接收基准轨迹。研究者从生成视频中估计相机位姿,再与目标轨迹比较;单镜头基线按镜头生成后,再按论文方案拼接。下面完整列出这组比较,数值均来自原文表 3。[1]
| 方法 | 平移误差 ↓ | 旋转误差 ↓ | CAS ↑ |
|---|---|---|---|
| MotionCtrl | 0.0900 | 2.56 | 0.329 |
| CameraCtrl | 0.0571 | 1.28 | 0.343 |
| ReCamMaster | 0.0589 | 1.12 | 0.408 |
| ShotVerse | 0.0163 | 0.73 | 0.500 |
前两列越低,表示按该评估方法得到的轨迹误差越小。CAS 是跨镜头坐标对齐的代理分数:选取视野重叠最高的跨镜头帧对,利用 DINOv2 特征衡量视觉相似性。它把几何关系与视觉一致性联系起来,但 0.500 不等于“有一半镜头完全对齐”。表里的误差也不能直接换算成实际拍摄偏了多少米。
再看一次消融实验。 “消融”就是移除或替换某个设计,观察结果如何变化。将完整方案的 4D RoPE 换成 3D RoPE 后,切镜准确度从 0.933 降到 0.429。这个对照支持“显式标出镜头归属有帮助”,不能改写成“100 段视频有 93 段成功”,因为论文没有给出足够的计数定义。[1]
| 设置 | 切镜准确度 ↑ |
|---|---|
| 使用 3D RoPE | 0.429 |
| 完整方案(4D RoPE) | 0.933 |
这些结果针对同一场景、多镜头相机控制的实验设置。它们没有回答所有题材谁最好,也没有证明画面漂亮就一定叙事清楚。原文还报告了重复视角的轻微漂移、时长和切点限制,以及密集人群动态处理困难。因此,更适合从中判断控制方式的价值,而不是做通用视频模型排名。
05用三个镜头,写一份能检查的拍摄说明
下面用一个自拟练习把方法落到分镜上:一个人在工作室里拿起桌上的信封,发现背面写着一个地址。桌子固定在房间中部,门在人物身后。三个镜头分别负责交代动作、引出新信息、观察反应。这个练习用于设计拍法,不是模型实测。
全局说明只写共享信息。 同一人物、同一工作室、桌子与门的位置、同一封信。随后给每个镜头写清楚“要看见什么”“相机怎么走”“结束时停在哪里”。下面三个镜头可逐个查看。
让观众看清信封来自桌面。
- 人物动作
- 人物站在桌边,低头,伸手拿起信封。
- 相机安排
- 中景,机位固定在人物右前方,桌面保留在画面中。
- 检查什么
- 手从桌面拿起信封,信封的位置连续;门仍处在已设定的背景方位。
把注意力转到信封背面的信息。
- 人物动作
- 人物把信封翻到背面,手在身前停住。
- 相机安排
- 切到桌侧近景,缓慢靠近手与信封;到能够辨认地址的位置后停止。
- 检查什么
- 近景接上上一镜的持握与翻转动作;运镜期间不再叠加人物大幅转身。
给人物消化信息的时间。
- 人物动作
- 人物抬眼看向门口,暂时不说话。
- 相机安排
- 切回右前方的人物近景,保持固定机位,不继续推进。
- 检查什么
- 视线指向门的既定位置;停留时长足够看清反应。
这份说明可以交给支持逐镜头描述的模型;遇到有轨迹接口的工具,再把机位与运动路径输入进去。只有文字输入的工具,也能用它检查结果,但不能据此假定模型会精确执行米数、角度或秒数。需要严格几何控制时,还得使用相应的轨迹条件或预演流程。
生成后保留两个镜头的交界帧,再各取一张能看清门或桌子的中间帧,放在一起检查。若轨迹设想清楚而输出背景漂移,问题偏向执行;若连这几张预想画面也无法解释空间关系,就该先重写分镜。这样每次修改都有对象。
06总结:在生成之前,写好验收方式
多镜头创作需要同时回答两个问题:这场戏该怎样拍,模型有没有照着拍。ShotVerse 用显式轨迹把它们分开,又用统一坐标和镜头编号把不同镜头联系起来。这比只看最终画面是否“有电影感”,多了一层可以定位问题的依据。
对实际创作来说,可以先借用这种工作方法:把每个镜头的叙事用途、机位和运动终点写清楚,再定义交界处要保持哪些关系。固定机位也可以是明确的选择。下一次镜头不合意时,能说出“动作对了,但摄影机没有绕过去”,修改就有了方向。