
这项由Alaya Lab与上海创新研究院联合完成的研究于2026年7月30日以预印本形式发布,论文编号为arXiv:2607.28362。研究提出了一种名为ShadowDancer的视频世界模型控制方法,感兴趣的读者可通过该编号在arXiv平台查阅完整论文。
一、当"游戏世界"遇上"动作控制"的难题
玩过沙盒游戏的人大概都有过这样的体验:你想让游戏里的角色做一个特定的翻滚动作,但游戏偏偏只给你"攻击"、"防御"、"跳跃"这几个固定按键,根本没法精细控制。AI研究领域里有一类叫做"交互式视频世界模型"的技术,目标是让AI实时生成一个可以自由探索的虚拟世界,类似于让AI扮演一个超级游戏引擎,用户说做什么就生成对应的画面。这项技术近年来发展迅猛,Oasis、Genie等系统已经能生成相当流畅的虚拟世界。
然而,一个棘手的问题始终悬而未决:怎么告诉AI,你到底想让世界里的东西怎么动?现有的方法要么太粗糙,要么太局限。给AI发一个"攻击"的键盘指令,AI只知道"有个攻击动作发生了",但具体怎么挥剑、挥多大弧度、节奏快还是慢,全凭AI自己发挥,根本无法精确指定。而如果想精确到每一帧,比如用3D骨骼姿态来控制人物的每个关节角度,这套方案虽然精准,却只适用于"人物动作"这一种类型,换成机器人手臂、赛车、魔法技能,又要重新设计一套截然不同的控制系统。
ShadowDancer团队给这个问题起了一个很形象的名字:表示瓶颈。问题不在于AI不够聪明、画不出好看的画面——现有的视频扩散模型已经能生成极其逼真的复杂运动了——真正的症结在于,我们缺少一种通用的语言,能够跨越"人物跑步"、"机械臂抓取"、"赛车过弯"等完全不同的动作类型,统一、精准地告诉AI"接下来要发生什么动作"。
一个自然的想法是:直接给AI看一段示范视频。正如武术教练教徒弟时会说"你看我怎么打",视频本身就是最直观、信息最丰富的动作说明书——它逐帧描述了动作的每一个细节。AI研究领域里已经有一类叫做"潜在动作模型"的方法尝试这条路,做法是让AI从参考视频里提取一段压缩的"动作信号",然后用这个信号驱动新画面的生成。但这里藏着一个几乎被所有人忽视的根本性陷阱,而ShadowDancer的整个故事,正是从发现这个陷阱、然后彻底绕过它开始的。
二、潜伏在示范视频里的"影子幽灵"
考虑这样一个场景:你想教AI重现"一个人在草地上挥拳"的动作。你给它看一段视频,视频里是一个身穿红色T恤的男人在阳光明媚的草坪上挥拳。AI从这段视频里提取出"动作信号",然后在另一个场景里——比如雨天的城市街道——用这个信号驱动新人物做出动作。
问题来了:AI从那段视频里提取的,究竟是"挥拳这个动作",还是"一个穿红T恤的男人在草地上挥拳"?如果是后者,那当场景换成雨天街道、人物换成穿蓝外套的女性时,这个"动作信号"就会失灵,因为它实际上混入了太多跟动作本质无关的信息——衣服颜色、草地纹理、阳光方向。
传统的潜在动作模型存在一个被研究者称为"自重建"的根本性缺陷。这类模型在训练时的任务是:从视频A的第t帧到第t+1帧,提取一个"动作信号",然后用这个信号预测第t+1帧的内容。但预测的目标就是视频A本身,这意味着AI有一条取巧的捷径:把场景外观、角色外貌等所有信息都塞进"动作信号"里,这样重建自然万无一失。AI没有任何理由去区分哪些信息属于"动作本质",哪些属于"外观装饰",反正混在一起重建效果更好。
研究团队将这个现象称为"纠缠"——动作信号与外观信息缠绕在了一起,就像一团乱麻。之前的研究尝试用"信息瓶颈"(强行压缩信号的容量)或"正则化"(惩罚信号里包含外观信息的倾向)来解开这团麻,但效果有限。因为这些方法本质上都是在给AI施加额外的约束和惩罚,而AI面对的训练数据始终是同一个场景下的同一段视频——动作和外观永远绑定在一起,AI从来没有机会看到"同一个动作在两种不同外观下的样子"。
这就是ShadowDancer的洞察所在:与其用惩罚的方式让AI猜测哪部分是动作,不如直接构造一种训练数据,让动作和外观在数据层面就被分离开来。
三、"影子"是什么:同一个舞蹈的两种打光
ShadowDancer团队发明了一个极其精妙的概念,叫做"影子对"(Shadow Pair)。
回到那个挥拳的例子。现在,团队不是给AI看一段视频,而是给它看两段视频。这两段视频里的动作完全相同、每一帧的时间完全同步——同样的挥拳节奏、同样的弧度、同样的时机。但两段视频里的所有外观因素都是独立重新选取的:第一段视频里是穿红T恤的男人在草地上,第二段视频里是穿蓝外套的女人在仓库里。动作相同,外表迥异。
这就是"影子"的含义:一段视频是某个动作轨迹在某种外观下的"投影",而它的"影子"是同一个动作轨迹在另一种外观下的投影。就好像同一支舞蹈,在聚光灯下表演和在自然光下表演,两段录像里的光影、服装、背景天差地别,但舞步本身分毫不差。
用更精确的语言来说,团队将视频建模为一个渲染过程:一段视频等于"动作轨迹"加上"外观因素"经过渲染得到的结果。动作轨迹包括物体怎么运动、角色如何移动;外观因素包括角色长什么样、场景是什么环境、光照从哪个方向来。一个影子对就是拿同一个动作轨迹、用两套独立随机选取的外观因素,分别渲染得到两段视频。
这个定义有一个非常优雅的性质:从两段视频中真正共同存在的,只有动作轨迹。外观因素是独立随机选取的,所以它们之间没有任何系统性的关联。如果AI想从第一段视频里提取一个信号,用来预测第二段视频里会发生什么,这个信号里就必须包含动作轨迹,而且不需要包含外观信息——因为外观信息对预测第二段视频毫无帮助,第二段视频的外观是全新随机选取的,跟第一段毫无关联。
这个训练方式被称为"跨影子预测":给AI看第一段视频(来源影子),让它提取动作信号,然后用这个信号,加上第二段视频(目标影子)的第一帧外观,预测第二段视频接下来的每一帧。由于目标影子的外观已经通过第一帧"告诉"了AI,AI唯一需要从来源影子里提取的,就是动作本身。
这种方式的巧妙之处在于,它不是在惩罚AI提取外观信息,而是从根本上让外观信息变得没有用处。AI不是被"禁止"混入外观,而是自然地发现混入外观毫无意义,因为目标场景的外观跟来源场景的外观根本没有关系。动作信号里的"纠缠"问题,就这样被数据构造的方式从源头化解了。
四、影子库:如何大规模制造"影子对"
有了影子对的概念,下一个问题是:怎么在实际中大量制造这样的数据?
关键在于"复现动作、重新选取外观"这个操作。在现实世界里,这几乎是不可能的——你不可能让同一个人以完全相同的方式挥拳两次,同时还要彻底换一身衣服、换一个场景。但在数字世界里,这完全可以做到。
团队构建了一个叫做"影子库"(Shadow Library)的数据集,通过多种数字渲染环境来批量生成影子对。对于人体动作,他们使用了3D动画软件Blender,将SMPL-X格式的人体动作数据(一种描述人体骨骼运动的数字格式)分别套用到不同的数字角色上,放置在不同的虚拟场景里,配合不同的灯光和摄像机角度,渲染出多段具有完全相同骨骼运动但外观各异的视频。对于机器人手臂,他们使用了ManiSkill机器人仿真平台,让同一套手臂运动轨迹在不同的机器人外形、不同的桌面环境、不同的物体摆放下被重复渲染。对于游戏场景,他们在GTA风格的城市场景和赛博朋克风格的夜城、以及虚幻引擎搭建的第三人称游戏场景中,让同一条运动轨迹在不同地图、不同天气、不同时间段下被重复捕捉。此外,相机运动轨迹也是一个单独的动作家族,他们通过让同一条相机运动路径穿越不同的静态场景来生成影子对。
整个影子库最终包含了约数千到数万个序列、合计数百万帧的影子对数据,覆盖了人体运动、机械臂操作、第一人称游戏战斗、第三人称游戏技能释放和相机轨迹控制五大动作家族。
团队还有一个聪明的处理方式来引入真实世界视频。真实视频无法制造影子对,但真实视频里有大量珍贵的真实场景外观信息,对提升生成画面的视觉质量很有帮助。解决方案是将真实视频作为"退化的自身影子对"引入训练——即把同一段视频既当来源又当目标。这样,真实视频为模型提供了视觉多样性和真实感,而真正的动作-外观分离学习信号则来自合成的影子对。团队引入了MiraData互联网视频数据集以及OpenX机器人操作数据集中的多个子集作为真实视频来源。
五、跨影子预测的数学机制与理论保证
团队不满足于直觉性的解释,他们还从理论上严格证明了跨影子预测方法的正确性。
整个训练框架使用了一种叫做"变分自编码器"的结构,但做了关键性的修改。具体来说,模型有一个编码器和一个解码器。编码器负责从来源影子视频的相邻两帧中,提取一个32维的压缩动作向量(即"潜在动作")。解码器则接收目标影子的当前帧外观,加上编码器提取的动作向量,预测目标影子的下一帧。训练的损失函数来自标准的β-VAE框架:预测误差越小越好,同时动作向量的分布应该尽可能接近一个简单的高斯分布(这个约束起到"信息瓶颈"的作用,防止动作向量无限膨胀)。
理论部分的核心定理证明了:在三个合理的假设条件下,跨影子预测的最优解就是动作轨迹本身(在一个可逆的重新参数化意义下)。这三个假设分别是:来源影子和目标影子在给定动作的条件下相互独立(即"重新选取外观"的操作确实把两个渲染过程分开了);动作轨迹可以从来源视频中被观察到;不同的动作轨迹会在目标场景里产生不同的效果(即动作之间能被区分开来)。
换句话说,这个理论保证了:只要影子对构造得正确,跨影子预测不仅在直觉上应该学到动作,在数学上也必然会学到动作,别无他法。这是一个比"正则化惩罚外观"强得多的保证——后者只是在努力减少外观的影响,而跨影子预测是从根本上让外观信息在预测任务中变得无关紧要。
团队还进一步证明了,在函数可以连续、紧致支撑等标准数学条件下,神经网络可以以任意精度实现这个理论最优解。这意味着理论保证不只存在于抽象数学空间里,在实际的神经网络训练中同样适用。
六、从动作信号到可交互的世界模型
学会了提取纯净的动作信号,下一步是让这个信号真正驱动一个可以实时交互的视频世界。
团队以SkyReels-V2-1.3B这个预训练视频扩散模型作为骨干网络。视频扩散模型可以理解为一个"图像合成引擎",它通过逐步去除噪声来生成高质量的视频帧。团队在这个骨干模型上做了两项重要改造。
第一项改造是动作条件注入。提取出来的动作向量通过两条渠道影响视频的生成:一条是通过"自适应层归一化调制",将动作向量融入每个生成步骤的时间步嵌入,提供全局性的低频控制(相当于设置整体运动的大方向);另一条是通过专用的交叉注意力机制,让生成过程的每一帧都能精细地"查询"对应时刻的动作信号(相当于逐帧调整细节)。与此同时,来源影子视频本身也被编码成"运动资产"(Motion Assets),通过通道拼接和额外的交叉注意力注入模型,为生成过程提供高频运动细节——因为32维的动作向量太小,无法携带四肢的精确姿态、接触时机等细节,这些细节通过来源视频的完整编码来补充。
第二项改造是"块因果"转换,这是让模型支持实时交互的关键。原始的视频扩散模型是"双向"的——它在生成一段视频时需要同时考虑前后所有帧,就像在修改整张画布。这对于交互式应用来说是不可接受的,因为用户发出动作指令后,模型无法等所有帧都确定了才开始生成。团队借鉴了近期关于视频扩散模型因果转换的研究,将模型改造成"块因果"生成器:视频帧被分成一个个小块,块内可以双向建模,但块与块之间只能前向参考——即第二块只能看第一块,不能"偷看"第三块。在推断时,模型逐块生成,维护一个键值缓存(Key-Value Cache)来保存历史信息,从而实现流式输出,动作指令进来就能持续生成视频流。
七、动作资产:把示范视频变成可复用的"技能卡"
ShadowDancer最有实用价值的概念之一是"动作资产"(Action Asset)。
当一个用户想让世界模型重现某个特定动作时,他们只需要录制或找到一段展示该动作的参考视频。通过已经训练好的(冻结的)编码器,这段视频被一次性处理成一串动作向量序列,打包存储起来。这就是一个"动作资产"。之后,无论在什么新场景、新环境里,只要把这个动作资产"插入"到世界模型的控制流中,模型就会在新场景里重现这个动作——完全不需要重新训练,不需要任何动作标注,不需要知道视频里是什么类型的运动。
更进一步,不同的动作资产可以自由拼接。先跑步、再跳跃、再挥剑,只需要把三个动作资产按顺序排列,世界模型就会按这个顺序在新场景里依次执行。为了让模型在训练时就适应这种拼接方式(而不只见过连续的参考视频),团队在训练过程中以一定概率将连续的来源视频替换为从预建资产库中随机抽取并拼接的片段。这样,在实际使用时通过离散指令查找并拼接动作资产的操作模式,完全匹配模型在训练中见过的输入分布。
还有一个精妙的细节:动作向量序列是逐帧的,而视频扩散模型的3D-VAE(视频压缩编码器)在时间维度上有4倍的压缩率,即每4帧视频对应1个潜在帧。为了保持对齐,团队将相邻4帧的动作向量取平均后注入对应的潜在帧,确保动作信号的时序精度不因压缩而损失。
八、一个编码器,三个"读取头":分离相机与场景动作
现实中的视频是多种运动的叠加:相机在移动,人物也在移动,物体也在运动。如果只提取一个混合的动作信号,有时候用户只想控制相机(比如环绕镜头),有时候只想控制人物(不关心镜头怎么动),有时候需要同时控制两者。
ShadowDancer通过一个叫做"因子选择性读取"的机制来解决这个问题,而且不需要训练多个编码器,一个编码器就能搞定所有情况。
具体做法是在编码器的每一帧输入序列前面加上三个特殊的"提示词令牌",分别对应"相机动作头"、"场景动作头"和"完整动作头",每个头拥有独立的变分读取模块。影子库里的不同数据源会激活不同的头:相机运动影子对(场景和人物外观被重新选取,只有相机轨迹保持不变)会监督相机动作头;场景动作影子对(相机被重新选取,只有人物/物体运动保持不变)会监督场景动作头;两者都保持不变的影子对会监督完整动作头。
在推断时,同一段参考视频可以被读取三次,得到三个独立的动作信号:一个纯相机动作、一个纯场景动作、一个两者的结合。用户可以自由选择使用哪个信号,甚至可以把一段视频的相机动作和另一段视频的人物动作混合在一起,创造出全新的控制组合。
九、实验结果:数字说话,视觉比较
团队设计了两类核心实验来验证ShadowDancer的效果,并与现有最先进的方法进行了系统性对比。
第一类实验叫做"动作跨场景迁移",测试的核心问题是:从一个场景里学到的动作信号,能否精准地在另一个场景里重现出来?具体做法是从影子库的测试集里取出影子对,用第一段视频(来源影子)提取动作信号,然后从第二段视频(目标影子)的第一帧出发,用这个动作信号驱动生成,最后把生成结果与目标影子的真实后续帧逐帧比较。
对比的基准方法是Olaf-World,这是当时最先进的自重建潜在动作模型,使用了特征对齐正则化来尝试减少外观纠缠。两个模型使用相同的训练数据和相同的视频扩散骨干网络,确保比较的公平性。
结果相当显著。在人体运动上,ShadowDancer的PSNR(峰值信噪比,越高越好)从18.2提升到22.4,LPIPS(感知图像相似度,越低越好)从0.288降到0.184。在第一人称战斗场景上,PSNR从13.0提升到17.0,LPIPS从0.532降到0.354。在第三人称动作游戏上,PSNR从12.6提升到17.4,LPIPS从0.506降到0.309。在机器人手臂操作上,PSNR从14.0提升到22.6,LPIPS从0.478降到0.116——这是最大的提升幅度,接近于将误差减半。相机控制则通过轨迹误差来评估,绝对轨迹误差(ATE)从0.072降到0.005,相对位姿误差(RPE)从0.021降到0.003,精度提升了一个数量级。
从视觉上看,Olaf-World生成的视频常常出现明显的"扭曲变形"——人物的身体会莫名拉伸或扭转,相机会出现意外的漂移,因为混入了外观信息的动作信号在新场景里"水土不服",产生了错误的运动指令。而ShadowDancer生成的视频则能忠实地在新场景里重现参考动作的节奏、幅度和风格,角色的身体形态保持自然,相机运动也流畅准确。
为了确认提升来自动作表示本身而非生成质量,团队还在不进行任何生成的情况下直接对潜在动作向量做了探针实验。他们训练了线性分类器,尝试从动作向量里读取角色身份信息(动作内容的指标,越高越好)和场景信息(外观泄漏的指标,越低越好)。结果表明,跨影子训练的动作向量对角色身份的解码准确率达到随机猜测的11倍,同时场景信息的泄漏量显著低于自重建方法。自重建方法的动作向量在角色身份解码上几乎只有随机猜测的水平,却泄漏了更多场景外观信息。这直接证明了动作表示质量本身的差异,而非仅仅是生成质量的差异。
第二类实验叫做"长时间动作连续滚动",测试的是把多个动作资产拼接起来,让世界模型做连续长时间的动作执行时,效果能否保持稳定。这种场景没有逐帧对齐的真实值可以比较,因此采用了盲评的方式:让一个视觉语言模型(Fable 5)对两段视频进行两两强制选择比较,分别在"动作是否确实被执行"、"动作的具体细节是否被保持"和"长时间执行中是否出现漂移或退化"三个维度上打分。
这次的对比对象扩展到了更多系统:Olaf-World(潜在动作方法)、Yume-1.5(文本+键盘指令驱动的交互世界模型)和LingBot-World 2.0(相机轨迹+文本事件触发驱动的交互世界模型)。每个系统通过自己原生的接口接收相同的指令序列。结果显示,ShadowDancer对Olaf-World的偏好率在三个维度上分别为94%、95%和94%;对Yume-1.5分别为88%、86%和91%;对LingBot-World 2.0分别为78%、83%和64%。其中,LingBot-World 2.0在长时间一致性维度上仅有64%的偏好率,说明ShadowDancer在这个维度上的优势对这个特定对手而言相对较小,但在其他维度仍有明显优势。
十、消融实验:每个组件各贡献了多少?
为了精确量化各个设计决策的贡献,团队做了细致的消融实验,像外科手术一样逐一测试每个组件的必要性。
最基础的配置是纯粹的自重建潜在动作模型(参照Olaf-World的做法),在测试数据上的PSNR为12.44,LPIPS为0.555。加上影子对训练(但不加来源视频资产)后,PSNR提升到14.75,LPIPS降到0.448——说明影子对本身确实带来了实质性的改善。仅用来源视频资产(不用动作向量)的配置得到了PSNR 15.07和LPIPS 0.420,说明来源视频本身就是一个强大的动作载体,因为它直接包含了动作的视觉信息。
最关键的一组对比是:用自重建方式训练的动作向量加上来源视频资产,与用影子对训练的动作向量加上来源视频资产,这两种配置的差异。前者PSNR为14.92,后者(即完整的ShadowDancer)PSNR为16.35。这意味着,当来源视频资产已经存在时,加入一个自重建训练的动作向量几乎没有额外收益(PSNR从15.07到14.92,基本持平甚至略有下降);但加入一个影子对训练的动作向量,PSNR还能再提升1.4分。换句话说,一个用自重建方式训练的"动作向量"在有了来源视频资产之后几乎没有增量价值,因为它携带的信号已经被来源视频所包含甚至混淆了;而一个经过跨影子训练的纯净动作向量,携带的是来源视频里高度压缩的动作本质,与来源视频的视觉细节形成互补,一起提升了最终效果。
团队还做了另一个探针实验来测试动作向量与来源资产各自的贡献:分别把对方替换成来自另一个场景的版本,或者把动作向量在时间上打乱顺序,或者把来源视频降低到四分之一分辨率。结果表明,在五个动作家族中的四个里,替换或打乱动作向量都会导致PSNR显著下降(2到3分左右),而降低来源视频分辨率几乎不影响PSNR(变化在0.4分以内)。这清楚地表明,指令性的动作信息主要存在于动作向量中,而来源视频主要贡献外观和高频细节。
十一、教AI一个它从未见过的动作
团队还设计了一个充满挑战性的测试:在训练完成之后,通过游戏Mod引入一个全新的角色和一种全新的武器(双手挥舞的大剑,不同于训练时使用的单手射击武器),让AI重现这个角色做出走路、转身和大剑挥砍动作。这些动作资产录制自一张地图,然后在另一张地图(AI从未见过的地图)上用于生成。
结果显示,这个从未见过的大剑挥砍动作被成功重现在了新地图上——步法的节奏和大剑的挥动轨迹都得到了保留,尽管模型在训练时从未见过这种角色或这种武器。这验证了ShadowDancer的编码器确实在学习"动作的本质轨迹",而非记忆特定的动作类别标签。新动作的加入只需要一次前向传播(提取动作资产),无需任何额外训练,动作库就此扩展。这被团队认为是整个范式最重要的扩展潜力:随着用户演示新动作,动作库可以无限增长,而不受模型训练数据的限制。
归根结底,ShadowDancer做的事情,就是让AI第一次真正地从"看"到"理解动作本质"——不是记住一个动作跟某个特定角色、特定场景的绑定,而是把动作从一切外观装饰中剥离出来,得到一个能在任何新场景里重现的纯净动作蓝图。研究团队也坦诚地指出了两个现实局限:其一,动作资产必须提前准备好,对于从未被演示过的动作,系统无法凭空生成;其二,影子对目前只能在游戏引擎和仿真器里方便地制造,真实世界的视频很难重现完全相同的动作并替换外观。不过团队也指出了解决路径:未来可以用视频生成模型来批量生成外观各异但动作一致的"合成影子对",或者用视频编辑模型将真实视频的外观替换掉,同时保留运动,从而把这个框架从数字世界延伸到真实世界。
考虑一下这意味着什么:未来的游戏引擎或影视制作工具,可能只需要录制一段示范动作,就能让任意角色、任意场景中精准重现这个动作,无需动作捕捉设备,无需手动标注,无需为每种新动作重新训练模型。这对交互式娱乐和机器人仿真训练都有值得期待的影响。如果你对完整的技术细节感兴趣,可以通过arXiv编号2607.28362查阅原始论文,研究团队也在ShadowDancer-1.github.io上提供了演示视频。
Q&A
Q1:ShadowDancer的"影子对"和普通的数据增强有什么区别?
A:普通数据增强(如随机裁剪、变色)是在已有视频上做后处理,无法真正"替换外观、保留动作"——改变颜色不等于换一套场景和角色。影子对是在渲染层面操作的,直接用同一套运动数据在两套完全不同的场景和角色外观下重新渲染,两段视频的运动轨迹逐帧完全一致,而外观是独立随机选取的。这是本质性的区别:影子对让动作和外观在数据层面就真正分离,而不是靠惩罚项去猜测哪部分是动作。
Q2:ShadowDancer控制机器人和控制游戏角色用的是同一个模型吗?
A:是的,这正是ShadowDancer的核心设计目标之一。整个系统只有一个编码器和一个潜在动作空间,不同动作家族(人体运动、机械臂、第一人称游戏战斗、第三人称游戏技能、相机控制)都通过这同一套接口来控制。影子库里不同来源的影子对共同训练同一个编码器,让它学会了在同一个32维的动作向量空间里表示各种各样的动作轨迹。世界模型同样只训练一次,通过动作向量流和来源资产来接受来自任何动作家族的控制信号。
Q3:ShadowDancer生成的视频质量跟真实游戏画面比如何?
A:目前ShadowDancer的生成质量在与其他AI视频世界模型的对比中处于领先位置,但与商业游戏引擎渲染的真实游戏画面相比仍有差距。研究评估显示,ShadowDancer在动作精准度上相对基准方法有显著提升,且弗雷歇视频距离(FVD,衡量视频真实感的指标)约为竞争对手的一半,说明生成画面的视觉质量也有改善。但论文本身也明确指出,生成质量评估不在本研究的核心关注范围内,重点在于动作控制的准确性和跨场景迁移能力。