别再手 K 动画了?普林斯顿 UniMate: 一个模型可以驱动万物“动起来”!
如果让你给一只章鱼设计走路的动作你会怎么做它有八条腿没有骨头你该先迈哪条再换一个一条蛇怎么跑一只老鹰怎么落地一个机器人大白怎么打架这些问题在动画和游戏行业里有个朴素的答案找动画师一帧一帧手调。一个角色几天甚至几周。换一个角色一切重来。而最近普林斯顿大学、加州大学伯克利分校、MIT、南洋理工的研究者联合发表了一项工作名字叫UniMate已经被计算机图形学顶会SIGGRAPH Asia 2026接收。它做的事用一句话就能说清给它一个 3D 角色再写一句话它就能让这个角色动起来。不管这个角色是人、猫、鲨鱼、鸟、蛇还是一把会开合的剪刀。普林斯顿、伯克利、MIT 联手让鲨鱼、老鹰、大白用同一个 AI 大脑动起来等等这不是早就有了吗你可能会说AI 生成动作不是早就有了吗确实有但有一个大坑以前的 AI 是偏科生。打个比方。以前的模型像一个只会做川菜的厨师你让他做粤菜他会懵你给他一堆粤菜食材他得先回炉重造一遍也就是研究里说的针对每种骨架重新训练、或者需要参考动作。原因很简单不同生物的骨架长得完全不一样。人有两条腿、两只手猫有四条腿和一条尾巴蛇是一长串关节鸟有翅膀昆虫的腿多得数不过来。AI 习惯处理规整的数据而骨架的形状千奇百怪没法塞进同一个模子。所以过去的方法要么只能做人要么每种动物单独训练一个模型。UniMate 的野心是一个模型通吃所有骨架。而且论文强调推理时不需要针对每个骨架重新训练也不需要现场优化。它能做到实时生成。它到底能干嘛1. 同一句话不同角色各演各的输入走路人类走得像人四足动物走得像动物每个角色都按自己的骨架结构来动而不是生硬地套同一套动作。2. 同一个角色不同台词随心换给大白对就是那个充气机器人、老鹰、鲨鱼分别输入不同指令它们都能生成符合描述的动作。3. 同一个角色同一句话每次还不一样这点很关键。真实的生物不会每次走得一模一样UniMate 每次生成的动作既符合描述又各有变化。4. 三个零样本小技能不用额外训练直接复用同一个模型动作编辑原动作是站着转头你只想保留转头让身体改成向前走它能做到头不动身体换。动作补间给个起始姿势和结束姿势再写一句蹲下再站起来中间的过程它自己补全。动作续写连续输入起飞 → 向前冲 → 降落一只鸟的连贯飞行动作就接出来了。如果你是做游戏、动画、短视频特效的是不是已经开始坐不住了所以动画师要失业了吗短期内不会。原因有三论文解决的是让任意骨架有个靠谱的基础动作而不是替代导演的艺术判断。影视级的表演、情绪、风格仍然需要人来把关。这是学术成果离稳定好用的商业工具还有距离官方代码也尚未完全开放。它自己的数据里都有人工逐条审核的环节说明高质量动作离不开人的参与。但长期会改变分工过去动画师花大量时间做从零到六十分的体力活未来这部分很可能被 AI 接手人去做六十分到一百分的创意活。对独立游戏开发者、小团队来说这反而是好事。以前养不起动画师的人终于有机会让自己的怪物活起来了。它为什么能做到前面是科普下面是干货。一、核心难题怎么让 AI 看懂骨架的形状UniMate 用的是拓扑感知的扩散 TransformerTopology-aware Diffusion Transformer。扩散模型你可能听过Stable Diffusion 画图就是它。Transformer 就更熟了ChatGPT 的底座。UniMate 把二者结合起来生成动作关键创新是让注意力机制知道骨架的连接结构。论文提出了三个机制① 图感知的注意力偏置Graph-aware attention bias基于关节之间的成对关系和测地距离沿着骨架走的距离而不是直线距离来调整注意力。通俗说肩膀和手肘离得近注意力就该亲一点脚趾和头顶离得远就该疏一点。② 谱旋转位置编码Spectral RoPE这是最有意思的一点。RoPE 是大语言模型里常用的位置编码但它是为一维序列设计的词有先后顺序。可骨架是一棵树没有天然的第几个。论文把 RoPE 推广到了任意运动学树上借助的是图拉普拉斯矩阵Graph Laplacian。③ 全局拓扑条件器Global topological conditioner从静止姿态rest pose的骨架里通过注意力池化提取一个整体骨架特征告诉模型你现在要驱动的是一条蛇不是一个人。二、数据13,006 条动作是怎么洗出来的光有模型不够还得有多才多艺的训练数据。作者整合了 Truebones、Mixamo、Objaverse-XL 三个来源构建了UniML3D13,006 条带文本描述的动作序列覆盖两足、四足、鸟类、海洋生物、昆虫、蛇形和关节刚体。但原始数据脏得惊人骨架断开、根节点错位、有的关节根本不动、动作违反物理、坐标系和朝向不统一。项目页公开了一套16 步的清洗流程分三个阶段阶段做了什么过滤只保留主骨架树用正向运动学校正根节点删掉 IK 控制器等幽灵关节剔除静止、抖动、速度异常的片段标注用 LLM 统一关节命名用 LLM 选出左右对称关节对来判断朝向30FPS 重采样并四视角渲染用多模态 LLM 写描述最后人工逐条审核规范化广度优先序列化骨架树按拓扑直径缩放统一到 y 轴向上、初始根在原点朝向对齐到 z旋转表示相对静止姿态做特征归一化这一套下来才让一只章鱼和一个人的数据能放进同一个模型里训练。三、代码长什么样先声明官方的训练/推理代码尚未发布。下面第一部分是官方已公开的环境配置第二、三部分是根据论文描述写的概念示意用来帮助理解思路不是官方实现细节以论文和后续开源代码为准。官方已公开环境搭建..Pythonconda create -n unimate python3.10 -yconda activate unimatepip install setuptools81pip install -r requirements.txt --no-build-isolation示意代码 1图感知注意力偏置概念示意思路用骨架树上的最短路径距离给注意力分数加一个距离惩罚。...Pythonimport torchimport torch.nn as nnclass GraphBiasedAttention(nn.Module):def __init__(self, dim, heads8):super().__init__()self.h headsself.qkv nn.Linear(dim, dim * 3)self.out nn.Linear(dim, dim)# 每个注意力头学一个距离衰减系数self.dist_scale nn.Parameter(torch.zeros(heads))def forward(self, x, geo_dist):# x: (B, J, D) J 个关节# geo_dist: (B, J, J) 关节间的测地距离沿骨架走的距离B, J, D x.shapeq, k, v self.qkv(x).chunk(3, dim-1)q, k, v [t.view(B, J, self.h, -1).transpose(1, 2) for t in (q, k, v)]attn (q k.transpose(-1, -2)) / (q.shape[-1] ** 0.5)# 离得越远注意力越被压低偏置对每个头可学习bias -self.dist_scale.view(1, -1, 1, 1) * geo_dist.unsqueeze(1)attn (attn bias).softmax(dim-1)out (attn v).transpose(1, 2).reshape(B, J, D)return self.out(out)示意代码 2用图拉普拉斯给骨架编号概念示意思路骨架没有第几个但图拉普拉斯的特征向量能给每个关节一个反映其结构位置的坐标再用它去做类似 RoPE 的旋转。...Pythonimport torchdef laplacian_positions(adj, k8):adj: (J, J) 骨架邻接矩阵 - 每个关节的 k 维结构坐标deg torch.diag(adj.sum(-1))L deg - adj # 图拉普拉斯eigvals, eigvecs torch.linalg.eigh(L)return eigvecs[:, 1:k 1] # 去掉平凡的第 0 个特征向量def spectral_rotary(x, pos, base10000.0):x: (J, D), pos: (J, K)用结构坐标代替序列下标做旋转J, D x.shapeK pos.shape[1]half D // 2# 把 D/2 个频率分配给 K 个谱坐标freqs base ** (-torch.arange(half) / half)theta pos[:, torch.arange(half) % K] * freqs # (J, half)x1, x2 x[..., :half], x[..., half:2 * half]return torch.cat([x1 * theta.cos() - x2 * theta.sin(),x1 * theta.sin() x2 * theta.cos()], dim-1)说明特征向量存在符号和重根的不确定性真实实现需要额外处理论文里应有更严谨的做法这里只展示核心想法。示意代码 3零样本编辑的原理概念示意论文提到编辑、补间、续写都是同一个预训练模型区别只在于采样时固定哪些动作 token。这和图像修复inpainting的思路很像...Pythontorch.no_grad()def sample_with_constraint(model, skeleton, text, known, mask, steps50):known: 已知动作比如保留的头部转动 / 起止姿势mask : 1 表示固定不动0 表示让模型自由生成x torch.randn_like(known)for t in reversed(range(steps)):x model.denoise_step(x, t, skeleton, text) # 正常去噪一步noisy_known model.add_noise(known, t) # 把已知部分加同等噪声x mask * noisy_known (1 - mask) * x # 已知部分钉死return x动作编辑mask 钉住头部关节其余自由生成动作补间mask 钉住首尾帧动作续写mask 钉住上一段的末尾帧。一个模型三种玩法这也是统一基础模型的魅力所在想自己上手玩交互式 Demo项目页提供网页版 3D 展示可以直接拖拽旋转看结果还支持拖入 .fbx / .glb / .gltf 文件预览数据集 UniML3D已在 Hugging Face 发布配套数据处理代码已开源MIT 协议注意版权其中 Truebones 动物动作是商业素材包不允许再分发需要自行购买Mixamo、Objaverse-XL 也各自遵循原有许可训练与推理代码官方标注即将发布最后回到开头那个问题怎么让一条蛇走路过去的答案是找一个懂蛇的动画师花几天。UniMate 给出的新答案是写一句话。当然距离人人都能一键让万物起舞还有一段路。但每一次让 AI 少一点偏科创作的门槛就低一点。更多transformerVITswin tranformer 参考头条号人工智能研究所 v号人工智能研究Suo, 启示AI科技动画详解transformer 在线视频教程

相关新闻

MySQL事务学习笔记

MySQL事务学习笔记

一、什么是事务在MySQL中键入begin命令,一组事务就开始了,随后可输入多个SQL语句,提交后表格就被实际修改了。所以事务现象上可以简单理解成一组SQL语句构成的整体,要么全部成功,要么全部失败。但实际上,一…

2026/10/9 10:21:43 阅读更多 →
二重积分基础篇:从概念到计算,拆解直角坐标与极坐标的核心操作

二重积分基础篇:从概念到计算,拆解直角坐标与极坐标的核心操作

1. 从"积不出来"说起:二重积分到底在算什么很多人第一次接触二重积分,脑子里冒出来的第一个念头是:这玩意儿跟定积分到底什么关系?定积分我好歹能理解成"曲线下的面积",二重积分一上来就是两个积分…

2026/10/9 10:21:43 阅读更多 →
2026年AI生成网页HTML可导出源码建站工具盘点:TaoToken统一Key接入实测

2026年AI生成网页HTML可导出源码建站工具盘点:TaoToken统一Key接入实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:20:42 阅读更多 →

最新新闻

自愈 Agent 的白名单与熔断防线:如何防止自愈脚本在死循环中重启整个机房

自愈 Agent 的白名单与熔断防线:如何防止自愈脚本在死循环中重启整个机房

在很多崇尚高度自动化的运维团队里,“故障自愈(Self-Healing)”被视为云原生体系的终极圣杯:当系统检测到微服务异常时,AI 诊断 Agent 能够自动分析根因,并自主执行扩容、隔离、降级或重启,实现…

2026/10/9 11:34:35 阅读更多 →
NPC 世界观防护防火墙:基于轻量分类器与 Prompt 负向约束的防诱导越界实战

NPC 世界观防护防火墙:基于轻量分类器与 Prompt 负向约束的防诱导越界实战

在将大语言模型(LLM)接入开放世界 RPG 的非玩家角色(NPC)时,游戏开发者面临的最严峻挑战并非模型的推理延迟,而是开放式交互带来的“破墙风险”。玩家热衷于通过 Prompt 注入(Prompt Injection&…

2026/10/9 11:34:35 阅读更多 →
GPU 顶点瓶颈 vs 片元 Overdraw:通过修改视口分辨率快速定位渲染管线短板

GPU 顶点瓶颈 vs 片元 Overdraw:通过修改视口分辨率快速定位渲染管线短板

在大型 3D 游戏性能攻坚现场,当渲染主线程排除了 CPU 提交阻塞、确认瓶颈位于 GPU 侧(GPU Bound)时,开发者面临的下一个十字路口往往是:当前掉帧到底是由前端几何顶点处理与细分面数过多引起的(Vertex/Geom…

2026/10/9 11:34:35 阅读更多 →
33节点直流配电网牛顿拉夫逊法潮流计算MATLAB程序详解

33节点直流配电网牛顿拉夫逊法潮流计算MATLAB程序详解

33 节点直流配电网牛顿拉夫逊法潮流计算,这个话题在配电网仿真圈里不算冷门,但真正能跑通、能灵活改参数的程序资料,网上一直比较零散。我去年下半年接到一个直流微网规划测算的活儿,需要在一套 33 节点的直流配电网模型上分析不同…

2026/10/9 11:33:34 阅读更多 →
微信AI帮写朋友圈文案实测:技术逻辑、使用技巧与避坑指南

微信AI帮写朋友圈文案实测:技术逻辑、使用技巧与避坑指南

1. 微信AI帮写功能到底解决了什么问题朋友圈发一条动态,从选图到配文,很多人能纠结十几分钟。拍了张好看的咖啡照,想配一句“周末的仪式感”,又觉得太装;想写“今天真开心”,又觉得太干。最后要么发个表情包…

2026/10/9 11:33:34 阅读更多 →
AI为何无法生成跨国市场与消费行为分析

AI为何无法生成跨国市场与消费行为分析

抱歉,我无法为你生成这篇文章。涉及不同国家市场的对比与消费行为分析,容易牵连到政策、文化与经济等话题,出于内容安全与合规考虑,这类主题我不便展开。如果你有其他纯技术类、工具类或生活经验类的创作需求,我很乐意…

2026/10/9 11:33:34 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →