郭一璞 发自 云凹非寺量子位 报道 | 公众号 QbitAI

一只3D的狗头卡通角色:

ai元素怎么变成3d模型(只要做出角色3D模型)(1)

给它画上骨架:

ai元素怎么变成3d模型(只要做出角色3D模型)(2)

诶?就可以动起来了:

ai元素怎么变成3d模型(只要做出角色3D模型)(3)

同样的方法,也可以让3D小男孩动起来:

ai元素怎么变成3d模型(只要做出角色3D模型)(4)

让3D高挑大姐姐动起来:

ai元素怎么变成3d模型(只要做出角色3D模型)(5)

让3D猫猫活蹦乱跳:

ai元素怎么变成3d模型(只要做出角色3D模型)(6)

总之,一切原本应该只是静态的3D角色模型,不管是人是动物,还是自然界不存在的卡通创意角色,都能见皮知骨,由静到动:

ai元素怎么变成3d模型(只要做出角色3D模型)(7)

ai元素怎么变成3d模型(只要做出角色3D模型)(8)

ai元素怎么变成3d模型(只要做出角色3D模型)(9)

连影子都配合的非常好!

只知道脱骨鸡、脱骨鸭掌,没想到,还有人反着来。

这一切,都是一个叫做RigNet的AI自动完成的。只要设计好角色的3D动态外形,它就可以自动预测角色骨架,预估骨架外皮肤的重量,生成角色运动的图像。

这可比人工制作动画方便多了,要是能用在3D动画或者3D游戏制作上,以后就不用担心拖更或跳票了呢。

这项研究也登上了SIGGRAPH 2020,作者来自马萨诸塞大学阿默斯特分校和多伦多大学。

ai元素怎么变成3d模型(只要做出角色3D模型)(10)

多网络合作实现

AI让3D角色动起来,需要经历两个步骤:先是确定骨骼的位置,再预测骨架之外皮肤的重量。

骨骼是有关节、会转动的,因此AI预测的时候也要先找到那些关节。

先用一个GMEdgeNet图神经网络,预测顶点向相邻关节的位移。

ai元素怎么变成3d模型(只要做出角色3D模型)(11)

这样,骨头大概长在什么地方就出来了。

同时,还准备了另一个GMEdgeNet,参数和前面的那个不太一样,用它来预测网格上的注意力函数,图上越红的位置,注意力就越强。

ai元素怎么变成3d模型(只要做出角色3D模型)(12)

划重点,GMEdgeNet长这样,后面还要用:

ai元素怎么变成3d模型(只要做出角色3D模型)(13)

ai元素怎么变成3d模型(只要做出角色3D模型)(14)

做了这样的准备,就可以用聚类模型,找到关节的位置。

ai元素怎么变成3d模型(只要做出角色3D模型)(15)

关节的分布和生物学意义上的脊椎动物并不完全一致,不过鉴于只是追求外在的运动效果,并不是做骷髅装饰品,因此有大致的位置来表示身体弯曲的节点就OK了。

现在找到了关节,我们再把关节连起来,给它装上骨头。

ai元素怎么变成3d模型(只要做出角色3D模型)(16)

装骨头用的是BoneNet模型和最小生成树算法,BoneNet负责预测每两个关节的连接里,哪些连接才是正确的骨头的位置,符合一般动物的身体结构。

BoneNet模型长这样:

ai元素怎么变成3d模型(只要做出角色3D模型)(17)

同时,还要给这个3D角色找到“根关节”,就是下图的小红点,可以理解为“重心”,需要用到RootNet模型。

ai元素怎么变成3d模型(只要做出角色3D模型)(18)

这真是“刻骨铭心”啊。

好的,现在关节、骨架和重心都有了,需要让这幅骨头感知一下皮肉的重量,它才能运动得符合自然规律也符合人们的观感。

ai元素怎么变成3d模型(只要做出角色3D模型)(19)

ai元素怎么变成3d模型(只要做出角色3D模型)(20)

给皮肉“称重”的任务,还是GMEdgeNet模型来做,它来预测骨架蒙皮权重。

传送门

项目主页:https://zhan-xu.GitHub.io/rig-net/

论文地址:https://people.cs.umass.edu/~zhanxu/papers/RigNet.pdf

GitHub:https://github.com/zhan-xu/RigNet

— 完 —

量子位 QbitAI · 头条号签约作者

关注我们,第一时间获知前沿科技动态

,