贫民级游戏动捕方案——AI视频动作捕捉

Xsens动作捕捉 2022-12-04 13615

涉及到的关键词

Mocap = Motion Capture = 动作捕捉

Deep AI Video Mocap = 你懂得

Clean Up = 动捕数据的优化

NLA = Nonlinear Animation = 非线性动画(不知道是不是Blender特有的)

Retargeting = 骨骼重定向

Walk Cycle = 循环走路的动画

涉及到的工具

Blender

推荐理由:免费,开源,有大量好用的插件。但是缺点就是没有其他成熟的软件好用。但是免费,免费,免费。

Plask.AI

一个网站,里面提供了免费的AI视频动捕方案,用户只需要自己拍摄一段视频,然后上传上去,自动可以Extract动画,然后导出FBX文件。

贫民级游戏动捕方案——AI视频动作捕捉  第1张
Plask.AI


Kinetix

另一个网站,里面提供了免费的AI视频动捕方案,用户只需要自己拍摄一段视频,然后上传上去,自动可以Extract动画,然后导出FBX文件。

贫民级游戏动捕方案——AI视频动作捕捉  第2张
https://www.kinetix.tech/


Plask VS Kinetix

Plask内置了一个建议的骨骼编辑器,可以在有限程度下修改动画,但是有Blender的情况下,基本形同虚设。且Plask没有手部识别。但是动作识别精准度好像略高于Kinetix。

Kinetix使用界面非常非常简洁,没有多余的功能,就是两步走:上传视频→下载动画。Kinetix有手部动作识别,但是识别精准度特别特别低,你摆一个握拳的姿势,基本上动画导出来之后,跟老年痴呆一样,手部一直在“打响指”。但是总好过没有,后期我们可以在Blender里面优化。

动捕过程

先从YouTube上找一个视频,当然大家自己操作的时候是需要自己录自己的视频的。这里涉及到一个问题我好好奇,我从网上下载武打明星的片段,然后动捕出动画放到游戏里面算侵权么??

Plask视角

Step One

贫民级游戏动捕方案——AI视频动作捕捉  第3张
点击+号


Step Two

贫民级游戏动捕方案——AI视频动作捕捉  第4张
上传文件


Step Three

贫民级游戏动捕方案——AI视频动作捕捉  第5张
编辑视频


Step Three - Roast

贫民级游戏动捕方案——AI视频动作捕捉  第6张
这交互设计的,这是人干事?


这里要吐槽一下,这个交互设计实在太烂了,他本意是想让我等待这些时间,但是这个窗口看上去像是一个报错窗口,只给了一个Cancel按钮,忍不住点。实际上,千万不要点!千万不要点!千万不要点!

Step Four

贫民级游戏动捕方案——AI视频动作捕捉  第7张
绑定动画与模型


这里需要将动画与模型绑定,绑定需要等待几分钟。

Step Five - Final

贫民级游戏动捕方案——AI视频动作捕捉  第8张
导出动画


Kinetix视角

Step One

贫民级游戏动捕方案——AI视频动作捕捉  第9张
添加动画方案


Step Two

贫民级游戏动捕方案——AI视频动作捕捉  第10张
上传视频


Step Three

贫民级游戏动捕方案——AI视频动作捕捉  第11张
Import


Step Four

贫民级游戏动捕方案——AI视频动作捕捉  第12张
编辑片段


Step Five

贫民级游戏动捕方案——AI视频动作捕捉  第13张
起一个牛逼的名字


Step Six

贫民级游戏动捕方案——AI视频动作捕捉  第14张
等待处理结束


Step Seven

贫民级游戏动捕方案——AI视频动作捕捉  第15张
打开动画工程


Step Eight

贫民级游戏动捕方案——AI视频动作捕捉  第16张
点击Editing


Step Eight - Roast

这里空口吐槽一下,上一步必须要点击Editing,如果不点Editing,而直接点Export会被报错

贫民级游戏动捕方案——AI视频动作捕捉  第17张
这也是人干事?


提示无法导出一个模板,因为你没编辑过,所以他就算成模板了……

好吧这也没有空口吐槽,还是截了图……

Step Nine - Final

贫民级游戏动捕方案——AI视频动作捕捉  第18张
下载动画


在Blender中进行Clean Up以及制作Walk Cycle

这里以Blender为例进行讲解动捕的后处理,也就是Clean Up阶段。另外也顺带讲解一下,如何做Walk Cycle,这可是困扰我两天的成果。

对于普通的攻击或者放技能之类的动作,在Unreal中通常会被用于Montage的动画,其实就是所见即所得,只要处理Clean Up就可以了。

但是对于Locomotion之类的动画,也就是在Unreal中需要放进BlendSpace中作为移动动画的(……动画),我们则需要额外的去处理Walk Cycle。

将FBX文件导入到Blender

新建一个Blender工程,并将多余的东西删掉(摄像机,以及那个箭头)

贫民级游戏动捕方案——AI视频动作捕捉  第19张
删除多余的东西


导入FBX文件到Blender中

File→Import→FBX

贫民级游戏动捕方案——AI视频动作捕捉  第20张
一定要勾选Automatic Bone Orientation


Clean Up 动捕数据

Step One

贫民级游戏动捕方案——AI视频动作捕捉  第21张
切换到Animation编辑器


Step Two

贫民级游戏动捕方案——AI视频动作捕捉  第22张
切换到Graph Editor编辑器


Step Three

贫民级游戏动捕方案——AI视频动作捕捉  第23张
进行平滑曲线处理


这里有快捷键可以操作,在Blender里面A是全选,然后疯狂按Alt+O进行曲线平滑,直到满意为止。

至于按到什么程度才算满意,首先你要先理解这个曲线代表什么意义。

Step Three - Bonus of Graph Editor Explanation

这里给大家讲解一下曲线编辑器里面曲线的意义。

贫民级游戏动捕方案——AI视频动作捕捉  第24张
曲线的意义


从上图中展开某一个骨骼的列表中可以看出,每一个骨骼都有自己的Transform信息。所以这个曲线也既是每一个骨骼的动画过程。那这和“关键帧”有啥关系和区别呢?

关键帧,顾名思义就是关键帧,是储存这一帧某一个骨骼的Transform状态的,对于3D游戏来说,区别于2D像素动画,只有关键帧和关键帧的切换显然是无法满足人们的需求,蒙骗过人眼能够识别出的平滑切换。所以这里曲线实际上意味着interpolation(插值运算)。

所以我们在执行Smooth Key这个动作的时候,就是为了平滑由于动捕不精确带来的一些额外的抖动。

处理前:

贫民级游戏动捕方案——AI视频动作捕捉  第25张
处理前,杂乱无章


处理后:

贫民级游戏动捕方案——AI视频动作捕捉  第26张
处理后,很光滑


开始制作Walk Cycle

我们先回到Dope Sheet编辑器

贫民级游戏动捕方案——AI视频动作捕捉  第27张
切换到Dope Sheet编辑器


挑选出一段你最满意的循环片段,然后在编辑器右下角限定一下,比如我选的是从第1帧到第47帧。其他多余的关键帧都可以删了。

贫民级游戏动捕方案——AI视频动作捕捉  第28张
限定关键帧范围


下面骚操作来了,我们先把这个片段的最后一帧删了,然后再把第一帧拷贝到最后一帧。

贫民级游戏动捕方案——AI视频动作捕捉  第29张
强行收尾衔接


然后先按播放键看一下效果,我猜100%会出现Gap,这个时候不要急。紧接着打开Graph Editor观察曲线。

贫民级游戏动捕方案——AI视频动作捕捉  第30张
观察Gap出现的原因


我画圈的这部分,就是导致Gap的罪魁祸首。如果你理解了我之前讲解的关键帧与曲线的关系,就应该知道该怎么做。这里提供两条有效方法:

破坏性的方法

删除倒数第二帧,播放一下看看效果,不行再删除倒数第三帧,倒数第四帧……

这样做的好处就是非常省事,方便,快捷。

坏处就是非常具有破坏性,根据动画而异,有一些这样做就看不出区别,有一些就能看出动画节奏由明显的问题。这个时候也不要急,只需要重新排一下关键帧的位置就可以修补。

但是这种方法可不能贪杯哦~删多了,会导致【关键的关键帧】丢失,就会导致关键动作丢失:P

这方法的原理你们应该懂吧?之所以有要处理成“Cycle”的需求,是因为这个动画本身就是Cycle的,所以基本上处于一种正弦或者余弦的曲线状态。由于我们为了能够让最后一帧和第一帧完美衔接,所以我们把最后一帧强行拷贝到了最后一帧,所以带来了最后一帧和倒数第二针之间的“隔阂”,所以我们本着“解决提出问题的人”的态度,谁有问题删谁,直到删到动画状态接近最后一帧的那一帧,在interpolation的加持下,自然而然的平滑。

正道做法

虽然有点累,但是是完美的。

如果你理解我之前讲的种种的一切,应该自然而然的知道该怎么优化。

就是一个骨骼一个骨骼的找,每一个曲线突兀的地方,然后手动平滑曲线。

过程太复杂,我就不演示了……

结论

以上全部是我这两天摸索的结果,纯原创。为了能够给更多地小伙伴启发,所以才写了这一篇教程。

大家一起加油,做出更多有意思的艺术作品。 (*?)

The End