独立游戏开发如何选择动捕技术?

Xsens动作捕捉 2023-05-10 3528

涉及到的关键词

Mocap = Motion Capture = 动作捕捉

Deep AI Video Mocap = 你懂得

Clean Up = 动捕数据的优化

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

Retargeting = 骨骼重定向

Walk Cycle = 循环走路的动画

涉及到的工具

Blender

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

Plask.AI

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

独立游戏开发如何选择动捕技术?  第1张
Plask.AI


Kinetix

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

独立游戏开发如何选择动捕技术?  第2张
https://www.kinetix.tech/


Plask VS Kinetix

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

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

动捕过程

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

Plask视角

Step One

独立游戏开发如何选择动捕技术?  第3张
点击+号


Step Two

独立游戏开发如何选择动捕技术?  第4张
上传文件


Step Three

独立游戏开发如何选择动捕技术?  第5张
编辑视频


Step Three - Roast

独立游戏开发如何选择动捕技术?  第6张
这交互设计的,这是人干事?


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

Step Four

独立游戏开发如何选择动捕技术?  第7张
绑定动画与模型


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

Step Five - Final

独立游戏开发如何选择动捕技术?  第8张
导出动画


Kinetix视角

Step One

独立游戏开发如何选择动捕技术?  第9张
添加动画方案


Step Two

独立游戏开发如何选择动捕技术?  第10张
上传视频


Step Three

独立游戏开发如何选择动捕技术?  第11张
Import


Step Four

独立游戏开发如何选择动捕技术?  第12张
编辑片段


Step Five

独立游戏开发如何选择动捕技术?  第13张
起一个牛逼的名字


Step Six

独立游戏开发如何选择动捕技术?  第14张
等待处理结束


Step Seven

独立游戏开发如何选择动捕技术?  第15张
打开动画工程


Step Eight

独立游戏开发如何选择动捕技术?  第16张
点击Editing


Step Eight - Roast

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

独立游戏开发如何选择动捕技术?  第17张
这也是人干事?


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

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

Step Nine - Final

独立游戏开发如何选择动捕技术?  第18张
下载动画


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

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

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

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

将FBX文件导入到Blender

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

独立游戏开发如何选择动捕技术?  第19张
删除多余的东西


导入FBX文件到Blender中

File→Import→FBX

独立游戏开发如何选择动捕技术?  第20张
一定要勾选Automatic Bone Orientation


Clean Up 动捕数据

Step One

独立游戏开发如何选择动捕技术?  第21张
切换到Animation编辑器


Step Two

独立游戏开发如何选择动捕技术?  第22张
切换到Graph Editor编辑器


Step Three

独立游戏开发如何选择动捕技术?  第23张
进行平滑曲线处理


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

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

Step Three - Bonus of Graph Editor Explanation

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

独立游戏开发如何选择动捕技术?  第24张
曲线的意义


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

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

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

处理前:

独立游戏开发如何选择动捕技术?  第25张
处理前,杂乱无章


处理后:

独立游戏开发如何选择动捕技术?  第26张
处理后,很光滑


开始制作Walk Cycle

我们先回到Dope Sheet编辑器

独立游戏开发如何选择动捕技术?  第27张
切换到Dope Sheet编辑器


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

独立游戏开发如何选择动捕技术?  第28张
限定关键帧范围


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

独立游戏开发如何选择动捕技术?  第29张
强行收尾衔接


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

独立游戏开发如何选择动捕技术?  第30张
观察Gap出现的原因


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

破坏性的方法

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

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

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

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

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

正道做法

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

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

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

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

结论

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

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

The End